Geri yayılımın softmax / çapraz entropi çıkış katmanı için nasıl çalıştığını anlamaya çalışıyorum.
Çapraz entropi hata fonksiyonu:
sırasıyla nöron j'de hedef ve çıktı olarak ve ile . Toplam, çıktı katmanındaki her nöronun üzerindedir. o j , softmax işlevinin bir sonucudur:
Yine, toplam, çıktı katmanındaki her bir nöronun üzerindedir ve , nöron girdidir :
Bu, onların karşılık gelen çıkış bir önceki tabakanın tüm nöronlar üzerinde toplamı ve ağırlık nöron doğru artı bir çapraz .
Şimdi, bir ağırlık güncelleştirmek için , bir nöron bağlayan bir nöronun çıkış tabakasında önceki tabakadaki, Zincir kuralı kullanarak hata fonksiyonu kısmi türevi hesaplamak gerekir:
nöron j'ye giriş olarak ile .
Son terim oldukça basittir. ve arasında yalnızca bir ağırlık olduğundan, türev:
İlk terim, hata fonksiyonunun çıktısına göre türetilmesidir :
Orta terimi, giriş ile ilgili SoftMax fonksiyonun türetme zor:
Diyelim ki sınıflarına karşılık gelen üç çıkış nöronumuz var o zaman o b = s o f t m a x ( b ) :
ve bölüm kuralı kullanarak türetilmesi:
=sOfTmbirX(b)-sOfTmbirx2(b)=O, b-o 2 b =O, b(1-O, b) Geri orta vadede Bu araçlar geri yayılım için ∂oj
Hepsini bir araya koyarak anladım
bu, eğer bu sınıfın hedefi , bunun için ağırlıkları güncellemeyeceğim anlamına gelir . Bu doğru gelmiyor.
Bunu araştırırken, burada veya burada olduğu gibi , softmax türevi için biri, diğeri i ≠ j için iki değişkene sahip olduklarını gördüm .
Ama bundan bir anlam çıkaramıyorum. Ayrıca benim hatamın nedeni olup olmadığından bile emin değilim, bu yüzden tüm hesaplamalarımı gönderiyorum. Umarım birileri nerede bir şeyleri özlediğimi veya yanlış olduğumu netleştirebilir.