728x90
해당 게시물은 "혁펜하임의 AI DEEP DIVE"를 수강하고 작성되었습니다.
Regularization은 overfitting을 줄일 수 있는 방법 중 하나이다.
Regularization에 대해 알아보기 전에 l2norml2norm과 l1norml1norm에 대하여 정리한다.
벡터 ww가 다음과 같이 정의되어 있다면, w_=[w1w2w3]
- l2norm=‖w‖2=(|w1|2+|w2|2+|w3|2)12
- l1norm=‖w‖1=(|w1|1+|w2|1+|w3|1)11
이제 l2Regularization과 l1Regularization을 정의한다.
- Rl2=L+λ‖w‖22
- Rl1=L+λ‖w‖11
기존 Loss함수에 λ‖w‖pp를 더한 형태이다. 이를 새로운 Loss function으로 사용한다.
Regularization은 loss를 줄이되, weight의 크기 또한 작게 하는 두 가지를 고려한다.
이를 통해
- weight를 0으로 보낼 가능성이 생기며 (connection을 끊는다는 의미와 같음) 모델을 경량화 할 수 있다.
- l2를 사용하면 weight의 크기가 크면 많이 줄이고, 작으면 조금 줄인다. weight의 크기를 서로 비슷하게 만들 수 있다. (node들을 골고루 사용하게끔 한다)
- l2을 사용하면 weight의 크기와 상관 없이 같은 양을 줄인다. (중요한 connection만 살린다)
그럼 왜 weight의 크기를 줄이는게 좋을까?
epoch가 커질수록 적절한 accuracy에 수렴했음에도 불구하고 weight는 계속해서 조금씩 커진다.
-> weight가 계속해서 조금씩 커지면 overfitting이 발생한다.
-> 이를 방지하자 -> Regularization
728x90
'AI' 카테고리의 다른 글
Padding, Stride, Pooling (0) | 2024.09.11 |
---|---|
CNN (Convolution Neural Network) (1) | 2024.09.10 |
Overfitting 방지를 위한 Dropout (1) | 2024.09.09 |
Overfitting, Data augmentation (0) | 2024.09.09 |
Loss Landscape, Skip connection (0) | 2024.09.09 |