학부 강의 노트/기상 인공지능 특론

딥러닝 수학 통계 - 경사 하강법

airmaster 2021. 11. 4. 16:54
728x90

경사하강법 (gradient descent)

- 2차원 이상의 함수에서 최저점(기울기, 절편)을 찾는 방법

- 오차의 변화의 2차 함수 그래프를 만들고 적절한 학습률을 설정해 기울기가 0인 지점을 구하는 것. 

 

방법적 알고리즘 (2차 함수)

1. X1에서 미분으로 기울기 구함

2. 구해진 기우기의 반대방향으로 얼마간 이동시킨 X2에서 미분

   (기울기가 +이면 음의 방향, 기울기가 -이면 양의 방향으로 이동시킴)

3. 미분 값이 0이 될때 까지 위 과정을 반복해서 최소값을 구함.

 

학습률 (learning rate)

- 학습율을 너무 크게 설정하면, 기울기의 부호를 바꿔 이동할 때 적절한 거리는 찾지 못해 너무 멀리 이동하면, 기울기(a)가 수렴하지 않고 발산할 수 있음. -> overshooting

학습율을 너무 작게 하면 국소 최적치(local minima)에 빠져 최적화된 w를 찾기 전에 학습이 끝날 수 있다. 

 

- 따라서, 이동거리를 정하는 것이 중요 ... 학습률 개념

 

- 딥러닝에서 학습률의 값을 적절히 바꾸면서 최적의 학습률을 찾는 것이, 최적화 과정 중의 하나. 일반적으로 0.01 을 초기값으로 하고 학습비용 (cost)를 관찰한 후 조금식 조정함.

- 경사 하강법은 오차 변화의 2차 함수 그래프를 만들고 적절한 학습률을 설정해 기울기가 0인 지점을 구하는 것. 

- 최적의 절편(b)을 구할 때도 동일하게 사용.

- a, b에 대해서는 각각 편미분

 

 

학습율 조정 방법

TensorFlow 가 제공하는 메소드를 이용

tf.train.exponential_decay()

tf.train.natural_exp_decay()

tf.train.polynomial_decay()

tf.train.inverse_time_decay()

tf.train.piecewise_constant()

 

 

 

3차 이상 함수

- 다차원 편미분 개념 도입

출처: BOAS 수리물리

 

확률적 경사하강법 (Stochastic Gradient Descent, SGD)

경사 하강법은 계산량이 커서 속도가 느리다.

확률적 경사 하강법은 데이터 일부를 랜덤하게 추출하여 일부 데이터만을 사용하기 때문에 속도가 빠르고 자주 업데이트할 수 있는 장점이 있다. 

확률적 경사 하강법의 중간 결과는 진폭이 크고 불안정해 보일 수 있으나, 빠르게 최적해에 근사한 값을 찾아낼 수 있기에, 경사하강법을 대체해서 사용된다. 

특히 모멘텀(momentum)을 이용하면, 지그재그 현상을 줄이면서 이동 방향에 관성을 더해 효과적으로 계산할 수 있다. 

728x90