NLP/AI/Statistics

[cs231n] Note 2: Linear Classification (Introduction) 본문

Stanford Lectures : AI/CS231n

[cs231n] Note 2: Linear Classification (Introduction)

Danbi Cho 2020. 11. 27. 13:09

머신러닝, 딥러닝과 같은 인공지능 연구에서는 두 가지 중요한 요소에 대한 이해가 필요하다.

 

1. Score function

2. Loss function

 

학습 데이터로 모델을 학습하고 평가 데이터로 학습된 모델을 평가하는 과정에서

해당 평가 결과에 대한 성능을 측정하는 성능 지표로써의 score function과 예측 결과와 실제 결과의 차이를 의미하는 loss function에 대한 개념이 나타난다.

 

특히, loss function에서는 모델의 최적점을 찾아 예측 값과 실제 값의 차이인 loss를 최소화하는 것을 목적으로 모델 학습을 진행해야하기 때문에 이에 대한 이해가 중요하다.

 

> Parameterized mapping from images to label scores

 

우선 이번 글에서는 score function에 대하여 설명하고자 한다. 

 

분류 모델에서 이미지의 픽셀 값을 각 라벨 별 score로 정의하는 단계가 필수적이다. 

 

예를 들어, CIFAR-10 데이터셋은 $K = 10$개의 라벨에 대하여 $N = 50,000$개의 학습 데이터가 있고, 

 

$D = 32 \times 32 \times 3 = 3,072$의 픽셀 차원을 갖는다. 

 

이러한 학습 데이터를 각 라벨 score로 매핑해주는데, 가장 간단한 방법으로는 아래와 같이 선형 함수로 처리된다.

 

$$ f(x_{i}, W, b)  = Wx_{i} + b$$

 

#. $x_{i}$는 i번째 학습 데이터, $W$는 weight (가중치 값), $b$는 bias (편향 값)을 의미한다. 

 

$x_{i} \in \mathbb{R}^{D \times1}$, $W \in \mathbb{R}^{K \times D}$, $b \in \mathbb{R}^{K \times 1}$

 

이 때, 사용자는 입력 데이터인 $x_{i}, y_{i}$ 뿐만 아니라, $W, b$도 통제할 수 있으며

 

모델로부터 학습 데이터의 실제 라벨 값과 모델의 예측 값이 가장 유사하게 매칭되는 것을 목표로 설정한다. 

 

최적의 파라미터 $W, b$를 찾아 학습하게 될 경우, 저장된 $W, b$를 사용한 연산으로부터 평가 데이터를 평가한다.

 

#. 만약 실제 라벨 값과 모델의 예측 값이 동일할 경우 score가 보다 높게 나타난다. 

 

 

> Interpreting a linear classifier

 

선형 분류기는 RGB의 3채널로부터 모든 픽셀 값의 가중치 (W) 합으로 라벨의 score를 계산한다. 

 

이미지에서 특정 색상의 값에 대한 가중치 값에 따라 이미지의 특성을 나타낸다고 할 수 있다. 

 

예를 들어, 파란색의 값이 클 경우 "바다"의 환경으로 예상하여 해당 이미지를 '배 (ship)'으로 예측할 가능성이 높다.

 

위의 이미지를 보면, i번째 이미지 $x_{i}$를 $D \times 1$로 나타내어 표현할 때, $K \times D$차원의 매트릭스인 $W$와 $K \times 1$차원의 $b$의 연산을 통해 라벨 별 예측 score를 나타낼 수 있다. 

 

위의 이미지에서는 '고양이' 데이터를 가장 높은 score인 '개 (dog)'로 잘못 예측하였기 때문에 해당 $W$는 잘 학습된 weight (가중치 값)이라고 할 수 없다.

 

이미지 데이터는 각 픽셀의 가중치 합의 연산으로 각 라벨 별 score를 정의하기 때문에 각 라벨에 대한 score는 특정 다차원 열 벡터 공간에 대한 선형 함수로 표현된다. 

 

즉, 다차원 열 벡터를 2차원으로 축소시켜 이미지의 벡터 포인트를 아래와 같이 시각화할 수 있다. 

실제 라벨과 가장 유사한 예측 값을 얻기 위해 $W$는 해당 라벨에 속하는 벡터 열을 수정하며 이미지 벡터가 예측 값에 도달하도록 회전시킨다. 

 

$b$의 경우 선형을 이동시키는 역할을 하기 때문에 만약 $b$가 정의되지 않아 0의 값을 갖는다면 특정 이미지 $x_{i}=0$는 $W$에 상관없이 항상 0의 score로 정의된다. 

 

하지만 $W, b$를 모두 정의하여 선형 분류를 처리하는 것은 번거로운 문제가 될 수 있기 때문에

 

$b$를 $W$에 적용하여 한번에 처리하는 트릭이 있다. 

 

흔히 $W$의 차원을 +1 하여 $b$의 역할을 함께 수행하도록 한다. 

 

예를 들어, CIFAR-10 데이터셋에서 $10 \times 3,072$의 차원을 $10 \times 3,073$과 같이 1차원을 증가시켜 처리한다. 

 

이러한 트릭은 아래의 그림에서 쉽게 이해할 수 있다. 

 

 

추가적으로, 이미지에서는 모든 픽셀들이 특성을 나타내고 각 특성들을 정규화시켜주기 위해 모든 이미지 픽셀들의 평균으로 부터 이미지 픽셀 값을 빼서 이미지를 중앙으로 처리하는 작업이 주어진다. 

 

참고) cs231n.github.io/linear-classify/#linear-classification

 

CS231n Convolutional Neural Networks for Visual Recognition

Table of Contents: Linear Classification In the last section we introduced the problem of Image Classification, which is the task of assigning a single label to an image from a fixed set of categories. Morever, we described the k-Nearest Neighbor (kNN) cla

cs231n.github.io

 

Comments