상세 컨텐츠

본문 제목

학부연구생 딥러닝 기본개념 학습내용 복습02 - Optimizer

ML&DL

by 앱등개발자IOS 2022. 10. 9. 23:26

본문

12. 학습관련 기술들  - Optimizer

 

    우리가 머신러닝 기초에서 배우는 SGD(확률적 경사하강법) 혹은 mini batch 적용한 SGD,

   비등방성 함수( 방향에 따라 어떠한 성질 달라지는 함수)에서의 탐색이 비효율적이다.

경우, 모든 좌표에 대해 기울기는 항상 중앙을 가리킨다. 기울기가 가리키는 지점이라는 성질에 대해 등방성 가진다

 

기울기가 가리키는 지점이 무수히 많다. 함수는 기울기가 가리키는 지점이라는 특성에 대하여 비등방성을 가지는 함수이다.

 

이러한 비등방성 함수에서는 SGD Optimizer 효율적인 탐색을 없다.

이와 같이 비효율적인 탐색을 하게된다

실세계의 문제들은 비등방성함수에서 탐색을 해야하는 경우가 대부분일 것이다.

따라서 SGD보다 영리한 방법들이 제시되었고, 여기에는

1.     모멘텀

2.     AdaGrad

3.     Adam 등이 있다.

 

l  먼저 SGD 수식이다.

설명과 같이, 해당 지점에서 해당 변수로 미분한 기울기와 Learning rate(학습률) 곱한 값을 빼주는 ( 손실함수 최소화 방향으로 ) 것이 전부이다.

 

l  다음은 Momentum 수식이다.

모멘텀은 운동량 뜻하는 단어로 SGD 한가지 특성을 가미한 것이다.

운동량을 가진 것처럼, 아래 그림과 같은 작은 언덕은 쉽게 넘어갈 있게 ( Local Minima 빠지지 않도록) 설계한 방식이다.

 

SGD 비교하여 추가된 부분인 alpha * v 에서 alpha 0.9 같은 값으로 설정 ( 물리에서 마찰/저항의 역할) 갑자기 매개변수가 0 되어 아무런 힘을 받지 않는다면 서서히 속도가 감소한다

 

내리막 길에 있는 경우( 편미분 값이 음수 ) : 6.3  lr * 편미분 값이 음수가 되어, v값이 커지거나, 감소하더라도 폭이 작아진다. 해당 변수가 커지려는 증가한다.

 

오르막 길에 있는 경우: 6.3  lr*편미분 값이 양수가 되어 v 감소폭이 커진다. , 변수 W 작아지려는 증가한다

 

위와 같이 Momentum 안정적으로 수렴하는 것을 확인할 있었다.

Momentum방식의 장점은 Local Minima 빠지는 경우를 SGD 비해 많이 해결해준다는 것이다.

 

 

l  다음은 AdaGrad방식이다.

학습을 진행하며, Learning Rate 점차 줄여가는 방법!

매개변수 전체의 Learning Rate 일괄적으로 낮추기보다, 각각의매개변수에 맞춤형

 

l  h값에 기존 편미분(기울기)값을 제곱하여 더해준다. (Element wise Multiply)

l  , 학습이 진행될수록, h값은 계속 커지고, 많이 움직인 매개변수는 학습률이 점점 낮아지게 된다 ( W 갱신시, LearningRate 옆에 sqrt(h) 나누어 주므로 )

학습을 진행할수록 갱신 강도가 약해져, 어느 순간 갱신량이 0 되어 전혀 학습이 이루어지지 않는 상황이 오며, 이를 개선한 RMSProp라는 방식이 제안되었다.

 

 

 

l  다음은 Adam Optimizer이다.

 

모멘텀 + AdaGrad 융합한 듯한 방식.

l  매개변수 공간을 효율적으로 탐색

l  Hyper Parameter 편향보정 진행됨

l  3개의 Hyper Parameter 설정

1. 지금까지의 학습률 alpha

2. 일차 모멘텀용 계수 Beta1 = 0.9

3. 이차 모멘텀용 계수 Beta2 = 0.999

 

 

Optimizer 해결해야할 문제에 따라 다르게 선택해야한다.

 

Ø  MNIST 데이터셋에 대하여 4가지 Optimizer 적용해본 결과

( 활성화 함수는 ReLU 적용)

**Optimizer와 신경망의 구조 뿐 아니라, 학습률, 가중치의 초기값에 따라서도 학습의 결과가 크게 달라진다.

 

 

관련글 더보기