해밍 거리로 두 이미지 데이터의 유사도를 구하고, 이를 이용해 인공지능이 손글씨 숫자를 분류하는 원리를 배웁니다.
| 단계 | 활동 | |
|---|---|---|
| 도입 | 인공지능은 이미지를 어떻게 분류할까? | 5분 |
| 활동1 | 두 문자열의 해밍 거리 | 10분 |
| 활동2 | 두 행렬의 해밍 거리 | 10분 |
| 활동3 | 해밍 거리로 손글씨 숫자 분류하기 | 20분 |
| 정리 | MNIST 데이터 세트 | 5분 |
개와 고양이를 한 번도 보지 못한 사람은 새로운 사진이 개인지 고양이인지 구분하기 어렵습니다. 인공지능도 마찬가지로, 학습 자료를 통해 특징을 습득해야 새로운 이미지를 분류할 수 있습니다. 그중 한 가지 방법은 입력된 이미지와 학습된 이미지의 유사도를 측정하는 것으로, 그 유사도 중 하나가 해밍 거리입니다.
길이가 같은 두 문자열 $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로 최소).
같은 꼴의 두 행렬 $A, B$에 대하여 같은 위치에 있는 서로 다른 성분의 개수를 두 행렬의 해밍 거리 $H(A,B)$라고 합니다. 세 이미지 데이터 A, B, C를 나타낸 행렬이 다음과 같을 때, 가장 유사한 두 이미지 데이터를 찾아봅시다.
| 비교 | 해밍 거리 |
|---|---|
| $H(A,B)$ | 3 |
| $H(A,C)$ | 4 |
| $H(B,C)$ | 7 |
해밍 거리가 가장 작은 A와 B가 가장 유사한 이미지 데이터입니다.
손글씨 숫자 1, 4, 5의 이미지 데이터를 검은색 0, 흰색 1로 하여 6×6 행렬 A, B, C로 나타내고, 새로운 손글씨 숫자 이미지 데이터를 행렬 D로 나타냈습니다. 아래에서 D를 직접 그려 보고, 어떤 숫자와 가장 유사한지 확인해 보세요.
프랑스 컴퓨터 과학자 얀 르쿤(Yann LeCun)이 만든 MNIST 데이터 세트는 0부터 9까지의 손글씨 숫자 이미지로, 학습 이미지 6만 개와 테스트 이미지 1만 개로 구성되어 있습니다. 새로운 손글씨와 학습 이미지 사이의 유사도를 구하는 과정에 해밍 거리와 같은 수학적 개념이 이용됩니다.
오늘은 해밍 거리로 이미지 데이터의 유사도를 구해 손글씨 숫자를 분류하는 방법을 배웠습니다. 다음 시간에는 행렬의 곱셈으로 다층 퍼셉트론의 연산을 표현하고 Ⅲ단원을 정리합니다.