Underfitting
: training과 test errors 모두 높을 때
모델이 너무 간단 OR 충분히 training되지 않음
Overfitting
: training error는 낮으나 test error는 높을 때
training 시 noise도 feature로 잡아 학습되었기 때문
Bias & Variance
Two main components of prediction error.
Bias
: 모델이 너무 간단해서 생기는 에러
Variance
: 얼마나 다양하게 모델을 예측할 수 있는지에 따라 생기는 에러 -> Generalization을 잘 하지 못한다.
Bias와 variance는 tradeoff 관계
Model의 parameters가 0에 가까워질 수록 curve가 없다.
-> overfitting을 피할 수 있다.
Regularization
: W값이 커지는 것을 방지한다.
Regulariazation을 한다
-> W가 작아지도록 학습시킨다.
-> Local noise가 학습에 큰 영향을 끼치지 않는다.
-> Outliers의 영향을 적게 받도록 한다.
-> 즉, Generalization에 적합한 특성을 갖게 만든다.
L1(Lasso) regularization
L2(Ridge) regularization
Elastic net
L1, L2 Regularization 차이
L1 : 덜 중요한 feature의 coefficient는 뺀다.
-> 특정 weight들은 0에 수렴해서 중요한 coefficients만 남는다.
-> Features가 많을 경우 feature selection에 유리하다.
미분 불가능하다는 단점
L2: L1보다 outliers에 둔감하다.
[그림 1]과 같이 w에 치우쳐 있다면, w의 영향을 크게 받는다.
Normalization or Standardization을 겨쳐서 [그림 2]로 변환. W와 b가 고르게 반영되도록.
Covariate shift
Internal covariate shift
-> 이를 해결하기 위해 Whitening
을 도입하였으나 문제 존재.
Whitening
Whitening
의 문제를 해결하기 위해 도입Internal covariate shift
problemFor every mini-batch step
Step 1
각 layer에서 mini batch가 들어오면, 이를 N(0, 1)로 normalization한다.
Step 2
감마 곱하고, 베타 더한다. 이 감마와 베타를 training하면서 learning한다.
where 감마 and 베타 are parameters to be learned.
Training이 끝나면, 감마와 베타의 값을 고정시킨다.
왜? training 때는 가능. 근데 testing 시에는 적용하지 않기 때문에.
Testing 할 때는 고정된 평균과 분산을 이용해서 정규화한다.
Training 시 만들어두었던 sample mean과 sample varaiance를 통해 얻은 Moving Average을 사용한다.
The BN layer는 activation function 전에 위치한다.
References