Jacobian 을 벡터로 줄이는 방법에 대한 마지막 직관을 제외하고는 amoeba와 juampa에 의해 잘 포착되어 있기 때문에 이것에 대한 내 자신의 대답을 제공하는 것에 대해 약간 나쁘게 느낍니다 .
야곱 행렬의 대각선 기울기를 올바르게 도출했습니다.
∂hi∂zj=hi(1−hj):i=j
아메바가 언급했듯이 야곱의 대각선 입구를 가져와야합니다.
∂hi∂zj=−hihj:i≠j
이 두 개념 정의는 Kronecker Delta 라는 구성을 사용하여 편리하게 결합 할 수 있으므로 그래디언트의 정의는
∂hi∂zj=hi(δij−hj)
자 코비안은 정사각 행렬입니다.[J]ij=hi(δij−hj)
이 시점까지의 모든 정보는 이미 amoeba와 juampa로 덮여 있습니다. 물론 문제는 이미 계산 된 출력 오류에서 입력 오류를 가져와야한다는 것입니다. 출력 오류 의 기울기는 모든 입력에 의존하기 때문에 입력 의 기울기 는∇hixi
[∇x]k=∑i=1∇hi,k
위에서 정의한 Jacobian 행렬을 감안할 때 이것은 행렬의 곱과 출력 오류 벡터로 간단하게 구현됩니다.
σl→=Jσl+1→
softmax 레이어가 출력 레이어 인 경우,이를 엔트로피 비용 모델과 결합하면 계산이 간단 해집니다.
σl→=h⃗ −t⃗
여기서 는 레이블의 벡터이고 는 softmax 함수의 출력입니다. 단순화 된 형태는 편리 할뿐만 아니라 수치 적 안정성 측면에서도 매우 유용합니다.t⃗ h⃗