단순성을 위한 정규화: L2 정규화

다음은 학습 반복 횟수에 대해 학습 세트와 검증 세트의 손실을 보여주는 일반화 곡선입니다.

학습 세트의 손실 함수는 점진적으로 감소합니다. 반대로 검증 세트에 대한 손실 함수는 감소했다가 다시 상승하기 시작합니다.

그림 1. 학습 세트 및 검증 세트에 대한 손실

그림 1은 학습 손실은 점차 감소하지만 검증 손실은 결국 증가하는 모델을 보여줍니다. 즉, 이 일반화 곡선은 모델이 학습 세트의 데이터에 대해 과적합하다는 것을 보여줍니다. 앞서 언급했던 오컴 개념을 살펴보면 복잡한 모델에 페널티를 적용하는 정규화라는 원칙을 사용하여 과적합을 방지할 수 있을 것입니다.

즉, 단순히 손실을 최소화하는 것을 목표로 삼는 것이 아니라 (경험적 위험 최소화)

$$\text{minimize(Loss(Data|Model))}$$

이제 구조적 위험 최소화를 통해 다음과 같이 손실과 복잡도를 함께 최소화해 보겠습니다.

$$\text{minimize(Loss(Data|Model) + complexity(Model))}$$

이제 학습 최적화 알고리즘은 모델이 데이터에 얼마나 적합한지 측정하는 손실 항과 모델 복잡도를 측정하는 정규화 항의 함수가 됩니다.

머신러닝 단기집중과정에서는 일반적인 (그리고 어느 정도 서로 관련이 있는) 두 가지 방법으로 모델 복잡도를 다루게 됩니다.

  • 모델에 포함된 모든 특성의 가중치에 대한 함수로서의 모델 복잡도
  • 0이 아닌 가중치를 사용하는 특성의 총 개수에 대한 함수로서의 모델 복잡도 (후속 모듈에서 이 접근 방식을 다룹니다.)

모델 복잡도가 가중치의 함수인 경우, 절댓값이 높은 특성 가중치는 절댓값이 낮은 특성 가중치보다 더 복잡합니다.

모든 특성 가중치를 제곱한 값의 합으로 정규화 항을 정의하는 L2 정규화 수식을 사용하여 복잡도를 수치화할 수 있습니다.

$$L_2\text{ regularization term} = ||\boldsymbol w||_2^2 = {w_1^2 + w_2^2 + ... + w_n^2}$$

이 공식에서 0에 가까운 가중치는 모델 복잡도에 거의 영향을 미치지 않지만 이상점 가중치는 큰 영향을 미칠 수 있습니다.

예를 들어 다음과 같은 가중치를 갖는 선형 모델이 있습니다.

$$\{w_1 = 0.2, w_2 = 0.5, w_3 = 5, w_4 = 1, w_5 = 0.25, w_6 = 0.75\}$$

L2 정규화 항이 26.915입니다.

$$w_1^2 + w_2^2 + \boldsymbol{w_3^2} + w_4^2 + w_5^2 + w_6^2$$ $$= 0.2^2 + 0.5^2 + \boldsymbol{5^2} + 1^2 + 0.25^2 + 0.75^2$$ $$= 0.04 + 0.25 + \boldsymbol{25} + 1 + 0.0625 + 0.5625$$ $$= 26.915$$

그러나 제곱된 값이 25인 \(w_3\) (위에서 굵게 표시됨)는 거의 모든 복잡성에 기여합니다. 다른 5개의 모든 가중치를 제곱한 값을 합하면 L2 정규화 항에 1.915만 더해집니다.