BETAInsomnia Studyroom특징 거리로 이미지 분류하기
특징 거리로 이미지 분류하기

2022 Revised Curriculum · Career Elective

인공지능 수학

데이터를 숫자로 표현하고, 예측과 최적화에 사용되는 수학을 계산과 탐구로 연결합니다.

5개 단원과 14개 강의에서 인공지능의 판단 구조, 텍스트·이미지 데이터, 예측, 손실함수, 경사하강법과 책임 있는 수학 탐구를 학습합니다.

22개정 인공지능 수학 · Unit 3 · 이미지를 행렬로 다루는 방법

특징 거리로 이미지 분류하기

이미지 분류는 새 그림과 학습 그림 사이의 ‘비슷함’을 수로 정의하는 문제입니다. 픽셀에서 무엇을 특징으로 뽑고 어떤 거리로 비교하는지에 따라 가장 가까운 이웃과 최종 범주가 달라질 수 있습니다.

이번 강의의 목표

이미지를 특징 벡터로 바꾸고 유클리드 거리와 맨해튼 거리를 계산하여 최근접 이웃 분류 결과를 설명합니다.

\[\text{image}\rightarrow\mathbf{x}\rightarrow d\rightarrow\hat y\]

특징 벡터

면적 비율, 평균 밝기, 대칭도와 경계의 양처럼 문제에 관련된 측정값을 순서가 고정된 벡터에 모읍니다.

\[\mathbf{x}=(x_1,x_2,\ldots,x_m)\]

최근접 이웃

새 이미지와 각 학습 이미지의 거리를 계산한 뒤 가장 가까운 \(k\)개의 라벨로 범주를 정합니다.

\[\hat y=\operatorname{vote}\{y_i:i\in N_k(\mathbf{x})\}\]

좋은 거리 표현

같은 범주 안의 거리는 작고 다른 범주 사이의 거리는 커지도록 특징·스케일·거리 측도를 검증 자료로 선택합니다.

\[d_{within}\downarrow,\qquad d_{between}\uparrow\]

거리 기반 이미지 분류의 흐름

1. 전처리크기·밝기 규칙을 맞춘다
2. 영역 찾기측정할 대상을 분리한다
3. 특징 측정면적·색·모양을 수로 만든다
4. 스케일링단위 차이를 조정한다
5. 거리 계산가까운 학습 이미지를 찾는다
6. 투표·평가범주를 정하고 오류를 검사한다

최근접 이웃 분류는 학습 예시를 저장해 두었다가 새 입력이 들어오면 가까운 예시의 라벨을 이용하는 방법입니다. 여기서 ‘가깝다’는 픽셀의 실제 공간 거리가 아니라 특징 공간에서 정의한 거리입니다.

이미지에서 어떤 특징을 측정할까?

면적 비율\(x_1=\frac{\text{대상 픽셀 수}}{HW}\)
좌우 대칭도반전했을 때 겹치는 정도, 0에서 1
평균 밝기\(\overline I=\frac1{HW}\sum I_{yx}\)
경계 밀도경계 픽셀 수를 전체 픽셀 수로 나눈 값

이 강의에서는 도형 이미지를 ‘삼각형’과 ‘원’으로 구분하기 위해 면적 비율 \(x_1\)과 좌우 대칭도 \(x_2\)만 사용합니다. 실제 사진에서는 조명과 배경에 덜 민감한 특징인지 별도 실험이 필요합니다.

\[\mathbf{x}=(x_1,x_2)=(\text{면적 비율},\text{좌우 대칭도})\]

학습용 특징 데이터 만들기

이 강의를 위해 만든 여섯 개의 가상 도형 이미지 특징
이미지범주면적 비율 \(x_1\)대칭도 \(x_2\)
T1삼각형0.320.70
T2삼각형0.380.62
T3삼각형0.280.75
C1원0.550.95
C2원0.600.90
C3원0.520.88

새 이미지 Q의 특징은 \(\mathbf{q}=(0.45,0.80)\)이라고 합시다. 표의 숫자는 실제 사람이나 외부 이미지에서 수집한 값이 아닙니다.

거리를 선택하는 방법

유클리드 거리직선으로 잰 거리\(d_2=\sqrt{\sum_i(x_i-z_i)^2}\)
맨해튼 거리축을 따라 이동한 거리\(d_1=\sum_i|x_i-z_i|\)
민코프스키 거리두 공식을 포함한 일반형\(d_p=(\sum_i|x_i-z_i|^p)^{1/p}\)

\(p=1\)이면 맨해튼 거리, \(p=2\)이면 유클리드 거리입니다. 어떤 거리가 이미지의 의미상 차이를 잘 반영하는지는 검증 자료로 비교해야 합니다.

특징 공간에서 Q의 이웃 찾기여섯 학습점과 새 입력 Q를 직접 구성한 SVG입니다. 두 축의 눈금 비율이 다르므로 정확한 거리는 표의 계산값을 사용합니다.
면적 비율과 대칭도 특징 공간의 최근접 이웃 가로축은 면적 비율, 세로축은 대칭도이다. 삼각형 세 점은 왼쪽에, 원 세 점은 오른쪽 위에 있으며 새 입력 Q는 두 집단 사이에 있다. T1T2T3C1C2C3Q면적 비율 x₁대칭도 x₂△ 삼각형● 원× 새 입력

좌표는 표의 값을 그래프 영역에 선형 변환해 표시한 것입니다. 점선 원은 개념을 돕는 이웃 범위이며, 실제 분류는 아래의 정확한 수치로 결정합니다.

Q에서 각 학습점까지 계산하기

예를 들어 C3까지의 유클리드 거리는 다음과 같습니다.

\[d_2(Q,C3)=\sqrt{(0.45-0.52)^2+(0.80-0.88)^2}=\sqrt{0.0113}\approx0.106\]
이웃범주유클리드 거리가까운 순서
C3원0.1061
T1삼각형0.1642
T3삼각형0.1773
C1원0.180공동 4
C2원0.180공동 4
T2삼각형0.1936

1-NN과 3-NN의 답이 다르다

\(k=1\)

가장 가까운 C3만 사용

Q를 ‘원’으로 예측
\(k=3\)

C3, T1, T3가 투표

원 1표, 삼각형 2표 → ‘삼각형’
더 큰 \(k\)

더 넓은 이웃을 사용

잡음 영향은 줄 수 있지만 지역 경계가 흐려질 수 있음

작은 \(k\)는 가까운 한 점의 라벨 오류에 민감하고, 너무 큰 \(k\)는 멀리 있는 다른 집단까지 포함합니다. \(k\)는 테스트 정답이 아니라 검증 자료로 선택합니다.

동점과 거리 가중 투표

이웃 수가 짝수이거나 범주가 많으면 표가 같아질 수 있습니다. 가까운 점에 더 큰 가중치를 주는 한 가지 방법은 역거리 가중입니다.

\[w_i=\frac{1}{d_i+\varepsilon},\qquad score(c)=\sum_{i\in N_k}w_i\mathbf{1}(y_i=c)\]

\(\varepsilon>0\)는 거리가 0일 때 0으로 나누는 일을 피합니다. 동점일 때 더 가까운 범주, 사전에 정한 우선순위, 또는 ‘판단 보류’를 사용할 수 있지만 규칙을 미리 공개해야 합니다.

범주의 대표점과 비교하는 방법

각 범주의 평균 특징인 중심 \(\boldsymbol\mu_c\)를 구해 가장 가까운 중심을 고를 수도 있습니다.

\[\boldsymbol\mu_c=\frac1{n_c}\sum_{i:y_i=c}\mathbf{x}_i,\qquad\hat y=\operatorname*{argmin}_c d(\mathbf{x},\boldsymbol\mu_c)\]

이 방법은 저장과 계산이 단순하지만 한 범주가 여러 덩어리로 나뉘거나 모양이 복잡하면 평균점 하나가 범주를 잘 대표하지 못할 수 있습니다.

특징의 단위가 거리를 지배할 수 있다

면적을 픽셀 수로 기록해 수백 단위가 되고 대칭도는 0에서 1이라면, 유클리드 거리에서 면적 차이가 거의 모든 결정을 지배합니다.

점면적 픽셀대칭도Q=(500,0.80)과 원래 거리
A5100.10약 10.024
B5500.79약 50.000

면적을 1,000으로 나누면 Q'=(0.50,0.80), A'=(0.51,0.10), B'=(0.55,0.79)가 되어 거리는 각각 약 0.700과 0.051입니다. 이제 B가 더 가깝습니다.

\[z_j=\frac{x_j-\mu_j}{\sigma_j}\]

평균과 표준편차로 표준화할 때 \(\mu_j,\sigma_j\)는 학습 자료에서만 계산하고 검증·테스트·새 입력에는 같은 값을 적용해야 데이터 누출을 피할 수 있습니다. 이상치가 많다면 다른 스케일링도 검토합니다.

원본 픽셀을 그대로 거리로 비교하면?

같은 크기의 두 이미지를 일렬로 펴면 픽셀 벡터 사이의 거리를 계산할 수 있습니다. 하지만 대상이 한 칸 이동하거나 조명이 조금 바뀌어도 많은 좌표가 달라질 수 있습니다.

\[d_{pixel}(A,B)=\sqrt{\sum_{y,x,c}(A_{yxc}-B_{yxc})^2}\]

면적·대칭도 같은 설계 특징은 특정 변화에 덜 민감하도록 만들 수 있지만 다른 정보를 버립니다. 학습된 임베딩도 대안이지만, 어떤 자료와 목표로 학습되었는지에 따라 거리의 의미가 결정됩니다.

차원이 커지면 생기는 문제

특징을 많이 추가하면 계산량이 늘고, 데이터가 희박한 고차원 공간에서는 가까운 점과 먼 점의 차이가 상대적으로 작아질 수 있습니다.

\[\text{more dimensions}\not\Rightarrow\text{better neighbors}\]

불필요하거나 중복된 특징을 제거하고 충분한 학습 예시를 확보하며, 선택한 거리와 차원 축소가 검증 성능을 실제로 높이는지 확인해야 합니다.

너무 멀면 판단을 보류하기

학습 자료에 없는 새로운 형태도 가장 가까운 이웃은 항상 존재합니다. 그래서 최소 거리가 기준 \(r\)보다 크면 무조건 범주를 붙이지 않고 검토 대상으로 보낼 수 있습니다.

\[d_{min}>r\quad\Rightarrow\quad\text{unknown / review}\]

이 거절 기준도 검증 자료와 실제 오분류 비용으로 정합니다. 거리 자체가 확률이나 확신도와 같지는 않습니다.

평가와 책임 있는 사용

  1. 같은 대상의 연속 촬영이나 변형본이 학습·테스트 양쪽에 섞이지 않게 분리한다.
  2. 검증 자료로 특징, 스케일러, 거리, \(k\)와 거절 반경을 선택한다.
  3. 최종 테스트에서는 전체 정확도와 범주별 정밀도·재현율을 함께 확인한다.
  4. 조명, 배경, 카메라, 크기와 촬영 각도별로 오류가 달라지는지 검사한다.
  5. 새 환경에서 특징 분포와 최근접 거리가 변하면 다시 평가한다.

사람에게 영향을 주는 이미지 분류에서는 피부색이나 보조기구 같은 속성이 의도하지 않은 거리 단서가 되지 않는지 확인해야 합니다. 가까운 픽셀 또는 특징이 같은 의미를 보장하지는 않습니다.

활동 1 · 거리와 3-NN

새 점 Q=(2,2)와 A범주 점 A1=(1,1), A2=(2,0), B범주 점 B1=(3,2), B2=(4,4)가 있습니다. 유클리드 거리를 구해 1-NN과 3-NN 결과를 비교하세요.

정답과 해설 보기

거리는 A1=\(\sqrt2\), A2=2, B1=1, B2=\(2\sqrt2\)입니다. 1-NN은 가장 가까운 B1 때문에 B, 3-NN은 B1·A1·A2 중 A가 2표이므로 A입니다.

활동 2 · 스케일의 영향

Q=(100,0.9), A=(102,0.1), B=(110,0.8)에서 원래 유클리드 거리를 비교하세요. 첫 특징을 100으로 나눈 뒤 다시 비교하고 왜 이웃이 바뀌는지 설명하세요.

정답과 해설 보기

원래 거리는 A가 \(\sqrt{4.64}\approx2.154\), B가 \(\sqrt{100.01}\approx10.000\)이므로 A가 가깝습니다. 스케일 조정 후 Q'=(1,0.9), A'=(1.02,0.1), B'=(1.10,0.8)이고 거리는 약 0.800과 0.141이므로 B가 가깝습니다. 처음에는 첫 특징의 큰 단위가 거리를 지배했습니다.

공개 자료 참고 및 저작권 안내

최근접 이웃, 거리와 이미지 특징 개념의 정확성을 확인하기 위해 다음 공개 문서와 오픈소스 구현을 참고했습니다.

외부 자료의 문장, 코드, 이미지, 데이터, 그래프나 활동을 복제하지 않았습니다. 도형 분류 목적, 여섯 특징점, 모든 거리 계산, 표, 연습 문제와 SVG 산점도는 이 강의를 위해 독립적으로 작성했습니다. 외부 구현을 직접 사용할 때에는 해당 버전의 라이선스와 표시 조건을 확인하세요.

학습 원칙

계산 결과만 제시하지 않고 사용한 데이터, 수학적 가정, 평가 기준과 적용 한계를 함께 설명합니다. 개인정보와 편향 가능성을 확인하고 인공지능의 출력을 확정된 사실로 해석하지 않습니다.

교육과정 구성 근거

국가교육과정정보센터의 2022 개정 교육과정, 한국과학창의재단 수학과 교육과정 개발 연구, 부산광역시교육청 고교학점제 과목 안내를 과목 성격과 내용 범위 확인에 참고했습니다. 단원 구성, 강의명, 설명과 예시는 이 사이트의 학습 흐름에 맞게 독립적으로 작성했습니다.

Checkpoint

학습점 A1=(0,1), A2=(1,2)는 A범주이고 B1=(3,1), B2=(5,2)는 B범주입니다. 새 입력 Q=(2,1)에서 네 점까지의 유클리드 거리를 구하고 1-NN과 3-NN 결과를 각각 결정하세요. 이어 두 특징의 단위가 크게 다를 때 필요한 처리와 최근접 거리 자체를 확률로 해석하면 안 되는 이유를 설명하세요.