[이론 정리] Deep learning의 학습을 잘하기 위해서 알아두면 좋은 것

2023. 3. 20. 18:55AI/이론 정리

Generalization gap: Test error와 Training error 사이의 차이. 이 gap이 크면 좋지 않다.

Overfitting: 학습 데이터는 충분하여 학습은 잘됐는데 예측을 못하는 경우. 즉 학습데이터에만 over해서 맞도록 fitting된 경우

Underfitting: 학습 데이터도 충분하지 않아 예측을 못하는 경우

Bias and Variance

Bias: 평균적으로 봤을 때 얼마나 target에 정확하게 접근하는지

Variance: 비슷한 입력을 넣었을 때 출력이 얼마나 일관적인지

bias and variance trade-off: bias와 variance를 둘 다 줄이는 것은 불가능하다.

Bootstrapping vs Boosting

Bootstrapping: 같은 학습데이터를 이용해 학습데이터를 여러개를 만들고 이에 따른 여러 모델을 만든 다음 예측하는 값들의 평균을 내서 실제 예측값을 구함(Bagging, 앙상블)

Boosting: 모델 하나를 먼저 만들고 이 모델이 부족한 부분에 대해 이를 잘 보완할 수 있는 모델을 만들어 시퀀셜하게 즉 차례대로 모델들을 거쳐가게 하는 시스템

Minibatch vs Batch gradient update

Minibatch: 전체 데이터셋을 여러 batch로 나누어 각 batch가 끝날 때 gradient를 업데이트해준다.

Batch gradient update: 전체 데이터셋을 모두 수행한 다음 gradient를 업데이트해준다.

 

결과적으로

Mini batch 좋다. 👍

 

Adam(Adaptive Moment Estimation) = learning rate + Momentum + RMSprop

많이 사용되는 최적화 기법

 

Regulization 기법: overfitting을 방지하기 위해서사용되는 기법

1. Early stopping: overfitting이 되기 전 학습을 중단하고 다른 validation data에 대해 학습을 진행함

2. Parameter norm penalty

3. Data augmentation: 데이터를 돌리거나 뒤집어서 가공. mnist 데이터에 사용하면 의미가 달라지기 때문에 사용 불가. CIFAR-10에는 사용 가능

4. Noise robustness: 데이터에 노이즈를 넣음. 이럴 경우 모델의 성능이 좋아진다고 한다.

5. Label smoothing: 데이터에 다른 데이터를 섞어놓음. 예를 들어 강아지 사진에 고양이 사진을 넣을 수도 있다. 이런 경우를 mixup이라고 하고 강아지 사진과 고양이 사진이 오버랩 되게 표현할 수도 있다. 이를 cut mix라고 한다. 이렇게 하면 모델의 성능이 좋아진다고 한다.

6. Dropout: 랜덤하게 뉴런의 값을 0으로 만들어 배제시키는 방법

7. Batch normalization: 인풋의 값을 normalization을 해주는 방법. 특히 분류 문제에서 좋다.

 

MSE가 제곱을 사용하는 이유.

값이 많이 차이 나는 경우를 증폭시켜 주고 차이가 나지 않으면 그 정도가 작아지므로 현재 값이 많이 차이나게 하는 파라미터에 집중할 수 있다.

 

+alpha) Test set, Validation set, Train set?

train set을 모델을 만들기 위한 data set이고 validation set은 하이퍼 파라미터 튜닝이나 모델 클래스를 바꾸는데 사용하는 data set이다. test set은 최종적으로 진짜 일반화 성능을 확인하기 위한 data set이다.