AI
Regularization (Overfitting 방지 방법)
pullwall
2024. 9. 10. 21:29
728x90
해당 게시물은 "혁펜하임의 AI DEEP DIVE"를 수강하고 작성되었습니다.
Regularization은 overfitting을 줄일 수 있는 방법 중 하나이다.
Regularization에 대해 알아보기 전에 $l_2 norm$과 $l_1 norm$에 대하여 정리한다.
벡터 $w$가 다음과 같이 정의되어 있다면, $\underline{w}=\begin{bmatrix}
w_1 \\ w_2
\\ w_3
\end{bmatrix}$
- $l_2 norm= \begin{Vmatrix}
w\end{Vmatrix}_2=(|w_1|^2+|w_2|^2+|w_3|^2)^{\frac{1}{2}}$ - $l_1 norm= \begin{Vmatrix}
w\end{Vmatrix}_1=(|w_1|^1+|w_2|^1+|w_3|^1)^{\frac{1}{1}}$
이제 $l_2$Regularization과 $l_1$Regularization을 정의한다.
- $R_{l_2}=L+\lambda\left\|w \right\|_{2}^{2}$
- $R_{l_1}=L+\lambda\left\|w \right\|_{1}^{1}$
기존 Loss함수에 $ \lambda \left\|w \right\|_{p}^{p} $를 더한 형태이다. 이를 새로운 Loss function으로 사용한다.
Regularization은 loss를 줄이되, weight의 크기 또한 작게 하는 두 가지를 고려한다.
이를 통해
- weight를 0으로 보낼 가능성이 생기며 (connection을 끊는다는 의미와 같음) 모델을 경량화 할 수 있다.
- $l_2$를 사용하면 weight의 크기가 크면 많이 줄이고, 작으면 조금 줄인다. weight의 크기를 서로 비슷하게 만들 수 있다. (node들을 골고루 사용하게끔 한다)
- $l_2$을 사용하면 weight의 크기와 상관 없이 같은 양을 줄인다. (중요한 connection만 살린다)
그럼 왜 weight의 크기를 줄이는게 좋을까?
epoch가 커질수록 적절한 accuracy에 수렴했음에도 불구하고 weight는 계속해서 조금씩 커진다.
-> weight가 계속해서 조금씩 커지면 overfitting이 발생한다.
-> 이를 방지하자 -> Regularization
728x90