-
데이터 기반 접근법 (Data-Driven Approach):
- 과거에는 사람이 직접 규칙(예: '고양이 귀는 뾰족하다')을 코드로 짜서 이미지를 분류하려 했지만, 이는 확장성이 매우 떨어집니다.
- 현대의 머신러닝은 데이터 기반 접근법을 사용하며, 다음 3단계로 이루어집니다.
- 데이터셋 수집: 이미지와 해당 이미지의 정답 레이블을 수집합니다.
- 분류기 학습: 수집한 데이터를 이용해 머신러닝 알고리즘으로 모델(분류기)을 학습시킵니다.
- 평가: 학습에 사용되지 않은 새로운 이미지로 모델의 성능을 평가합니다.

-
K-최근접 이웃 (K-Nearest Neighbor, KNN) 분류기:
- 가장 간단한 분류기 중 하나로, 데이터 기반 접근법의 핵심 개념을 이해하는 데 도움이 됩니다.

- 학습 (
train): 모든 학습 데이터를 그저 메모리에 저장합니다. 계산이 필요 없어 매우 빠릅니다.
- 예측 (
predict): 새로운 (테스트) 이미지가 들어오면, 저장된 모든 학습 이미지와의 거리를 계산하여 가장 가까운 이미지를 찾고, 그 이미지의 레이블을 정답으로 예측합니다. 이 과정은 모든 데이터와 거리를 비교해야 하므로 느립니다.




-
거리 측정 방식:
- L1 거리 (맨해튼 거리): 각 픽셀값 차이의 절댓값을 모두 더한 값입니다. 좌표축에 민감하게 반응합니다.
- L2 거리 (유클리드 거리): 각 픽셀값 차이를 제곱하여 모두 더한 후 제곱근을 씌운 값입니다. 우리가 흔히 아는 두 점 사이의 직선 거리입니다.


-
K값의 의미와 하이퍼파라미터 튜닝:
- K: 예측 시 가장 가까운 1개의 이웃만 보는 대신, K개의 가까운 이웃을 보고 다수결 투표를 통해 레이블을 결정하는 방식입니다. 이를 통해 좀 더 안정적인 예측이 가능합니다.
- 하이퍼파라미터(Hyperparameter): K값이나 거리 측정 방식처럼, 알고리즘이 학습을 시작하기 전에 사람이 미리 정해야 하는 값들을 말합니다.
- 최적의 하이퍼파라미터 찾기:
- 나쁜 방법: 학습 데이터나 테스트 데이터에 맞춰 하이퍼파라미터를 정하는 것은 과적합(overfitting)을 유발하거나, 미래 성능을 보장할 수 없는 '속임수'와 같습니다.
- 좋은 방법 (검증 세트): 학습 데이터를 다시 학습 세트(training set)와 검증 세트(validation set)로 나눕니다. 학습 세트로 모델을 훈련시키고, 검증 세트로 여러 하이퍼파라미터 조합의 성능을 평가하여 최적의 조합을 찾습니다.
- 가장 좋은 방법 (교차 검증): 데이터를 여러 개(fold)로 나누고, 각 fold가 한 번씩 검증 세트가 되도록 반복하여 성능을 평균냅니다. 더 신뢰도가 높지만 계산 비용이 많이 듭니다.


