Challenges in Training Deep Neural Network and the Latest Solutions
신경망 훈련에는 여러 가지 도전 과제가 있습니다. 이러한 문제들은 모델의 성능과 학습 효율성에 큰 영향을 미칠 수 있습니다. 주요 도전 과제들은 다음과 같습니다:
그라디언트 손실 (vanishing gradient): 깊은 신경망에서 역전파 과정 중 그라디언트가 점점 작아져 초기 층의 가중치가 제대로 업데이트되지 않는 문제입니다.
그라디언트 폭주 (exploding gradient): 그라디언트가 급격히 증가하여 학습이 불안정해지는 현상으로, 특히 순환 신경망에서 자주 발생합니다.
가중치 초기화 (weight initialization): 적절한 가중치 초기화는 학습의 시작점을 결정하며, 모델의 수렴 속도와 성능에 큰 영향을 미칩니다.
활성화 함수 선택 (choosing activation function): 각 층에 적합한 활성화 함수를 선택하는 것은 모델의 비선형성과 학습 능력을 결정짓는 중요한 요소입니다.
과적합 (overfitting): 모델이 훈련 데이터에 지나치게 최적화되어 새로운 데이터에 대한 일반화 능력이 떨어지는 문제입니다.
Vanishing/Exploding Gradient Problem
그라디언트 손실(vanishing gradient)은 역전파 과정에서 손실에 대한 편미분이 에 수렴하거나 극히 작아지는 현상입니다. 역전파 과정에서 초기 층으로 갈수록 그라디언트가 급격히 에 수렴하면, 해당 층의 가중치가 더 이상 업데이트되지 않아 학습이 멈추게 됩니다. 이는 역전파의 연쇄 법칙과 특정 활성화 함수의 고유한 특성으로 인해 발생합니다.
위의 표현 중 은 다수의 그라디언트 곱셈을 포함합니다. 그라디언트 값이 보다 작을 경우, 이 곱의 결과는 신경망의 깊이가 깊어질수록 급격히 감소하게 됩니다.
활성화 함수의 미분 값 범위도 그라디언트 손실에 큰 영향을 미칩니다.
시그모이드 함수의 도함수는 최대값이
탄젠트 함수의 도함수는 최대값이
가중치가 초기에 지나치게 작게 설정되면 모델이 제대로 학습되기도 전에 그라디언트 손실이 발생할 수 있습니다.
반대로 그라디언트 값이 보다 클 경우, 이 곱의 결과는 신경망의 깊이가 깊어질수록 급격히 증가하게 됩니다.
활성화 함수의 미분 값 범위도 그라디언트 손실에 큰 영향을 미칩니다.
가중치가 초기에 지나치게 작게 설정되면 모델이 제대로 학습되기도 전에 그라디언트 폭주가 발생할 수 있습니다.
그외에도 지나치게 불안정한 손실 지형도 영향을 줄 수 있습니다.
Solution to the Vanishing Gradient Problem
그라디언트 손실 문제를 해결하기 위해 다음과 같은 다양한 방법들이 고려될 수 있습니다. 각 방법은 특정 상황에서 효과적일 수 있으며, 때로는 여러 방법을 조합하여 사용하는 것이 최적의 결과를 가져올 수 있습니다.
활성화 함수로 ReLU(Rectified Linear Unit)와 같이 최대 미분값이 높은 함수를 사용합니다. ReLU는 양수 입력에 대해서는 선형적 출력을 제공하고, 음수 입력에 대해서는 을 출력합니다. 이러한 특성 덕분에 보다 큰 값의 그라디언트가 로 유지되므로, 깊은 신경망에서도 그라디언트가 소실되지 않고 효과적으로 전파됩니다.
회분 평균화(batch normalization)를 사용합니다. 이 기법은 각 층에 들어가는 입력을 정규화하는 과정을 거칩니다. 구체적으로, 미니배치 단위로 입력 데이터의 평균과 분산을 계산하여 정규화를 수행합니다. 이를 통해 내부 공변량 이동(internal covariate shift)을 줄이고, 각 층의 입력 분포를 안정화시켜 학습 속도를 향상시키고 그라디언트 흐름을 개선합니다.
이는 하위 문서에 나올 회분 경사 하강법(batch gradient descent)과는 구별되는 개념입니다. 회분 경사 하강법은 최적화 알고리즘의 한 종류인 반면, 회분 평균화는 신경망의 각 층에 적용되는 정규화 기법입니다.
그라디언트 손실 문제를 해결하기 위해 특별히 고안된 가중치 초기화 방법을 사용합니다. 대표적인 방법으로는 He 초기화(He initialization)와 사비어 초기화(Xavier initialization) 등이 있습니다. 이러한 초기화 방법들은 신경망의 깊이와 각 층의 뉴런 수를 고려하여 초기 가중치를 설정합니다. He 초기화는 주로 ReLU 활성화 함수와 함께 사용되며, 사비어 초기화는 시그모이드나 탄젠트 하이퍼볼릭 함수와 함께 사용됩니다. 이들 방법은 초기 가중치를 적절하게 설정함으로써 훈련 초기에 발생할 수 있는 그라디언트 손실을 방지하고, 신경망이 효과적으로 학습을 시작할 수 있도록 돕습니다.
잔차 연결(residual connections) 또는 스킵 연결(skip connections)을 사용합니다. 이 방법은 특히 매우 깊은 신경망에서 효과적입니다. 잔차 연결은 입력을 몇 개의 층을 건너뛰어 직접 후속 층에 연결함으로써, 그라디언트가 네트워크를 통해 더 쉽게 흐를 수 있게 합니다. 이는 그라디언트 경로를 단축시켜 그라디언트 손실 문제를 완화하고, 매우 깊은 네트워크의 학습을 가능하게 합니다.
Solution to the Exploding Gradient Problem
그라디언트 폭주(exploding gradient problem)는 역전파 과정에서 손실에 대한 편미분이 급수적으로 커지는 현상입니다. 앞 단락의 그라디언트 손실과 비슷한 개념입니다—해당 현상에선 후기 층에 가까울수록 급수적으로 증가합니다.
앞서 본 가중치 초기화, 회분 평균화, 잔차 연결 등을 사용할 수 있습니다. 그 외에도 학습률을 낮게 주는 방법도 있습니다.
그라디언트 클리핑(gradient clipping)은 편미분 값에 대해 최대를 임계합니다—이를 통해 값의 폭주를 막습니다.
L2 규제(L2 regularization)와 같은 무게 규제(weight regularization)는 가중치의 변이 값을 임계합니다—이를 통해 가중치가 지나치게 커지는 걸 막습니다.
LSTM, GRU 등의 구조를 사용합니다—이들은 이 문제를 해결하기 위해 특수하게 고려된 구조로 순환 신경망에 주로 적용됩니다.
Various Optimization Techniques: Further Understanding on Gradient Descent Rule
인공 신경망 학습에 대한 최적화 기술(optimization techniques)은 손실 함수를 최소화 하기 위한 방법으로 현대의 인공지능 구현에서 주요합니다.
Stochastic Gradient Descent
추계 경사 하강(stochastic gradient descent)이란 매개변수 갱신을 위한 자료에 대해 회분(batch)으로 생각합니다. 비용 함수의 편미분 계산을 위한 자료로 전체를 사용하지 않고 여러 구간들로 접근합니다.
학습이 더 빠르고 간단하다는 점 때문에 딥러닝에선 경사 하강보단추계 경사 하강을 더 자주 사용합니다.
회분의 개념 없이 자료 전체를 사용하는 경우엔 경사 하강 또는 배치 경사 하강(batch gradient descent)이로 구분합니다. 미니 배치 경사 하강(mini-batch gradient descent)은 임의로 선택된 소집합을 사용합니다.
Momentum-based Methods
가속 기반 방법(momentum-based methods)은 최적화 기술의 한 계급으로 겨사 하강 알고리즘의 수렴을 가속하기 위해 사용됩니다. 지역 최소, 안장점, 평지 등의 복잡한 최적화 환경을 가진 경우에 유용하다 평가됩니다.
Nestrov Accelerated Gradient
NAG(Nestrov Accelerated Gradient)는 현 시점의 매개변수에서 계산이 이루어지지 않고 앞서 이루어집니다—이런 학습법은 수학적으로 다음과 같이 표현할 수 있습니다.
Adaptive Moment Estimation/Adaptive Momentum Gradient
아담(adam)은 가장 많이 채택되는 학습법 최적화로 고전적인 가속 기반 방법과 RMSprop(Root Mean Square propagation)의 결합이라 생각됩니다. 대체로복잡한 환경에도 강건하고 효율적인 결과를 만드는 최적화 방법이라 평가 받습니다. 이들은 크게 두 가지 추정을 통해 모멘텀을 부하하며 이 학습법의 과정과 수식은 다음과 같습니다:
매개변수와 모멘텀을 초기화하고 학습에 필요한 상수를결정합니다.
학습률 , 제 1 모멘텀의 감소율 와 제 2 모멘텀의 감소율 를 설정합니다—보조 계수 도 정합니다.
은 초기화에 따라 정해집니다.
제 1 모멘텀 은 이 주어집니다.
제2 모멘텀 도 이 주어집니다.
편미분을 계산합니다.
제 1 모멘텀 와 제 2 모멘텀 을 갱신합니다.
계산된 모멘텀을 교정합니다.
교정한 모멘텀을 매개변수에 반영합니다.
Last updated