1. Gradient Descent with Momentum
Gradient descent example
- 빨간 점을 global minimum이라고 본다면 일반적인 Gradient Descent를 수행했을 때는 파란색 그래프와 같은 양상이 나타날 것이다.
우리는 위 아래로 흔들리는 폭을 줄이면서도 보다 큰 보폭으로 global minimum에 접근할 수 있도록 하는 방법을 떠올려볼 수 있다. - 대표적인 방식 중 하나가 Momentum이다.
이는 gradient descent를 수행하는 매 step이 독립적인 것이 아니라 현재 step에 이전 step이 영향을 주는 것으로 받아들이는 방식이라고 볼 수 있다.
즉, exponentially weighted averages를 구하는 방식처럼 현재항과 이전항에 가중치를 부여하는 것으로 식을 이해할 수 있다.
(mean of derivatives를 구하는 방식이라고 표현한다) - 이를 커다란 그릇 안에 그릇의 바닥으로 굴러가는 공에 비유할 수 있다.
이때 매 시점의 속력을 업데이트 하는 과정으로 이해할 수 있고 현재의 속력에 부여하는 가중치를 마찰로, 업데이트를 위해 계산된 미분계수를 가속도로 이해할 수 있다. - 결과적으로 이 알고리즘을 적용하면 빨간색 그래프와 같이 적은 noise를 가지면서도 global minimum에 빠르게 접근할 수 있다.
Implementation details
- 계산의 효율을 위해 mini-batch를 사용할 수 있다는 것은 이전 강의에서 다룬 바 있다.
- 위에서 설명한 것처럼 효율적인 gradient descent를 위해 베타와 (1-베타)를 사용하는데,
사실 bias correction을 적용하면 여러 step이후 원하는 결과를 갖지 못할 수 있게 되어 이를 생략하는 방식도 존재한다.
그러나 Andrew Ng 교수님께서는 왼쪽 방식을 선호한다고 말씀하셨다. - 적절한 베타값이 무엇인지 정확히 고르기는 어렵지만 일반적으로 0.9정도면 강건한 수치로 볼 수 있다고 하셨다.
2. RMSprop
- RMSprop은 Momentum과 마찬가지로 보다 적은 noise, 빠른 학습속도를 유도한 알고리즘이다.
이 의미를 시각적으로 설명하자면 수직으로는 덜 이동하고 수평으로는 더 많이 이동하도록 한다는 뜻이다. - 여기서는 dw,db 대신 Sdw, Sdb를 사용한다.
특이한 미분계수를 제곱한다는 것이다.
그리고 이 값으로 가중치를 업데이트 할 때 나눠준다. - 왜 이런 과정을 포함할까?
수직으로 덜 이동하고 수평으로 더 많이 이동한다는 것은 변수 b는 줄이고 w는 키우겠다는 것을 의미한다.
따라서 제곱을 하면 작은 값은 더 작아지고 큰 값은 더 커질 것이다.
(exponentially weighted average of the squares를 구한다)
여기에 normalize를 위해 루트를 씌워준다. - 주목할 만한 특징 중 하나는 아주 작은 값(epsilon)을 더해서 나눠준다는 것이다.
이는 0으로 나누는 것이 정의될 수 없기 때문이며 e-8과 같이 굉장히 작은 수를 더해줌으로써 0으로 나눠 오류가 발생하는 것을 방지할 수 있게 된다.
3. Adam Optimization Alogrithm
- Adam Optimization Algorithm은 앞에서 다룬 Momentum과 RMSprop을 결합한 방식이다.
- Momentum은 V_dw, V_db를 변수로 사용하고 RMSprop은 S_dw, S_db를 변수로 사용한다고 정의하자.
Adam에서 가중치를 업데이트 할 때는 Momentum의 변수를 분자로 사용하고 RMSprop의 변수를 분모로 사용한다.
(물론 이때도 아주 작은 값 epsilon을 더하여 0으로 나눠지는 불상사를 방지한다)
Hyperparameters choice
- 일반적으로 Mementum에 쓰이는 beta_1은 0.9, RMSprop에 쓰이는 beta_2는 0.999, 여기에 더하는 eplsilon은 e-8이 적절한 값이라고 논문에 밝혀져 있다.
- 따라서 사실상 tuning이 권장되는 것은 learning rate인 alpha뿐이다.
- Adam은 Adaptive Moment Estimation의 줄임말로 Momentum과 RMSprop을 합친 것이라는 의미를 지닌다.
출처: Coursera, Improving Deep Neural Networks, DeepLearning.AI
'Improving Deep Neural Networks > 2주차' 카테고리의 다른 글
Quiz & Programming Assignments (0) | 2022.11.13 |
---|---|
Optimization Algorithms(4) - Learning Rate Decay (0) | 2022.11.12 |
Optimization Algorithms(2) - Exponentially Weighted Averages (0) | 2022.11.09 |
Optimization Algorithms(1) - Mini-batch (0) | 2022.11.08 |