- 모델 복잡도가 큰 딥러닝에선 overfitting문제가 발생하기 쉬움
- 이를 해결하기 위한 많은 방법 !
- Regularization!! (오버피팅 막기 위해서)
: parmeter norm penality
: Data augmentation (데이터를 늘려줌)
: Multitask learning
: Early stopping (학습조기종료)
: Dropout (특정 노드 빼는 방식)
- 학습하고자 하는 파라미터 값에 제약을 주어 모델의 복잡도를 낮추는 것
- 처음부터 적당한 복잡도의 모델을 선택하는 대신, 복잡도가 높은 모델의 파라미터에 적절한 제약을 주는 방식으로 최적합 모형 탐색
Parameter Norm Penalty
- 일반적으로 node간 연결 가중치에만 penaty부여. bias는 penalty에 포함시키지 X
- bias를 penalty 에 포함할 경우 언더피팅!
- 일반적으로 모든 층에 같은 종류의 penalty 적용
- L2-norm(릿지) -> 가중치 절댓값 줄어듦
- L1-norm(라쏘) - 파라미터 희소성 => 일부 weight만 활용
- Lq 일때, q<=1 : parmeter 선택!
Data augmentation
- generalization performance 개선 : 적절한 데이터 추가
- fake 데이터, 랜덤 노이즈 추가
Multitask Learning
- 히나의 모델로 같은 입력을 사용하는 여러 task들을 동시에 수행!
- 하나의 task에만 적합되지 않고 여러 task에 고르게 작동하려고 학습
Early Stopping
- 신경망의 경우, training 데이터의 epoch(전체데이터학습)이 길어질수록 training 데이터 과적합
- 이를 막기위해 별도의 validation set 사용. error가 감소하지 않을 경우 학습 중단!
- validation loss가 개선되지 않으면, 모수 기억해서 호출 사용
- 가장 간단하고 기본적! 다른 결합도 손쉬움
- norm penalty와 비슷한 효과
앙상블
: bagging의 경우 데이터셋에 어떤 데이터드링 포함되느냐에 따라 모형학습의 결과 달라짐
Drop out : 가장 최우선으로 고려되는 regularization
- 가장성공적인 딥러닝 regularization
- 여러 네트워크들의 앙상블을 현실적으로 구현!
- output 노드가 아닌 다른 노드를 제거하여 만들수 있는 subnetwork들로 구성된 ensemblemodel이 되도록!
- node를 일정확률로 선택하지 않고 weight학습하는 방식으로 수행
- test phase: 각 weight에는 p만큼 보정됨
- 초 매개변수 : 학습과정에서 변경되지 않고, 모델의 학습을 위해 결정해야 하는 것
- 최종 학습 완료된 모델의 성능 결정
ex) 신경망의 넓이 깊이, step size, regularization hyperparameter
- 이 선택을 위해 validation set이용!
- logestic regression이랑 SVM은 hyperparameter가 적은 모델, 신경망은 개많음
- 데이터의 수가 적을 땐 k-fold cross validation방법 적용
k-fold cross validation
- k개의 겹치지 않는 부분집합
- k가 n개의 경우 jack-knifeCV
딥러닝의 하이퍼파라미터
- 은닉층의 수, node의수 (늘어날 수록 복잡도 증가)
- step size(너무 작으면 최적해 도출 X)
- regularization coefficient : 정규화를 위한 계수 적당히 선택!
- dropout rate
Hyperparameter Tuning
- 자동화 규칙
- Grid search
: hyperparameter마다 적절한 값을 선택 한 후, 직교좌표계에서 validation loss탐색
: 각 trail 독립적
- Random search
: 임의의 점
: 때로는 grid-search보다 효과적 =? 수많은 파라미터를 사용
: 얘도 각 trail독립적
머신러닝/딥러닝
- 문제가 복잡하지 않다면 로지스틱 회귀 등 단순
- 물체,음성,기계번역 의 경우 적당한 딥러닝 모델 사용
딥러닝 모델
- 기본적인 MLP, CNN, LSTM등의 모델
- regularization은 첨부터
- early stopping은 모든경우, dropout도 많은 경우
- 전이학습도 사용!
모수의 초기값 = 대칭성 파괴 필요
최적화 방법론
- full Batch (전체데이터)
: 안정
- Stochastic gradient(데이터 1개)
: 변동성 큼, but 메모리 줄임
- Mini-batch gradient (일부분씩 끊어서)
- Momentum methods (이전의~)
: 예전꺼 고려해서!
- 데이터 추가수집이 더 조흔 모델
- 언제 추가수집이 효과적?
1) traindata 학습결과 괜찬흔지l!
: 좋지 못한 경우는 hyperparameter 조절해서 모델의 복잡도 증가시켜야! 그래도 안되면
2) data품질
: noise 제거, 더 만흔 feature
3) train 괜찮으면 test에서! => 별로면 데이터 추가수집을 통해 overfitting 막을 수 O