목차
- Bias and Variance
1. Bias and Variance
Training data vs Test data
- data는 학습 데이터와 평가 데이터로 나눌 수 있다.
- 학습 데이터: 모델 학습에 사용됨
- 평가 데이터: 오직 모델 평가를 위한 데이터 (절대로 모델 학습에 사용되면 안됨!!)
Test data
? 학습 데이터와 평가 데이터는 같은 분포를 가지는가?
? 평가 데이터는 어느 정도의 크기를 가지는가? ⇒ 10%~20% 정도
Bias and Variance Trade-off(1)
- 모델이 비선형 모델일수록 복잡해진다. (복잡도 증가)
- 모델이 복잡할수록 완벽하게 학습함
복잡할수록 좋다?
- overfitting: 데이터가 적은 상황 (과도하게 학습)
- underfitting: 데이터가 많은 상황 (심한 단순화)
Bias and Variance Trade-off(2)
MSE를 살펴볼 때, 결국 Error는 Bias와 Variance로 이루어져 있다.
MSE(θ^)=Eθ((θ^−θ)2)=E(θ^−E(θ^)+E(θ^)−θ)2)=E((θ^−E(θ^))2+2(θ^−E(θ^))(E(θ^)−θ)+(E(θ^)−θ))2)=E((θ^−E(θ^))2)+(E(θ^)−θ)2=Varθ(θ^)+Biasθ(θ^,θ)2
여기서 Bias와 Variance를 잘 살펴봐야한다.
MSE(θ^)=Varθ(θ^)+Biasθ(θ^,θ)2
- Variance: 예측값들이 한 곳에 모여 있지 못하고 분산되어 있으면 Variance가 크다.
- Bias: 예측값의 평균값이 θ(실제 정답) 값에 가까우면 Bias가 작다.
Bias는 underfitting에 관련되어 있다!! (Bias가 너무 크면 underfitting의 가능성이 높아진다.)
Variance는 overfitting에 관련되어 있다!! (Variance가 크면 overfitting의 가능성이 높아짐)
그렇기에 둘 중 무조건 하나는 포기해야하는 양상을 가지고 있다.
(모델 복잡도 관련된 그래프 사진 첨부)
해결방안
- 검증 데이터셋
- K-fold cross validation
- 정규화 손실함수
1. 검증 데이터셋
기존 데이터 셋의 분리: train set + test set
검증 데이터 셋을 포함한 데이터 셋의 분리: train set + valid set + test set
valid set 이란?
- 학습에 사용되지 않는 데이터
- 테스트 시에도 사용되지 않는 데이터
- 결국 학습 중간에 평가의 용도, 가장 성능이 좋은 파라미터를 저장해놓는다.
(검증 데이터셋 사용에 대한 사진 첨부)
LOOCV(Leave out one cross validation)
- 랜덤으로 생성된 검증 데이터셋은 편향된 결과를 불러옴
- 간단하게 모든 데이터셋 샘플 한개마다 검증을 진행하는 방식
- 학습데이터가 n개라고 가정할시, 총 n번의 fitting을 진행하게 된다.
(LOOCV 관련 사진 첨부)
2. K-fold cross validation
앞선 LOOCV의 방식은 검증데이터가 1개이므로 학습 횟수가 매우 증가한다. 그렇기에 검증데이터 뭉텅이로 묶어서 검증을 진행하는 방식이다.
- 총 K개의 덩어리로 나누기 때문에 한 덩어리에는 n/K만큼의 크기를 가지고 있다.
- 총 K번의 fitting을 진행하면 된다.
(K-fold cross validation 사진 첨부)
K가 커지게 되면
- 학습데이터수 ↑
- Bias 에러값 ↓, Variance 에러값 ↑
- 계산 비용 ↑
3. 정규화 손실함수
모델이 점점 복잡해지면 모델의 파라미터가 많아진다.
결국 overfitting이 일어날 확률이 높아지기 때문에,
중요한 파라미터만 학습시켜서 overfitting을 막을 수 있는 방법
(필요없는 파라미터를 0으로 만들어버림)
정규화 종류
- Ridge regression
- Lasso regression
Ridge regression
L=Σi=1n(yi−(β0+Σj=1Dβjxij))2+ λΣj=1Dβj2
- 정규화 식이 제곱의 합으로 표현됨
- λ는 정규화의 영향을 조절하는 하이퍼파라미터
- MSE 손실을 줄이지 못하면 페널티
Lasso regression
L=Σi=1n(yi−(β0+Σj=1Dβjxij))2 + λΣj=1D∣βj∣
- 정규화 식을 절대값의 합으로 표현함
- λ는 마찬가지로 정규화의 영향을 조절하는 하이퍼파라미터
결국
1. λ가 커지면, 모델의 파라미터가 많이 0으로 변함 → 모델 복잡도 ↓
2. underfitting이 일어나는 시나리오 → Bias error ↑, Variance error ↓
3. parameter의 희소성: Ridge 정규화 < Lasso 정규화
정규화 란, 모델의 복잡도를 높여 overfitting을 진행한 상태에서, 정규화 손실함수를 적용하여 일부 파라미터를 0으로 만들어 모델의 복잡도를 낮춰 overfitting을 방지하는 방법이다.