딥러닝 모델의 매개변수 최적화, optimizers, 확률적 경사 하강법 (SGD, stochastic gradient descent), 모멘텀 (momentum), 네스테로프 모멘텀 (NAG, nesterov accelerated gradient), AdaGrad (Adaptive Gradient algorithm), Adam (Adaptive moment estimation), RMSProp (Root mean square prop)
+ 이나스AI에는 인공지능 관련 다양한 강의가 있습니다.
- Object detection, Text To Speech, Reinforcement learning, OCR, Chatbot, Time series prediction,
- Meta learning, eXplainable AI, Transformer/BERT/GPT, Graph-based ML, etc
- 소스코드, 다이어그램 및 중간데이터에 기반하여 인공지능 알고리즘들의 작동원리와 구조를 이해하기 쉽고 정확하게 설명합니다.
+ 작업할 때 켜놓는 라이브 스트리밍 study with me 채널도 운영하고 있습니다.
1. 딥러닝 모델의 매개변수 최적화
- 딥러닝 모델에는 학습가능한 가중치 (trainable weight) 및 편향 (trainable bias) 가 존재한다. 전이학습 (transfer learning) 등의 이유로 가중치들의 변화 (업데이트)를 고정시키기도 하지만, 일반적으로 딥러닝 모델 훈련이라 함은 손실함수의 출력값이 작아지도록 이러한 가중치들을 조정하는 것이다.
- 손실함수의 값이 작아지도록 만들기 위해서는 방향성이 필요한데, 여기에 기울기 (미분)이 사용된다.
- 손실함수에서 기울기를 구하면서 가중치를 업데이트하는 다양한 종류의 알고리즘이 있으며, 확률적 경사 하강법과 같은 초기 버전의 최적화 알고리즘에서 단점을 보완하는 과정에서 다양한 알고리즘이 개발된 것이다.
2. 딥러닝 모델 최적화 알고리즘
2-1. 확률적 경사 하강법 (SGD, stochastic gradient descent)
- 확률적 경사 하강법에서는 손실 함수에서 기울기를 구하고, 이 기울기가 작아지는 방향으로 가중치를 업데이트해 나가며, 손실 함수의 출력값이 가장 작은 값이 될때까지 기울기를 구하고 가중치를 업데이트하는 과정을 반복한다.
- 경사 하강법은 한번 학습할 때 모든 입력된 데이터에 대해 가중치를 조정한다. 이에 반해, 확률적 경사 하강법에서는 입력된 데이터 중에서 랜덤하게 선택된 일부 데이터에 대해 가중치를 조정하게 된다. 이로부터 최적화 속도가 향상되었지만, 최적점에 수렴할 확률은 그만큼 낮아지게 되었다.
- 아래의 그림은 경사하강법과 확률적 경사하강법의 최적점으로의 탐색경로를 나타낸다.
- 가중치를 조정하여 손실 함수의 기울기가 작아지는 방향으로 이동하게 되면, 손실함수의 값이 작아지기는 하지만, 탐색 공간 내에서 전역 극소점 (global minimum)이 아니라 지역 극소점 (local minimum)으로 도달하게 되는 경우가 있으며, 이러한 상황의 발생은 예측하기 어려워 딥러닝 훈련에서 다루기 어려운 문제로 여겨진다. 학습률 (learning rate)를 훈련 초기에는 상대적으로 크게, 훈련 말미에는 상대적으로 작게 조정하는 방법이 이러한 문제에 도움이 된다.
- 손실 함수가 비등방성 함수 특성을 갖을 때, 확률적 경사 하강법은 비효율적인 탐색 경로를 갖게되어 좋은 성능을 보이지 않는다.
- 손실함수의 기울기가 줄어드는 극소점 근처에서 최적화가 느리게 진행된다.
- 탐색 경로가 큰 지그재그 모양을 갖는다.
- 확률적 경사 하강법의 단점을 개선하고자 모멘텀, AdaGrad, Adam 등의 최적화 알고리즘이 제안되었다.
2-2. 모멘텀 (momentum)
- 기울기 방향으로 힘이 적용되면 물체가 가속된다는 물리 법칙 아이디어를 적용한 알고리즘이다.
- 확률적 경사 하강법에 속도 개념을 적용했다.
- 손실함수에서 기울기 값이 줄어들더라도, 누적된 기울기 값을 사용해, 지속적으로 빠르게 극소점으로 수렴하게 된다.
- 최적점 탐색 경로를 보면, 확률적 경사 하강법 보다 단순해 졌는데, 이는 모멘텀 알고리즘이 관성의 방향을 고려하므로 진동과 폭을 줄이는 효과로 인한 것이다.
- 모멘텀 알고리즘을 수식 및 벡터연산그림으로 표현하면 아래와 같다. 현재위치 $$$\theta_t$$$ 에서 기울기를 구하면 $$$g(\theta_t)$$$ 를 얻을 수 있다. 현재 위치에서 속도 벡터 $$$\mu v_t$$$ 와 현재 위치에서 기울기 벡터 $$$g(\theta_t)$$$ 를 더하면 다음 위치에서 속도벡터 $$$v_{t+1}$$$ 을 얻을 수 있다. 현재 위치 $$$\theta_t$$$ 에서 다음 위치에서의 속도 $$$v_{t+1}$$$ 로 나아가면, 다음 위치 $$$\theta_{t+1}$$$ 을 얻을 수 있다.
$$$v_{t+1} = \mu v_t - \epsilon g(\theta_t)$$$
$$$\theta_{t+1} = \theta_t + v_{t+1}$$$
$$$g(\theta_t)$$$ : 현재위치에서 기울기 (그래디언트)
$$$\mu v_t$$$ : 현재위치에서 속도 ($$$\mu$$$ 만큼 상수를 곱한)
$$$v_{t+1}$$$ : 다음번 위치에서 속도
$$$\theta_{t+1}$$$ : 현재 위치 $$$\theta_t$$$ 에서 속도 $$$v_{t+1}$$$ 로 나아갔을 때, 도달하는 위치 (다음번 위치)
2-3. 네스테로프 모멘텀 (nesterov accelerated gradient)
- 모멘텀 알고리즘은 모멘텀 방향과 현재 위치에서의 기울기를 반영하여 최적화를 진행한다. 네스테로프 모멘텀 알고리즘은 현재 위치가 아니라 모멘텀 방향을 미리 적용한 위치에서 기울기를 계산 및 반영하여 최적화 하는 방법이다.
- 네스테로프 모멘텀은 기본 모멘텀 방식보다 속도가 개선되었으며, 불필요한 계산량은 감소했으며, 정확도는 향상되었다.
- 모멘텀 방식은 관성에 의해 다른 방향으로 나아갈 수 있지만, 네스테로프 모멘텀은 이동할 방향에서 기울기 (그래디언트)를 다시 산출하기 때문에, 이동경로의 진동을 감소시키고, 수렴을 빠르게 만들어준다.
- 네스테로프 모멘텀 알고리즘을 수식 및 벡터연산그림으로 표현하면 아래와 같다. 모멘텀 수식과 다른 점은 $$$v_{t+1}$$$를 구할 때, 기울기 (그래디언트)에서 $$$\mu v_t$$$ 항만 추가 되었다. 현재 위치 $$$\theta_t$$$ 에서 먼저 $$$\mu v_t$$$ 속도로 나아간다. 이 위치에서 기울기를 구하면 이 값이 $$$g(\theta_t+\mu v_t)$$$ 이다. 그런 뒤, 현재 위치에서의 속도 벡터 $$$\mu v_t$$$ 와 구해놓은 기울기 벡터 $$$g(\theta_t+\mu v_t)$$$ 을 더하면, 다음 위치에서 속도벡터 $$$v_{t+1}$$$ 이 산출 된다. 현재 위치 $$$\theta_t$$$ 에서 다음 속도 $$$v_{t+1}$$$ 로 나아가면 다음위치 $$$\theta_{t+1}$$$ 에 도달하게 된다.
$$$v_{t+1} = \mu v_t - \epsilon g(\theta_t+\mu v_t)$$$
$$$\theta_{t+1} = \theta_t + v_{t+1}$$$
2-4. AdaGrad (Adaptive Gradient algorithm)
- 손실 함수의 기울기가 큰 훈련 초반부에서는 큰 보폭으로 학습하다가, 최적점에 가까워질수록 학습률 (learning rate)를 줄여 작은 보폭으로 학습하는 방식이다.
- Trainable parameter 전체의 learning rate 값을 일괄적으로 낮추는 것이 아니고, 각 trainable parameter 에 맞는 학습률 값을 만들어 사용하는 방식이다.
- 탐색 경로를 보면, 최적점을 향해 매우 효율적으로 이동하는 것을 알 수 있다.
2-5. Adam (Adaptive moment estimation)
- 모멘텀방식과 AdaGrad 방식의 장점을 결합한 알고리즘이며, 실제 프로젝트에서 많이 사용되고 있다.
2-6. RMSProp (Root Mean Squre Prop)
- 손실 함수에서 기울기를 단순 누적하는 것이 아니라, 지수 이동 평균 방법을 사용하여, 가장 최근의 기울기들이 더 크게 반영되도록 누적하여 최적화에 적용한다.
- AdaGrad 의 기울기 단순 누적으로 인해 학습률이 점점 낮아져 0에 가까워지는 문제를 개선한 기법이다.
https://twinw.tistory.com/247
https://tensorflow.blog/2017/03/22/momentum-nesterov-momentum/
+ 이나스AI에는 인공지능 관련 다양한 강의가 있습니다.
- Object detection, Text To Speech, Reinforcement learning, OCR, Chatbot, Time series prediction,
- Meta learning, eXplainable AI, Transformer/BERT/GPT, Graph-based ML, etc
- 소스코드, 다이어그램 및 중간데이터에 기반하여 인공지능 알고리즘들의 작동원리와 구조를 이해하기 쉽고 정확하게 설명합니다.
+ 작업할 때 켜놓는 라이브 스트리밍 study with me 채널도 운영하고 있습니다.
댓글
댓글 쓰기