I'm Lim

Optimizer 본문

Deep Learning/Optimization

Optimizer

imlim 2022. 8. 9. 15:12

Weight Optimization이란?

딥러닝 네트워크를 모델링 한 후, 이 모델에서 출력하는 예측값과 실제값과의 error를 이용해서 모델의 weight를 update 시키는 방법

Loss function

예측값과 실제값의 error를 정의하는 함수. 

대표적인 예로 회귀문제에는 MSE Loss를 loss function가 있고, 분류문제에는 Cross Entorpy Loss가 있다.

 

MSE Loss

위 그림은 MSE Loss를 시각화 시킨 것이다. 주목할만한 점은 x축이 w이고, y축이 J(w)라는 것이다. w는 weight를 의미하고, J(w)는 Loss function을 의미한다. 즉, J(w)는 w라는 가중치 행렬을 가진 모델의 예측값과 결과값의 차이다.

 

따라서, $J(w) = {\dfrac {1}{N}} \Sigma_{i=1}^N (y_{i} - \hat{y_{i}})^2 $ 이고, 이 때 $\hat{y_{i}}$은 w라는 가중치 행렬을 가진 모델에 의해 결정된다.

Optimizer 예시. Vanilla Gradient Descent

 

Batch Gradient Descent

 

파라미터

 

1. $\eta$ :  learning rate로써 계산된 loss function의 gradient를 얼만큼 weight 업데이트시 반영할 것인가를 결정하는 파라미터
2. $\theta$ : 가중치 파라미터

3. $J(\theta)$ : Objective function으로써 실제 업데이트 될 정도를 결정하는 파라미터

 

식에서 보이다시피 Gradient descent는 Loss function이 derivative가 불가능하면 성립이 안된다. ($\nabla_{\theta} J(\theta)$)

 

0. 식 $\theta = \theta - \eta \nabla_{\theta} J(\theta)$ 자체가 optimizer의 한 종류인 BGD를 뜻한다.  Momentum, Adam, SGD등의 optimizer는 이 식에 몇가지 파라미터들을 추가하여 성능을 개선시킨다. [Optimization]

 

1. $\eta$ 는 learning rate이다. 따라서, 적절한 learning rate를 선정하는 것이 weight update에 선영향을 끼칠 수 있다. 그러나, 우리가 주로 마주할 데이터는 고차원의 벡터이므로 loss function이 local minimum이나 saddle point에 빠질 수 있다. 이를 해결하기 위해 learning rate를 상황에 맞게 수정하는 learning rate schedule 방식을 이용하여 learning rate를 모델 학습시 유동적으로 수정하는 것이 보편적이다. [Learning rate scheduler]

 

2.  $\theta$ 는 가중치에 해당한다. 초기에 적절한 가중치를 설정하면 학습이 더욱 빠르거나 안정적으로 될 수 있다. 그 이유는 loss function과 관련이 있는데 적절한 가중치를 선택한다면 local minimum이나 saddle point에 빠질 가능성을 줄여줄 수 있기 때문이다. [Weight Initialization]

 

3. $J(\theta)$ 는 위에서 말했다시피 Loss function이고, 그러므로 좋은 loss function을 정의하는 것 혹은 적절한 loss function을 선택하는 것은 weight update에 선영향을 끼칠 수 있다. [Loss function]

 

'Deep Learning > Optimization' 카테고리의 다른 글

Adam Optimizer  (0) 2022.09.28
AdaGrad / AdaDelta / RMSprop  (0) 2022.09.26
Momentum / Nesterov Accelerated Gradient  (0) 2022.09.21
Gradient Descent  (0) 2022.09.18
Comments