*robustness 개선 방법
=> 잡음 더하기 -> 노이즈 있는 것까지 고려해서 train -> train_loss 증가할 수 있지만 일반화 성능 증가, val_loss 감소하도록
잡음 주입이 매개변수 크기 줄이는 것보다 강력할 수 있다! (과적합 줄이는 데 있어서)
1. 입력층에 잡음 더하기: augmentation -> CNN에서 사진 픽셀 이동, 뒤집기, 돌리기 등, denoising autoencoder(비지도학습)
*무한소 분산(infinitesimal variance)을 가진 잡음을 입력에 추가. -> x+eps, tabular data에서의 augmentation
-> 입력에 정규분포 따르는 eps 추가 -> Hessian에 대한 regularization와 같다[1] ->input에 덜 민감
2. 은닉층에 잡음 더하기: dropout
3. 가중치에 잡음 더하기: 가중치를 불확실한 것으로 간주 -> 확률분포로 구현! (베이즈 추론의 확률적 구현으로 볼 수 있다)
-> 매개변수들을 매개변수공간 중 가중치의 섭동(preturbation)이 출력에 영향을 적게 미치는 공간으로 이끈다.
-> 매개변수들이, 평평한 영역들로 둘러싸인, J(theta)의 극솟점에 도달
-> 모형의 일반화 성능이 증가(robust 해진다)
4. 출력층에 잡음 더하기: *이름표 평활화(label smoothing) 기법 이용! -> 현세대 신경망에서도 널리 쓰인다.
Ex) one-hot encoding 해서 라벨 구할 때, [0,1,0] 대신 smoothing factor alpha=0.1이라면 [0.05, 0.9, 0.05] 이렇게 정답이 100%일 수는 없다고 알려준다. 그러면 정답이 아닌 것으로 예측해도 [0,1,0]을 썼을 때보다 loss가 줄어든다.
-> 모델 함수가 너무 과적합되어 그래프가 극단적으로 되지 않도록 한다. -> output smooth하게 만들어준다.
-> 정답이 아닌 인덱스에도 확률을 준다. -> 정규화효과를 주어서 일반화 성능 향상
=> infinitesimal variance + dropout + weight bias + label smoothing 구현해서 데이터 증강 -> 일반화 성능 증가 확인해보기!
[1[ Bishop, 1995, “Training with Noise is Equivalent to Tikhonov Regularization”
'딥러닝' 카테고리의 다른 글
| [Deep Learning] 신경망 설계 (2) | 2025.09.01 |
|---|---|
| [Deep Learning] 활성화 함수에 대해 (1) | 2025.08.31 |
| [Deep Learning] NLL(Negative Log Likelihood)에 대해 (1) | 2025.08.31 |
| [Deep Learning] 1. 확률론 (7) | 2025.08.10 |
| [PyTorch practice] RNN 코드 도식화하기 (0) | 2025.06.06 |