이미지 분류: 매개변수적 접근

J. Hwang·2024년 8월 12일
0

앞서 본 포스팅에서, 이미지를 분류할 때 KNN을 사용하면 굉장히 비효율적이라는 것을 알게 되었다.
그렇다면 이번에는 매개 변수적으로 접근해서 이미지를 분류하는 방법을 사용해보자.

매개변수 모델의 원리 (linear classifier)

이미지를 분류할 때 입력 이미지를 label에 매핑하는 함수를 생각해보자.
이 함수는 다양한 형태로 가정할 수 있지만, 여기에서는 linear한 형태로 가정하자.

ff = wX+bwX + b where ww = weight, XX = image, bb = bias

만약 분류할 라벨이 10개라면, 10개의 weight를 만든다. 이 weight는 올바른 이미지가 해당 label에 가장 높은 점수를 받도록 결정해야 한다.

각 변수의 차원에 대해서 생각해보자. 이미지가 10 ×\times 10 크기라고 가정하면, 10 ×\times 10 ×\times 3 (RGB channel) = 300이다. 라벨이 10개라면 분류 결과로 나와야 하는 차원은 10 ×\times 1 이다. 그렇다면
10 ×\times 1 + bb = ww ×\times (300 ×\times 1) + bb 로부터
weight의 차원은 10×\times 300, bb의 차원은 10 ×\times 1 임을 알 수 있다.


매개변수 모델의 장점

  • 학습이 완료되면 weight만 필요하기 때문에 방대한 학습 데이터를 저장할 필요가 없다.
  • 테스트를 할 때 행렬 벡터곱 (wXwX) 만 하면 되기 때문에 훨씬 빠르다.

Softmax classifier

위에서 살펴본 linear classifier의 경우 결과값으로 label에 해당하는 점수를 반환한다. (ex) label 1 점수 495, label 2 점수 -34, ...) 그러나 이러한 점수들이 무엇을 의미하는지 알기 어렵다.

이를 보완하고자 점수가 0 ~ 1 사이의 값으로 나와서 확률로 해석할 수 있도록 한 것이 softmax classifier이다. 이를 위해서 sigmoid function을 사용하게 된다. sigmoid function을 사용하여 어떤 label에 속할 확률을 표현해보면

p(y=cix)=esies1+es2+...+esn=esiesjp(y = c_i|x) = \frac{e_{si}}{e_{s1}+e_{s2}+...+e_{sn}} = \frac{e_{si}}{\sum e^{sj}}

와 같이 되는데 이를 softmax function이라고 한다.


profile
Let it code

0개의 댓글