10. L1,L2 regularization은 어떠한 것인가요?

일단 정규화(regularization)을 알아보도록 합시다. 모델의 일반화 오류를 줄여 과적합(overfitting)을 방지하는 기법이고 특히나 회귀분석에서 매우 많이 쓰입니다. 딥러닝 또한 과적합을 방지하기 위해 정규화를 많이 사용합니다. 아래 그림으로 정규화가 필요한 경우를 시각적으로 알아보도록 합시다.

L1, L2 regularization
과적합을 피하기 위해 가장 확실한 방법은 데이터의 양을 늘리는 것입니다. 하지만 데이터가 하늘에서 떨어지는 것은 아니죠. 데이터 확보로만 프로젝트가 수행되기도 합니다. 그만큼 시간과 비용이 많이 필요하다는 말이죠. 데이터 확보가 불가능한 경우도 종종 발생합니다. 이런 상황일 때 사용하는 기법이 정규화입니다. 일반적으로 cost function 이나 error function이 작아지는 쪽으로 진행을 하게 됩니다. 단순하게 작아지는 쪽으로만 진행을 하다 보면, 특정 가중치 값들이 커지면서 오히려 결과를 나쁘게 하는 경우도 있습니다. 아래 그림은 regularization을 통해 더 좋은 학습 결과를 가져오는 경우를 보여주는 그림이다.

 정규화의 수학적 표현으로 L1, L2 Regularization이 있습니다.
L2 Regularization
L2 Regularization은 아래의 수식으로 표현할 수 있습니다.

위 수식에서 C_0는 원래의 cost function이며, n은 훈련 데이터의 개수, λ는 정규화 변수, ω는 가중치를 나타낸다. 위 식처럼 정규화 항목이 들어가면, 학습의 방향이 단순하게 C_0 값이 작아지는 방향으로만 진행되는 것이 아니라, ω값들 역시 최소가 되는 방향으로 진행을 하게 됩니다. 이렇게 정의된 cost function을 가중치 ω에 대해서 편미분을 수행하면, 결과적으로는 새로운 가중치는 아래와 같이 결정 됩니다.

위 식에서 (1-ηλ/n)ω는 원래의 ω값에 (1-ηλ/n) 항목을 곱한 형태가 되기 때문에 값이 작아지는 방향으로 진행을 하게 됩니다.
L1 Regularization
Regularization은 통상적으로 L1과 L2 Regularization으로 나눠지게 된다. 앞서 살펴본 수식은 L2 Regularization에 속하고, L1 Regularization은 2차항 대신에 1차항이 오며, 식은 아래와 같다.

앞서 살펴본 것과 마찬가지로 가중치 ω에 대해서 편미분을 수행하면, 결과적으로는 새로운 가중치는 아래와 같이 결정이 된다.

결과적으로 위 식을 보면, weight 값 자체를 줄이는 것이 아니라 ω의 부호에 따라 상수 값을 빼주는 방식으로 정규화를 수행한다.