티스토리 뷰
정규화란?
모델의 가중치에 제약을 주어 과적합을 방지하고 모델을 단순화하는 기법입니다.
L1, L2 정규화를 살펴보기 전에 벡터의 norm먼저 살펴봅시다.
벡터의 norm
벡터의 "크기"를 측정하는 방법으로 쉽게 말하면 원점에서 해당 점까지의 거리를 계산하는 방법입니다.
("크기"라고 했으니 0 포함 양수 스칼라여야함.)
Lasso(L1) 정규화와 Ridge(L2) 정규화에서는 각각 L1-norm과 L2-norm을 활용하고 아래와 같이 계산할 수 있습니다.
* L2-norm (벡터의 물리적인 길이)
(예시)
$a = \begin{bmatrix}1 \\2\\3\end{bmatrix}$
${||a||_{2}}= \sqrt{{a}^{T}a} = \sqrt{{1}^{2}+{2}^{2}+{3}^{2}} = (|1|^{2}+|2|^{2}+|3|^{2})^{1/2}$
* L1-norm
(예시)
${||a||_{1}}= (|1|^{1}+|2|^{1}+|3|^{1})$
돌아와서 정규화에 대하여 살펴봅시다.
* Lasso (L1) Regularization (L1-norm 활용)
Loss = 오차 + λ * $\sum |w_i|$
$\sum |w_i|$ (L1 norm)의 효과?
- 축에 따른 이동을 직접 반영합니다.
( 실제로 (1,1)이면 x축으로 1만큼 y축으로 1만큼의 크기가 L1-norm이므로 x축 y축을 각각 직접 반영한다고 말할 수 있음. 이를 확장하면 특성 차원의 영향을 분리해서도 볼 수 있음)
- 이상치에 대해 상대적으로 덜 민감합니다.
(L2-norm 과 비교했을 때 제곱하지 않은 절댓값을 사용하기 때문)
따라서, 개별 차원의 차이가 독립적으로 중요할 때, 특정 차원의 영향을 분리해서 보고싶을 때, 이상치의 영향을 줄이고 싶을 때 활용할 수 잇을 것 같습니다.
* Ridge (L2) Regularization (L2-norm 활용)
Loss = 오차 + λ * $\sum {w_i}^{2}$
$\sum {w_i}^{2}$ (L2 norm)의 효과?
- 실제 물리적 거리를 반영합니다.
( (1,1)이면 원점에서부터의 직선 거리이기 때문 > 방향에 따른 연속적인 변화를 잘 포착할 수 있음. x축의 변화와 y축의 변화를 동시에 반영하기 때문.)
- 이상치에 민감합니다.
(각 값을 제곱하기 때문)
따라서, 실제 물리적 거리가 중요할 때, 연속적인 공간에서의 거리를 측정할 때, 방향에 따른 부드러운 변화가 필요할 때 활용할 수 있을 것 같습니다.(모든 특성을 유지하면서 과적합 방지)
( 참고 )
수학적으로는 1/2를 포함하는 것이 L2 norm과의 관계를 더 명확히 보여주지만 실제로는 λ가 하이퍼파라미터이므로 1/2 유무가 최종 결과에 영향을 미치지 않음. 결국 1/2의 유무는 λ값의 조정으로 상쇄될 수 있어서, 간단히 λ * Σw_i² 형태를 사용함.
L1 정규화와 L2 정규화의 주요 차이점을 정리해보면.
1. 가중치 : L1 정규화는 일부 가중치를 0으로 만들지만, L2 정규화는 모든 가중치를 작게 만듭니다.
2. 사용 목적 : L1 정규화는 일부 특성을 선택하여 모델을 단순화하는 것이 목적이지만, L2 정규화는 과적합을 방지하여 안정성을 확보하는데 목적을 둡니다.
3. 계산 : L1 정규화 적용시 불연속점이 존재하여 최적화가 어려울 수 있지만, L2 정규화 적용시에는 미분 가능하여 최적화가 용이합니다.
! 정규화 방법은 데이터의 특성과 문제에 따라 선택해야하며, 두 방법을 조합(Elastic Net)하는 것도 시도해볼 수 있습니다.
'1D1P' 카테고리의 다른 글
Entropy | Cross-Entropy (0) | 2024.11.25 |
---|