Apakah biaya lintas-entropi masuk akal dalam konteks regresi (berlawanan dengan klasifikasi)? Jika demikian, dapatkah Anda memberikan contoh mainan melalui TensorFlow? Jika tidak, mengapa tidak?
Saya membaca tentang cross-entropy di Neural Networks dan Deep Learning oleh Michael Nielsen dan sepertinya sesuatu yang secara alami dapat digunakan untuk regresi maupun klasifikasi, tetapi saya tidak mengerti bagaimana Anda akan menerapkannya secara efisien di TensorFlow sejak fungsi kerugian mengambil log (yang juga tidak saya mengerti) dan mereka terdaftar di bawah klasifikasi di sini
regression
entropy
tensorflow
cross-entropy
JacKeown
sumber
sumber
Jawaban:
Tidak, tidak masuk akal untuk menggunakan fungsi TensorFlow seperti
tf.nn.sigmoid_cross_entropy_with_logits
untuk tugas regresi. Dalam TensorFlow, "cross-entropy" adalah singkatan (atau jargon) untuk "entropi lintas kategoris." Entropi lintas kategorikal adalah operasi pada probabilitas. Masalah regresi mencoba untuk memprediksi hasil yang berkelanjutan, bukan klasifikasi.Jargon "cross-entropy" sedikit menyesatkan, karena ada sejumlah fungsi cross-entropy loss; namun, ini adalah kebiasaan dalam pembelajaran mesin untuk menyebut kerugian khusus ini sebagai kehilangan "entropi".
Jika kita melihat di luar fungsi TensorFlow yang Anda tautkan, maka tentu saja ada sejumlah fungsi lintas-entropi yang memungkinkan. Ini karena konsep umum cross-entropy adalah tentang perbandingan dua distribusi probabilitas. Bergantung pada dua distribusi probabilitas mana yang ingin Anda bandingkan, Anda mungkin tiba pada kerugian yang berbeda dari kerugian lintas-entropi kategorikal yang tipikal. Sebagai contoh, entropi silang dari target Gaussian dengan beberapa kovariansi diagonal rata-rata tetapi tetap berkurang menjadi kesalahan kuadrat-rata. Konsep umum lintas-entropi diuraikan secara lebih rinci dalam pertanyaan-pertanyaan ini:
Apakah jaringan saraf mempelajari suatu fungsi atau fungsi kerapatan probabilitas?
Bagaimana cara membangun kehilangan lintas-entropi untuk target regresi umum?
sumber
Jawaban yang diberikan oleh @Sycorax benar. Namun, perlu disebutkan bahwa menggunakan (biner) cross-entropy dalam tugas regresi di mana nilai-nilai output berada dalam kisaran [0,1] adalah hal yang valid dan masuk akal untuk dilakukan. Sebenarnya, ini digunakan dalam autoencoder gambar (misalnya di sini dan makalah ini ). Anda mungkin tertarik untuk melihat bukti matematis sederhana mengapa ini bekerja dalam kasus ini dalam jawaban ini .
sumber
Kerangka belajar yang mendalam sering menggabungkan model dan kerugian dan merujuk pada lintas-entropi model multinomial dengan softmax nonlinier oleh
cross_entropy
, yang menyesatkan. Secara umum, Anda dapat mendefinisikan cross-entropy untuk model arbitrer .sumber
Sayangnya, jawaban yang sekarang diterima oleh @Sycorax, meskipun terperinci, tidak benar.
Sebenarnya, contoh utama dari regresi melalui lintas-entropi kategoris - Wavenet - telah diterapkan di TensorFlow .
Prinsipnya adalah bahwa Anda menentukan ruang output Anda dan kemudian model Anda hanya memprediksi bin masing-masing; lihat Bagian 2.2 makalah untuk contoh dalam domain pemodelan suara. Jadi, sementara secara teknis model melakukan klasifikasi, tugas akhirnya diselesaikan adalah regresi.
Kelemahan yang jelas adalah, bahwa Anda kehilangan resolusi output. Namun, ini mungkin bukan masalah (setidaknya saya berpikir bahwa asisten buatan Google berbicara dengan suara yang sangat manusiawi ) atau Anda dapat bermain-main dengan beberapa post-processing, misalnya interpolasi antara tempat sampah yang paling mungkin dan dua tetangga.
Di sisi lain, pendekatan ini membuat model jauh lebih kuat dibandingkan dengan output unit-linier biasa, yaitu memungkinkan untuk mengekspresikan prediksi multi-modal atau untuk menilai kepercayaan itu. Namun perlu dicatat bahwa yang terakhir dapat dicapai secara alami dengan cara lain, misalnya dengan memiliki output varians (log) eksplisit seperti dalam Variational Autoencoder.
Bagaimanapun, pendekatan ini tidak skala baik untuk keluaran lebih-dimensi, karena kemudian ukuran lapisan keluaran tumbuh secara eksponensial, menjadikannya baik masalah komputasi dan pemodelan ..
sumber
Saya telah meninjau kembali pertanyaan ini karena sekarang saya tidak setuju dengan jawaban yang sebelumnya saya terima. Kehilangan lintas entropi BISA digunakan dalam regresi (meskipun tidak umum.)
Itu bermuara pada fakta bahwa cross-entropy adalah konsep yang hanya masuk akal ketika membandingkan dua distribusi probabilitas. Anda dapat mempertimbangkan jaringan saraf yang menghasilkan mean dan standar deviasi untuk distribusi normal sebagai prediksinya. Kemudian akan dihukum lebih keras karena lebih percaya diri tentang prediksi buruk. Jadi ya, itu masuk akal, tetapi hanya jika Anda mengeluarkan distribusi dalam arti tertentu. Tautan dari @SiddharthShakya dalam komentar ke pertanyaan awal saya menunjukkan ini.
sumber