신경망: 역전파를 사용한 학습

역전파는 신경망의 가장 일반적인 학습 알고리즘입니다. 이를 통해 다층 신경망에서 기울기 하강을 실행할 수 있습니다. Keras와 같은 많은 머신러닝 코드 라이브러리는 역전파를 자동으로 처리하므로 사용자가 기본 계산을 직접 수행할 필요가 없습니다. 다음 동영상을 시청하여 역전파의 작동 방식에 관한 개념적 개요를 알아보세요.

신경망 학습 권장사항

이 섹션에서는 역전파의 실패 사례와 신경망을 정규화하는 가장 일반적인 방법을 설명합니다.

경사 소실

하위 신경망 계층 (입력층에 더 가까운 계층)의 경사는 매우 작아질 수 있습니다. 심층 네트워크 (히든 레이어가 2개 이상인 네트워크)에서 이러한 기울기를 계산하려면 많은 작은 항의 곱을 취해야 할 수 있습니다.

하위 레이어의 경사 값이 0에 가까워지면 경사가 '사라진다'고 합니다. 사라지는 기울기가 있는 레이어는 매우 느리게 학습되거나 전혀 학습되지 않습니다.

ReLU 활성화 함수는 사라지는 기울기를 방지하는 데 도움이 될 수 있습니다.

폭발하는 그라데이션

네트워크의 가중치가 매우 큰 경우 하위 레이어의 기울기에는 많은 큰 항의 곱셈이 포함됩니다. 이 경우 수렴하기에는 너무 커지는 폭발적인 경사가 발생할 수 있습니다.

배치 정규화는 학습률을 낮추는 것처럼 경사 발산을 방지하는 데 도움이 될 수 있습니다.

비활성 ReLU 단위

ReLU 유닛의 가중치 합계가 0 아래로 떨어지면 ReLU 유닛이 중단될 수 있습니다. 0을 출력하여 네트워크의 출력에 아무것도 기여하지 않으며 역전파 중에 더 이상 그라디언트가 이를 통해 흐를 수 없습니다. 기울기 소스가 차단되면 ReLU의 입력이 가중치 합계를 0 위로 다시 가져올 만큼 충분히 변경되지 않을 수 있습니다.

학습률을 낮추면 ReLU 유닛이 죽지 않도록 할 수 있습니다.

드롭아웃 정규화

드롭아웃 정규화라는 또 다른 정규화 형태는 신경망에 유용합니다. 드롭아웃은 단일 경사 단계에 대해 네트워크에서 유닛 활성화를 무작위로 '드롭아웃'하는 방식으로 작동합니다. 드롭아웃이 많을수록 정규화가 강력해집니다.

  • 0.0 = 드롭아웃 정규화 없음
  • 1.0 = 모든 노드를 드롭합니다. 모델에서 학습을 수행하지 않습니다.
  • 0.0~1.0 사이 값 = 보다 유용함