본문 바로가기
Machine Learning

L1, L2 Regularization

by devson 2024. 5. 7.

Regularization이란 학습 시 overfitting을 피하고 일반화 성능을 높이는 방법이다.

즉, 훈련 데이터에 대해 분산은 낮추고 바이어스는 높이면서 모델의 일반화 성능을 높이는 방법이다.

 

Regularization은 L1, L2 regularization, Dropout 등 여러 방법이 있는데,

이번 포스팅에서는 L1, L2 regularization에 대해 알아보도록 하겠다.

 


 

L1, L2 regularization은 weight에 대해 Penalty term을 추가하여 weight가 작아지도록 규제하는 방법이다.

이 Penalty를 통해 weight가 훈련 데이터셋에 overfitting 되는 것을 막는다.

 

Penalty term을 어떻게 계산하냐에 따라 L1, L2로 나뉘어진다.

 

$$Loss_{\text{L1 regularized}} = Loss_{\text{original}} + \lambda |W|$$

$$Loss_{\text{L2 regularized}} = Loss_{\text{original}} + \lambda W^{2}$$

 

여기서 $\lambda$는 hyperparameter로 얼마나 weight의 값을 규제할 것인지, Penalty 강도를 정하는 값이다.

- $\lambda$ 값이 클수록 weight가 Loss와 강하게 결합되기 때문에 weight의 값이 작아지게 된다.

- $\lambda$ 값이 0이면 원래 Loss 함수와 동일하게 된다.

 

L1 regularization

L1 regularization의 경우 penalty term으로 L1-norm을 사용한다.

$$Loss_{\text{L1 regularized}} = Loss_{\text{original}} + \lambda |W|$$

그렇기에 weight에 대해 0을 중심으로 뾰족한 형태의 loss가 추가된다. (기울기는 $\lambda$에 따라 달라진다)

 

$\lambda$에 따른 L1 regularized Loss의 변화는 아래와 같다.

(파란색 선이 unregularizaed loss, 검은색 선이 regularized loss)

https://www.desmos.com/calculator/fzn4kqeu9p

 

위에서 그래프에서 볼 수 있듯이 weight=0을 기준으로 loss의 그래프가 구브러지는 것을 볼 수 있고,

$\lambda$가 커질수록 loss가 최소가 되는 weight는 0에 가까워지다가 결국엔 0이 된다.

 

이렇듯 L1 regularization는 특정 feature에 대해 weight를 0으로 만드는 특성이 있고,

feature의 weight가 0이 된다는 것은 해당 feature를 사용하지 않는다는 것이다.

즉, L1 regularization은 feature selection의 역할을 수행한다.

 

L1 regularization을 경사하강을 통한 학습의 측면에서 살펴보면 weight의 update 수식은 아래와 같다.

$$ W \leftarrow W - \eta \frac{\partial (Loss + \lambda |W|)}{\partial W} \\ = W - \eta \frac{\partial Loss}{\partial W} - \eta \frac{\partial \lambda |W|}{\partial W} \\ = W - \eta \frac{\partial Loss}{\partial W} - \eta \lambda \text{sign}(W) $$

는 W의 부호에 따라 일정한 상수 $\lambda$를 더하거나 빼게되어, 결국에는 특정 weight가 0으로 수렴하게 되는 것이다.

L2 regularization

L2 regularization의 경우 penalty term으로 L2-norm을 사용한다.
$$Loss_{\text{L2 regularized}} = Loss_{\text{original}} + \lambda W^{2}$$

그렇기에 weight에 대해 0을 중심으로 둥근 형태의 loss가 추가된다. (기울기는 $\lambda$에 따라 달라진다)

 

$\lambda$에 따른 L2 regularized Loss의 변화는 아래와 같다.

(파란색 선이 unregularizaed loss, 검은색 선이 regularized loss)

https://www.desmos.com/calculator/b6pswatjqr

 

L1 regularization과 동일하게 $\lambda$가 커질수록 loss가 최소가 되는 weight는 0에 가까워지게된다.

하지만 L2 regularization의 경우 $\lambda$가 커져도 loss가 최소가 되는 weight가 0이 되진 않는다.

$\lambda$가 100일 때

 

L2 regularization의 경우 weight 크기에 따라서도 penalty의 강도가 달라지고 weight가 클수록 penalty의 강도가 세진다.

 

L2 regularization을 경사하강을 통한 학습의 측면에서 살펴보면 weight의 update 수식은 아래와 같다.
$$ W \leftarrow W - \eta \frac{\partial (Loss + \lambda W^{2})}{\partial W} \\ = W - \eta \frac{\partial Loss}{\partial W} - \eta \frac{\partial \lambda W^{2}}{\partial W} \\ = W - \eta \frac{\partial Loss}{\partial W} - 2 \eta \lambda W $$
결과적으로 W의 크기에 따라 적용되는 Penalty가 달라지게 되어, weight의 크기에 따라 weight가 업데이트되는 정도가 달라진다.

 

 

아래의 그림을 통해 L1, L2 regularization을 기하학적으로 살펴보면,

각 weight는 penalty로 인해 하늘색으로 표시된 영역을 벗어날 수 없고, $\lambda$가 커질 수록 이 영역이 작아지게된다.

L1의 경우 사각형의 모양이기 때문에 L1 Loss가 최소화 되는 지점에서 특정 weight가 0이 된다. (feature selection)

 

 


 

참고

- https://www.youtube.com/watch?v=Xm2C_gTAl8c

- https://mole-starseeker.tistory.com/34

- https://seongyun-dev.tistory.com/52

 

'Machine Learning' 카테고리의 다른 글

Classification task에서 Cross-Entropy  (0) 2024.05.18
Feature scaling 과 머신러닝 학습  (0) 2024.04.26
Gradient Descent  (0) 2024.03.03
Gradient Vector  (0) 2024.02.19

댓글