Softmax_cross_entropy_with_logits'in softmax_cross_entropy_with_logits_v2 den farkı nedir?


41

Özellikle, bu ifadeyi merak ediyorum galiba:

TensorFlow'un gelecekteki ana sürümleri, gradyanların varsayılan olarak backprop'taki etiket girişlerine akmasına izin verecek.

Kullandığımda gösteriliyor tf.nn.softmax_cross_entropy_with_logits. Aynı mesajda beni incelemeye çağırıyor tf.nn.softmax_cross_entropy_with_logits_v2. Dokümantasyona baktım, ancak yalnızca şunu belirtir tf.nn.softmax_cross_entropy_with_logits_v2:

Geri yayılım hem logitlerde hem de etiketlerde gerçekleşecek. Etiketlerin geri yayılmasını engellemek için, etiket tensörlerini bu fonksiyona beslemeden önce bir stop_gradients içinden geçirin.

aksine tf.nn.softmax_cross_entropy_with_logits:

Geriye yayılım sadece logitlere gerçekleşecek.

Konuyla ilgili çok yeni olmak (bazı temel derslerden geçmeye çalışıyorum) bu ifadeler pek net değil. Geri yayılım konusunda sığ bir anlayışa sahibim, ancak önceki ifadenin anlamı ne? Geri yayılım ve etiketler nasıl bağlanır? Ve bu tf.nn.softmax_cross_entropy_with_logits_v2, orijinalin aksine nasıl çalıştığımı nasıl değiştiriyor ?

Yanıtlar:


56

Kafanız karışmak için her türlü nedene sahipsiniz, çünkü denetimli öğrenmede kişinin etiketlere geri yayılması gerekmez. Sabit temel gerçeği olarak kabul edilirler ve yalnızca ağırlıkları onlara uyacak şekilde ayarlanması gerekir.

Ancak bazı durumlarda, etiketler kendilerini olabilir türevlenebilir kaynağı, başka bir ağdan gelir. Bir örnek, ters öğrenme olabilir . Bu durumda, her iki ağ da hata sinyalinden faydalanabilir. İşte sebebi bu tf.nn.softmax_cross_entropy_with_logits_v2oldu tanıtıldı . Etiketler yer tutucular olduğunda (bunlar da tipiktir), degradenin içinden geçip geçmemesi fark yaratmaz çünkü gradyan uygulanacak değişken yoktur.


5
Ah, görüyorum ki, henüz denetimli öğrenmenin, öğrenecek çok şeyin ötesine geçmedim. Sadece sizi doğru anlayabilmem için, temelde etiketlerimin optimizasyona tabi olduğunu belirtmediğim sürece (ei onları tf.Variable olarak saklayın) dokunulmayacakları softmax_..._with_logits_v2gibi çalışacaklar softmax_with_logitsmı? (Ya da etiket değişkeninde tf.stop_gradient kullanabilirim.)
Christian Eriksson

3
Evet bu doğru.
Maxim

2
Çok açık ve eğitici, çok teşekkür ederim!
Haitao Du
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.