ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [DL] Gradient Descent Methods
    Machine Learning 2023. 9. 12. 11:37

    * stochastic gradient descent

    하나의 샘플로 gradient를 계산한다.

     

    * Mini-batch gradient descent

    a subset of data(샘플 일부)로 gradient를 계산한다.

    large batch methods는 sharp minimizers로 수렴되는 경향이 있고,

    small-batch methods는 consistently으로 flat minimizers로 수렴된다.

    일반적으로 flat minimizers가 generalize performance가 좋다.

    batch size matters

    * Batch gradient descent

    전체 데이터(샘플 전체)로 gradient를 계산한다.

     

    * Gradient Descent Methods

    1. sotchastic gradient descent(SGD, 확률적 경사하강법)

    • learning rate(eta) 혹은 step size를 적절히 조정하는 게 너무 어렵다. 

    - 밑바닥부터 시작하는 딥러닝

     

    • y축 방향은 가파른데 x축 방향은 완만한 것을 볼 수 있다.
    • 또한, 최솟값이 되는 장소는 (x, y) = (0,0) 그림의 gradient를 보면 대부분이 (0,0) 방향을 가리키지 않는다.

    • SGD의 단점은 비등방성(anisotropy 함수; 방향에 따라 성질, 즉 여기에서는 기울기가 달라지는 함수)에서는 탐색 경로가 비효율적이라는 점이다.
    • SGD가 지그재그로 탐색하는 근본 원인은 기울어진 방향이 본래의 최솟값과 다른 방향을 가리켜서라는 점이다.

     

    2. Momentum

    • a는 accumulation 혹은 v (velocity)로도 쓰는데,  기울기 방향으로 힘을 받아 물체가 가속된다는 물리 법칙을 나타낸다. beta는 0.9 등의 값으로 설정한다.

    • SGD와 비교해서 '지그재그 정도'가 덜한 것을 알 수 있다.
    • x축의 힘은 아주 작지만 방향은 변하지 않아서 한 방향으로 일정하게 가속하기 때문이다. 거꾸로 y축의 힘은 크지만 위아래로 번갈아 받아서 상충하여 y축 방향의 속도는 안정적이지 않다. 

     

    3. Nesterov Accelerated Gradient(NAG)

    • Momentum Optimizer의 개선된 알고리즘.
    • Gradient(를 에서 계산하는 것이 아니라 관성(momentum)에 의해서 이동한 에서 계산한다.
    • momentum optimizer가 관성의 효과로 최적값을 지나칠 수 있는 문제를 개선한 것이 NAG( 지그재그를 줄이고 더 빠르게 수렴할 수 있다.)

    https://towardsdatascience.com/learning-parameters-part-2-a190bef2d12

     

    4. AdaGrad

    • AdaGrad는 많이 변화시켰던 파라미터는 적게 변화시키고, 적게 변화시켰던 파라미터는 많이 변화시키는 방법이다.

     

     

    • epsilon은 0으로 나눠지지 않게 하기 위한(division zero Error 예방) 값. (for numerical stability)
    • AdaGrad는 과거의 기울기를 제곱하여 계속 더해간다. 그래서 학습을 진행할수록 갱신 강도가 약해진다. 실제로 무한히 학습하다보면 어느 순간 갱신량이 0이 되어 전혀 갱신되지 않게 되는 문제가 있다.

    • y 축 방향은 기울기가 커서 처음에는 크게 움직이지만, 그 큰 움직임에 비례해 갱신 정도도 큰 폭으로 작아지도록 조정된다. 그래서 y축 방향으로 갱신 강도가 빠르게 약해지고, 지그재그 움직임이 줄어든다.

     

    5. Adadelta

    • accumulation window를 제한하므로써, AdaGrad의 monotonically decreasing the learning rate을 줄이기 위한 방법이다.
    • 실제론 잘 사용하지 않는 방법이다.

     

    6. RMSprop

    • 과거의 모든 기울기를 균일하게 더해가는 것이 아니라, 먼 과거의 기울기는 서서히 잊고 새로운 기울기 정보를 크게 반영한다. 이를 지수이동평균(Exponential Moving Average, EMA)이라 하며, 과거 기울기의 반영 규모를 기하급수적으로 감소시킨다.
    • 제프리힌턴이 강의에서 경험담으로 말했었다가, 나중에 논문이 나왔을 때 그의 강의가 출처로 인용되었다.
    • 많이 사용됐었다.

     

     

    7. Adam

    • 모멘텀과 AdaGrad의 매개변수의 원소마다 적응적으로 갱신 정도를 조정하는 방법을 합친 것.
    • hyperparameter가 3(+1)개이다. 학습률 eta, 일차 모멘텀용 계수 beta1과 이차 모멘텀용 계수 beta2이다. 논문에 기본 설정값은 beta1은 0.9이고 beta2는 0.999이다. epsilon(defalt: 10^-7)은 실제로 조정시 생각보다 중요하다.

     

     

     

     

    2023.11.22 - [Mathematics/Calculus] - EMA(Exponential Moving Average, EMA) 지수이동평균

     

    EMA(Exponential Moving Average, EMA) 지수이동평균

    * EMA(Exponential Moving Average, EMA) 지수 이동 평균 각 날짜별 온도를 가지고 지수이동평균을 구하고자 한다. 현재의 지수이동평균값은 과거의 온도값의 영향에 가중치를 곱해서 구한 값이다. 즉 과거

    operationcoding.tistory.com

     

    'Machine Learning' 카테고리의 다른 글

    [3dgs] open3d로 point cloud 시각화  (2) 2024.07.04
    Logistic regression, cross entropy  (2) 2023.12.03
    Batch Normalization (배치정규화)  (2) 2023.12.03
    [DL] Regularization  (0) 2023.09.12
    [DL for VS #9] LeNet-5  (0) 2023.04.19

    댓글

Designed by Tistory.