🎶 경사 하강법의 최적화 기법에는 어떤 것들이 있을까?
지난 포스트에서는 경사하강법에 의한 파라미터 업데이트가 잘 이루어지지 않는, 사라지는 기울기 문제에 대해 다뤘었다.
사라지는 기울기(Vanishing Gradient) 문제란?
사라지는 기울기(Vanishing Gradient) 문제란?
🎶 기울기 소실 이라고도 불리는 사라지는 기울기 문제, 어떻게 해결할까? 지난 포스트에서 경사 하강법의 종류에 대해 다뤄보면서, 사라지는 기울기 문제에 대해 언급한 적이 있다.경사 하강
ybbbb.tistory.com
오늘은 경사 하강법의 여러 가지 최적화 방안에 대해 소개하도록 하겠다.
일반적으로 경사 하강법의 기본적인 수식은 다음과 같은데,
학습률 μ가 너무 큰 값이 되면 원하고자 하는 값으로 수렴하지 못하거나, 심지어 발산해 버릴 수 있는 문제점이 생긴다.
이 문제점을 해결하기 위해서는 학습률을 작은 값으로 두면 되지만, 그렇게 하면 한 번 계산할 때 업데이트 되는 파라미터의 값이 작아져 최적해에 도달할 때까지 더 많은 기울기 계산이 필요하게 된다는 것을 뜻한다.
결국, 이 문제를 개선하고 학습률을 크게 하면서 최적해에 도달할 수 있도록 하는 다양한 변형 기법들이 등장하게 된다.
1. 모멘텀(momentum) 을 사용하는 방법
이 방법은 현재 위치에서 계산된 기울기만으로 이동할 방향을 정하는 것이 아니라, 지금까지 기울기를 따라 이동한 경로를 누적한 모멘텀 m을 정의하고 이를 이용해 파라미터를 갱신한다.
모멘텀은 매번 β에 의해 감쇠하고, 오차곡면의 새로운 기울기를 따라 이동하는 정도가 추가로 누적된다.
2. 네스테로프 가속 경사(Nesterov accelerated gradient) 기법
이 방법은 손실 함수 곡면의 기울기를 계산할 때, 이전 모멘텀만큼 이동한 곳에서 기울기를 측정해 이 기울기와 모멘텀을 함께 고려해 이동할 곳을 찾는다.
3. AdaGrad(적응적 경사 기법)
이 방법은 기울기를 구할 때마다 기울기 벡터의 제곱값을 구해 S에 누적한다. S는 기울기를 따라 파라미터를 이동할 때 이 S값으로 학습률을 조정하여 경사가 급한 곳은 천천히 이동하게 해 손실 함수 곡면의 왜곡을 보정하는 역할을 한다.
4. RMSProp
위에서 S는 지속적으로 증가하기 때문에 후반부로 갈수록 학습률이 작아져 점점 해를 찾는 속도가 느려지는 단점이 있다. 이 방법은 이 S값을 일정한 비율로 쇠퇴하게 만들어 새로운 값이 쇠퇴한 만큼 추가하도록 해 이 단점을 보완하도록 만들었다.
5. Adam
이 방법은 앞서 언급한 모멘텀 최적화와 RMSProp을 섞어서 사용하는 적응적 모멘텀 추정 기법으로써, 이 방법에 네스테로프 기법을 추가한 Nadam도 좋은 성능을 보인다고 알려져 있다.
( 🎃 수식에 관해서는 deep 한 부분이 많아 sudo 코드가 잘 나타나 있는 관련 링크를 첨부하겠다. Adam — PyTorch 2.5 documentation)
⚔️ 정리하자면 다음과 같다. 일반적인 경사하강법의 문제점을 해결함과 동시에 수렴 속도의 향상을 위해 모멘텀, 네스테로프 등 다양한 최적화 기법이 나타나게 됐다. 특히, Adam, Nadam이 현재 가장 널리 쓰이는 최적화 기법 중 하나로써, 일반적으로 우수한 성능을 보이고 있다.
다음 포스트에서는 신경망 개선 방안인 데이터 전처리와 드롭아웃에 대해 알아도록 하겠다.
'머신러닝' 카테고리의 다른 글
RNN(Recurrent Neural Networks)이란? (0) | 2024.12.30 |
---|---|
CNN구현 in python - MNIST 데이터셋을 활용하자! (0) | 2024.12.29 |
CNN(합성곱신경망)이란? (2) | 2024.12.28 |
신경망튜닝 - 데이터 전처리와 드롭아웃(drop-out) (2) | 2024.12.27 |
사라지는 기울기(Vanishing Gradient) 문제란? (0) | 2024.12.25 |
경사 하강법(gradient descent)의 종류 (0) | 2024.12.24 |
역전파 알고리즘(Back-propagation)이란 무엇일까? (0) | 2024.12.23 |
DNN(Deep Neural Networks)이란 무엇일까? (0) | 2024.12.22 |