인공신경망2
AdaGrad
-학습률을 정하는 효과적기술 : 학습률 감소 (learning rate decay)가 있다. 이는 학습을 진행하며 학습률을 점차 줄여가는 방법(ex.매개변수 '전체'의 학습률 값을 일괄적으로 낮추는 것, 이를 더욱 발전시킨게 : 'AdaGrad' = '각각'의 매개변수에 '맞춤형 값' 만들어줌 )
Adam
- 모멘텀 (공이 그릇바닥 구르는 듯한 움직임) + AdaGrad (매개변수의 원소마다 적응적으로 갱신정도 조정) = Adam! 두기법 융합한것
- 하이퍼파라미터의 '편향보정'이 진행됨
- Adam 갱신과정도 모멘텀과 비슷한패턴으로 움직임 -> 이는 학습의 '갱신강도'를 '적응적으로 조정'해서 얻는 혜택
- 초반~중반 학습률을은 낮은편 - 진득하게 학습시켜야됨 (SGD는 중간이후 감이 잡힘)
1412.6980v8.pdf (arxiv.org) 관련논문
옵티마이저 비교 (AdamW , RAdam , AdamP) 및 간단 사용법 (tistory.com) 관련블로그
Dropout (드랍아웃)
- 복잡한 신경망의 경우 가중치 감소(weight decay)만으로는
해결이 어려워, 드롭아웃 적용
- 서로다른 개별모델의 학습을 통해 나온 출력의 평균을 통해
추론하는 앙상블(ensemble)기법과 유사 (앙상블 : 대회때 많이 사용. 서비스에는 사용하지 않음
- 학습시 : 은닉층의 뉴런을 random하게 삭제하여 학습 진행
- 실제 테스트시 : 모든뉴런이 활성화되어 정답찾음(속도느림)
가중치의 초기값
- 초기값을 0으로 하면 : 학습이 올바로 이뤄지지 않는다. 오차역전파법에서 모든 가중치의 값이 똑같이 갱신됨(가중치를 균일한값으로 설정해도 안됨)
- (가중치 감소 = 오버피팅을 억제해 범용성능 높이는 테크닉, 즉 가중치 매개변수의 값이 작아지도록학습하는 방법으로, 오버피팅이 안일어나게 하는 것)
--> 잘 모르겠다면, 디폴트 가중치를 먼저 써보고, 수정해보기
배치정규화 (Batch Normalization)
- 각 층이 활성화를 적당히 퍼뜨리도록 '강제'해보자는 아이디어
- 주목받는 이유 : 1. 학습을 빨리 진행할수있다 2. 초깃값에 크게 의존하지 않는다 3. 오버피팅을 억제한다
- 배치정규화 알고리즘 : 데이터분포를 정규화하는 '배치정규화 계층'을 신경망에 삽입
- 배치정규화(Batch Norm)는 활성화함수(ReLu)앞에 써줌
- 배치정규화 사용할경우 : 학습이 빨라지며, 가중치초깃값에 크게 의존하지 않아도 된다.
(다음내용)
[컴퓨터 비전] All About GAN (Generative Adversarial Nets) :: For a better world (tistory.com)