NLP/AI/Statistics

[cs231n] Note 3: Optimization (Introduction) 본문

Stanford Lectures : AI/CS231n

[cs231n] Note 3: Optimization (Introduction)

Danbi Cho 2021. 1. 4. 16:53

이전 글에서 이미지 분류 문제를 처리하기 위해 가장 중요한 개념인 score functionloss function에 대해 설명하였다. 

 

loss function을 정의하는 과정에서 $f(x_{i}, W)$의 선형 함수를 사용하였는데, 

 

이 때 사용되는 파라미터인 $W$가 어떻게 설정되고, 어떻게 학습되는지는 모델 학습에 중요한 요인이었다. 

 

이를 위해 최적화 과정이 필요하다.

 

최적화(optimization)는 loss function을 최소화하는 최적의 파라미터 $W$를 찾는 과정을 의미한다. 

 

최적화 방법에 대하여 이해하게 되면, score function, loss function, optimization 간의 상관관계를 이해할 수 있을 것이며, 이후에 설명하게 될 신경망 구조에 대하여 이해하기 쉬울 것이다. 

 

optimization 방법들은 다음 글에서 설명할 예정이며, 

 

우선적으로 loss function이 최소값에 도달하는 과정에 대하여 보고자 한다.

Visualizing the loss function

 

예시로 들었던 CIFAR-10 데이터의 경우, [10 X 3073] 차원으로 매우 고차원의 벡터를 가지기 때문에 시각화하기 어렵지만 일부분의 1차원 혹은 2차원 벡터를 추출하여 시각화할 수 있다. 

 

1차원으로 표현하기 위한 데이터에 대하여 loss를 생성하기 이전에, 랜덤값으로 초기화된 가중치 매트릭스 $W$가 있다고 가정한다.

 

그 후, 값의 이동에 따라 loss function을 기록할 수 있다. 

 

예를 들어, 특정 값 $a$가 존재할 때 랜덤 가중치 파라미터 $W_{1}$를 생성하여 $a$에 대한 loss $L(W+aW_{1})$를 평가할 수 있다. 

 

$a$에 대한 loss를 평가하여 해당 방향에 대한 loss를 계산할 수 있고 그 loss의 변화에 따라 $W$를 업데이트한다. 

 

2차원일 경우, $L(W+aW_{1}+bW_{2})$와 같이 loss를 평가하여 방향을 개선해나갈 수 있다.

 

이러한 예시의 시각화 그림은 다음과 같다. 

위의 그림에서 파란색 부분이 낮은 loss 값으로 평가되는 부분이다. 

 

그렇기 때문에 $W$를 업데이트함으로써 loss를 파란색의 방향으로 도달하도록 하는 것이 optimization의 목표이다.

 

loss는 이전 loss function에서 설명한 것과 같이 아래의 수식으로 계산된다. 

 

$$L_{i} = \sum_{j \neq y_{i}} [max(0, w_{j}^{T} x_{i} - w_{y_{i}}^{T} x_{i} + 1)]$$

 

이 때 각 데이터의 loss는 $W$의 선형함수의 함수으로 나타낸다. 

 

#. $W$는 각 라벨에 대하여 잘못된 라벨에 해당할 경우 특정 행이 양의 값으로, 올바른 라벨에 해당할 경우 특정 행이 음의 값으로 매트릭스를 구성한다.

 

예를 들어, (고양이, 강아지, 말)의 3가지 라벨에 대한 SVM loss는 다음과 같이 평균으로 구성된다. 

 

$$L_{0} = max(0, w_{1}^{T}x_{0} - w_{0}^{T}x_{0} + 1) + max(0, w_{2}^{T}x_{0} - w_{0}^{T}x_{0} + 1)$$

$$L_{1} = max(0, w_{0}^{T}x_{1} - w_{1}^{T}x_{1} + 1) + max(0, w_{2}^{T}x_{1} - w_{1}^{T}x_{1} + 1)$$

$$L_{2} = max(0, w_{0}^{T}x_{2} - w_{2}^{T}x_{2} + 1) + max(0, w_{1}^{T}x_{2} - w_{2}^{T}x_{2} + 1)$$

$$L = (L_{0}+L_{1}+L_{2})/3$$

 

참고) cs231n.github.io/optimization-1/#intro

 

CS231n Convolutional Neural Networks for Visual Recognition

Table of Contents: Introduction In the previous section we introduced two key components in context of the image classification task: A (parameterized) score function mapping the raw image pixels to class scores (e.g. a linear function) A loss function tha

cs231n.github.io

 

 

 

Comments