ecsimsw

경사 하강법 / Gradient descent / Optimizer 본문

경사 하강법 / Gradient descent / Optimizer

JinHwan Kim 2020. 2. 28. 09:57

Optimizer  

 

   - 선형 회귀 학습은 결국 데이터를 가장 잘 표현할 수 있는 선(단순 선형 회귀 기준으로)을 그리는 과정이다. 그 예측 값과 실제 값의 그 오차를 표현하는 값을 최소화하는 알고리즘이 최적화 알고리즘 / Optimizer 이다.

 

   - 기본적인 최적화 알고리즘 중 하나가 경사 하강법이다.

 

Gradient descent

 

   - 가설 H(x)=Wx+b에서 편향 b를 제거하고 가중치 W만 생각하여, 가설을 H(x) = Wx라고 하자. 비용 함수는 아래 그래프처럼 2차 함수 형태를 갖을 것이고, 그 값이 최저점이 되는 빨간색 꼭짓점의 W을 찾아야한다. 검정 원 표시는 랜덤하게 정해진 W 값이 점차 목표 W 값에 수렴하는 과정을 표시하였다. 이 과정이 바로 경사 하강법이다.  

 

Cost function

   - W값을 움직이는 로직은 비교적 간단하다. 목표 W보다 큰 곳에서는 보다 작게 하고, W보다 작은 곳에서는 보다 크게 W을 바꿔주는 것이다. 이는 w 위치에서 접선의 기울기를 구하고 그 값에 비례한 값(값의 일부)을 현재 w값을 빼서 다음 w를 지정하는 것으로 만들 수 있다. 접선의 기울기는 미분을 통해 구한다.

 

   - 위 식은 다음 W는 현재 W에서 W에서의 접선의 기울기의 일부 값을 빼서 결정한다는 의미의 식이다. 학습 초반에는 W값이 목표 W값과 거리가 멂에 따라 기울기 절댓값이 크고, 그래서 비교적 넓은 보폭으로 목표 W에 가까워지다가, 학습이 진행될수록 접선의 기울기의 절댓값이 작아져 좁은 보폭으로 목표 W값에 근접하는 탐색을 하게 된다. 

 

   - 식의 알파는 학습률이라고 말하는데, 앞서 말한 목표 W에 가까워지는 보폭에 곱해져 W에 얼마나 빨리 가까워지나를 의미한다. 하지만 알파값이 무작정 크면, W는 목표점이 아닌 발산하는 형태로 목표 W에서 멀어지고, 너무 작으면 학습 속도를 느리게 하므로, 무작정 큰 값이 유리하다, 또는 작은 값이 효율적이다 이런 말이 성립되지는 않는다. 그렇기에 적절한 학습률을 찾는 것이 중요하다.

 

학습률이 너무 커 발산하는 W

  

Comments