https://www.youtube.com/watch?v=IfUV3fmWJeY&list=PLiPvV5TNogxIS4bHQVW4pMkj4CHA8COdX&index=7
linear regression에서 모델을 학습할 때, 아래 그림과 같이 다양한 예측 함수()가 나올 수 있다.
- 왼쪽 그래프는 "under-fitting"을 보여준다.
- 이 경우 학습 데이터에 대한 예측이 제대로 되지 않는 것을 확인할 수 있다.
- 이를 "high bias"라고 부르기도 한다.
- 또한, 함수식을 보면, 매우 단순한 1차 함수임을 알 수 있다.
- 중간 그래프는 학습이 잘된 경우를 보여준다.
- 오른쪽 그래프는 "over-fitting"을 보여준다.
- 이 경우 학습 데이터에 대한 예측은 정확할 수 있지만, 새로운 데이터에 대해서는 제대로 예측하지 못한다.
- 이를 "high variance"라고 부르기도 한다.
- 다양한 feature들이 존재하는 고차원 함수임을 알 수 있다.
- 이처럼 overfitting은 feature가 너무 많은 경우에 발생하며, 학습 데이터에 대해서는 잘 예측하지만, 새로운 데이터에 대해서는 예측을 잘하지 못한다.
linear regression뿐만 아니라 logistic regression에서도 똑같이 underfitting, overfitting 등의 문제가 발생할 수 있다.
만약 feature들이 너무 많을 경우, 하나의 feature에 대해서만 학습하는 경우가 있다. 물론 잘될 수도 있지만, 학습 데이터가 너무 적거나 하는 경우에 마찬가지로 overfitting 문제가 발생할 수 있다.
그렇다면 overfitting 문제를 어떻게 해결할 수 있을까. 아래 그림을 보자.
overfitting을 다룰 수 있는 방법은 크게 두 방법이 있다.
- feature 수 줄이기
- 나중에 배울 model selection alg.을 통해 어떤 feature만 유지할지 결정한다.
- Regularization
- 모든 feature들을 갖고 있되, 각 feature들의 parameter 값을 조정한다.
- feature들이 많을 경우에도 잘 동작하며, feature들이 예측에 영향을 조금 끼치게 만든다.
먼저 Regularization이 어떤 방식으로 적용되는지 알아보자. 아래 그림은 직관적으로 이 방식을 설명하고 있다.
- 오른쪽 그래프는 에 대한 그래프이다. feature는 하나지만, 차원이 매우 높은 함수이다. 따라서, overfitting 문제가 있다.
- 그렇다면 이를 좌측 그래프처럼 만들려면 어떻게 해야할까? 고차원에 해당하는 파라미터 와 의 값이 0에 가깝게 되도록 만들어야 한다.
- 그리고 이 방법은 그림의 아래 수식과 같이 적용할 수 있다.
- 이는 1000과 같이 매우 큰 수를 parameter에 부여하여 해당 파라미터의 값이 작아지도록 만드는 방법이다.
- 이와 같은 방식을 적용하면, 의 값이 거의 0에 가까워질 것이고, 와 같이 함수가 나오도록 만들 수 있다.
위에서는 , 에 대해서만 적용했지만, 아래와 같이 feature가 매우 많은 경우에도 똑같이 적용하면 된다.
- cost function을 와 같이 정의한다.
- 여기서 는 regularization parameter를 의미한다.
- 그리고 중요한 점이 있는데, 에 대해서는 이 과정을 제외해야 한다는 것이다.
- 강의에서는 으로 표기를 하였는데, 여기서 은 feature들의 개수를 의미한다.
따라서, 새롭게 정의한 cost function 를 가지고 모델을 학습하면, 기존의 overfitting 문제를 해결할 수 있을 것이다.
그리고 우리는 regularization parameter 값을 잘 선택해야 한다.
- 만약 가 너무 크다면 각 의 값들에 대해서 무조건 큰 값이 나오게 될 것이고, 이를 최소화 하기 위해 모든 feature parameter 들의 값은 0으로 수렴할 것이다.
- 이렇게 되면 예측 함수는 과 같이 나올 수밖에 없다.
- 그렇다면 regularization parameter 값을 어떻게 잘 선택할 수 있을까?
이전의 강의들에서 최적의 를 찾기 위한 gradient descent 방식을 배웠다. 그렇다면 regularization parameter 가 적용된 gradient descent 방식은 어떨까? 아래 그림을 보자.
- 우선 regularization은 에 대해서는 연산을 하지 않는다. 따라서 는 따로 제외한다.
- 다음으로 ()에 대해서는 다음과 같은 gradient descent 식을 적용한다.
- cost function :
- cost function에 편미분을 적용하면, 가 된다.
- 그리고 gradient descent를 적용하면,
를 구할 수 있다.- 여기서 은 무조건 보다 작은 것을 알 수 있다. 이에 따라 의 값은 점점 줄어든다는 것을 확인할 수 있다.
그리고 최적의 를 찾는 방법은 gradient descent 방식뿐만 아니라 normal equation 방식도 존재한다.
- 그리고 이를 수식으로 작성하면, 와 같다.
- 는 만 0이고, 나머지 은 1인 대각행렬로 크기를 갖는다.
그렇다면 logistic regression에 regularization은 어떻게 적용할 수 있을까.
그저 cost function이 약간 다르다는 차이만 있을 뿐, linear regression과 거의 동일하다.
마찬가지로 cost function 의 에 대한 편미분값으로 gradient descent를 적용하면 된다.