본문 바로가기

Deep Learning

0206 Vanishing / Exploding Gradient

Gradient의 소실과 폭주 문제

역전파 알고리즘은 출력층에서 입력층으로 오차 그레이디언트를 전파하면서 진행된다. 알고리즘이 신경망의 모든 파라미터에 대한 오차 함수의 그레이디언트를 계산하면 경사 하강법 단계에서 이 그레이디언트를 사용해 각 파라미터를 수정한다. 

그런데 알고리즘 하위층으로 진행될수록 그레이디언트가 점점 작아지는 경우가 많습니다. 경사 하강법이 하위층의 연결 가중치를 변경되지 않은 채로 둔다면 훈련이 좋은 솔루션으로 수렴되지 않을 것이다. 이 문제를 그레이디언트 소실이라고 한다. 반대로 그레이디언트 폭주 문제도 발생하는데 이런 경우는 주로 순환 신경망 RNN에서 발생한다.

 

초기 머신러닝은 시그모이드 활성화 함수와 평균이 0이고 표준편차가 1인 정규본포로 가중치를 초기화했다. 이 조합을 사용했을 때 각 층에서 출력의 분산이 입력의 분산보다 더 크다는 것을 알아냈다. 시그모이드 그래프를 잘 살펴보면 값들이 결국 0 또는 1에 많이 가까워지는 것을 알 수 있다. 이는 분산이 더 커짐을 의미한다. 신경망의 위쪽으로 갈수록 점점 분산이 커져 가장 높은 층에서는 활성화 함수가 0이나 1로 수렴한다. 이는 로지스틱 함수의 평균이 0이 아니고 0.5라는 사실 때문에 더 나빠진다.

 

로지스틱 활성화 함수는 0 과 1과 같은 극단 값에 많이 몰렸다. 이 극단 범위들은 미분했을때 0에 가깝게 분포되기 때문에 문제는 더 심각해진다.

Xavier 초기화와 He 초기화

글로럿과 벤지오는 논문에서 불안정한 그레이디언트 문제를 크게 완화하는 방법을 제한한다. 예측을 할 때는 정방향으로, 그레이디언트를 역전파할 때는 역방향으로 양방향 신호가 적절히 흘러야 한다. 신호는 죽거나 폭주 또는 소멸하지 않아야 한다. 저자들은 적절한 신호가 흐르기 위해서는 각 층의 출력에 대한 분산이 입력에 대한 분산과 같아야 한다고 주장한다.

그리고 역방향에서 층을 통화하기 전과 후의 그레이디언트 분산이 동일해야 한다. 사실 층의 입력과 출력 연결 개수가 같지 않다면 이 두가지를 보장할 수 없습니다. 하지만 저자는 새로운 대안을 제안했다. 바로 각 층의 연결 가중치를 식에 기술한 방식대로 무작위로 초기화 하는 것이다.

수렴하지 않는 활성화 함수

글로럿과 벤지오의 논문에서 얻은 통찰 중 하나는 활성화 함수를 잘못 선택하면 자칫 그레이디언트의 소실이나 폭주로 이어질 수 있다는 것이다. 그 전에는 대부분 생물학적 뉴런의 방식과 비슷한 시그모이드 활성화 함수가 최선의 선택일 것이라고 생각했지만 다른 할성화 함수가 심층 신경망에서 훨씬 더 잘 작동한다는 사실이 밝혀졌다. 특히 ReLU함수는 특정 양수값에 수렴하지 않는다는 큰 장점이 있다.

안타깝게도 ReLU 함수는 완벽하지 않다. 죽은 ReLU로 알려진 문제가 대표적이다. 하나의 노드에 연결된 가중치의 합이 음수가 되면 ReLU 함수의 그레이디언트가 0이 되므로 경사 하강법이 더는 작동하지 않은다. 

이 문제를 해결하기 위해 Leaky ReLU와 같은 변종을 사용한다

'Deep Learning' 카테고리의 다른 글

0204 Cross Validation / Confusion Matrix  (0) 2022.04.12
0203 Logistic Regression  (0) 2022.04.12
0202 Regularized Linear Models  (0) 2022.04.12
0201 Regression Model  (0) 2022.04.12
딥러닝 01::퍼셉트론에서 손실함수 까지  (0) 2022.03.22