본문 바로가기
딥러닝

밑바닥부터 시작하는 딥러닝 Chapter6 - 학습 관련 기술들

by 오렌지마끼야또 2022. 6. 26.
728x90
반응형

 

 

 

 

등방성 함수

f(x, y) = x^2 + y^2

등방성 함수는 각 위치에서 기울어진 방향의 본래의 최솟값을 가리킨다.

따라서 등방성 함수의 경우 SGD를 이용해도 무방하다.

 

 

 

SGD의 단점

비등방성 함수

비등방성 함수는 각 위치에서의 기울기가 가리키는 지점이 하나가 아니라 여러개이다.

기울기의 대부분은 최소값의 위치인 (0,0)을 가리키지 않는다.

이 상태에서 SGD를 적용하면 결과가 다음과 같다.

심하게 굽이진 움직임으로 상당히 비효율적이다.

 

 

 

위와 같은 SGD의 단점을 개선해주는 모멘텀, AdaGrad, Adam 에 대해 알아보자.

 

 

모멘텀

모멘텀은 '운동량' 을 뜻하는 단어
물리에서 p(운동량) = m(질량) * v(속도) 인데, 신경망에서는 질량을 1로 두고 운동량을 속도로만 나타낸다.

여기서 v 변수는 속도에 해당하고, 기울기 방향으로 힘을 받아 물체가 가속된다는 물리법칙을 수식으로 나타낸 것이다.

αv 항은 물체가 아무런 힘을 받지 않을 때 서서히 하강시키는 역할을 한다.
즉, 물체에 가해지는 기울기(가속도)가 없다면 물체의 속도는 저항(ex. 지면의 마찰, 공기의 저항) 등에 의해 감소하는데 이를 위해 α를 0.9 등의 값으로 설정한다.

SGD에 비하면 '지그재그 정도'가 덜하다.
이는 x축의 힘이 아주 작기는 하지만 계속해서 같은 방향으로 진행되어 일정하게 가속하는 형태로 반영되기 때문이다.

모멘텀은 관성을 활용하여 빠져나올 수 있기 때문에 Local Minimum 문제도 해결할 수 있다.

 

 

 

AdaGrad

신경망 학습에서는 학습률의 값을 적절히 정하는 것이 중요하다. 학습률이 너무 작으면 학습 시간이 길어지고, 반대로 너무 크면 발산하여 학습이 제대로 이루어지지 않을 수 있다.

이 학습률을 정하는 효과적 기술로 학습률 감소(Learning rate decay)가 있다. 학습을 진행하면서 학습률을 점차 줄여가는 것이다.

간단히는 학습률을 '전체'에 대해 일괄적으로 낮출 수 있고, 이 방법을 더욱 발전시킨 것이 AdaGrad이다.
AdaGrad에서는 개별 매개변수에 적응적으로(adaptive) 학습률을 조정한다.

 

 

 

☉ : 행렬의 원소별 곱셈

 

 

 

 

 

h라는 변수가 추가되었는데, 이 값은 기존 기울기 값을 제곱하여 계속해서 더해준다.
그리고 매개변수를 갱신할 때 1/sqrt(h)를 곱해 학습률을 줄인다.
즉, 기울기 값이 커서 크게 갱신된 원소는 학습률을 낮춘다.
학습률 감소는 매개변수의 원소마다 다르게 적용된다.

 

AdaGrad에서 과거의 기울기의 제곱을 계속 더하고 학습을 진행할수록 갱신 강도가 약해진다.
이 때, 무한히 학습을 진행하면 어느 순간 갱신량이 0이 되어 갱신이 더 이상 진행되지 않는 문제 발생할 수 있다.
이 문제를 개선한 기법이 RMSProp 이다.
이 방법은 과거의 모든 기울기를 균일히 더하는 것이 아니라 먼 과거의 기울기는 서서히 잊고 새로운 기울기 정보를 크게 반영하는 것이다. (지수이동평균)
과거의 기울기의 반영 규모를 기하급수적으로 감소시킨다.

y축 방향은 기울기가 커서 처음에는 크게 움직이지만, 그 큰 움직임이 h를 급격히 크게 만들어 갱신 정도를 큰 폭으로 작아지도록 조정한다.

 

 

 

 

Adam

Momentum과 AdaGrad를 섞은 기법이다.
모멘텀에서 사용하는 계수와 학습률에 대한 계수가 사용된다.
학습률을 줄여나가고 속도를 계산하여 학습의 갱신강도를 적응적으로 조정한다.
하이퍼파라미터의 '편향 보정'이 진행된다.

하이퍼 파라미터는 총 3개이다.
학습률 - α, 1차 모멘텀용 계수 - β1, 2차 모멘텀용 계수 - β2
논문에 따르면 기본 설정값은 β1이 0.9, β2가 0.999이고, 이 값이면 많은 경우에 좋은 결과를 얻을 수 있다고 한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

사진 출처

 

https://velog.io/@kyj93790/%EB%B0%91%EB%B0%94%EB%8B%A5%EB%B6%80%ED%84%B0-%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94-%EB%94%A5%EB%9F%AC%EB%8B%9D-6.-%ED%95%99%EC%8A%B5-%EA%B4%80%EB%A0%A8-%EA%B8%B0%EC%88%A0%EB%93%A4-part1-%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98-%EA%B0%B1%EC%8B%A0

 

 

 

 

 

 

728x90
반응형

댓글