Machine Learning/이론

[ML] 규제 Regularization

파송송 2022. 8. 18. 14:24
728x90

Norm

  • 벡터의 크기(길이) 를 측정하는 방법이다. (두 벡터 사이의 거리를 측정하는 방법)

L1 Norm

$$ d_{1}(p,q) = ||p-q||_{1} $$

p = (1, -2, 3) q = (5, 6, -7) 일때, L1 Norm은

|1-5| + |-2-6| + |3 - ( - 7 )| = 22


L2 Norm

$$ ||x||_{2} :=  \sqrt{ x^{2}_{1}+ \ldots +x^{2}_{n}}  $$

  • 벡터의 유클리디안 거리(직선 거리)

https://light-tree.tistory.com/125

  • L2는 항상 초록색 결과가 나온다. Unique한 값
  • L1은 빨간색, 파란색, 노란색 등 특정 Feature 없이도 같은 값을 낼 수 있다.

https://www.quora.com/When-would-you-chose-L1-norm-over-L2-norm

 


L1, L2 loss

  • L1 loss 는 실제값과 예측값 사이의 오차의 절대값 합
  • L2 loss 는 실제값과 예측값 사이이 오차 제곱 합
  • L2가 오차를 제곱하여 더하기 때문에 Outlier에 더욱 민감하게 반응함
  • Outlier가 중요하다면 L2를 쓰는 것이 좋음

규제, 정규화 Regularization

  • parameter의 값을 줄여 모델의 차수를 낮추는 방법
  • Outlier의 영향을 덜 받게 함

수식

L2

https://towardsdatascience.com/regularization-the-path-to-bias-variance-trade-off-b7a7088b4577

$$ J( \theta ) =  \frac{1}{2m}[ \sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})^{2}+ \lambda  \sum_{j=1}^n   \theta ^{2}_{j}  ]  $$


$$  \lambda  \sum_{j=1}^n   \theta ^{2}_{j}   $$

이 부분이 penalty 부분이고 \( \lambda \)는 regularization parameter이다

  • \( \lambda \) 값을 높이면 Underfitting이 발생할 수 있고
  • \( \lambda \) 값을 낮추면 Overfitting이 개선 안될 수 있다

  • 가중치가 업데이트 되지만 원점으로 한번 땡겨진 후 업데이트 됨

L1

$$ J( \theta ) =  \frac{1}{2m}[ \sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})^{2}+ \lambda  \sum_{j=1}^n   |\theta_{j}|  ] $$

$$  \lambda  \sum_{j=1}^n   |\theta_{j}|   $$

https://towardsdatascience.com/regularization-the-path-to-bias-variance-trade-off-b7a7088b4577

  • 가중치의 값이 크든 작든 공평하게 다룸 -> 작은 가중치 값을 0으로 만듦

  • \( \theta opt \) : 빨간 그래프
  • 에러가 커질수록 빨간 그래프의 크기가 커짐
  • 가운데로 다가갈 수록 overfitting 발생
  • 이를 막기 위해 규제 사용

  • L1 Norm은 뾰족한 모양을 하고 있기에 가중치 값이 0이 될 확률이 높다
  • L2 Norm은 원 모양을 하고있기에 가중치 값이 0이 될 확률이 낮다

https://mole-starseeker.tistory.com/34

 

 

 

L1, L2 Norm & L1, L2 loss & L1, L2 규제

# L1, L2 Norm Norm은 벡터의 크기를 측정하는 방법이고, 두 벡터 사이의 거리를 측정하는 방법이기도 합니다. L1 Norm은 서로 다른 두 벡터를 나타내는 각 원소들의 차이의 절댓값의 합입니다. L2 Norm은

mole-starseeker.tistory.com

 

728x90