Fungsi kerugian mana yang benar untuk regresi logistik?

31

Saya membaca tentang dua versi fungsi kerugian untuk regresi logistik, mana yang benar dan mengapa?

  1. Dari Machine Learning , Zhou ZH (dalam bahasa Cina), dengan :β=(w,b) and βTx=wTx+b

    (1)l(β)=i=1m(yiβTxi+ln(1+eβTxi))

  2. Dari kursus kuliah saya, dengan :zi=yif(xi)=yi(wTxi+b)

    (2)L.(zsaya)=log(1+e-zsaya)


Saya tahu bahwa yang pertama adalah akumulasi dari semua sampel dan yang kedua adalah untuk satu sampel, tetapi saya lebih ingin tahu tentang perbedaan dalam bentuk dua fungsi kerugian. Entah bagaimana saya merasa mereka setara.

xtt
sumber

Jawaban:

31

Hubungannya adalah sebagai berikut: l(β)=sayaL.(zsaya) .

Tentukan fungsi logistik sebagai f(z)=ez1+ez=11+e-z . Mereka memiliki properti yangf(-z)=1-f(z). Atau dengan kata lain:

11+ez=e-z1+e-z.

Jika Anda mengambil kebalikan dari kedua belah pihak, maka ambil log yang Anda dapatkan:

dalam(1+ez)=dalam(1+e-z)+z.

Kurangi dari kedua sisi dan Anda akan melihat ini:z

-ysayaβTxsaya+ln(1+eysayaβTxsaya)=L.(zsaya).

Edit:

Saat ini saya membaca kembali jawaban ini dan bingung tentang bagaimana saya dapat sama dengan - y i β T x i + l n ( 1 + e y i β T x i ) . Mungkin ada kesalahan ketik pada pertanyaan awal.-ysayaβTxsaya+ln(1+eβTxsaya)-ysayaβTxsaya+ln(1+eysayaβTxsaya)

Edit 2:

Dalam hal tidak ada kesalahan ketik pada pertanyaan awal, @ManelMorales tampaknya benar untuk menarik perhatian pada fakta bahwa, ketika , fungsi massa probabilitas dapat dituliskan sebagai P ( Y i = y i ) = f ( y i β T x i ) , karena properti yang f ( - z ) = 1 - f ( z )y{-1,1}P(Ysaya=ysaya)=f(ysayaβTxsaya)f(-z)=1-f(z). Saya kembali menulis secara berbeda di sini, karena ia memperkenalkan dalih baru pada notasi . Sisanya mengikuti dengan mengambil kemungkinan log-negatif untuk setiap pengkodean y . Lihat jawabannya di bawah ini untuk lebih jelasnya.zsayay

Taylor
sumber
42

OP secara keliru percaya bahwa hubungan antara kedua fungsi ini disebabkan oleh jumlah sampel (yaitu tunggal vs semua). Namun, perbedaan sebenarnya adalah bagaimana kami memilih label pelatihan kami.

Dalam kasus klasifikasi biner, kita dapat menetapkan label y=±1 atau y=0,1 .

Seperti yang telah dinyatakan, fungsi logistik σ(z) adalah pilihan yang baik karena memiliki bentuk probabilitas, yaitu σ(-z)=1-σ(z) dan σ(z)(0,1) sebagai z± . Jika kami memilih label y=0,1 kami dapat menetapkan

P(y=1|z)=σ(z)=11+e-zP(y=0|z)=1-σ(z)=11+ez

yang dapat ditulis lebih kompak sebagai P(y|z)=σ(z)y(1-σ(z))1-y .

Lebih mudah untuk memaksimalkan kemungkinan log. Memaksimalkan kemungkinan log sama dengan meminimalkan kemungkinan log negatif. Untuk sampel m{xsaya,ysaya} , setelah mengambil logaritma natural dan beberapa penyederhanaan, kita akan menemukan:

l(z)=-log(sayamP(ysaya|zsaya))=-sayamlog(P(ysaya|zsaya))=sayam-ysayazsaya+log(1+ezsaya)

Derivasi penuh dan informasi tambahan dapat ditemukan di notebook jupyter ini . Di sisi lain, kita mungkin menggunakan label y=±1 . Cukup jelas bahwa kita dapat menetapkan

P(y|z)=σ(yz).

Juga jelas bahwa P(y=0|z)=P(y=-1|z)=σ(-z) . Mengikuti langkah yang sama seperti sebelumnya kami meminimalkan dalam hal ini fungsi kerugian

L.(z)=-log(jmP(yj|zj))=-jmlog(P(yj|zj))=jmlog(1+e-yzj)

Dimana langkah terakhir mengikuti setelah kita mengambil timbal balik yang diinduksi oleh tanda negatif. Meskipun kita tidak harus menyamakan dua bentuk ini, mengingat bahwa dalam setiap bentuk y mengambil nilai yang berbeda, namun keduanya setara:

-ysayazsaya+log(1+ezsaya)log(1+e-yzj)

Kasus ysaya=1 sepele untuk ditampilkan. Jika ysaya1 , maka ysaya=0 di sisi kiri dan ysaya=-1 di sisi kanan.

Walaupun mungkin ada alasan mendasar mengapa kita memiliki dua bentuk yang berbeda (lihat Mengapa ada dua formulasi / notasi kerugian logistik yang berbeda? ), Satu alasan untuk memilih yang pertama adalah karena pertimbangan praktis. Dalam yang pertama kita dapat menggunakan properti σ(z)/z=σ(z)(1-σ(z)) untuk menghitung secara sepele l(z) dan 2l(z), keduanya diperlukan untuk analisis konvergensi (yaitu untuk menentukan kecembungan fungsi kerugian dengan menghitung Hessian ).

Manuel Morales
sumber
Apakah fungsi kerugian logistik cembung?
user85361
2
Log reg IS cembung, tetapi tidak α -convex. Dengan demikian kita tidak dapat menempatkan batasan pada berapa lama gradient descent dibutuhkan untuk konvergen. Kita dapat menyesuaikan bentuk l untuk membuatnya sangat cembung dengan menambahkan istilah regularisasi: dengan konstanta positif λ mendefinisikan fungsi baru kita menjadi l ( z ) = l ( z ) + λ z 2 st l ( z ) adalah λ - sangat cembung dan kita sekarang dapat membuktikan batas konvergensi ll(z)αlλl(z)=l(z)+λz2l(z)λ . Sayangnya, kami sekarang meminimalkan fungsi yang berbeda! Untungnya, kita dapat menunjukkan bahwa nilai optimum dari fungsi yang diatur dekat dengan nilai optimum aslinya. l
Manuel Morales
Notebook yang Anda referensikan
Domi.Zhang
2
Saya menemukan ini sebagai jawaban yang paling membantu.
mohit6up
@ManuelMorales Apakah Anda memiliki tautan ke nilai optimal fungsi yang diatur yang dekat dengan aslinya?
Tandai
19

Saya belajar fungsi kerugian untuk regresi logistik sebagai berikut.

Regresi logistik melakukan klasifikasi biner, sehingga keluaran labelnya adalah biner, 0 atau 1. Misalkan menjadi probabilitas bahwa keluaran biner y adalah 1 diberi fitur vektor input x . Koefisien w adalah bobot yang algoritma sedang mencoba untuk belajar.P(y=1|x)yxw

P(y=1|x)=11+ewTx

Karena regresi logistik adalah biner, probabilitas hanyalah 1 minus istilah di atas.P(y=0|x)

P(y=0|x)=1-11+e-wTx

Fungsi kerugian adalah jumlah dari (A) output y = 1 dikalikan dengan P ( y = 1 ) dan (B) output y = 0 dikalikan dengan P ( y = 0 ) untuk satu contoh pelatihan, dijumlahkan lebih m contoh pelatihan.J(w)y=1P(y=1)y=0P(y=0)m

J(w)=saya=1my(saya)logP(y=1)+(1-y(saya))logP(y=0)

di mana menunjukkan label i t h dalam data pelatihan Anda. Jika sebuah instance pelatihan memiliki label 1 , maka y ( i ) = 1 , meninggalkan summen kiri di tempatnya tetapi membuat summen kanan dengan 1 - y ( i ) menjadi 0 . Di sisi lain, jika instance pelatihan memiliki y = 0 , maka summand kanan dengan term 1 - y ( i ) tetap ada, tetapi sumand kiri menjadi 0y(saya)sayath1y(saya)=11-y(saya)0y=01-y(saya)0. Probabilitas log digunakan untuk kemudahan perhitungan.

Jika kita mengganti dan P ( y = 0 ) dengan ekspresi sebelumnya, maka kita mendapatkan:P(y=1)P(y=0)

J(w)=saya=1my(saya)log(11+e-wTx)+(1-y(saya))log(1-11+e-wTx)

Anda dapat membaca lebih lanjut tentang formulir ini di catatan kuliah Stanford ini .

stackoverflowuser2010
sumber
Jawaban ini juga memberikan beberapa perspektif yang relevan di sini.
GeoMatt22
6
Ekspresi yang Anda miliki bukan kerugian (harus diminimalkan), melainkan kemungkinan log (akan dimaksimalkan).
xenocyon
2
@xenocyon true - formulasi yang sama ini biasanya ditulis dengan tanda negatif yang diterapkan pada penjumlahan penuh.
Alex Klibisz
1

Alih-alih Mean Squared Error, kami menggunakan fungsi biaya yang disebut Cross-Entropy, juga dikenal sebagai Log Loss. Kerugian lintas-entropi dapat dibagi menjadi dua fungsi biaya yang terpisah: satu untuk y = 1 dan satu untuk y = 0.

j(θ)=1msaya=1mCHaist(hθ(x(saya)),y(saya))CHaist(hθ(x),y)=-log(hθ(x))sayaf y=1CHaist(hθ(x),y)=-log(1-hθ(x))sayaf y=0

Ketika kita menempatkan mereka bersama kita memiliki:

j(θ)=1msaya=1m[y(saya)log(hθ(x(saya)))+(1-y(saya))log(1-hθ(x)(saya))]

y(1-y)y=1y=0y=0y=1

Jika Anda tidak ingin menggunakan forloop, Anda dapat mencoba bentuk vektor dari persamaan di atas

h=g(Xθ)J(θ)=1m(-yTlog(h)-(1-y)Tlog(1-h))

Seluruh penjelasan dapat dilihat di Lembar Pembelajaran Mesin .

Emanuel Fontelles
sumber