Doby's Lab

L1, L2 Regularization에 대하여 본문

AI/Concepts

L1, L2 Regularization에 대하여

도비(Doby) 2022. 12. 31. 11:08

Regularization

Overfitting 문제를 해결하는 데에 있어서 여러 기법들이 있습니다. 오늘은 L1, L2 Regularization에 대해 알아봅시다.

이 두 기법은 모델이 복잡할 때 일어나는 Overfitting을 해결하기 위한 기법입니다. 이 기법을 통해 가중치들이 작아지면서 모델이 아래 그림과 같이 일반성을 가질 수 있도록 합니다.

출처: https://verdazo.com/blog/machine-learning-finding-the-signal-or-fitting-the-noise/


MSE (Mean Squared Error)

들어가기 전에 일반적으로 Cost Function을 많이 쓰이는 MSE에 대해 알아봅시다.

MSE란 평균 제곱 오차라는 뜻으로 예측 값과 실제 값의 차이를 제곱하여 이를 모두 평균화한 것을 의미합니다.

$$ MSE = \frac{1}{N}\sum_{i=1}^{N}(\hat{y_i}-y_i)^{2} $$

MSE(Cost Function)에 따라 Cost가 정해지고, Optimizer를 통해 가중치를 조절합니다.

 

이러한 MSE에 Penalty Term(규제 항)을 더하여 Cost가 정해지고, 이에 따른 조절을 통해 Weight에 Regularization이 들어갑니다.

$$ Cost = MSE + (Penalty\;term) $$


L1 Regularization (Lasso)

L1 Regularization이란 기존의 Cost Function에서 아래와 같은 L1-norm(Penalty Term)에 하이퍼파라미터 값인 Alpha를 곱한 값을 더하여 총 Cost가 만들어지는 것입니다.

$$L_1-norm(Penalty\;term) = \sum_{j=1}^{m}|w_j|$$

-> 모든 Weight의 절댓값을 더한 형태

$$\frac{1}{N}\sum_{i=1}^{N}(\hat{y_i}-y_i)^{2} + \alpha\sum_{j=1}^{m}|w_j|$$

 

규제가 걸린 상태에서 학습을 진행하면 train_set에 맞게 손실을 줄여가고, 가중치를 조절할 뿐만이 아니라 가중치 값들이 최소가 될 수 있도록 합니다.

 

즉, 손실이 최소가 되게 학습한다는 것은 Penalty Term도 더해져있으므로 Penalty Term 또한 최소가 되게 학습한다는 뜻입니다.

 

L1에서는 Penalty Term이 가중치들의 절댓값 총합이므로 가중치들이 최소가 되는 것입니다.

 

동작방식은 가중치들의 부호를 고려하여 특정 상수값들을 빼주는 방식입니다.

+ 하지만, 절댓값에서 미분을 할 수 없습니다. 특정 상수에 대해 다른 분이 다룬 글을 링크로 남기겠습니다.

(https://yurmu.tistory.com/20)

(절댓값에서 미분을 할 수 없는 이유는 y = x(if x > 0), y = 0(if x = 0), y = -x (if x < 0) 같은 그래프를 그려보면 x = 0일 때 미분을 할 수 없음을 쉽게 할 수 있습니다.)

 

이러한 동작방식의 특징으로 L1에서는 특정 가중치들은 0으로 수렴하여 불필요한 Feature들은 없어질 수 있습니다. 


L2 Regularization (Ridge)

L2 Regularization이란 L1과 비슷하게 기존의 Cost Function에서 아래와 같은 L2-norm(Penalty Term)에 하이퍼파라미터 값인 Lambda를 곱한 값을 더하여 총 Cost가 만들어지는 것입니다.

$$L_2-norm(Penalty\;term) = \sum_{j=1}^{m}w_j^{2}$$

-> 모든 weight에 제곱을 더한 형태

$$\frac{1}{N}\sum_{i=1}^{N}(\hat{y_i}-y_i)^{2} + \lambda\sum_{j=1}^{m}w_j^{2}$$

 

L1과 마찬가지로 가중치의 값들이 최소가 되도록 학습을 진행합니다.

 

또한, Penalty Term이 최소가 되도록 하는 것도 마찬가지입니다.

 

L1과 다른 점은 가중치의 제곱의 합을 Penalty Term으로 쓴다는 것인데 이 부분이 동작 방식에 있어서 어떤 방향으로 작용하는지 알아봅시다.

 

L1도 그렇지만 둘 다 최소가 되기 위해 일반적으로 Gradient Descent 방법으로 최소가 되는 방법을 찾습니다.

L2는 Descent를 하기 위해 w로 미분을 하면 w^2 term이 Penalty Term에 있었기 때문에 w가 남아있습니다.

이는 w의 기울기를 의미하며 0에 수렴하기 위한 값을 찾고 이 값을 다음 weight에 반영합니다.

그러다 보니 최적의 파라미터를 찾을 뿐 파라미터가 0이 되지는 않습니다. 이 과정에서 L1과 차이가 납니다.


Hyperparameter & Difference

그래서 우리가 조절할 수 있는 건 Alpha와 Lambda라는 Hyperparameter입니다.

 

규제를 줄 때, 과하게 주면 Cost Function에서 가중치의 영향이 커지므로 가중치들이 많이 작아져서 Underfitting 현상이 날 수도 있습니다.

 

반대로 너무 조금 줘버리면 규제가 별로 되지 않고, Overfitting 현상이 날 수도 있습니다.

 

그리고, L1과 L2의 차이점은 

L1은 weight가 없어질 수도 있다는 것과 L2는 0에 근접하나 사라지지는 않는다는 것입니다.

이러한 차이점을 알고서 일부 특성만 중요하다면 L1, 모든 특성의 중요도가 비슷하다면 L2를 적용하는 접근을 하면 됩니다.


L1, L2 in Keras

Keras에서는 이런 규제를 regularizers 패키지에서 제공하기 때문에 아래와 같이 사용할 수 있습니다.

model.add(keras.layers.Conv2D(32, kernel_size=3, activation='relu',  
                              padding = 'same', input_shape=(224, 224, 1),
                              kernel_regularizer=keras.regularizers.l2(0.002)))

Reference

https://rdmkyg.blogspot.com/2021/06/regularization-l1.html

 

가중치 규제 (regularization) L1, L2 란 야나두 딥러닝

과대적합을 해결 하는 대표적인 방법 중 하나인 가중치 규제(regularization) 이다. 가중치 규제란 말 그대로 가중치의 값이 커지지 않도록 제한 하는 기법이다. 여기에서는 L1 규제 라쏘, L2규제 (릿

rdmkyg.blogspot.com

https://steadiness-193.tistory.com/262

 

Regression - Regularization : L1 규제(Lasso), L2 규제(Ridge)

* 수학적 증명, 수식보단 기본 개념과 활용법에 초점을 맞춤 Regularization (정형화, 규제, 일반화) 모델이 과적합되게 학습하지 않고 일반성을 가질 수 있도록 규제 하는 것. 하늘색 선은 오버피팅

steadiness-193.tistory.com

https://velog.io/@yuns_u/%ED%8F%89%EA%B7%A0%EC%A0%9C%EA%B3%B1%EC%98%A4%EC%B0%A8MSE-%ED%8F%89%EA%B7%A0%EC%A0%88%EB%8C%80%EC%98%A4%EC%B0%A8MAE

 

평균제곱오차(MSE), 평균절대오차(MAE)

MSE, MAE, 손실함수와 머신러닝.

velog.io

https://nicola-ml.tistory.com/137

 

4.가중치 규제 추가에 대해 : L1규제, L2규제, 드롭아웃 / 정리하기

L1규제, L2규제 어떤 훈련 네트워크 구조가 주어졌을 때 데이터를 설명할 수 있는 가중치 값의 집합은 여러 개(여러 개의 모델)입니다. 간단한 모델이 복잡한 모델보다 덜 과대적합될 가능성이 높

nicola-ml.tistory.com

https://towardsdatascience.com/weight-decay-l2-regularization-90a9e17713cd

 

Weight Decay == L2 Regularization?

Neural Networks are great function approximators and feature extractors but sometimes their weights become too specialized and cause…

towardsdatascience.com

https://yurmu.tistory.com/20

 

[Deep Learning] L1 Regularization의 Gradient에 관한 소고

1. 개요 딥러닝을 배우면 Ridge, Lasso regularization에 관해 알게 된다. 각각 L2, L1 norm을 Loss 항에 더하는 방식으로 이루어진다. (실제로는 Norm에 lambda 값을 붙여서 조절해준다.) 이 때 Optimizer로 SGD를 사

yurmu.tistory.com

 

728x90

'AI > Concepts' 카테고리의 다른 글

Batch Normalization이란? (Basic)  (0) 2023.01.02
Dropout에 대하여  (1) 2022.12.31
Image Augmentation이란?  (2) 2022.12.29
Normalization이 필요한 이유  (0) 2022.12.28
Gradient Descent와 Loss Function의 관계  (0) 2022.09.03