Imbalanced Data를 preprocessing 하기 위해서 Class weights 방법을 사용하지만 이러한 결과로 Back propagation에 영향을 많이 주기 때문에 optimizer를 어떠한 것을 고르는지가 학습의 결과에 큰 영향을 미친다. SGD와 같이 기울기의 크기를 바로 계산하여 update하는 방식은 사용할 수 없기 떄문에, Scaling Change에 상대적으로 영향을 덜 받는 Adam과 같은 optimizer를 사용해야한다.
Optimization을 하기 위한 고려사항은 크게 3가지가 존재한다.
1. Local Minima
2. Plateau
3 Zigxag
Logcal Minima 문제는 에러를 최소화시키는 최적의 파라미터를 찾는 문제에 있어서 파라미터의 공간에 수많은 hole들이 존재하여 local minima에 빠질 경우 global minimum을 찾기 힘들게 되는 문제를 일컫는다.
Adam(Adaptive Moment Estimation)
- Adam은 Adagrad, Adadelta, Rmsprop처럼 각 파라미터마다 다른 크기의 업데이트를 적용하는 방법이다.
특히 Adadelta에서 사용한 decaying average of squared gradients뿐 아니라, decaying average of gradients를 사용한다.
RMSProp과 Momentum을 조합한 방식으로 학습률과 방향 2가지 모두 고려한 방식이다.
< adam의 장점 >
- 간단한 구현, 효율적인 연산, 메모리 요구사항이 거의 없음.
-gradient 의 diagonal rescaling 에 독립적, 파라미터마다 학습률을 달리 조정 가능
- gradient에 noisy가 있거나 sparse한 문제에도 적합
- adam의 hyper-parameter는 직관적이며 tuning이 거의 필요 없다.
ADAM은 크게 moment를 계산하는 부분과, moment를 bias로 조정하는 부분으로 구성되어 있다.
moment는 Momentum이 적용된 first moment와 AdaGrad, RMSProp 이 적용된 second moment가 있음.
Adam의 pseudo-코드 // 출처 : 원문
우주 최강보스 옵티마이저 : )
https://wjddyd66.github.io/dl/NeuralNetwork-(3)-Optimazation2/
NeuralNetwork (3) Optimazation2
Optimazation 고려사항Optimazation을 하기 위한 고려사항은 크게 3가지가 있다. Local Minima Plateau ZigzagLocal MinimaLocal minima 문제는 에러를 최소화시키는 최적의 파라미터를 찾는 문제에 있어서 아래 그림
wjddyd66.github.io
'Deep learning' 카테고리의 다른 글
Keras Tuner 사용방법(튜토리얼) (0) | 2021.08.24 |
---|---|
Keras Tuner 케라스 튜너 설치 (0) | 2021.08.23 |
Class imbalance (class weight, sample weight) (0) | 2021.08.18 |
SMOTE for imbalanced image dataset (0) | 2021.08.13 |
GAN(Generative Adversarial Network) (0) | 2021.08.06 |