juuuding

[Supervised Machine Learning: Regression and Classification] The problem of overfitting (2) 본문

인공지능/코세라 머신러닝 특화과정

[Supervised Machine Learning: Regression and Classification] The problem of overfitting (2)

jiuuu 2023. 11. 7. 14:14

 Cost Function with Regularization

 

 ovefitting 문제가 발생했을 때 이를 해결하는 방법 중 하나는 정규화를 이용하는 것이다. 정규화 과정은 간단하게 parameter에 penalty를 부여하여 각 feature에 대한 영향을 줄이는 것이라고 할 수 있다. 예를 들어 많은 feature로 model을 생성해 다음과 같은 overfitting이 발생했다고 가정하면, 여기서 feature에 대한 영향을 줄이는 방법이 regularization이다. 영향력을 줄이기 위해서는 해당 feature에 대한 parameter w 값을 작게 해야한다. 이를 위해 w가 클수록 cost function 값을 커지게 하므로써 각 feature에 대한 penalty를 부여하여 w가 적당한 크기의 값을 가질 수 있게 한다. 아래의 식에서 cost function 결과를 줄이기 위해서는 w3, w4의 값을 아주 작은 값으로 설정해야한다. 일종의 penalty를 parameter에 곱해주는 것이다.

 

 

 하지만 어떤 feature에 penalty를 적용할지 선택하는 것은 쉽지 않다. 그렇기 때문에 일반적으로는 모든 feature에 penalty를 부여한다. 아래는 모든 feature에 penalty lambda를 부여하고 2m을 나누어 주며 스케일링을 해준 식이다. 여기서 lambda는 regularization parameter라고 한다. 참고로 parameter b는 정규화를 해도 되고 안해도 된다. 정리하자면 lambda는 parameter의 크기를 줄이는 역할을 하는 것이고, lambda 값이 커질수록 w의 값은 줄어들 것이다. 

 

regularization

 

 다음으로는 위의 식을 mean squared error / regularization term으로 나누어서 보겠다.

 아래 식은 mean squared error를 뜻하며 이 값이 작을수록 훈련 데이터에 모델이 잘 맞다는 의미다.  

mean squared error
regularization term

 

 최종 목표는 cost function을 최소화 하는 것인데, w값을 줄일수록 mean squared error가 증가하고, regularization term 부분이 감소하는 일이 발생할 것이다. 그렇기 때문에 이 두가지 식 사이에 cost function을 최소화할 수 있는 lambda 값을 찾아 목표를 달성해야한다. 조금 더 이해를 돕기 위해 lambda 값을 굉장히 큰 값으로 설정하면 cost function을 최소화하기 위해 w는 0에 가까운 수로 설정이 되는데, 그렇게 되면 model이 f(x)=b가 된다. 이렇게 되면 overfit의 반대인 underfit이 발생하게 된다. 

 

really big lambda -> underfit

 

 

 

 Regularized Linear Regression

 

 위에서 살펴본 정규화가 적용된 linear regression의 cost function에서 gradient descent을 실행하는 방법에 대해 알아보자. 이전과 w, b에 경사하강을 적용하는 방법은 동일하며 w,b를 동시에 update 해주어야한다.

 

 

gradient descent

 

 하지만 cost function이 달라졌기 때문에 gradient descent에서 w에 관해서 cost function을 미분한 값이 다음과 같이 달라진다. 

 

linear regression

 

 

 

 

 Regularized Logistic Regression

 

 linear regression과 마찬가지로 regularized logistic regression에도 gradient descent를 적용할 수 있다. gradient descent를 적용하는 큰 틀에는 차이가 없지만, linear과 logistic은 서로 cost function과 model의 식이 다르기 때문에 서로 방법이 다르다. 

 

 

logistic regression

 

 

 간단히 말하자면 둘의 경사하강법은 거의 같지만, 경사하강에 입력되는 f_w,b 값이 다르다는 것이다.