정규화란 모델의 복잡도에 페널티를 적용하여 과적합을 줄이는 것을 의미합니다.
단순성을 위한 정규화
일반화 곡선
모델 복잡도에 페널티 부과
- 가능하면 모델 복잡성을 피하는 것이 좋습니다.
- 학습 단계에서 수행하는 최적화에 이 아이디어를 적용할 수 있습니다.
- 경험적 위험 최소화:
- 학습 오류를 줄이는 것이 목표
$$ \text{minimize: } Loss(Data\;|\;Model) $$
모델 복잡도에 페널티 부과
- 가능하면 모델 복잡성을 피하는 것이 좋습니다.
- 학습 단계에서 수행하는 최적화에 이 아이디어를 적용할 수 있습니다.
- 구조적 위험 최소화:
- 학습 오류를 줄이는 것이 목표
- 복잡도와 균형을 맞추는 동시에
$$ \text{minimize: } Loss(Data\;|\;Model) + complexity(Model) $$
정규화
- 복잡도(모델)를 정의하는 방법
정규화
- 복잡도(모델)를 정의하는 방법
- 더 작은 가중치 선호
정규화
- 복잡도(모델)를 정의하는 방법
- 더 작은 가중치 선호
- 여기에서 벗어나면 비용이 발생합니다.
- L2 정규화 (일명 능선)를 통해 이 아이디어를 실현할 수 있음
- 복잡성(모델) = 가중치의 제곱의 합
- 매우 큰 가중치에 페널티를 줍니다.
- 선형 모델: 더 평평한 기울기를 선호합니다.
- 베이즈 전제:
- 가중치는 0을 중심으로 배치되어야 함
- 가중치는 정규 분포여야 함
L2 정규화를 이용한 손실 함수
$$ Loss(Data|Model) + \lambda \left(w_1^2 + \ldots + w_n^2 \right) $$
\(\text{Where:}\)
\(Loss\text{: Aims for low training error}\)
\(\lambda\text{: Scalar value that controls how weights are balanced}\)
\(w_1^2+\ldots+w_n^2\text{: Square of}\;L_2\;\text{norm}\)