한양과학기술고등학교

에듀테크 프로젝트 대시보드

정규화 (L1/L2, Ridge·Lasso)

정규화 (L1/L2, Ridge·Lasso)

손실 함수에 "가중치가 너무 커지지 마라"는 페널티를 더해 과적합을 억제하는 기법  |  λ 하나로 모델의 단순함을 조절한다
모델이 훈련 데이터를 너무 잘 맞추려다 노이즈까지 외워버리면 새 데이터에서 오히려 성능이 떨어진다(과적합, 편향-분산 트레이드오프 참고). 정규화는 손실 함수에 가중치 크기에 대한 페널티를 추가해서, "데이터를 잘 맞추는 것"과 "모델을 단순하게 유지하는 것" 사이에서 타협하게 만든다.

1. 아이디어 — 손실에 페널티를 더한다

보통의 학습은 Loss = MSE(예측, 정답) 만 최소화한다. 정규화는 여기에 가중치 w의 크기를 재는 항을 더한다.

Ridge (L2)   Loss = MSE + λ · Σ wⱼ²
Lasso (L2)   Loss = MSE + λ · Σ |wⱼ|

λ(람다)는 "얼마나 단순함을 강요할지" 정하는 손잡이다. λ = 0이면 원래 학습과 같고, λ가 커질수록 가중치를 작게 만드는 쪽으로 더 세게 당긴다. 편향(bias) 항은 보통 페널티에서 제외한다 — 편향까지 줄이면 예측이 이유 없이 0쪽으로 쏠리기 때문이다.

2. Ridge(L2) vs Lasso(L1) — 왜 결과가 다른가

Ridge (L2)Lasso (L1)
페널티Σ wⱼ²Σ |wⱼ|
가중치 변화모두 고르게 축소일부는 정확히 0으로
효과안정적인 수축자동 변수 선택(희소성)
미분매끄러움(모든 점에서 가능)0에서 꺾임(미분 불가능 지점)

직관적으로: w²는 w가 이미 작을 때 기울기(2w)도 작아져서 "0 근처에서는 살살 민다" — 그래서 완전히 0이 되기보다 다들 조금씩만 작아진다. 반면 |w|의 기울기는 w가 0이 아닌 한 항상 ±1로 일정해서 끝까지 세게 밀어붙이고, 그 결과 덜 중요한 가중치는 정확히 0에서 멈춰 버린다(변수가 사라지는 효과).

3. 데모 — λ를 올리면 곡선이 얌전해진다

노이즈 낀 데이터에 8개 계수(0~7차 다항식)를 가진 곡선을 피팅한다. λ를 올리며 Ridge/Lasso를 바꿔 보라 — 구불구불하던 곡선이 점점 단순해지고, Lasso에서는 계수 막대가 하나씩 0으로 꺼진다.

λ (정규화 강도)   0.000
점 = 훈련 데이터 · 곡선 = 8개 계수(0~7차)로 피팅한 다항식
계수 크기 |wⱼ| (j=0 절편 제외 대상)
훈련 MSE
–
0이 된 계수
–
|w| 합
–

4. 언제 무엇을 쓸까

핵심 정리 — 정규화 = 손실에 λ·(가중치 크기) 페널티를 더해 과적합을 억제하는 기법. Ridge(L2)는 모두 고르게 줄이고, Lasso(L1)는 일부를 정확히 0으로 만들어 변수 선택 효과를 낸다. λ가 너무 작으면 과적합, 너무 크면 과소적합 — 관련: 편향-분산 트레이드오프, 경사 하강법, 교차검증.