※ 김성훈 교수님의 [모두를 위한 딥러닝] 강의 정리
- 참고자료 : Andrew Ng's ML class
1) https://class.coursera.org/ml-003/lecture
2) http://holehouse.org/mlclass/ (note)
1. Overfitting을 방지하는 3가지 방법
(1) training data 많이 모으기
- data가 많은 경우 training set, validation set, test set으로 나누어 진행 가능
- 영역별 data 크기가 커지므로 overfitting 확률이 낮아짐
(2) feature 개수 줄이기
- 서로 비중이 다른 feature가 섞여서 weight 경합시 좋지 않은 결과가 나올 수 있음
- deep learning은 sigmoid 대신 ReLU 함수를 이용하거나, dropout 등을 통해 해결 가능
(3) regularization
- weight이 너무 큰 값을 갖지 않도록 제한
2. Dropout
- 전체 노드를 weight 계산에 참여시키지 않고, 일부만 참여시키는 아이디어
- TensorFlow 구현 : relu 함수 호출 후 다음 layer에 전달하기 전 dropout 함수를 호출. 그 비율은 0~1 사이로 랜덤하게.
3. Ensemble (앙상블) : 최소 2%에서 4~5% 상당의 성능 향상을 보임
1) 데이터를 여러개의 training set으로 나누어 동시에 학습을 진행
2) 모든 학습이 끝나면 결과를 통합
'Deep Learning' 카테고리의 다른 글
[머신러닝/딥러닝] Convolutional Neural Network(CNN) (0) | 2020.01.03 |
---|---|
[머신러닝/딥러닝] 딥러닝으로 MNIST 98%이상 (0) | 2020.01.03 |
[머신러닝/딥러닝] Weight 초기화 잘해보자 (0) | 2020.01.02 |
[머신러닝/딥러닝] Sigmoid << ReLU (0) | 2019.12.30 |
[머신러닝/딥러닝] Tensorboard (Neural Net for XOR) (0) | 2019.12.23 |