역전파는 신경망의 가장 일반적인 학습 알고리즘입니다. 이를 통해 다층 신경망에서 경사 하강법을 사용할 수 있습니다. 많은 머신러닝 코드 라이브러리 (예: Keras)에서 역전파를 자동으로 처리하므로 기본 계산을 직접 수행할 필요가 없습니다. 역전파 작동 방식에 관한 개념적 개요는 다음 동영상을 참고하세요.
신경망 학습 권장사항
이 섹션에서는 역전파의 실패 사례와 신경망을 정규화하는 가장 일반적인 방법을 설명합니다.
경사 소실
하위 신경망 레이어 (입력 레이어에 더 가까운 레이어)의 기울기가 매우 작아질 수 있습니다. 심층 네트워크 (숨겨진 레이어가 두 개 이상인 네트워크)에서 이러한 그라데이션을 계산하려면 작은 항의 곱을 많이 사용해야 할 수 있습니다.
하위 레이어의 경사 값이 0에 가까워지면 경사가 '사라진다'고 합니다. 그라데이션이 사라지는 레이어는 매우 느리게 학습되거나 전혀 학습되지 않습니다.
ReLU 활성화 함수는 그레이디언트 소실을 방지하는 데 도움이 될 수 있습니다.
경사 발산
네트워크의 가중치가 매우 크면 하위 레이어의 그라데이션에는 많은 큰 항의 곱이 포함됩니다. 이 경우 수렴하기에는 너무 큰 경사인 경사 폭발이 발생할 수 있습니다.
배치 정규화는 학습률을 낮추는 것과 마찬가지로 경사 발산을 방지하는 데 도움이 됩니다.
Dead ReLU Units(죽은 ReLU 단위)
ReLU 단위의 가중치가 0 미만으로 떨어지면 ReLU 단위가 멈출 수 있습니다. 0을 출력하여 네트워크의 출력에 아무런 영향을 미치지 않으며 역전파 중에 더 이상 그라데이션이 흐를 수 없습니다. 그라데이션의 소스가 차단되면 ReLU에 대한 입력이 가중 합계를 0 위로 다시 가져올 만큼 충분히 변경되지 않을 수 있습니다.
학습률을 낮추면 ReLU 유닛이 죽는 것을 방지할 수 있습니다.
드롭아웃 정규화
드롭아웃 정규화라는 또 다른 형태의 정규화는 신경망에 유용합니다. 단일 경사 단계에 대해 네트워크에서 유닛 활성화를 무작위로 '드롭아웃'하는 방식으로 작동합니다. 드롭아웃이 많을수록 정규화가 강력해집니다.
- 0.0 = 드롭아웃 정규화 없음
- 1.0 = 모든 노드를 드롭아웃합니다. 모델에서 학습을 수행하지 않습니다.
- 0.0~1.0 사이 값 = 보다 유용함