The problem of Overfitting
Overfitting: feature가 지나치게 많은 경우 가설은 J(θ)가 0에 가까워지도록 학습되지만 일반화하지는 못할 것이다.
train data는 잘 나타내지만 test data를 대응하지는 못할 것이다.
새로운 data, 다른 변인에 대해 대응하지 못한다면 overfitting이라고 본다.
Addressing overfitting
- Features 수를 줄인다.
- 유지할 features를 직접 선택한다.
- Model selection algorithm
- Regularization
- 모든 features를 유지하고 parameters θj 값의 크기를 줄인다.
- Features가 많고 각 features가 y를 예측할 때 조금씩 기여하는 경우 잘 작동한다.
Cost function
Intuition
min2m1∑i=1m(hθ(x(i))−y(i))2+1000θ32+1000θ42
θ3과 θ4는 0에 가깝게 수렴할 것이다.
Regularization
-
parameter θ0,θ1,...,θn이 작은 경우 보다 단순한 가설이 되며 과적합에 취약할 가능성이 작아진다.
-
J(θ)=2m1∑i=1m(hθ(x(i))−y(i))2+λ∑i=1mθj2
λ는 얼마나 규제할 것인지 정하는 regularization parameter이다.
-
λ 값은 문제에 따라 그 크기가 달라진다.
-
θ에 대한 정규화식 λ∑i=1mθj2은 앞의 cost function과 독립적이다.
-
정규화를 진행하면 accuracy는 저하될 수 있으나 test accuracy는 향상된다.
-
Linear regression, Logistic regression에서 regularization을 사용하면 모델의 복잡도가 조금씩 낮아지고 overfitting 문제를 해결할 수 있다.
Regulaized linear regression에서 λ가 매우 큰 경우
θ가 모두 0으로 수렴하여 y 절편(y)만 유의미해진다.
underfitting: 학습이 제대로 이루어지지 않음
Regularized linear regression
Gradient descent
θj:=θj(1−αmλ)−αm1∑i=1m(hθ(x(i))−y(i))xj(i)
θj가 조금씩 작아진다. - parameter가 작아진다.
이때 θ0은 복잡도에 영향을 주지 않으므로 정규화하지 않는다.
Regularized logistic regression
Cost function
- J(θ)=−m1∑i=1m[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]+2mλ∑j=1mθj2