역 전파가 softmax / cross-entropy 출력 레이어에서 어떻게 작동하는지 이해하려고합니다.
교차 엔트로피 오류 함수는
과 와 출력 뉴런의 목표 출력으로서 J 각각. 합계는 출력 레이어의 각 뉴런 위에 있습니다. o를 J 자체 softmax를 함수의 결과이다 :
다시, 합은 출력 레이어의 각 뉴런 위에 있으며 는 뉴런 j에 대한 입력입니다 .
즉, 자신의 대응하는 출력과 이전 계층의 모든 신경 세포를 통해 합 무게 w I J 신경 향해 J 플러스 바이어스 B .
이제, 가중치 갱신에 뉴런 연결 J를 뉴런으로 출력 층 I 이전 층을, I는 사슬 규칙을 이용한 오차 함수의 편미분을 계산해야
와 뉴런의 입력으로 J .
마지막 용어는 매우 간단합니다. 와 j 사이에 하나의 가중치 만 있기 때문에 미분 값은 다음과 같습니다.
첫 번째 항은 출력 대한 오류 함수의 도출입니다 .
중간 용어는 입력 대한 softmax 함수의 도출 이 더 어렵다는 것입니다.
하자 우리 클래스에 대응하는 3 개 개의 출력 뉴런이 있다고 , B , C를 다음 O를 B = S O F t m X ( B를 ) 이다 :
그리고 몫 규칙을 사용한 파생 :
=softmax(b)−softmax2(b)=ob−o 2 b =ob(1−ob) 중간 항으로 돌아 가기 역 전파의 경우 이는 다음을 의미합니다. ∂oj
모두 모아서
즉,이 클래스의 대상이 인 경우 가중치를 업데이트하지 않습니다. 그건 옳지 않아
이것에 대해 조사한 결과, softmax 파생에 대한 두 가지 변형이 있는데, 하나는 이고 다른 하나는 여기 또는 여기 와 같이 i ≠ j 입니다.
그러나 나는 이것을 이해할 수 없다. 또한 이것이 내 오류의 원인인지 확실하지 않으므로 모든 계산을 게시합니다. 누군가가 내가 놓친 부분이나 잘못 된 부분을 명확히 할 수 있기를 바랍니다.