본문 바로가기

Deep Learning/cs231n Lecture

Lec 2-2. Linear Classifier: Parametric Approach, Interpretation, Limitation

Linear Classifier

Neural network의 기본적인 building block을 이루는 linear classifier에 대해 살펴보기로 한다. Linear classifier의 기본적인 아이디어는 다음과 같다. 만약 10개의 class로 이미지를 분류하는 classifier인 경우, 각 class에 대한 score가 input x와 weight parameter W의 함수로 표현된다. Score 값이 가장 큰 label로 class를 판단하게 된다.

 

함수 중 가장 간단한 linear 함수를 가정하면, 아래 수식의 첫 줄과 같이 함수를 표현할 수 있다.

이 때, linear 함수에서 bias vector b를 포함하는 것이 더 유용함이 알려져 있다. 그래서 기본적인 linear classifier의 수식은 위 수식의 두 번째 줄과 같이 나타난다.

 

Dimension of Linear Classifier

Linear classifier의 수식은 matrix-vector multiplication, addition의 꼴인데, 수식을 구성하는 각 요소들의 dimension을 분석해보는 것이 유용하다.

여기서 10은 class label의 수, N은 input 이미지를 하나의 행 벡터로 늘여놓았을 때의 길이이다. 예를 들어, (32, 32, 3)의 크기였다면 N은 32x32x3이다.

 

Interpretation of What Linear Classifier Does

먼저, output score vector의 row 단위로 생각해보자. 하나의 row는 weight matrix의 row와 input image vector의 inner product이다. Inner product 연산의 특성에 의해, 이 연산은 곧 input image vector가 weight matrix의 row와 얼마나 유사한지를 측정하는 것이라고 해석할 수 있다. 그래서, (1, N)의 크기를 갖는 weight matrix의 각 row를 다시 image dimension으로 돌려놓으면 각 label에 대한 template을 얻을 수 있다.

cs231n lecture slide 2, p57

한 가지 흥미로운 것은 강의 자료에 나와있는 template 중 horse를 보면 머리가 두 개인 것을 볼 수 있다. 실제로 머리가 두 개인 말은 없는데 말이다. 이것은 linear classifier가 하나의 template만을 학습하도록 되어 있기 때문이고, 여러 가지 데이터로부터 아마 양 쪽을 바라보는 말 모두에 대해 학습했기 때문이라고 해석할 수 있다.

 

이번에는 vector space 관점에서 해석해보자.

실제 weight matrix row는 N차원이지만, 그림을 위해 2차원인 상황을 생각해보자. 이는 곧 2차원 벡터 공간에서 하나의 직선으로 표현될 수 있다. (만약 고차원이라면 plane이라는 표현이 보다 일반적이다) Weight matrix의 row vector를 w라고 한다면, wx=0이라는 직선(또는 plane)은 label에 대한 decision boundary를 이룬다. 이것보다 오른쪽에 있는 영역은 positive score를, 반대쪽은 negative score를 주게 되는 것이고, 오른쪽으로 멀리 있을수록 class에 더 강하게 속한다고 판단하는 것이다.

 

Limitations of Linear Classifier

간단하고 해석이 용이한 linear classifier이지만, 한계점으로는 영역이 linear하게 구분되지 않는 경우이다. 위에서 말의 머리가 두 개인 template을 학습하는 것이 그 예로도 볼 수 있는데, 만약 하나의 class가 여러 개의 separated area들로 구성된 경우는 linear classifier로 학습하는 것이 한계가 있을 수 있다.