ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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등의 알고리즘 이용하여 해결 가능

     

    댓글