Deep ML. Image Classification - Linear Classification

괴도소녀·2021년 7월 15일
0

DeepML

목록 보기
2/9
post-thumbnail

Linear Classification은 NN(Neural Networks)과 CNN(Convolutional Networks)에 기반 알고리즘이다.

위 그림과 같이 NN을 Linear classifier라는 블럭을 쌓아올린 레고와 같다고 여기면 된다.


위 사진들은 CNN(이미지 인식)과 RNN(언어 인식)을 레고처럼 합쳐 사용한 Image captioning이라는 예제이다.

  • Input : Image
  • output: sentence(사진에 대한 설명)

Linear Classifier로 이미지를 분류하는 것은 마치 템플릿을 만드는 것과 유사하다.
Linear Classifier도 당연히(?..) 문제가 있다.
이 템플릿을 각 클래스당 단 하나만을 학습한다는 것이다. 즉, 템플릿당 하나의 클래스만 허용한다는 뜻이다. 맨 왼쪽에 Plane을 보면 파란색이 많다. 즉, 파란색이 많으면 비행기를 찾는데 더 수월할것이란 의미이다. 가만히 살펴보면 horse에서... 말 머리가 2개이다. 이미지를 대표하는 템플릿을 만드느라 이러한 괴이(?)한 것이 생성된 것이다.


x는 이미지이며 W값은 가중치이다. W를 조정하면 핸드폰과 같은 작은 디바이스에서도 모델을 동작시킬 수 있다. b는 편향이다. 예를들어 데이터가 불균형을 이룰 경우, 강아지 데이터가 고양이 데이터 보다 많을 때, 고양이 데이터 클래스에 상응하는 b가 커지게 된다(오차를 메꿔주거나 무시하는 느낌이랄까?).


f(x,W)를 사용해 카테고리 중에 가장 높은 점수를 받은 class가 있으면 이미지가 그 class일 확률이 높다는 뜻이다.


위의 그림은 3개 이미지에 아무 값(랜덤 값)을 가진 W를 가지고 F 함수에 적용해본 결과이다.
점수들을 보면 고양이 이미지는 cat이 제일 높은것이 아니라, dog의 점수가 제일 높은 것을 알 수있으며, 개구리 이미지는 frog가 아니라 truck의 점수가 가장 높은 것을 알 수 있다.
이로써 알 수 있는 것은 W는 아무 값이나 던져주는 것이 아니라, 최적화하는 과정이 꼭 필요하다는 것이다.

위 예제들은 CIFAR-100 데이터가 토대가 되었다.

Geometric viewpoint


Linear classifier를 다른 관점으로 해석하자면 이미지를 고차원 공간(Geometric viewpoint)의 한 점으로 보는 것이다. 각 이미지를 고차원 공간의 한 점이라고 생각했을 때 Linear classifier는 각 클래스를 구분시켜 주는 선형 결정 경계를 그어주는 역할을 한다.

그러나 Linear classifier로 분류하기 힘든 케이스들이 분명 존재한다.

홀짝을 구분하는 Parity problem, 모델이 여러개를 분류하는 Multimodel problem 등은 한 클래스가 다양한 공간에 분포할 수 있다. 이러한 문제들은 일반적으로 Linear classification으로 풀기 힘들다.


참고

standford image classification youtube
lecture slide

0개의 댓글