L1(Lasso)과 L2 regularization(Ridge)에 대한 고찰
1) L1(절댓값 함수)과 L2(제곱 함수) regularization 항을 그래프로 그려보면
weight parameter중 하나가 0으로 가까이 가면
L2 regularization은 나머지 하나도 0으로 가까이 가는 듯 하지만 0은 아닌데
L1 regularization은 확실하게 0으로 가려고 한다
결론은 L1 regularization은 많은 weight를 0으로 만들어낼 수있는데 L2 regularization은 0에 가까운 weight들을 만들어낸다.
2) 이 사실을 다른 그림을 통해 직관적으로 살펴보면
2개의 paramete $W _{1},W _{2}$가 있다고 가정하고
2가지 regularization에 대하여 regularization 항이 최소한 $s$이내에 있어야한다고 하면
$$\left | W _{1} \right | + \left | W _{2} \right | \leq s$$은 L1 regularization이고 다이아몬드 형태를 나타낸다.
$$W _{1}^{2} +W _{2}^{2} \leq s$$은 L2 regularization이고 원 형태를 나타낸다.
위 그림은 서로 다른 cost function 4가지에 대해 가운데 제약조건으로 L1 regularization인 blue diamond와 L2 regularization인 black circle를 그렸다
보면 알겠지만 black circle(L2 regularization)와 cost function의 intersection은 빨간색으로
blue diamond(L1 regularization)와 cost function의 intersection은 검정색으로 나타냈는데
L1 regularization의 경우 weight parameter $\beta_{1}, \beta_{2}$가 0으로 갈 가능성이 높다는 것을 확인할 수 있다.
3) 조금 어렵게 수학적인 관점에서 살펴보면
weight parameter $W= \left ( W _{1} ,W _{2} \right )$라고 하고 편의상 $W _{1} ,W _{2} >0$라고 하자.
L1 regularization term과 L2 regularization term을 계산해보면
$$\left | W \right | _{1} =W _{1} +W _{2}$$
$$\left | W \right | _{2} =W _{1} ^{2} +W _{2}^{2}$$
이제 regularization과정에서 $W _{1}$만 $\delta >0$만큼 줄었다고 가정하면
$$\left | W-( \delta ,0) \right | _{1} =W _{1} - \delta +W _{2}$$
$$\left | W-( \delta ,0) \right | _{2} =W _{1} ^{2} -2 \delta W _{1} + \delta ^{2} +W _{2}^{2}$$
반대로 $W _{2}$만 $\delta >0$만큼 줄었다고 가정하면
$$\left | W-( 0, \delta) \right | _{1} =W _{1} +W _{2}- \delta $$
$$\left | W-( 0, \delta) \right | _{2} =W _{1} ^{2} +W _{2}^{2}-2 \delta W _{2} +\delta ^{2}$$
이제 $W _{2}$가 0에 충분히 가깝다고 한다면 L1 regularization은 두가지 경우
$W _{1} - \delta$가 되어 $W _{1}$도 0에 가까이 갈 확률이 높은데
L2 regularization은 $$\left | W-( \delta ,0) \right | _{2} =W _{1} ^{2} -2 \delta W _{1} + \delta ^{2}$$와
$$\left | W-( 0, \delta) \right | _{2} =W _{1} ^{2} +\delta ^{2}$$가 되어 0에 가까이 갈 가능성이 적다
수학적으로도 “L1 regularization은 많은 weight를 0으로 확실히 만들어낼 수 있는데 L2 regularization은 0에 가까운 weight들을 만들어낸다.“
4) 더욱 어렵게 수학적인 관점에서 살펴보면
$W= \left ( W _{1} ,W _{2} ,...,W _{n} \right )$이라고 하면 각각의 regularization term은 $$L _{1} = \sum _{i=1} ^{n} \left | W _{i} \right |$$이고 $$L _{2} = \sum _{i=1} ^{n} W _{i}^{2}$$이다.
weight로 미분하여 gradient descent 과정으로 cost function을 줄여나갈 것이므로
각 regularization term의 특정한 weight parameter의 미분은
$$\frac{dL _{1} (W _{i} )}{dW _{i}} =Sign(W _{i} )=1\;or\;-1$$
$$\frac{dL _{2} (W _{i} )}{dW _{i}} =2W _{i}$$
이것이 무슨 뜻이냐면
L1 regularization은 weight의 크기와 무관하게 gradient가 1아니면 –1로 항상 일정해서,
항상 일정한 크기로 gradient descent가 이루어지는데
L2 regularization은 weight의 크기에 비례하여 gradient descent가 이루어진다는 사실이다.
이 사실에 의해서 L1 regularization은 대부분 0으로 weight를 확실하게 만들지만 L2 regularization은 0으로 가더라도 0에 가까운 값을 가지게 만든다.
아래 두 그림의 x축은 전부 regularization의 정도인 $\lambda$를 의미하는데 클수록 regularization에 더욱 집중하여 가중치를 작게 만든다
결론
L1 regurlarization은 weight parameter를 0으로 확실하게 만드는 성향을 가지고
L2 regularization은 weight parameter를 0으로 가게 만드는 경향이 있더라도 완전히 0으로 만들지는 않습니다.
따라서 L1 regularization은 불필요한 feature를 확실하게 제거할 수 있는 feature selection에 적합하며
sparse model(희소한 모델, weight parameter가 0인 것이 많은 모델)을 만들기에 적합합니다.
반면 L2 regularization은 영향이 낮은 feature에도 어느정도 weight를 주어 더 좋은 예측값을 찾고자 합니다.
그래서 L1이 좋느냐? L2가 좋느냐? 단정지어서 말하기는 어렵습니다. modeling 목적에 따라 다르다고 말할 수 있겠습니다.
참고로 regularization은 L1 regularization, L2 regularization외에도
L1과 L2를 합쳐서 사용할 수도 있고 이를 elastic net이라고 부릅니다.
dropout이나 early stopping, noisy input 등등도 모두 regularization에 속합니다.
참고
The difference between L1 and L2 regularization (explained.ai)
regression - Why L1 norm for sparse models - Cross Validated (stackexchange.com)
Regularization in Deep Learning — L1, L2, and Dropout | Towards Data Science
'딥러닝 > 딥러닝 기초' 카테고리의 다른 글
softmax function에 대한 진정한 의미 (0) | 2021.12.26 |
---|---|
모델의 일반화능력(generalization performance) (0) | 2021.12.24 |
L1 regularization(Lasso)과 L2 regularization(Ridge) (0) | 2021.12.15 |
regularization이란 무엇일까? (0) | 2021.12.15 |
가장 좋은 loss function은? (0) | 2021.11.22 |