-
[CS230] C2M2 - Improving Deep Neural Networks - Optimization algorithms전공 2020. 5. 1. 23:29
[ Optimization algorithms ]
Mini-batch gradient descent
경사하강법을 전체 데이터 세트(데이터가 아주 클 경우)에 적용하는 것은 속도를 느리게 한다. 보다 작은 데이터 세트로 나누는 데 이것을 미니배치라고 한다.
미니배치의 갯수는 t이다. X^{t} Y^{t}
X는 (n_x, m) Y는 (1,m)
예를 들어, X는 (n_x, 1000) Y는 (1,1000)
(미니배치 경사하강법 구현)
에포크
Understanding mini-batch gradient descent
비용이 진동을 그리는 이유: 샘플마다 쉬운 샘플 어려운 샘플 다르게 구성되어 있으므로
확률적 경사하강법은 진동하며 최소값 주변을 돌아다니지마 절대 수렴하지 않음
vs 배치의 경우 한 반복에서 너무 오랜 시간이 걸리는 것
확률적 경사하강법의 단점: 벡터화로 얻을 수 있는 속도 향상을 잃게 됨
배치와 미니 배치 중간으로 가야
장점: 1. 벡터화 2. 전체 훈련 세트가 진행되기를 기다리지 않고 진행 가능
- 작은 훈련 세트(샘플 2000개 이하)라면 경사하강법 사용하기
- 이보다 큰 세트에서 전형적인 미니 배치 사이즈:64-512(B) 컴퓨터 메모리 접근 방식에서 미니배치 사이즈가 2의 제곱이어야 코드가 빠름)
미니 배치는 또 다른 하이퍼파라미터 - 가장 효율적이면서 비용함수 J를 줄이는 값을 찾아내야 한다.
Exponentially weighted averages(지수 가중 평균)
경사하강법보다 빠른 알고리즘
그 알고리즘을 구현하기 위해 지수 가중 평균을 구할 수 있어야
B베타 값이 클수록(더 큰 범위에서 평균값을 구하기에) 선이 부드러워 진다.
그러나 (더 큰 범위에서 평균값을 구하기에)올바른 범위에서 더 멀어진다. 기온이 바뀔 경우에 지수가중평균 공식은 더 느리게 적응한다. 따라서 지연되는 시간이 더 크다.
B베타 값이 클수록 이전 값에 많은 가중치를 주고 현재 값에는 작은 가중치를 준다. 현재 값에 작은 가중치를 주기에 기온이 변할 경우 더 느리게 적응한다.
B베타 값이 작을수록 노이즈가 많고 이상치에 더 민감하다. 그러나 기온 변화에 더 빠르게 적응.
Understanding exponentially weighted averages
B베타 값이 0.9일 경우 지난 10일 동안의 온도에만 초점을 맞춰 가중 평균을 계산하면 10일 뒤에는 가중치가 현재 날짜의 가중치의 1/3로 떨어진다.
B베타 값이 0.98일 경우 지난 50일 동안의
지수 평균을 사용하는 식의 장점은 메모리를 적게 쓰는 것
명시적으로 지난 10일의 온도를 더하고 10으로 나누는 것이 더 정확하지만 이 방법은 메모리가 많이 들고 컴퓨터 계산 비용이 많이 든다. 따라서 많은 변수를 사용하는 머신 러닝에서는 지수가중평균 방법을 사용하는 것.
Bias correction in exponentially weighted averages
편향 보정을 통해 평균을 더 정확하게 구할 수 있다.
초기 단계 학습에서 편향 보정은 더 나은 추정값 얻도록 해준다.
지수가중평균을 구하는 대부분의 경우 편향 보정을 거의 하지 않음. 초기 단계의 편향이 지나가길 기다린 후 지나간 후부터 시작. 그러나 초기 값이 신경 쓰일 경우에 지수가중평균 사용하기.
Gradient descent with momentum
모멘텀이 있는 경사하강법은 일반적인 경사 하강법보다 더 빠름.
아이디어는 경사에 대한 지수가중평균을 구하는 것. 그 값으로 가중치를 업데이트
위 아래로 일어나는 진동은 경사하강법을 느리게 하고 더 큰 학습률을 사용하는 것을 막는다(학습률이 크지 않아야 진동이 크지 않아진다)
-> 수직으로는 느린 학습, 수평 방면으로는 빠른 학습.
- 모멘텀이 있는 경사하강법을 구현할 때는 편향 보정을 거의하지 않는다
RMSprop
root mean square prop
RMSprop은 진동을 줄이는 효과가 있다는 점에서 모멘텀과 비슷. 차이점은 더 큰 학습률을 사용하여 속도 향상이 가능한 것.
수직측은 매개변수 b 수평측은 매개변수 w(실제로 dw db는 매우고차원적인 매개변수 벡터)
Sdw는 작고
Wdb는 크다
큰 학습률을 사용해 빠르게 학습하고 수직방향으로 발산하지 않음
- RMSprop과 모멘텀을 함께 사용하기
Adam(Adaptive moment estimation) optimization algorithm
아담 알고리즘은 넓은 범위의 딥러닝 아키텍처에서 잘 동작하는 알고리즘
아담 알고리즘은 RMSprop과 모멘텀을 합친 알고리즘
- 하이퍼파라미터 선택
보통 알파 값에 많은 것을 시도
베타1(0.9) 베타2(0.999) ?(10^-8) : 주로 주어진 값을 사용
Learning rate decay
학습 알고리즘 속도를 높이기 위해서는 시간에 따라 학습률을 천천히 줄인다
학습의 초기 단계에서는 큰 스텝으로 진행하고 학습이 수렴할수록 학습률이 느려져 작은 스템으로 진행
학습률 감쇠를 구현하는 방법
The problem of local optima(지역최적값-최적화 문제를 해결할 때 만날 수 있는 문제)(완)
- 비용 함수의 경사가 0인 점은 대부분 지역최적값이 아니라 안장점이다. (과거에는 지역최적값이라 생각했음. 딥러닝에서 낮은 차원에서 얻었던 직관이 높은 차원에서 적용되지 않을 수 있다.)
- 진짜 문제는 안장점. plateaus는 미분값이 아주 오랫동안 0에 가깝게 유지되는 지역으로 학습을 지연시킬 수 있다
- 안장점 해결 방법?
1) 충분히 큰 신경망을 학습시키기
2) 모멘텀, RMSprop, Adam등의 알고리즘 이용하여 해결 가능
'전공' 카테고리의 다른 글
[CS230] C3M1 - Structuring Machine Learning Projects (0) 2020.05.05 [CS230] C2M3 - Improving Deep Neural Networks (0) 2020.05.04 [CS230] C2M1 - Improving Deep Neural Networks - Practical aspects of deep learning (0) 2020.05.01 [CS230] C1M4 Neural Networks and Deep Learning (0) 2020.04.30 [CS230] C1M3 Neural Networks and Deep Learning (0) 2020.04.29