활연개랑

[deeplearning(딥러닝)] 경사하강법(gradient decent) 본문

딥러닝

[deeplearning(딥러닝)] 경사하강법(gradient decent)

승해tmdhey 2021. 12. 26. 23:11
반응형

경사하강법

경사하강법이란, 쉽게말해 스칼라를 벡터로 계속 미분하는것으로 최적해로 위치할 수 있도록 하는 방법이다

 

계속 미분함으로써 다음과 같이 검정 지점으로 이동하도록 한다.

 

즉, 미분값이 0인 지점으로 계속 찾아가는 과정 = 경사하강법
  • 미분값이 크면 클수록 변화량이 크게 존재한다.
  • 변화량이 크므로 빠르게 0에 도달한다.
 
 
 

 경사하강법의 과정

  • 경사하강법은 한 스텝마다의 미분값에 따라 이동하는 방향을 결정한다.
  • f(x) 값이 변하지 않을 때까지 반복한다. 

(여기서 learning_rate는 단계를 거쳐갈 때마다 얼만큼 움직일지 결정해준다.)

 

 

 

 

learning rate

learning rate (step size)가 크게되면 단계를 거칠 때마다 이동하는 거리가 크므로 빠르게 수렴할 수 있지만, 너무 크게 설정하면 수렴하지 않고 발산해 버릴 수 있다. 

반대로 step size가 너무 작으면 최적해를 구하는데 소요되는 시간이 매우 오래걸릴 것이다.

따라서 적절한 학습률을 지정해주어야 최저점에 잘 도달할 수 있다. 

local minima 

경사하강법의 또 다른 문제로 local minima가 있다.

local minima는 아래와 같은 non-convex에서 우리가 원하는 최적해인 global min에 빠져야 하는데, local min 또는 saddle point에 빠져서 더이상 움직이지 않게되는 문제이다.

 

위와 같은 non-convex에서는 시작 위치에 따라 도달하는 최저값이 다를 수 있다.

saddle point(안장점)의 경우 기울기가 0이되지만 극값 (최저값)이 되지 않는 경우로 경사하강법은 안장점에서 벗어나지 못한다는 단점이 있다.