-
1. 최적화(optimizer)
모델의 효과를 높이기 위하여 가중치의 미분을 계산하고 적합한 가중치 값으로 갱신하는 과정을 반복한다.
이 가중치의 기울기를 기반으로 최적의 값을 찾아가는 것을 optimizer라고 한다.
최적화에서 중요한 것은 한 번에 얼마나 이동할지를 정하는 학습률이다.
학습률이 낮다면 매우 느리게 움직인다. 특히 평탄한 지역에서는 학습속도가 매우 느려지며 기울기가 매우 낮다면 학습이 더 이상 진행되지 않을 수도 있다.
반대로 학습률이 높다면 최솟값이 있는 지점을 임의로 건너뛰거나 로컬 미니멈에서 멈출 수 있다.
따라서 더욱 학습시간을 줄이고 글로벌 맥시멈을 정확하게 찾아내기 위해서 관성 법칙을 이용하는 모멘텀, 스탭사이즈를 키운 adagard 등 다양한 옵티마이저가 생겨났다.
2. 역전파(back propagation)
최적의 가중치를 찾기 위해 최적화를 하는 알고리즘이 역전파이다. 즉 모델을 학습시키는 순전파의 반대말로 실제 값과 예측값의 오차를 전파하여 가중치를 업데이트하고 모델을 최적화한다.
3. epoch, batch size, iteration
에포크는 모든 학습과정을 학습한 횟수를 의미한다. 즉 1 epoch는 순전파와 역전파를 통해 신경망을 한번 통과했다는 의미이다.
지나치게 epoch를 높이면 한 가지의 학습데이터에 과적합될 가능성이 있다.
배치 사이즈는 연산 한 번에 들어가는 데이터의 크기이다.
배치사이즈가 크면 학습속도가 느려지고 배치 사이즈가 작으면 가중치 업데이트가 너무 자주 발생하여 불안정해진다.
이터레이션은 전체 모델을 한번 학습시키는데 필요한 배치의 숫자이다.
4. Gradient descent(GD)
경사하강법은 임의의 가중치를 설정하여 기울기를 계산하고 반대방향으로 이동시켜 극값 지점을 찾아간다.
5. Stochastic gradient decent(SGD)
확률적 경사하강법은 gd가 한번 전진할 때마다 모든 데이터셋을 넣어야 하는 단점을 극복하기 위해서 full-batch가 아닌 mini-batch로 데이터를 잘게 잘라서 빠르게 전진시키는 방법이다.
6. Momemtum
모멘텀은 가속도의 개념을 포함한 방법이다. 이전까지의 속도를 계산하여 가중치가 증가하는 방향으로 더 많이 학습률이 증가하는 방법이다.
6. AdaGrad
아다가르드는 크게 변동이 있었던 가중치에 대해서는 학습률을 감소시키고 변동이 없었던 가중치는 학습률을 증가시킨다.
7. RMSProp
아다가르드는 과거의 기울기를 제곱하여 더할수록 학습률의 갱신 강도가 약해지며 무한히 갱신하면 갱신 강도가 0에 수렴한다. 이것을 해결하기 위한 방법이 rmsprop이다. 가중치 기울기를 단순히 누적하지 않고 최신 기울기들이 더 반영되도록 하여 가중치가 크게 변동하여도 기울기가 완만하면 학습률을 높인다.
8. Adam
momentum과 rmsprop을 합친 방법으로 진행 속도에 관성을 주고 학습률 또한 최신 기울기를 반영하는 방법이다.
이 외에도 NAG, Nadam, AdaDelta 등의 옵티마이저가 있으며 상황에 맞는 알고리즘을 선택하는 것이 중요하다.
'딥러닝' 카테고리의 다른 글
딥러닝- CNN (0) 2023.07.07 딥러닝- 손실함수 (0) 2023.05.23 딥러닝 - 활성화함수 (0) 2023.05.23 딥러닝 (0) 2023.05.21