역전파는 가장 일반적인 학습 알고리즘입니다. 다중 레이어 신경망에서 경사하강법을 가능하게 합니다. 많은 머신러닝 코드 라이브러리 (예: Keras) 역전파를 자동으로 처리하므로 기본 계산을 직접 처리합니다 다음 동영상에서 역전파 작동 방식의 개념 개요:
신경망 학습을 위한 권장사항
이 섹션에서는 역전파의 실패 사례와 신경망을 정규화하는 일반적인 방법입니다.
경사 소실
하위 신경망의 경사 네트워크 계층 (입력 계층에 더 가까운 계층)은 매우 작아질 수 있습니다. 심층 네트워크( 하나 이상의 히든 레이어)에서 경사를 계산하려면 여러 작은 항의 결과물입니다.
하위 레이어에서 그라데이션 값이 0에 가까워지면 그라데이션이 '사라졌다'고 합니다 경사 소실이 있는 레이어는 학습 속도가 매우 느리거나 느림 전혀 그렇지 않습니다.
ReLU 활성화 함수를 통해 경사 소실을 방지할 수 있습니다.
경사 발산
네트워크의 가중치가 매우 크면 해당 네트워크의 가중치가 여러 개의 큰 용어로 이루어진 결과물을 포괄하는 레이어입니다. 이 경우 경사 발산: 경사가 너무 커져 수렴되지 않는 현상입니다.
배치 정규화는 경사 발산을 방지하는 데 도움이 될 수 있으며, 학습률과 일치합니다.
ReLU 유닛 소멸
ReLU 유닛의 가중 합계가 0 아래로 떨어지면 ReLU 유닛은 있습니다. 0이 출력되어 네트워크 출력에 아무것도 기여하지 않습니다. 역전파 동안 경사가 더 이상 흐르지 않게 됩니다. 이 경사 소스가 잘리면 ReLU에 대한 입력이 충분히 변경되지 않을 수 있습니다. 가중치가 적용된 합계를 0 위로 다시 올립니다.
학습률을 낮추면 ReLU 유닛이 사라지는 것을 방지할 수 있습니다.
드롭아웃 정규화
또 다른 형태의 정규화, 즉 드롭아웃 정규화 신경망에 유용합니다 무작위로 '탈퇴'하여 단위 활성화를 생성합니다. 드롭아웃이 많을수록 정규화가 강력해집니다.
- 0.0 = 드롭아웃 정규화 없음.
- 1.0 = 모든 노드를 드롭합니다. 모델이 아무것도 학습하지 않습니다.
- 0.0과 1.0 사이의 값 = 보다 유용함.