본문 바로가기
딥러닝

가중치 감소(weight decay)

by 데이널 2024. 2. 7.

딥러닝에서 오버피팅 발생하게 되는 조건은 매개변수가 많고 표현력이 높은 모델(복잡한 모델)에서 발생하게 됩니다. 또 훈련 데이터 너무 적어 충분한 데이터 확보가 되지 않았을때도 발생하죠. 오버피팅을 방지하는 방법 중 이번 글에서 weight decay라는 방법에 대해 설명하도록 하겠습니다. 

 

 

가중치 감소(weight decay)란

가중치 매개변수의 값이 커서 과적합이 발생하는 경우를 막기 위해 적용하는 기술 입니다. 가중치 감소(weight decay)는 학습과정에서 큰 가중치에 대해서는 그에 상응하는 큰 패널티를 부과하여 오버피팅을 억제합니다. L2 정규화 또는 가중치 정규화라고도 합니다. 

 

가중치 감소(weight decay)
가중치 감소(weight decay)

 

모델이 큰 가중치를 사용하지 못하도록 손실 함수에 페널티 항을 추가하는 방법입니다. 다시말해, 가중치의 제곱 Norm(즉, L2 Norm)을 손실 함수에 더함으로써 가중치가 커지는 것을 억제합니다. 정규화 항으로 L2 Norm, L1 Norm, L ∞ Norm 중 어떤 것도 사용할 수 있으나, 일반적으로 L2 Norm을 가장 많이 사용합니다. 

 

$$ 수정 손실함수 = Original Loss +  \frac{2}{\lambda } \sum_{i=1}^{n} w_{i}^{2}  $$

 

  • Original Loss는 정규화되지 않은 손실입니다.
  • λ는 정규화의 강도를 제어하는 ​​가중치 감소 매개변수입니다.
  • n은 신경망의 총 가중치 개수입니다.
  • $ w_{i} $ ​는 네트워크의 개별 가중치를 나타냅니다.

 

정규화 항은 큰 가중치를 갖는 모델에 불이익을 주어 더 작은 가중치를 사용하도록 권장합니다. 이렇게 하면 모델이 훈련 데이터에 노이즈를 맞추는 것을 방지하고 보이지 않는 데이터에 대해 더 잘 일반화할 수 있습니다.

 

가중치 계산

 

각 가중치에 대한 정규화 항의 기울기는 가중치 자체에 비례하므로 훈련 중에 손실을 최소화할 뿐만 아니라 가중치의 크기도 줄이는 기울기 업데이트가 발생합니다. SGD(확률적 경사하강법)와 같은 최적화 알고리즘에서 가중치 감소를 통한 가중치 업데이트는 다음과 같이 계산됩니다.

 

$$ w_{i} = w_i − \eta \left ( \frac{\partial Original Loss}{\partial w_{i}} + \lambda w_{i}\right ) $$

 

  • $ \eta $는 학습률입니다.
  • $ \frac{\partial Original Loss}{\partial w_{i}} $​는 가중치에 대한 원래 손실의 기울기입니다.

 

마무리

요약하면, 가중치 감소는 훈련 중에 큰 가중치에 불이익을 주어 신경망을 정규화하는 데 도움이 됩니다. 과적합을 방지하고 딥러닝 모델의 일반화 성능을 향상시키는 일반적인 기법입니다.