L1 regularization(Lasso)과 L2 regularization(Ridge)
L1 regularization과 L2 regularization은 모형의 복잡도인 parameter에 penalty를 주는 방식이다.
L1, L2라는 용어에서 알 수 있다시피 loss function 공부하면서 짐작할 수 있는데
L1 regularization은 L1 norm인 절댓값 합을 말하는 것 일 테고 Lasso라고도 부른다.
L2 regularization은 제곱 합을 말하는 것이고 Ridge라고도 부른다.
기본적으로 regularization하면 생각나는 것은
$$cost = basic \; loss + regularization$$
regularization term을 구성하는 방법은 neural network의 parameter를 이용한다.
그 parameter가 $W$라고 한다면
$$\omega _{1} (W)= \sum _{i} ^{} \left | w _{i} \right |$$
$$\omega _{2} (W)= \sum _{i} ^{} w _{i}^{2}$$
기호를 이렇게 쓰긴 했지만, 모든 parameter의 절댓값 합, 모든 parameter의 제곱합으로 생각하면 된다
그러면 regularization cost는
$${\hat{L _{1} (W)}} =L(W)+ \omega _{1} (W) = L(W)+ \sum _{i} ^{} \left | w _{i} \right |$$
$${\hat{L _{2} (W)}} =L(W)+ \omega _{2} (W)=L(W)+ \sum _{i} ^{} w _{i}^{2}$$
이러한 방식으로 regularization하여 과적합을 방지하는 것은 최근에 추천시스템에서 배웠다
근데 단순히 더하지는 않는다. regularization의 정도를 나타내는 $\lambda$를 이용하여
$${\hat{L _{1} (W)}} =L(W)+ \lambda \omega _{1} (W)$$
$${\hat{L _{2} (W)}} =L(W)+ \lambda \omega _{2} (W)$$
L2 norm같은 경우 $${\hat{L _{2} (W)}} =L(W)+ \frac{\lambda }{2} \omega _{2} (W)$$로 쓰기도 하는데 사실 큰 의미없다.
$\omega _{2} (W)= \sum _{i} ^{} w _{i}^{2}$를 미분하면 2가 내려와서 편해지니까 아무튼 진짜 큰 의미 없다
regularization의 정도를 나타내는 $\lambda$는 hyperparameter다.
optimization과정에서 cost를 줄일텐데 $\lambda$가 클수록 regularization에 집중할 것이고 작을수록 loss에 집중할 것이다.
regularization에 집중한다는 것은 모형의 복잡도를 줄이는 것에 더욱 집중하겠다는 의미이다.
그만큼 parameter값이 작아야 regularization term이 작아질 것이고 전체 cost가 작아질테니까
'딥러닝 > 딥러닝 기초' 카테고리의 다른 글
모델의 일반화능력(generalization performance) (0) | 2021.12.24 |
---|---|
L1(Lasso)과 L2 regularization(Ridge)에 대한 고찰 (0) | 2021.12.17 |
regularization이란 무엇일까? (0) | 2021.12.15 |
가장 좋은 loss function은? (0) | 2021.11.22 |
MSE loss 와 MAE loss의 비교 (0) | 2021.11.22 |