이미지 분류 설명 — k-NN이 왜 실패하고 선형 분류기가 중요한가

발행: (2026년 4월 12일 오전 03:13 GMT+9)
8 분 소요
원문: Dev.to

Source: Dev.to

위에 제공된 소스 링크만으로는 번역할 본문이 없습니다. 번역을 원하는 텍스트를 제공해 주시면, 요청하신 대로 한국어로 번역해 드리겠습니다.

소개

우리는 보통 이미지 분류를 다음과 같이 설명합니다:

input:  image
output: label

이 설명은 맞지만, 어려운 부분을 가립니다. 기계에게 이미지란 “고양이”나 “트럭”이 아니라 248 × 400 × 3개의 숫자와 같은 것입니다. 실제 문제는 다음과 같습니다:

원시 픽셀 값을 의미 있는 클래스에 어떻게 매핑할 것인가?

가장 간단한 실패 사례

고양이 사진을 가지고:

  • 오른쪽으로 2 픽셀 이동
  • 밝기를 약간 증가
  • 작은 영역을 잘라내기
  • 배경을 변경

인간에게는 여전히 명확히 고양이로 보인다. 원시 픽셀 거리를 사용하는 모델에게는 매우 다르게 보일 수 있다.

핵심 문제: 픽셀 공간은 의미 공간이 아니다

  • 두 입력이 수치적으로는 멀리 떨어져 있어도 의미는 동일할 수 있다.
  • 두 입력이 수치적으로는 가깝지만 서로 다른 객체를 나타낼 수 있다.

실제 이미지에서는 다음과 같은 이유로 문제가 더욱 악화된다:

  • 시점 변화
  • 규모 차이
  • 변형
  • 가림(폐색)
  • 조명 변화
  • 배경 잡음

좋은 모델은 중요하지 않은 것을 무시하고 중요한 것에 반응해야 한다.

Rule‑Based Vision

A natural early idea is to define objects manually, e.g.:

  • cats have ears
  • cats have whiskers
  • cats have certain shapes

This breaks quickly:

  • ears may be hidden
  • lighting may remove edges
  • backgrounds may look similar
  • poses may distort shapes

Rule‑based vision fails because the visual world is too variable.

규칙 기반 비전

자연스러운 초기 아이디어는 객체를 수동으로 정의하는 것입니다, 예를 들어:

  • 고양이는 귀가 있다
  • 고양이는 수염이 있다
  • 고양이는 특정 형태를 가지고 있다

하지만 이는 곧 깨집니다:

  • 귀가 가려질 수 있다
  • 조명이 가장자리를 없앨 수 있다
  • 배경이 비슷해 보일 수 있다
  • 자세가 형태를 왜곡할 수 있다

규칙 기반 비전은 시각 세계가 너무 다양하기 때문에 실패합니다.

k‑Nearest Neighbours (k‑NN)

가장 직관적인 분류기는 k‑NN입니다.

Basic flow

  1. 모든 훈련 데이터를 저장합니다.
  2. 각 샘플에 대한 거리를 계산합니다.
  3. 가장 가까운 top‑k 를 선택합니다.
  4. 다수표를 통해 라벨을 결정합니다.

Why developers still use k‑NN

  • 간단한 베이스라인
  • 빠른 sanity check
  • 데이터셋 디버깅에 유용
  • 표현이 의미가 있는지 확인 가능

k‑NN이 깨지는 경우

  • Shift sensitivity: 작은 이동은 모든 픽셀 정렬을 바꿉니다.
  • Lighting sensitivity: 밝기 변화가 모든 픽셀에 영향을 줍니다.
  • Flattening destroys structure: image → flatten → vector는 공간적 관계를 잃게 합니다.
  • High‑dimensional issues: 고차원에서는 거리의 의미가 감소합니다.
  • Performance problems: 예측당 O(N) 비교와 높은 메모리 사용량이 발생합니다.

핵심 인사이트

k‑NN은 학습하지 않습니다. 데이터셋을 기억하고 테스트 시에 비교합니다. 이는 직관을 이해하는 데는 유용하지만, 확장성이 없습니다.

k‑NN을 사용할 때도 선택해야 합니다:

  • k
  • 거리 측정 방법
  • 전처리 단계

이것들은 하이퍼파라미터입니다. 검증 또는 교차 검증을 통해 다음을 수행할 수 있습니다:

  • 구성 비교
  • 과적합 방지
  • 더 나은 설정 선택

암기에서 학습으로

앞으로 나아가기 위해, 우리는 묻는 것을 멈춥니다:

Which stored images are closest?

그리고 묻기 시작합니다:

Can we learn a function that predicts directly?

A linear classifier computes:

score = W × x + b

여기서:

  • x – 입력 벡터
  • W – 가중치 행렬
  • b – 편향

이제 모델은:

  • 추론 시 전체 데이터셋이 필요하지 않는다
  • 상수 시간에 예측을 계산한다
  • 데이터로부터 파라미터를 학습한다

왜 이것이 중요한가

항목k‑NNLinear Classifier
추론 방식유사도 조회학습된 함수
학습없음 (데이터 저장)파라미터 학습
추론 속도느림 (O(N))빠름 (O(1))
메모리 사용량높음 (전체 데이터 저장)컴팩트 모델
일반화약함강함

실제로 바뀐 점

성능만이 전부가 아닙니다. 개념적으로는:

  • k‑NN → 유사도 기반 추론
  • Linear model → 학습된 표현

이 순간에 머신러닝이 실제 학습이 됩니다. CNN, 비전 모델, 혹은 딥러닝 시스템을 다룬다면 이것이 여러분의 기반이 됩니다.

이를 이해하면 다음을 설명할 수 있습니다:

  • 왜 원시 픽셀만으로는 충분하지 않은가
  • 왜 특징 학습이 중요한가
  • 왜 깊은 아키텍처가 존재하는가

최종 요약

이미지 분류는 단순히 레이블을 예측하는 것이 아니라, 불안정한 원시 픽셀 입력을 안정적인 의미 출력으로 변환하는 것입니다.

  • k‑NN은 훌륭한 교육 도구이자 디버깅 기준선이지만, 왜 더 나은 방법이 필요한지를 정확히 보여줍니다.
  • 선형 분류기는 학습을 도입한다는 점에서 중요하며, 여기서 현대 컴퓨터 비전이 진정으로 시작됩니다.

여전히 k‑NN을 기준선이나 디버깅 도구로 사용하고 계신가요, 아니면 바로 CNN과 같은 학습 모델로 뛰어들고 계신가요?

Original article

0 조회
Back to Blog

관련 글

더 보기 »