정규화(regularization)는 「모델이 과적합되는 것을 막기 위해 손실함수에 추가 벌점을 더하는 기법」입니다.
모델이 너무 큰 가중치를 갖지 못하도록 누르는 「제동 장치」 역할을 합니다.
가장 흔한 두 가지가 L1과 L2입니다.
L2 정규화(릿지, Ridge)는 「모든 가중치의 제곱을 더한 값」을 손실에 추가합니다.
큰 가중치에 더 큰 벌점이 가므로 가중치들이 전반적으로 작은 값으로 수렴하지만, 0이 되지는 않습니다.
L1 정규화(라쏘, Lasso)는 「모든 가중치의 절댓값을 더한 값」을 손실에 추가합니다.
L2와 달리 일부 가중치를 정확히 0으로 만들어 버리는 특징이 있습니다.
즉 「불필요한 변수를 자동으로 제거」하는 효과가 있어 변수 선택의 도구로도 쓰입니다.
비유하자면 L2는 「모든 직원의 월급을 조금씩 깎는 정책」(전반적으로 가중치가 줄어듦), L1은 「불필요한 직원을 해고하는 정책」(가중치가 0으로 사라짐)과 비슷합니다.
둘을 함께 쓰는 「엘라스틱넷(Elastic Net)」도 있습니다.
신경망에서는 L2가 「가중치 감쇠(weight decay)」라는 이름으로 가장 흔히 쓰이고, L1은 가끔 등장합니다.
정규화의 강도는 「람다(λ)」라는 하이퍼파라미터로 조절하며, 너무 작으면 과적합, 너무 크면 과소적합이 옵니다.
한 줄 요약
L2(릿지)는 모든 가중치를 작게 만들고, L1(라쏘)는 불필요한 가중치를 정확히 0으로 만들어 변수 선택 효과를 내는 정규화 기법입니다.
더 알아볼 것
- 가중치 감쇠와 L2의 관계
- 엘라스틱넷 — L1·L2의 결합
- 드롭아웃 — 신경망 전용 정규화