논문 리뷰 - Noise Injection Node Regularization For Rubust Learning
몇일 전 자기전에 생각했던 방법인데 다음날 찾아보니 이미 논문이 나와있어 읽고 리뷰해봤습니다.
Abstract
해당 논문에서는심층 신경망(Deep Nerual Network, DNN)의 훈련과정 중 구조화된 노이즈를 삽입하여 정규화 효과를 내는 "노이즈 주입 노드 규제"(Noise Injection Node Regularization, NINR) 방법을 제시한다.
NINR로 학습된 DNN이 다양한 테스트 데이터 섭동 - (작고 미세한 변화나 변형, perturbations)에 대해 향상된 강건성을 보인다는것을 이론적 및 실험적으로 입증한다.
기존의 네트워크 구조나 최적화 알고리즘을 변경하지 않고 외부 노드를 추가하는 것만으로 구현이 가능하여 통합이 쉽다.
도메인 쉬프트 (훈련데이터와 테스트 데이터의 분포가 차이나는 현상, domain shift)를 포함한 여러 데이터 섭동에 대해 향상된 안정성을 발견했으며, 비구조적인 노이즈에 대해서는 NINR가 Dropout이나 L2규제와 같은 기존 방법보다 더 나은 성능을 보인다.
Introduction
검은 점: 훈련 데이터셋에서 추출된 데이터 쌍
빨간 구: 변형함수 f_corrupted에 의해 손상된 입력
회색 화살표: 네트워크 출력의 경사를 따라 가장 가까운 결정경계에 도달하는 적대적 공격(Adversarial Attack)
파란 점: 훈련 데이터에서 테스트 데이터로의 일반화
비선형 시스템은 작은 초기 섭동을 증폭시키고 누적된 행동이 정적 해로부터 극적으로 벗어나는 동적 불안정을 보인다 (혼돈이론)
SGD로 최적화된 딥러닝 신경망 또한 이와 같은 불안정을 겪으며, 이는 훈련 데이터의 고차원성에 의해 더욱 복잡해진다. (차원의 저주)
실제로 딥러닝 신경망은 많은 작업에서 놀라운 성공을 거두었으나, 입력 데이터의 섭동에 대해 매우 취약한 모습을 보여준다.
추론단계에서 입력에 작은 변화만 발생해도 완전한 예측 실패로 이어질 수 있다. (Adversarial Attack)
훈련 데이터와 테스트(실제) 데이터 간의 분포 차이(Domain Shift)와 같은 문제로 인해 모델의 일반화와 예측 성능이 저하될 수 있다.
위와 같은 왜곡은 훈련된 DNN의 중요한 단점인 취약성(vulnerable)을 드러내며, 현실 세계의 작업에서 흔히 발생하는 노이즈에 대해 네트워크가 취약해지게 된다.
훈련 데이터에 대한 과적합을 줄이고 일반화 성능을 향상시키기 위해 다양한 정규화 기법이 제안되었다. (Norm 정규화, Dropout...) 이러한 방법들은 훈련 -> 테스트 데이터로의 일반화 오류를 줄이는 데 최적화 되어있다.
NINR는 네트워크에 상관없는 노이즈를 주입하여 훈련 중 네트워크가 무의미한 입력에 대해 적응하도록 하여, 이를 통해 입력 섭동이나 도메인쉬프트 같은 문제에 대해 강건성을 크게 향상시킨다.
Noise Injection Nodes Regularization (NINR)
SGD로 최적화되는 FCNN이 있다고 가정해보자. NIN이 추가된 층에서는 입력 데이터에 무작위 노이즈 $\epsilon$이 주입되며, 이 노이즈는 각 훈련 epoch마다 특정 분포에서 샘플링된다.
NIN이 추가된 손실함수는 노이즈 변환 매개변수 $\epsilon W_{NI}$에 대한 급수 전개로 표현된다. (유도는 원문참조)
이 전개는 손실함수가 NIN 없이 계산된 $L(\theta)$와 여러 정규화 항 $R_k(\theta, W_{NI})$로 구성되며, $R_k$는 주입된 노이즈의 모멘트와 손실함수의 도함수로 표현된다.
급수를 분석하여, 두가지 주요 정규화 항인 R1과 R2를 도출한다.
R1: NIWs와 이들 노드 이후의 층에 있는 가중치들이 훈련 중 무작위적으로 이동하도록 유도하며, 이 이동은 국소 기울기에 따라 변화한다.
모델의 가중치를 훈련중에 무작위 이동시켜 모델이 다양한 입력에 대해 더 잘 대응할 수 있도록 만든다.
R2: 국소 헤시안(Hessian)의 고유값을 줄이는 방향으로 작용하여, 층 간의 국소 곡률을 감소시키는 정규화 항이다.
모델의 층 간 연결을 부드럽게 하여, 입력 데이터의 손상에 덜 민감하게 만든다.
노이즈 주입 가중치(NIW)의 변화는 네트워크 학습 과정과 노이즈 크기($\sigma_\epsilon$)에 따라 네 가지 단계로 구분지어 볼 수 있다.
분리 단계(Decoupled phase):
이 단계에서는 노이즈 크기($\sigma_\epsilon$)가 매우 작기 때문에, NIW가 손실 함수에 미치는 영향이 미미하다.
$R_1$이 $R_2$보다 훨씬 크다. $R_1$은 NIW가 랜덤하게 변화하면서 발생하는 손실 함수의 작은 변동을 의미한다.
$R_2$는 손실 함수의 곡률에 영향을 미치는 정규화 항인데, 이 단계에서는 상대적으로 작다.
결과적으로, NIW는 네트워크에 거의 영향을 미치지 않으며, 무작위적이고 작은 범위 내에서 변동한다. 이는 네트워크의 전반적인 동작에 큰 변화를 일으키지 않게 된다.
감쇠 단계(Decay phase):
노이즈 크기($\sigma_\epsilon$)가 커지지만 여전히 작을 때 발생하는 단계이다.
이 단계에서는 $R_2$가 $R_1$보다 커지는데, 이로 인해 NIW는 초기화 시 지수적으로 감소하게 된다.
NIW가 감소하면서 손실 함수의 곡률이 줄어들고, 네트워크의 강건성이 개선된다. 이 단계에서 네트워크는 훈련 데이터의 작은 변동에도 더 잘 적응하게 된다.
$R_2 \sim R_1$가 되었을 때, NIW는 점차적으로 확률적 경사 하강법(SGD)에 따라 진화한다. 이로 인해 훈련 속도는 약간 느려지지만, 네트워크의 강건성은 향상된다.
도약 단계(Catapult phase):
노이즈 크기($\sigma_\epsilon$)가 더 커지면, 훈련 알고리즘이 경직된 수치적 체제로 들어간다
이 단계에서는 $R_2$가 매우 커지며, NIW가 네트워크에 강력한 영향을 미치게 된다
그 결과, NIW는 초기 데이터 가중치를 크게 증가시켜 손실 함수가 지수적으로 증가한다
그러나 이후 네트워크는 새로운 최소값으로 회복되며, 이 과정에서 강건성이 극대화된다
다만, 이 단계에서는 네트워크의 수렴 속도가 느려질 수 있다
이 단계의 활용은 일부 응용 프로그램에만 유용할 수 있으며, 수렴 속도를 높이기 위해서는 훈련 초기 이후 학습률을 조절하는 방법이 필요할 수 있다
발산 단계(Divergent phase):
노이즈 크기($\sigma_\epsilon$)가 너무 커지면, NIW가 네트워크의 동역학을 붕괴시키는 단계이다.
이 단계에서는 NIW가 너무 크게 변동하여, 네트워크가 NIN을 억제할 수 없게 되고, 학습이 불가능해진다
이 경우, 네트워크는 입력 데이터에서 유용한 정보를 학습할 수 없게 되며, 결국 훈련에 실패하게 된다.
Experiments
아래 표는 NINR가 다양한 아키텍처에서 입력 데이터의 손상과 도메인 쉬프트에 대해 네트워크의 강건성을 향상시킨다는 것을 실험적으로 보여준다.
FC와 CNN에 NINR을 도입한 경우 네트워크가 손상된 데이터에 대해 더 높은 안정성을 보이며, 테스트 데이터에 대한 일반화 성능도 유지된다.