Apa bedanya softmax_cross_entropy_with_logits dari softmax_cross_entropy_with_logits_v2?

41

Secara khusus, saya kira saya bertanya-tanya tentang pernyataan ini:

Versi utama masa depan TensorFlow akan memungkinkan gradien mengalir ke input label pada backprop secara default.

Yang ditampilkan saat saya gunakan tf.nn.softmax_cross_entropy_with_logits. Dalam pesan yang sama ia mendesak saya untuk melihatnya tf.nn.softmax_cross_entropy_with_logits_v2. Saya melihat melalui dokumentasi tetapi hanya menyatakan bahwa untuk tf.nn.softmax_cross_entropy_with_logits_v2:

Backpropagation akan terjadi pada log dan label. Untuk melarang backpropagation ke label, berikan tensor label melalui stop_gradients sebelum memasukkannya ke fungsi ini.

sebagai lawan tf.nn.softmax_cross_entropy_with_logitsdari:

Backpropagation hanya akan terjadi pada log.

Menjadi sangat baru untuk subjek (saya mencoba untuk membuat jalan melalui beberapa tutorial dasar) pernyataan itu tidak begitu jelas. Saya memiliki pemahaman dangkal tentang backpropagation tetapi apa arti pernyataan sebelumnya sebenarnya? Bagaimana backpropagation dan label terhubung? Dan bagaimana hal ini mengubah cara saya bekerja tf.nn.softmax_cross_entropy_with_logits_v2dibandingkan dengan yang asli?

Christian Eriksson
sumber

Jawaban:

56

Anda memiliki banyak alasan untuk bingung, karena dalam pembelajaran yang diawasi seseorang tidak perlu mempropagandakan label. Mereka dianggap sebagai kebenaran dasar yang tetap dan hanya bobot yang perlu disesuaikan untuk mencocokkannya.

Namun dalam beberapa kasus, label itu sendiri mungkin berasal dari sumber yang dapat dibedakan, jaringan lain. Salah satu contohnya mungkin pembelajaran permusuhan . Dalam hal ini, kedua jaringan mungkin mendapat manfaat dari sinyal kesalahan. Itulah alasan mengapa tf.nn.softmax_cross_entropy_with_logits_v2itu diperkenalkan . Perhatikan bahwa ketika label adalah placeholder (yang juga tipikal), tidak ada perbedaan jika gradien mengalir atau tidak, karena tidak ada variabel untuk menerapkan gradien.

Pepatah
sumber
5
Ah saya mengerti, saya belum melampaui pembelajaran yang diawasi, banyak yang harus dipelajari. Hanya agar saya mengerti Anda dengan benar, pada dasarnya selama saya tidak menunjukkan bahwa label saya tunduk pada optimasi (ei menyimpannya sebagai tf. Variabel) mereka tidak akan tersentuh dan softmax_..._with_logits_v2akan berfungsi seperti apa softmax_with_logits? (Atau saya mungkin menggunakan tf.stop_gradient pada variabel label.)
Christian Eriksson
3
Ya itu betul.
Maxim
2
Sangat jelas dan mendidik, terima kasih banyak!
Haitao Du