Regularization

jaeha_lee·2022년 4월 10일
0

Regularization?

Overfitting을 막고 Generalization(일반화)을 높여 test에 대한 정확도를 높인다.
쉽게 말하면, network의 어떤 weight들을 0으로 만들거나 0에 가깝게 만들어 train set에 overfitting이 안되게 막는다.

  • L2 Regularization

    weight의 magnitude를 제한한다.
    ϵ^=ϵ+αΩ=ϵ+α(12ωi2)=ϵ+αω2\hat{\epsilon} = {\epsilon} + {\alpha}{\Omega} = {\epsilon} + {\alpha}(\frac{1}{2}\sum\limits{\omega_i}^2) = {\epsilon} + {\alpha}\vert{\omega}\vert{_2}
    ϵ^\hat{\epsilon}은 loss 식이며 저 뒤에 값들이 이제 계속 작아지게 학습을 진행한다.
    여기서 ϵ{\epsilon}은 원래 loss 함수이며 MSE이나 CE를 사용한다.
    α{\alpha}는 regularization rate에 해당한다. => control하게 된다. weight를
    이 값이 커지면 weight들이 더 0에 가까워진다.(크다의 기준이 1보다 크면?? 대락적인 값)
    참고로, 이 Regularizer는 input-hidden과 0utput-hidden을 다르게 해야 한다.
Ω=α12ihωih2+α22hjωhj2{\Omega} = \frac{\alpha_1}{2}\sum\limits_{i}\sum\limits_{h}{{\omega_i}_h}^2 + \frac{\alpha_2}{2}\sum\limits_{h}\sum\limits_{j}{{\omega_h}_j}^2
  • L1 Regularizer

  • dropout


    모델에서 특정 부분의 연결을 끊어서 co-adaptation 문제를 막을 수 있다.
  • co-adaptation problem

    딥러닝 연산에서 다 같이 train 하면 보통 weight들의 연관 관계가 강한 것은 점점 더 강해지고 약한 것은 점점 더 약해지는 문제이다. 이 문제를 해결 함 => dropout
  • Label Smoothing

    target label을 Regularization 하는 방법

  • Batch Normalization

    원래는 trian 속도를 높이기 위해 만들어졌던 방법 => 매우 강력한 Regularization 방법

0개의 댓글