규제화란?

임의로 모델의 복잡도를 제한하는 방법으로, overfitting(과적합) 문제를 해결하는 방법 중 하나입니다. 테스트 시에 발생하는 에러(과적합)를 줄이기 위해, 가중치에 패널티를 부과하여 비용함수를 키워 과적합을 줄입니다

  • J(w) : 목적함수(손실함수)
  • Ω(w) : 규제화함수 , 학습하는 반경(범위)를 조절
  • λ : 규제의 강도를 조절하는 파라미터로 0.01~0.00001 정도 값을 사용함

규제화 함수 중 가장 쉽게 더할 수 있는 것 중 하나는 weight의 norm을 구하는 것입니다.

Norm?

벡터의 크기(혹은 길이)를 측정하는 방법이며, 두 벡터사이의 거리를 측정할 수 있습니다

 규제화함수 Norm 종류 

L1 regularization (Lasso)

  • n=1인 norm입니다.
  • 가중치의 절댓갑 합을 손실함수에 더합니다.
    • L1을 사용한 손실함수 : (wx+b-y)^2+λ|w|
    • |w1|+|w2|+...+|wd| → v자형 벡터를 가짐
  • 최소 제곱 오차의 함수 등고선과 규제 영역의 교점에서 최적의 값이 생깁니다
    • 각 방법에 대해 가능성을 유지하면서 손실함수를 최소화하는 것이 목표이므로 등고선과 규제 영역의 교차점을 찾아야 합니다.  
    • 지나치게 bias를 낮추는 것을 방지해서 결과적으로 overfitting을 막을 수 있습니다.
  • L1의 교점은 규제 영역 모서리 맨끝에서 생길 경우가 많은데 이때, w=0이 되어 sparsity가 생긴다는 장점이 있습니다.
    • 많은 파라미터들이 0이 되기 때문에, 파라미터가 줄어들어 모델이 압축이 되는데 이때 컴퓨팅 코스트를 줄일 수 있습니다.
    • w가 0이 되는 feature는 거의 쓰지 않는 특성이라 판단합니다 (= feature selection, 특성선택의 효과)
      • 0이 아닌 특성을 주로 볼 수 있기 때문에 모델이 더 나은 해석능력을 가질 수 있습니다
  • L1을 미분할 경우 유일한 해가 아닐 수 있습니다 (solution이 불안정함)
  • L1을 SGD로 구할 경우, sparse하게 하는 solution이 아닐수 있습니다
    • SGD는 최적해를 한번에 구하는 것이 아닌, 점차 근사해나가는 방법이기 때문입니다
tensorflow.keras.regularizers.l1(l=0.01)

 

L2 regularization (Ridge)

  • n=2인 norm입니다.
  • 가중치의 제곱합을 손실함수에 더합니다.
    • L2을 사용한 손실함수 : (wx+b-y)^2+λ(w^2)
  • 최소 제곱 오차의 함수 등고선과 규제 영역의 교점에서 최적의 값이 생깁니다
    • 각 방법에 대해 가능성을 유지하면서 손실함수를 최소화하는 것이 목표이므로 등고선과 규제 영역의 교차점을 찾아야 합니다.  
    • 지나치게 bias를 낮추는 것을 방지해서 결과적으로 overfitting을 막을 수 있습니다.
  • 원과 같은 형태이므로 교점이 원이 접하는 어디든 균등하게 될 수 있습니다.
    •  w가 0이 되는 경우가 L1에 비해 적습니다

  • L2를 미분하면 λw가 되는데, 이것이 w업데이트 양(-)에 추가되어 결국 자기 자신의 크기에 비례하는 속도로 감소합니다 (=가중치감쇠, weight decay)
tensorflow.keras.regularizers.l2(l=0.01)

 


  L1 L2
outlier에 강한가? O X
(제곱을 취하기 때문)
Stable한가? X O
유일해를 같는가? X O
feature selection효과? O X
sparsity? O X

 

'AI > Deep Learning' 카테고리의 다른 글

Dropout (드롭아웃)  (0) 2022.11.11
Data Augmentation (데이터 증식)  (0) 2022.11.07
CNN (Convolution Neural Network, 합성곱 신경망)  (0) 2022.11.03
Batch Normalization (배치정규화)  (0) 2022.10.22
loss function (손실함수)  (0) 2022.10.20

+ Recent posts