L1, L2 Norm 및 Regularization

임정민·2024년 8월 24일
1

딥러닝 개념

목록 보기
5/13
post-thumbnail

*본 게시글은 유튜브 '혁펜하임 | AI & 딥러닝 강의' 선대 2-4강. 벡터의 norm 쉬운 설명, '신박Ai' [Deep Learning 101] L1, L2 Regularization 자료를 참고한 점임을 알립니다.

Norm

  • Norm은 벡터의 크기(또는 길이)나 두 벡터 간의 거리를 나타냅니다.
xp=(i=1nxip)1p\|\mathbf{x}\|_p = \left( \sum_{i=1}^{n} |x_i|^p \right)^{\frac{1}{p}}
  • xx는 n차원의 벡터입니다.
  • pp는 양수이며, 노름의 종류를 결정합니다.

1. L1 Norm

x1=i=1nxi\|\mathbf{x}\|_1 = \sum_{i=1}^{n} |x_i|
  • L1 NormL1\ Normp=1p=1일 때의 경우입니다.
  • 맨해튼 노름(Manhattan Norm) 또는 택시캡 노름(Taxicab Norm)이라고도 불립니다.
  • 이는 벡터의 각 성분의 절댓값을 더한 값으로 정의됩니다.
  • 주로 특성이 희소한 벡터(즉, 대부분의 성분이 0인 벡터)를 다룰 때 유용합니다.
  • 머신 러닝에서 특성 선택(Feature Selection) 또는 정규화(Regularization)에 자주 사용됩니다.

2. L2 Norm

x2=(i=1nxi2)12=i=1nxi2\|\mathbf{x}\|_2 = \left( \sum_{i=1}^{n} |x_i|^2 \right)^{\frac{1}{2}} = \sqrt{\sum_{i=1}^{n} x_i^2}
  • L2 NormL2\ Normp=2p=2일 때의 경우입니다.
  • 유클리드 노름(Euclidean Norm)이라고 불리며, 이는 벡터의 유클리드 거리, 즉 벡터의 각 성분을 제곱한 값들의 합의 제곱근으로 정의됩니다.
  • 주로 거리 측정에서 많이 사용됩니다. 예를 들어, 두 벡터 사이의 유클리드 거리는 그 벡터들의 차이 벡터의 L2 NormL2\ Norm으로 계산할 수 있습니다.
  • 머신 러닝에서 정규화(Regularization)에 사용되며, Ridge 회귀에서는 L2 NormL2\ Norm을 사용하여 계수를 규제하여 과적합을 방지합니다.

3. Infinite Norm

x=maxixi\|\mathbf{x}\|_\infty = \max_{i} |x_i|
  • L NormL∞\ Normp=p=∞일 때의 경우입니다.

Regularization

  • Regularization은 딥러닝 및 머신러닝에서 모델의 과적합을 방지하고 일반화 성능을 향상시키기 위해 사용되는 기법입니다.
  • 정규화(Regularization)는 모델의 복잡성을 제한하여 훈련 데이터에 과도하게 적합되는 것을 방지합니다. 일반적으로 L1 RegularizationL1\ RegularizationL2 RegularizationL2\ Regularization 정규화가 많이 사용됩니다.
  • 정규화(Regularization) 기법은 모델의 손실 함수에 추가적인 항을 추가하여 모델의 가중치에 제약을 두는 방식으로 작동합니다.

1. L1 Regularization

  • 선형 회귀 모델 정의
y^=wx+b\hat{y} = wx + b
  • 손실 함수 정의
    MSE=1Nj=1N(y^jyj)2\text{MSE} = \frac{1}{N} \sum_{j=1}^{N} (\hat{y}_j - y_j)^2
(N:데이터포인트의총개수, y^j:모델의예측값, yj:실제값)(N: 데이터 포인트의 총 개수,\ \hat{y}_j: 모델의 예측 값, \ y_j: 실제 값)
  • L1 Regularization 수식 전개
    L1=MSE+λwL_1 = \text{MSE} + \lambda |w|
L1=(y^y)2+λwL_1 = (\hat{y} - y)^2 + \lambda |w|
L1=(wx+by)2+λwL_1 = (wx + b - y)^2 + \lambda |w|
L1w=(1)w[(wx+by)2]+(2) λww\frac{\partial L_1}{\partial w} = (1)\frac{\partial}{\partial w}[(wx + b - y)^2] + (2)\ \lambda \frac{\partial}{\partial w}|w|
(1) w[(wx+by)2]=2(wx+by)x(1)\ \frac{\partial}{\partial w}[(wx + b - y)^2] = 2(wx + b - y) \cdot x
(2) ww={+λif w>0λif w<0(2) \ \frac{\partial}{\partial w}|w| = \begin{cases} + \lambda & \text{if } w > 0 \\ - \lambda & \text{if } w < 0 \\ \end{cases}
L1w=2(wx+by)x+{+λif w>0λif w<0\frac{\partial L_1}{\partial w} = 2(wx + b - y) \cdot x + \begin{cases} + \lambda & \text{if } w > 0 \\ - \lambda & \text{if } w < 0 \\ \end{cases}
  • 가중치 업데이트
w=wαL1ww^* = w - \alpha \frac{\partial L_1}{\partial w}
(α:Learning rate)(\alpha: Learning\ rate)
w=wα(2(wx+by)x+{+λif w>0λif w<0)w^* = w - \alpha \left(2(wx + b - y) \cdot x + \begin{cases} + \lambda & \text{if } w > 0 \\ - \lambda & \text{if } w < 0 \\ \end{cases}\right)
  • L1 Regularization는 가중치가 양수일 때는 λλ를 더하고, 음수일 때는 λλ를 빼는 방식으로 작용합니다. 그 결과, 일부 가중치 ww는 0으로 수렴하게 됩니다. 이렇게 가중치가 0으로 수렴함으로써 모델의 희소성이 증가하게 됩니다.

  • 희소성 유도: 가중치가 0이 되는 특성이 많아지면서, 모델은 불필요한 특성을 자동으로 제거하게 됩니다.

  • 해석 가능성 향상: 가중치가 0이 아닌 특성만 남게 되어, 어떤 특성이 모델에 중요한지를 쉽게 파악할 수 있습니다.

  • 특성 선택: L1 정규화는 자연스럽게 특성 선택의 역할을 수행하여, 모델의 성능을 향상시키고 과적합을 방지합니다.

2. L2 Regularization

  • 선형 회귀 모델 정의
y^=wx+b\hat{y} = wx + b
  • 손실 함수 정의
MSE=1Nj=1N(y^jyj)2\text{MSE} = \frac{1}{N} \sum_{j=1}^{N} (\hat{y}_j - y_j)^2
(N:데이터포인트의총개수, y^j:모델의예측값, yj:실제값)(N: 데이터 포인트의 총 개수,\ \hat{y}_j: 모델의 예측 값, \ y_j: 실제 값)
  • L2 Regularization 수식 전개
L2=MSE+λw2L_2 = \text{MSE} + \lambda w^2
L2=(y^y)2+λw2L_2 = (\hat{y} - y)^2 + \lambda w^2
L2=(wx+by)2+λw2L_2 = (wx + b - y)^2 + \lambda w^2
L2w=(1)w[(wx+by)2]+(2) λww2\frac{\partial L_2}{\partial w} = (1)\frac{\partial}{\partial w}[(wx + b - y)^2] + (2)\ \lambda \frac{\partial}{\partial w}w^2
(1) w[(wx+by)2]=2(wx+by)x(1)\ \frac{\partial}{\partial w}[(wx + b - y)^2] = 2(wx + b - y) \cdot x
(2) ww2=2λw(2) \ \frac{\partial}{\partial w}w^2 = 2\lambda w
L2w=2(wx+by)x+2λw\frac{\partial L_2}{\partial w} = 2(wx + b - y) \cdot x + 2\lambda w
  • 가중치 업데이트
w=wαL2ww^* = w - \alpha \frac{\partial L_2}{\partial w}
(α:Learning rate)(\alpha: Learning\ rate)
w=wα(2(wx+by)x+2λw)w^* = w - \alpha \left(2(wx + b - y) \cdot x + 2\lambda w\right)
  • L2 Regularization는 가중치가 클수록 그 제곱값에 비례해 가중치에 페널티를 부과합니다. 그 결과, 모든 가중치 ( w )가 0에 가깝게 작아지지만, 완전히 0이 되지는 않습니다.

  • 가중치 감소: L2 Regularization는 모든 가중치를 작게 만들어 모델이 복잡해지지 않도록 합니다.

  • 해석 가능성 향상: 가중치가 작아짐으로써, 과도하게 영향을 미치는 특성을 방지하고, 모델의 해석 가능성을 높입니다.

  • 과적합 방지: L2 정규화는 모델의 복잡성을 줄이고, 데이터에 대한 과적합을 방지하여 더 나은 일반화 성능을 갖도록 합니다.

참고 자료

profile
https://github.com/min731

0개의 댓글

관련 채용 정보