Apakah biaya lintas-entropi masuk akal dalam konteks regresi?

13

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

JacKeown
sumber
2
Saya menemukan di sini di quora yang menyatakan berbeda dari apa yang diterima sebagai jawaban untuk pertanyaan ini
Siddharth Shakya
Jika Anda membaca seluruh respons, Anda melihat bahwa dia memberikan "versi kontinu" cross-entropy yang cukup keren, tetapi ternyata itu hanya menjadi Mean Squared Error (MSE).
JacKeown

Jawaban:

11

Tidak, tidak masuk akal untuk menggunakan fungsi TensorFlow seperti tf.nn.sigmoid_cross_entropy_with_logitsuntuk 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:

Sycorax berkata Reinstate Monica
sumber
5
Meskipun, harus disebutkan bahwa menggunakan crossentropy biner sebagai fungsi kerugian dalam tugas regresi di mana nilai-nilai output adalah nilai nyata dalam kisaran [0,1] adalah hal yang cukup masuk akal dan valid untuk dilakukan.
hari ini
[0,1]
5

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 .

hari ini
sumber
[0,1]
@InfProbSciX "itu mungkin bukan pendekatan yang masuk akal untuk menangani regresi di mana output berada dalam kisaran [0,1]." Jadi "masuk akal" dalam arti apa? Atau bagaimana Anda mendefinisikan kewajaran fungsi kerugian untuk tugas tertentu? Saya menduga pernyataan itu mungkin benar untuk setiap fungsi kerugian. Apakah ada fungsi kerugian yang masuk akal untuk digunakan untuk semua jenis tugas regresi, tentu saja setelah mendefinisikan "masuk akal"?
hari ini
Y=fθ(X)+ϵϵYBernHaikamullsaya(halθ)entropi lintas biner. Dimana hukum adalah regresi linier dengan sebelum normal pada koefisien, kerugian sesuai dengan hukuman L2 dan sebagainya. Jika memungkinkan, saya akan membuat undang-undang dan kemudian mendapatkan kerugian.
InfProbSciX
@InfProbSciX Terima kasih atas balasan Anda. Jadi seperti yang Anda sebutkan, tergantung pada tugas regresi (dan asumsi pada distribusi data, kesalahan, dll) fungsi kerugian mungkin tidak masuk akal untuk digunakan. Dan, seperti yang saya sebutkan, ini berlaku untuk semua fungsi kerugian, termasuk crossentropy. Tentu saja, saya melihat poin Anda bahwa hanya karena nilai-nilai output dalam kisaran [0,1] tidak menjamin bahwa crossentropy adalah fungsi kerugian pilihan optimal dan saya tidak mencoba untuk menyampaikan hal lain dalam jawaban saya.
hari ini
5

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 .

fθ(x)y-catatanfθ(x),
y

Lucas
sumber
2

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 ..

dedObed
sumber
1
Saya mengerti apa yang Anda katakan, tapi saya pribadi tidak akan menganggap mendiskritisasi ruang output Anda sebagai melakukan "regresi" sebanyak itu mendekati masalah regresi menggunakan klasifikasi ... tapi saya kira itu hanya masalah terminologi / konvensi.
JacKeown
1
Sepakat. Ruang mengapung 32-bit diskrit pula :-)
dedObed
-1

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.

JacKeown
sumber
1
Jawaban ini tampaknya menjawab pertanyaan dengan cara yang berbeda dari yang ditanyakan. Fungsi yang Anda tautkan dalam pertanyaan adalah tentang jenis kerugian lintas-entropi tertentu, dan pertanyaan Anda tampaknya menanyakan apakah fungsi-fungsi itu dapat digunakan dalam regresi, dan jawaban saya dituliskan seolah-olah Anda bertanya bagaimana cara menggunakan fungsi-fungsi tersebut Anda menautkan ke. Jawabannya di sini tampaknya menjawab pertanyaan "Dapatkah entropi silang digeneralisasi di luar klasifikasi?" Mengedit Q akan memperjelas bahwa fokusnya adalah pada bagaimana konsep matematika didefinisikan, daripada berfokus pada bagaimana menggunakan fungsi Tensorflow.
Sycorax berkata Reinstate Monica
Saya memahami keberatan Anda, tetapi saya berencana untuk meninggalkan pertanyaan apa adanya karena itu merupakan pertanyaan asli saya yang saya rasa dapat membantu orang dengan pertanyaan yang sama dengan yang saya miliki. Bagaimanapun, seluruh posting harus berisi informasi yang cukup secara keseluruhan.
JacKeown