Ⅲ단원 · 4 / 5차시

해밍 거리로 손글씨 숫자 분류하기

해밍 거리로 두 이미지 데이터의 유사도를 구하고, 이를 이용해 인공지능이 손글씨 숫자를 분류하는 원리를 배웁니다.

학습목표

  • 두 문자열, 두 행렬의 해밍 거리를 구할 수 있다.
  • 해밍 거리를 이용해 가장 유사한 이미지 데이터를 찾을 수 있다.
  • 해밍 거리로 새로운 손글씨 숫자 이미지를 분류할 수 있다.

시간 배분

단계활동
도입인공지능은 이미지를 어떻게 분류할까?5분
활동1두 문자열의 해밍 거리10분
활동2두 행렬의 해밍 거리10분
활동3해밍 거리로 손글씨 숫자 분류하기20분
정리MNIST 데이터 세트5분
도입 · 5분

인공지능은 이미지를 어떻게 분류할까?

개와 고양이를 한 번도 보지 못한 사람은 새로운 사진이 개인지 고양이인지 구분하기 어렵습니다. 인공지능도 마찬가지로, 학습 자료를 통해 특징을 습득해야 새로운 이미지를 분류할 수 있습니다. 그중 한 가지 방법은 입력된 이미지와 학습된 이미지의 유사도를 측정하는 것으로, 그 유사도 중 하나가 해밍 거리입니다.

활동 1 · 10분

두 문자열의 해밍 거리

길이가 같은 두 문자열 $l_1, l_2$에서 같은 위치에 있는 서로 다른 문자의 개수를 두 문자열의 해밍 거리(Hamming distance) $H(l_1,l_2)$라고 합니다. 해밍 거리가 작을수록 두 문자열이 유사합니다.

비교해밍 거리
$l_1$: 1011100000, $l_2$: 1110000010$H(l_1,l_2)=3$
$l_2$: 1110000010, $l_3$: 1010101000$H(l_2,l_3)=5$
$l_3$: 1010101000, $l_1$: 1011100000$H(l_3,l_1)=2$

가장 유사한 두 문자열은 $l_3$, $l_1$입니다 (거리 2로 최소).

문자열 해밍 거리 계산기 — 비트를 클릭해 바꿔 보세요
활동 2 · 10분

두 행렬의 해밍 거리

같은 꼴의 두 행렬 $A, B$에 대하여 같은 위치에 있는 서로 다른 성분의 개수를 두 행렬의 해밍 거리 $H(A,B)$라고 합니다. 세 이미지 데이터 A, B, C를 나타낸 행렬이 다음과 같을 때, 가장 유사한 두 이미지 데이터를 찾아봅시다.

비교해밍 거리
$H(A,B)$3
$H(A,C)$4
$H(B,C)$7

해밍 거리가 가장 작은 A와 B가 가장 유사한 이미지 데이터입니다.

활동 3 · 20분

해밍 거리로 손글씨 숫자 분류하기

손글씨 숫자 1, 4, 5의 이미지 데이터를 검은색 0, 흰색 1로 하여 6×6 행렬 A, B, C로 나타내고, 새로운 손글씨 숫자 이미지 데이터를 행렬 D로 나타냈습니다. 아래에서 D를 직접 그려 보고, 어떤 숫자와 가장 유사한지 확인해 보세요.

손글씨 숫자 분류기
새로운 손글씨 D (클릭해서 그리기)
정리 · 5분

MNIST 데이터 세트

프랑스 컴퓨터 과학자 얀 르쿤(Yann LeCun)이 만든 MNIST 데이터 세트는 0부터 9까지의 손글씨 숫자 이미지로, 학습 이미지 6만 개와 테스트 이미지 1만 개로 구성되어 있습니다. 새로운 손글씨와 학습 이미지 사이의 유사도를 구하는 과정에 해밍 거리와 같은 수학적 개념이 이용됩니다.

해밍 거리는 이미지 전체를 픽셀 단위로 단순 비교하는 방법입니다. 실제 인공지능은 훨씬 정교한 신경망(CNN)으로 손글씨를 인식하는데, ✍️ 손글씨 숫자 인식 (정밀 CNN) 공학 도구에서 직접 체험할 수 있습니다.

차시 예고

오늘은 해밍 거리로 이미지 데이터의 유사도를 구해 손글씨 숫자를 분류하는 방법을 배웠습니다. 다음 시간에는 행렬의 곱셈으로 다층 퍼셉트론의 연산을 표현하고 Ⅲ단원을 정리합니다.

← 3차시 — 부분 합성, 흑백 변환, 전치행렬로 대칭하기 5차시 — 행렬의 곱셈과 다층 퍼셉트론, 단원 정리 →