본문 바로가기

boostcamp AI tech/boostcamp AI

Regularization

728x90

- generalization을 높이기 위한 노력들에 대해 알아보자. 

- testset에서의 성능을 낮추지 않으면서 training에서 학습을 방해하는 개념이다.

Early stopping

    - validation loss가 커지는 지점 전에서 학습을 멈춘다.

 

Weight decay, Parameter Norm Penalty

- 네트워크의 parameter들의 크기가 작으면 작을수록 좋다.

- function space에서 뉴럴 네트워크가 만들어내는 함수가 부드러우면 generalization에 더 좋다는 가정이 깔려있다.

- 그래서 loss를 줄일때, 학습 파라미터들의 크기도 함께 줄이는 방법이다.

 

Data Augmentation

- 데이터가 아주아주아주 많으면 generalization에는 반드시 좋다.

- 이미 갖고 있는 데이터를 어떻게든 지지고 볶아서 늘리는 방법이다. 예를들면 강아지 사진을 자르고 회전하고 위치를 옮기는 방법으로 데이터를 늘리는 것이다.

 

Noise Robustness

- 데이터와 weight에 노이즈를 첨가하는 기법이다.

- 실험적으로 효과가 있다고 한다.

 

Label Smoothing

- Cutout, CutMix, Mixup 중에서 Mixup만 살펴보면 강아지와 고양이 사진을 섞고 label도 dog 0.5, cat 0.5로 만드는 방법이다. 

- 데이터가 부족할때 활용해볼만한 기법인 듯 하다.

 

Dropout

- dropout raitio가 p라고 할때, 뉴럴네트워크의 전체 파라미터의 p만큼은 0으로 바꿔서 학습을 한다.

- 랜덤으로 선택된 어떤 weight가 0이 되면 그 weight와 연결된 노드는 forward시에 반영이 안된다. 즉 노드 하나를 꺼버리는 것이다.

- overfitting을 막기 위해 종종 사용된다.

 

Batch Normalization

- batch 학습을 할때는 매 순간 layer가 마주하는 Input 데이터의 분포가 달라진다. 이 차이를 줄여보자는 의도이다.

- input으로 들어오는 batch1 이 표준 정규분포를 따르도록 normalize한다.

- 학습과정에서 가장 최근 N개의 batch에 대한 평균 분산을 저장해 두고 inference할때는 이 값들을 normalize할 때 사용한다.

- 참고로 batch norm은 감마와 델타가 학습되는 layer다. 정규화한 값에 r를 곱하고 베타를 더해주는 작업이 이어진다.

- 증명에는 논란이 많지만 실험적으로 성능향상에 도움이 된다고 한다. 

728x90
반응형

'boostcamp AI tech > boostcamp AI' 카테고리의 다른 글

Short History of Semantic Segmentation  (1) 2023.11.22
AlexNet, VGGNet, GoogleLeNet, ResNet, DenseNet  (2) 2023.11.22
Optimization  (2) 2023.11.21
Multi gpu training, Hyper parameter Search, etc  (0) 2023.11.16
Monitoring tools  (0) 2023.11.15