월 - 딥러닝 기본 (용어 설명 / 뉴럴 네트워크 - MLP)
화 - 최적화 (Optimization) / 도메인 특강(NLP / CV) / 마스터 클래스 (데이터 시각화)
수 - CNN / github 특강 (버전 관리 > commit, push, pull ... )
목 - RNN / github 특강 (협업 관리 > 브랜치, merge)
금 - Generative Model (조퇴 - 아직 학습하지 못함)
Optimization:
========================
Sgd > gradient 이용
W_t+1 <- W_t - ηg_t << N에 따라서 제대로 작동하고 안하고 결정 >> N을 정하기 힘듬
========================
Momentum > SGD에서 ηg_t대신 momentum(관성)이 적용된 gradient값을 빼줌
a_(t+1) <- (βa_t + g_t) << 다음의 gradient에 영향을 미친다. 즉 앞전의 gradient를 한번 더 활용(β로 활용도 조정)
W_t+1 <- W_t - η(βa_t + g_t)
Nesterov Accelerate > Momentum 인데 Lookahead를 활용함
a_(t+1) <- βa_t + (Lookahead Gradient) << 모멘텀 만큼 이동을 한 후에 그 곳에서 gradient를 구해서 이를 a_t+1 계산하는데 활용한다.
이후엔 Momentum 과 동일 방식. gradient를 한칸 이동해서 구했기 때문에 좀 더 빠르게 최저점에 도달 할 수 있다.
========================
Adagrad > 야다그레이드 > 파라미터 자체에 가중치를 추가해준다. > 파라미터가 조금 변했으면 큼직 큼직하게 이동하고 파라미터가 많이 변했으면 조금조금 움직이면서 찾겠다는 느낌
W_t+1 <- W_t - ηg_t에서 η대신 (η/ (G_t+e)^1/2 )를 사용한다. G_t 는 gradient들의 합이다. 즉 G_t가 커지면 Sgd에서 η이 작아지는 효과가 나서 조금씩 이동하게된다. >> 조흔 생각이지만 학습이 뒤로 가면 갈 수록 느려진다. 근데 이게 학습이 많아지면 느려지는 정도가 아니고 η이 0으로 수렴하게되며 학습이 거의 멈춰 버리게된다
Adadelta > Adagrad에서의 문제점, G_t가 계속해서 커져 학습률이 떨어지는것을 막겠다.
G_t를 업데이트 할때 exponential moving average(이동평균) 전략을 사용 > 수 많은 파라미터들의 gradient를 저장하는 전략
RMSprop > Adagrad 변형한것
========================
Adam < 제일 좋다 << adagrad + momentum
========================================================================
Generative Model
'기타 > 리뷰 및 경험담 - 부스트캠프' 카테고리의 다른 글
[4주차]p-stage (0) | 2021.08.30 |
---|---|
[3주차 부캠]pytorch 필수과제 1 (0) | 2021.08.21 |