딥러닝

[Deep Learning] 모델의 강건성 높이기

jun1-cs 2025. 9. 10. 22:10

*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”