training loss/error/cost
우리는 training을 할 때 손실 함수 J를 MSE$($Mean Squared Error$)$를 이용해서 $J(\theta) = \frac{1}{n}\sum_{i=1}^{n} (y^{(i)} - h_{\theta}(x_i))^2$로 정의한다. 우리는 gradient descent를 통해서 J를 줄여야 하나, 문제는 J가 줄어든다고 해서 항상 모델의 정확성이 높다는 것은 아니란 것이다. 그래서 우리는 training 말고 test를 할 때 모델의 정확성 평가를 위해 test에서도 독립적인 test 데이터셋 $D$를 이용해 손실 함수 $L$을 다음과 같이 정의한다.
- $L(\theta) = E_{(x, y) \sim D}[(y - h_{\theta}(x))^2]$
이제 $L$을 통해서 모델을 평가해야 한다. 만약 좋은 모델일려면, 다음 두 가지 조건을 만족해야 할 것이다.
- $J(\theta) \approx 0$
- $L(\theta) - J(\theta) \approx 0$
하지만, 우리는 머신러닝을 할 때 1번 조건과 2번 조건을 만족하지 않는 경우를 자주 보게 된다. 1번 조건을 만족하지 않는 경우를 'underfitting', 2번 조건을 만족하지 않는 경우를 'overfitting'이라고 한다. 즉 underfitting은 $J$ 값이 크다는 것이고, overfitting은 트레이닝 데이터셋에서는 손실 함수가 작게 나타나지만 테스트 데이터셋에서는 손실 함수가 큰 경우를 의미한다.
Test Error
위의 그림처럼, test error는 편향$($실제 데이터의 값과 추측 값의 차이$)$의 제곱과 분산$($학습 데이터에 민감한 정도$)$의 합이다. 만약 모델의 복잡도가 높아지면 편향은 감소하지만, 분산은 증가한다. 하지만 모델의 복잡도가 낮아지면 분산은 낮아지지만 편향은 높아진다. 즉 복잡도가 높아지면 분산이 증가하기에 overfitting이 일어나고, 복잡도가 낮아지면 편향이 증가하기에 underfitting이 발생한다. 우리는 두 상태가 모두 발생하지 않도록 적절한 모델 복잡도를 선택하는 것이 중요하다.
Example) $y^{(i)} = \mathbf{quadratic}(x^{(i)}) + \epsilon^{(i)}$인 모델이 있다고 가정하자.
1. Linear Model:
$\rightarrow$ underfitting이 발생한다. 왜냐고? 어떤 선형 모델도 quadratic하지 않기 때문이다. 편향이란 무한한 데이터에서 얻을 수 있는 가장 좋은 loss 값인데, 표현력이 부족하다는 것은 데이터에 의존하지 않는다는 것이다.
2. 5-th degreee polynomial(5차 다항식)
$\rightarrow$ training error은 0일지도 모른다. 하지만 overfitting이 발생한다. 왜일까? 첫 번째로는 작고 노이즈가 낀 데이터셋의 거짓된 패턴에 맞춰진다는 것이고, 두 번째로는 노이즈에 대해서 샘플에 민감하게 반응해서 데이터가 조금만 바뀌어도 모델이 많이 변하기 때문이다. 두 번째 부분이 바로 분산인데, 분산은 다른 데이터셋들에서 배운 모델의 민감도이다. 높은 민감도는 데이터의 부족 또는 너무 복잡한 모델에 의해서 발생한다. 이 민감도를 줄이기 위해 데이터의 개수를 늘리거나, 복잡도를 완화하는 방법이 있다.
- 데이터의 개수를 늘리면 왜 overfitting이 완화되는가? 이 모델에서는 간단하게 설명할 수 있다. 바로 2차 다항식은 5차 다항식의 특수한 경우$(a_5 = a_4 = a_3 = 0)$이기 때문이다.
- 초록색이 실제 $J$값, 주황색이 5차 다항식, 파란색이 1차 다항식$($Linear Model$)$이다.
Double Descent
위에서 보았듯이, 데이터에 비해서 모델이 복잡하다면, 즉 파라미터의 개수가 데이터의 개수보다 많다면 우리는 overfitting이라는 결과를 자주 본다. 하지만, 파라미터의 개수를 점점 늘리다 보면 어느 정도의 위치에서 error가 정상에 도달한 뒤, 급격하게 떨어지는 현상을 볼 수 있다. 파라미터가 데이터의 개수보다 많아지기 이전에 처음으로 descent하는 경우와 구별해서, 다음 현상을 바로 double descent라고 한다. 선형 모델에서 예를 들어보면, 만약 파라미터의 수가 데이터의 개수를 크게 넘는다면, 우리는 최소 노름해를 찾을 것이고, 그 해가 결론적으로 test error를 줄이기 때문이다.
'CS229: Machine Learning' 카테고리의 다른 글
Lecture 11: Unsupervised Learning (0) | 2025.04.16 |
---|---|
Lecture 10 - Feature/Model Selection (0) | 2025.03.11 |
Lecture 8 - Neural Network (0) | 2025.02.25 |
Lecture 7: Kernel Method (0) | 2025.02.19 |
Lecture 6: Naive Bayes, Laplace smoothing (0) | 2025.02.18 |