ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Optimization Algorithms
    Google ML Bootcamp/Improving Deep Neural Network 2023. 9. 12. 16:17
    728x90

    ※ Mini-batch Gradient Descent

    - 1000개의 mini-batch를 통해서 1 epoch을 실시한 상황.

    - 여러개의 epoch을 실시하고 싶다면 for loop 하나를 추가해야함.

     

     

    ※ Understanding Mini-batch Gradient Descent

    - batch에서는 cost function이 하강함, mini-batch 에서는 반드시 cost function이 하강하지 않을 수도 있다.

    - 장점 1 : 미니배치 크기가 1000개의 예시일 때, 1000개의 예시로 벡터화가 가능할 것이다. 이 경우 예시를 하나씩 처리하는 것보 훨씬 빠르다.

    - 장점 2 : 전체 훈련 세트를 처리할 때 기다릴 필요없이 진전이 있도록 할 수 있다.

    - mini-batch를 사용하면 연속 하강보다는 조금 더 균등하게 최솟값을 향해 가는 경향이 있다. 하지만 항상 정확하게 변환되거나 작은 범위에서 진동하는 것은 아니다. -> 학습 속도를 느리게 만드는 방법을 사용해서 문제를 개선할 수 있다.

    - small training set : batch gradient descent를 사용

    - bigger training set : mini-batch gradient descent를 사용 -> 64, 128, 256, 512, 1024 이렇게 2의 제곱승으로 사용하는 것이 좋다.

    - mini-batch의 x(t), y(t)가 CPU/GPU의 메모리로 모두 들어가게 해서 사용한다.

     

     

    ※ Understanding Exmponentially Weighted Averages

    - 일반화 식 : V(theta) = beta * V(theta) + (1 - beta) * theta(t)

     

     

    ※ Gradient Descent with Momentum

    - Momentum 알고리즘

    - 경사 하강 속도를 높일 수 있음.

    - 기울기 하강, 미니 배치 기울기 하강에서 변동을 무디게 하는 효과가 있음.

    - bias 최적화에 대한 내용을 거의 볼 수 없다. beta가 0.9이므로 거의 티가 나지 않는다.

    - (1 - beta)가 삭제 되어서 사용되는 경우도 많다.

     

     

    ※ RMSprop

    - 미분이 매우 큰 db와 상대적으로 작은 dw로 이루어진다. 수평방향보다 함수가 b 방향인 수직방향으로 훨씬 더 가파르게 기울어져 있기 때문. -> db^2은 매우 큰 값

    - 수직 방향의 업데이트가 매우 큰 숫자로 이루어져서 진동을 완화하는데 도움이 된다.

    - 수직 방향으로 발산하지 않고 더 빠른 학습을 얻을 수 있다는 장점이 있다.

    - 기울기 하강, 미니 배치 기울기 하강에서 변동을 무디게 하는 효과가 있음.

    - 더 큰 학습률을 사용할 수도 있음. -> 알고리즘의 효과를 높일 수 있음.

     

     

    ※ Adam Optimization Algorithm

    - 마지막 w와 b가 Adam을 사용한 것

    - Adam 기법 : Adapt moment estimation

    - beta1 -> 미분의 평균값 계산(1차 모멘트)

    - beta2 -> 제곱의 지수 가중 평균 계산(2차 모멘트)

     

     

     

    728x90

    'Google ML Bootcamp > Improving Deep Neural Network' 카테고리의 다른 글

    Regularization & Optimization  (0) 2023.09.10
Designed by Tistory.