dev-logs
6. 학습 관련 기술들 본문
매개변수 갱신
최적화: 손실 함수의 값을 가능한 낮추는 최적의 매개변수를 찾는 문제
확률적 경사 하강법 SGD
탐색 경로가 비효율적임. 그때그때 작은 범위의 기울기에 따라 경로가 결정되어서?
모멘텀 Momentum
속도 개념을 적용.
AdaGrad
학습에서 중요한 요소인 학습률을 적응적으로 조정하면서 학습 진행.
과거의 기울기 제곱을 계속 더함.
매개변수의 원소 중 크게 갱신된 원소는 학습률이 낮아짐.
가중치의 초기값
가중치 값을 작게 하여 오버피팅 억제.
0.01 * np.random.randn(10,100)
if 초기값을 0으로 하면? 순전파 때 모두 같은 값이 전파된다. 그러면 역전파때도 가중치가 똑같이 갱신됨 -> 의미 없는 행동 -> 초기값은 무작위로 설정하는게 좋음 (활성화값의 분포가 고르게 하는 것)
Xavier 초기값
많은 딥러닝 프레임워크에서 사용한다.
앞 계층의 노드가 n개라면 표준편차가 1/sqrt(n) 인 분포를 사용한다는 내용.
앞 층에 노드가 많아질수록 분포가 좁아짐.
배치 정규화
- 각 층의 활성화값이 적당히 분포되도록 조정 (평균이 0, 분산이 1이 되도록)
- 학습 속도 개선
- 초기값에 크게 의존하지 않음
- 오버피팅 억제
가중치 감소 Weight decay
- 오버피팅을 억제하기 위한 방법
- 큰 가중치에 대해 페널티를 부과하는 방법
드롭아웃 Dropout
- 뉴런을 임의로 삭제하면서 학습하는 기법.
- 학습시 은닉층의 뉴런을 무작위로 골라 삭제.
- 학습시 삭제할 뉴런을 선택하고 시험 때는 모든 뉴런에 신호 전달. 시험 때는 각 뉴런의 출력 * 삭제한 비율을 곱하여 출력함.
하이퍼파라미터 값 탐색
- 하이퍼파라미터 검증용 데이터가 따로 필요함. (validation data)
- 훈련 데이터의 20% (훈련 데이터가 따로 없다면)
- 최적값이 존재하는 범위를 조금씩 줄여감. 그리고 범위 내에서 무작위로 샘플링 후 정확도 평가
출처 : 밑바닥부터 시작하는 딥러닝(한빛미디어)
'공부 > Deep Learning' 카테고리의 다른 글
8. 딥러닝 (0) | 2019.06.22 |
---|---|
7. CNN (0) | 2019.06.19 |
5. 오차역전파법 (0) | 2019.06.17 |
3. 신경망 학습 (0) | 2019.05.29 |
2. 손글씨 숫자 인식_1 (0) | 2019.05.28 |