이진 이미지 간의 유사도를 측정하고 숫자를 분류하는 원리를 탐구해보자

해밍 거리란?

두 이진 행렬(0과 1로 이루어진 행렬)에서 서로 다른 값을 가지는 위치의 개수를 해밍 거리라고 합니다.

값이 다른 위치가 많을수록 두 행렬은 서로 멀리 떨어져 있다(다르다)고 볼 수 있습니다.

H(A, B) = (A와 B에서 값이 서로 다른 위치의 수)
해밍 거리 시각화 예제

두 이미지 X와 A를 이진 행렬로 변환하고 H(X, A)를 구해봅시다.
빨간 셀이 두 행렬에서 서로 다른 위치입니다.

직접 해보기 — 셀을 클릭해서 비트를 바꿔보세요

아래 X 행렬의 셀을 클릭하면 0↔1이 바뀌며 H(X,A), H(X,B)가 실시간으로 업데이트됩니다.

A (숫자 0)
X (미지수) ← 클릭!
B (숫자 6)
H(X,A) = —
?
H(X,B) = —

개념을 이해했다면 직접 숫자를 그려서 해밍 거리를 확인하거나, 퍼셉트론 분류를 탐구해보세요!

STEP 1 기준 이미지 확인

숫자 0~9 각 클래스에서 랜덤으로 선택된 기준 이미지입니다. 이 이미지들과 내가 그린 숫자의 해밍 거리를 비교합니다.

STEP 2 숫자 그리기

✏️ 여기에 숫자를 그려보세요

붓 두께

🔲 이진화 결과 (14×14)

숫자를 그리고 "이진화 변환"을 클릭하세요

STEP 3 해밍 거리 계산

STEP 1과 STEP 2를 모두 완료한 후 계산하세요

각 숫자와의 해밍 거리
단계별 비교 시각화

해밍 거리가 가장 작은 두 후보와의 비교입니다. 빨간 셀 = 두 행렬에서 값이 다른 위치

가중치 행렬 W와 퍼셉트론

기준 이미지 A(이진 행렬)에서 가중치 행렬 WA를 만들 수 있습니다.

A의 1의 개수를 |A|라 하면: WA = (1/|A|) × A

퍼셉트론 PA의 출력값은 X와 WA의 내적(성분별 곱의 합)입니다:

PA(X) = X · WA = Σ(Xi × Ai) / |A|

이 값이 클수록 X가 A와 더 유사합니다. 출력값이 가장 큰 퍼셉트론의 클래스로 분류합니다.

가중치 행렬 시각화 예제

A → WA = (1/|A|)A 변환과 퍼셉트론 출력값 P(X) = X · WA를 확인해봅시다.

직접 해보기 — X 셀을 클릭해보세요

아래 X 행렬의 셀을 클릭하면 0↔1이 바뀌며 퍼셉트론 출력값 P(X,A)와 P(X,B)가 실시간으로 업데이트됩니다.

A (숫자 0)
|A| =
X (미지수) ← 클릭!
B (숫자 6)
|B| =
P(X,A) = —
?
P(X,B) = —

개념을 이해했다면 직접 숫자를 그려서 퍼셉트론 분류를 체험해보세요!

STEP 1 기준 이미지 확인

숫자 0~9 각 클래스에서 랜덤으로 선택된 기준 이미지입니다. 이 이미지들과 내가 그린 숫자의 퍼셉트론 출력값을 비교합니다.

STEP 2 숫자 그리기

✏️ 여기에 숫자를 그려보세요

붓 두께

🔲 이진화 결과 (14×14)

숫자를 그리고 "이진화 변환"을 클릭하세요

STEP 3 퍼셉트론 출력값 계산

STEP 1과 STEP 2를 모두 완료한 후 계산하세요

각 숫자와의 퍼셉트론 출력값
단계별 비교 시각화

퍼셉트론 출력값이 가장 큰 두 후보와의 비교입니다. 블렌딩 시 분수 시각화가 표시됩니다.  X=1, A=1 (기여)  X=0, A=1 (미기여)