본문 바로가기
기초 머신러닝

Regularization, L2 regularization (Ridge), L1 regularization (Lasso)

by eongco 2024. 12. 12.

Regularization

Overfitting이 되지 않게 하기 위해 사용하는 방법 중 대표적인 것이 Regularization이다.

 

Overfitting이 발생하는 이유는 모델의 복잡도가 데이터의 복잡도보다 커져서 그런 것이라고 이전 포스팅에서 언급한 바 있다.

 

Regularization은 모델의 복잡도를 낮추는 방법이다

 

모델이 학습하다보면 특정 Feature에 대한 가중치만이 커지게 되는 경우가 있는데 이에 대한 규제를 준다고 보면 된다

 

패널티를 준다고 해서 Penalization이라고도 한

 

머신러닝 모델은 예측값과(= 모델 예측) 실측값(= 실제 정답) 사이의 차이인 손실을 줄이는 방향으로 학습한다

 

특정 가중치에 대해서 오히려 손실값이 줄어드는 것을 상쇄시켜 가중치의 값이 크게 업데이트 되는 것을 방해하는 것이다

 

가중치의 제곱을 더하거나 가중치의 절대값을 더해 손실을 상쇄시킨다

 

전자의 경우를 가리 L2 regularization이라고 하고 후자의 방법을 L1 Regularization이라고 한다

 

출처: http://laid.delanover.com/difference-between-l1-and-l2-regularization-implementation-and-visualization-in-tensorflow/

 

 

그리고 L2의 방법을 linear regression에 적용한 모델이 Ridge regression이고

 

L1 regularization을 적용한 regression 모델이 Lasso regression이다

L2 regularization

regularization term을 더한 것을 가중치를 업데이하는 식에 적용해보면 아래와 같다

https://devs0n.tistory.com/164

 

L1 regularization과의 차이점이라고 하면 가중치의 크기가 0으로 수렴할 수는 있어도 0이 되지는 않는다는 것이다

 

L1 regularization

Term을 새롭게 추가한 Loss function을 gradient descent에서 가중치를 업데이트하는 식에 적용하면 아래와 같다

 

https://devs0n.tistory.com/164

 

L1 regularization의 경우 특정 가중치의 값이 0이 되기도 한다

'기초 머신러닝' 카테고리의 다른 글

Overfitting, Early Stopping, Underfitting  (1) 2024.12.12
Stratified K-Fold  (0) 2024.12.12

최근댓글

최근글

skin by © 2024 ttuttak