Mengapa fungsi biaya menggunakan kesalahan kuadrat?


73

Saya baru memulai dengan beberapa pembelajaran mesin, dan sampai sekarang saya telah berurusan dengan regresi linier atas satu variabel.

Saya telah belajar bahwa ada hipotesis, yaitu:

hθ(x)=θ0+θ1x

Untuk mengetahui nilai yang baik untuk parameter dan kami ingin meminimalkan perbedaan antara hasil yang dihitung dan hasil aktual dari data pengujian kami. Jadi kita kurangiθ 1θ0θ1

hθ(x(i))y(i)

untuk semua dari hingga . Karenanya kami menghitung jumlah di atas perbedaan ini dan kemudian menghitung rata-rata dengan mengalikan jumlah dengan . Sejauh ini bagus. Ini akan menghasilkan:1 m 1i1m1m

1mi=1mhθ(x(i))y(i)

Tapi ini bukan yang disarankan. Alih-alih, kursus menyarankan untuk mengambil nilai kuadrat dari perbedaan, dan mengalikannya dengan . Jadi rumusnya adalah:12m

12mi=1m(hθ(x(i))y(i))2

Mengapa demikian? Mengapa kita menggunakan fungsi kuadrat di sini, dan mengapa kita mengalikan dengan alih-alih ? 112m1m


3
Pertanyaan terkait di stats.stackexchange.com
user1205197

Lihat juga penjelasan Chris McCormick di goo.gl/VNiUR5
vimdude

karena itu adalah divergensi Bregman
Andrew

Jawaban:


41

Fungsi kerugian Anda tidak akan berfungsi karena ini memberikan insentif pengaturan ke nilai hingga apa pun dan hingga .θ1θ0

Mari kita sebut yang sisa untuk .r(x,y)=1mi=1mhθ(x(i))yh

Tujuan Anda adalah untuk membuat sedekat mungkin dengan nol , bukan hanya memperkecilnya . Nilai negatif tinggi sama buruknya dengan nilai positif tinggi.r

EDIT: Anda dapat melawan ini dengan secara artifisial membatasi ruang parameter (mis. Anda ingin ). Dalam hal ini, parameter optimal akan terletak pada titik-titik tertentu pada batas ruang parameter. Lihat https://math.stackexchange.com/q/896388/12467 . Ini bukan yang kamu inginkan.Θ|θ0|<10

Mengapa kita menggunakan kerugian kuadrat

Kesalahan kuadrat memaksa dan untuk mencocokkan. Ini diminimalkan pada , jika mungkin, dan selalu , karena itu adalah kuadrat dari bilangan real .h(x)yu=v0uv

|uv|juga akan bekerja untuk tujuan di atas, seperti , dengan bilangan bulat positif. Yang pertama sebenarnya digunakan (ini disebut kerugian ; Anda mungkin juga menemukan kerugian , yang merupakan nama lain untuk kesalahan kuadrat).(uv)2nn12

Jadi, mengapa kerugian kuadrat lebih baik daripada ini? Ini adalah pertanyaan mendalam terkait hubungan antara kesimpulan Frequentist dan Bayesian . Singkatnya, kesalahan kuadrat terkait dengan Gaussian Noise .

Jika data Anda tidak cocok untuk semua poin persis, yaitu tidak nol untuk beberapa titik tidak peduli apa Anda pilih (seperti yang akan selalu terjadi dalam praktek), itu mungkin karena dari kebisingan . Dalam sistem yang kompleks akan ada banyak penyebab independen kecil untuk perbedaan antara model Anda dan kenyataan : kesalahan pengukuran, faktor lingkungan dll. Dengan Central Limit Theorem (CLT), total kebisingan akan didistribusikan secara normal , yaitu sesuai dengan Distribusi Gaussian . Kami ingin memilih yang paling cocokh(x)yθ h yθmemperhitungkan distribusi kebisingan ini. Asumsikan , bagian dari yang tidak dapat dijelaskan oleh model Anda, mengikuti distribusi Gaussian . Kami menggunakan huruf kapital karena kami berbicara tentang variabel acak sekarang.R=h(X)YyN(μ,σ)

Distribusi Gaussian memiliki dua parameter, berarti dan varians . Lihat di sini untuk memahami istilah-istilah ini dengan lebih baik.μ=E[R]=1mihθ(X(i))Y(i))σ2=E[R2]=1mi(hθ(X(i))Y(i)))2

  • Pertimbangkan , itu adalah kesalahan sistematik dari pengukuran kami. Gunakan untuk memperbaiki kesalahan sistematis, sehingga (latihan untuk pembaca). Tidak ada lagi yang bisa dilakukan di sini.μh(x)=h(x)μμ=E[R]=0

  • σ mewakili kesalahan acak , juga disebut noise . Setelah kami merawat komponen noise sistematis seperti pada poin sebelumnya, prediktor terbaik diperoleh ketika diminimalkan. Dengan kata lain, prediktor terbaik adalah yang dengan distribusi paling ketat (varian terkecil) di sekitar nilai prediksi, yaitu varians terkecil. Meminimalkan kerugian kuadrat terkecil adalah hal yang sama dengan meminimalkan varians! Itu menjelaskan mengapa kerugian kuadrat terkecil bekerja untuk berbagai masalah. Kebisingan yang mendasari sangat sering Gaussian, karena CLT, dan meminimalkan kesalahan kuadrat ternyata tepatσ2=1mi(hθ(X(i))Y(i)))2 sesuatu yang harus dikerjakan!

Untuk secara bersamaan memperhitungkan mean dan varians, kami menyertakan istilah bias dalam classifier kami (untuk menangani kesalahan sistematis ), kemudian meminimalkan kerugian kuadrat.μ

Pertanyaan tindak lanjut:

  • Rugi kuadrat terkecil = Kesalahan Gaussian. Apakah setiap fungsi kerugian lainnya juga sesuai dengan beberapa distribusi kebisingan? Iya. Misalnya, kerugian (meminimalkan nilai absolut alih-alih kesalahan kuadrat) sesuai dengan distribusi Laplace (Lihat rumus untuk PDF di kotak info - hanya Gaussian dengan alih-alih ). Kehilangan populer untuk distribusi probabilitas adalah KL-divergence . -Distribusi Gaussian sangat termotivasi karena Teorema Limit Sentral1|xμ|(xμ)2, yang kita bahas sebelumnya. Kapan distribusi Laplace model kebisingan yang tepat? Ada beberapa keadaan di mana hal itu terjadi secara alami, tetapi itu lebih umum sebagai regulator untuk menegakkan sparsity : kerugian adalah yang paling tidak cembung di antara semua kerugian cembung.1

    • Seperti yang disebutkan Jan dalam komentar, minimizer dari deviasi kuadrat adalah mean dan minimizer dari jumlah deviasi absolut adalah median . Mengapa kita ingin menemukan median residu daripada rata-rata? Tidak seperti rata-rata, median tidak terlempar oleh pencilan yang sangat besar. Jadi, kerugian digunakan untuk meningkatkan ketahanan. Terkadang kombinasi keduanya digunakan.1
  • Apakah ada situasi di mana kita meminimalkan Mean dan Varians? Iya. Carilah Bias-Variance Trade-off . Di sini, kita melihat sekumpulan classifier dan menanyakan yang terbaik di antara mereka. Jika kita bertanya yang set pengklasifikasi adalah yang terbaik untuk masalah, meminimalkan baik bias dan varians menjadi penting. Ternyata selalu ada trade-off di antara mereka dan kami menggunakan regularisasi untuk mencapai kompromi.hθH

Mengenai jangka12

1/2 tidak masalah dan sebenarnya, tidak juga - keduanya adalah konstanta. Nilai optimal dari akan tetap sama di kedua kasus.mθ

  • Ekspresi untuk gradien menjadi lebih cantik dengan , karena 2 dari istilah kuadrat dibatalkan.12

    • Saat menulis kode atau algoritme, kami biasanya lebih mementingkan gradien, sehingga membantu membuatnya ringkas. Anda dapat memeriksa kemajuan hanya dengan memeriksa norma gradien. Fungsi kerugian itu sendiri kadang-kadang dihilangkan dari kode karena hanya digunakan untuk validasi jawaban akhir.
  • The berguna jika Anda memecahkan masalah ini dengan gradient descent. Kemudian gradien Anda menjadi rata-rata istilah alih-alih jumlah, jadi skalanya tidak berubah saat Anda menambahkan lebih banyak titik data.mm

    • Saya pernah mengalami masalah ini sebelumnya: Saya menguji kode dengan sejumlah kecil poin dan berfungsi dengan baik, tetapi ketika Anda mengujinya dengan seluruh dataset ada kehilangan presisi dan kadang-kadang over / under-flow, yaitu gradien Anda menjadi nanatau inf. Untuk menghindarinya, normalisasikan saja jumlah titik data.
  • Keputusan estetika ini digunakan di sini untuk mempertahankan konsistensi dengan persamaan di masa depan di mana Anda akan menambahkan istilah regularisasi . Jika Anda memasukkan , parameter regularisasi tidak akan bergantung pada ukuran dataset dan akan lebih dapat diinterpretasikan di seluruh masalah.mλm


Anda berkata, "ketika Anda mengambil turunannya, ekspresi lebih cantik, karena 2 membatalkan 2 dari istilah kuadrat". Tetapi mengapa kita ingin mengambil turunannya?
DrGeneral

Kami biasanya mengoptimalkan kerugian menggunakan gradient descent, yang mengharuskan pengambilan Derivatif. Saya tidak menyebutkan ini karena harus jelas dari konteks pertanyaan ini.
Harsh

1
Harsh, Maafkan kenaifan saya, tetapi mengapa tidak menggunakan nilai absolut alih-alih persegi?
Alexander Suraphel

1
Kesalahan absolut juga bisa berfungsi, tetapi dalam hal ini Anda akan mundur ke median yang diharapkan, bukan rata-rata. Ambil daftar kecil angka dan lihat bagaimana kerugiannya berbeda dengan menggeser perkiraan Anda (untuk kesalahan kuadrat dan absolut)
Jan van der Vegt

@AlexanderSuraphel Maaf atas keterlambatan dalam menjawab :) Saya telah menambahkan bagian di atas untuk mengatasinya
Harsh

25

Koefisien 1/2 hanya untuk kenyamanan; itu membuat turunannya, yang sebenarnya fungsinya dioptimalkan, terlihat lebih bagus. 1 / m lebih mendasar; itu menunjukkan bahwa kami tertarik pada mean squared error. Ini memungkinkan Anda untuk membuat perbandingan yang adil saat mengubah ukuran sampel, dan mencegah overflow. Pengoptimal yang disebut "stochastic" menggunakan subset dari kumpulan data (m '<m). Ketika Anda memperkenalkan regularizer (istilah aditif untuk fungsi objektif), menggunakan faktor 1 / m memungkinkan Anda untuk menggunakan koefisien yang sama untuk regularizer terlepas dari ukuran sampel.

Adapun pertanyaan tentang mengapa kuadrat dan bukan hanya perbedaannya: tidakkah Anda ingin meremehkan akan dihukum sama dengan menaksir terlalu tinggi? Mengkuadratkan menghilangkan efek dari tanda kesalahan. Mengambil nilai absolut (norma L1) juga demikian, tetapi turunannya tidak ditentukan pada asalnya, sehingga memerlukan lebih banyak kecanggihan untuk digunakan. Norma L1 memiliki kegunaannya, jadi ingatlah, dan mungkin tanyakan pada guru apakah dia akan membahasnya.


4
Selain dapat dibedakan, norma unik dalam norma karena merupakan ruang Hilbert. Fakta bahwa norma muncul dari produk dalam membuat sejumlah besar mesin tersedia untuk yang tidak tersedia untuk norma-norma lain. L p L 2L2LpL2
Steven Gubkin

6

Ukuran kesalahan dalam fungsi kerugian adalah 'jarak statistik'; berbeda dengan pemahaman populer dan pendahuluan jarak antara dua vektor dalam ruang Euclidean. Dengan 'jarak statistik' kami berusaha untuk memetakan 'dis-kesamaan' antara model yang diperkirakan dan model optimal ke ruang Euclidean.

Tidak ada aturan konstriktif mengenai perumusan 'jarak statistik' ini, tetapi jika pilihannya tepat maka pengurangan progresif dalam 'jarak' ini selama optimisasi diterjemahkan menjadi estimasi model yang semakin meningkat. Akibatnya, pilihan 'jarak statistik' atau ukuran kesalahan terkait dengan distribusi data yang mendasarinya.

Bahkan, ada beberapa ukuran jarak / kesalahan yang didefinisikan dengan baik untuk kelas yang berbeda dari distribusi statistik. Dianjurkan untuk memilih ukuran kesalahan berdasarkan distribusi data di tangan. Kebetulan bahwa distribusi Gaussian ada di mana-mana, dan akibatnya ukuran jarak yang terkait, norma L2 adalah ukuran kesalahan yang paling populer. Namun, ini bukan aturan dan ada data dunia nyata di mana implementasi optimisasi 'efisien' * akan mengadopsi ukuran kesalahan yang berbeda dari norma L2.

Pertimbangkan set divergensi Bregman . Representasi kanonik dari ukuran divergensi ini adalah norma L2 (kuadrat kesalahan). Ini juga termasuk entropi relatif (Kullback-Liebler divergence), jarak Euclidean umum (metrik Mahalanobis), dan fungsi Itakura-Saito. Anda dapat membaca lebih lanjut tentang hal ini dalam makalah ini tentang Divergensi Fungsional Bregman dan Estimasi Distribusi Bayesian .

Take-away: The L2-norm memiliki seperangkat sifat yang menarik yang menjadikannya pilihan populer untuk ukuran kesalahan (jawaban lain di sini telah menyebutkan beberapa di antaranya, cukup untuk cakupan pertanyaan ini), dan kesalahan kuadrat akan sesuai pilihan sebagian besar waktu. Namun demikian, ketika distribusi data memerlukannya, ada langkah-langkah kesalahan alternatif untuk dipilih, dan pilihannya sebagian besar tergantung pada formulasi rutin optimasi.

* Ukuran kesalahan 'yang sesuai' akan membuat fungsi kerugian cembung untuk optimasi, yang sangat membantu, berlawanan dengan beberapa ukuran kesalahan lainnya di mana fungsi kerugian adalah non-cembung dan dengan demikian sangat sulit.


5

Selain poin-poin penting yang dibuat oleh orang lain, menggunakan kesalahan kuadrat menempatkan penekanan yang lebih besar pada kesalahan yang lebih besar (apa yang terjadi dengan 1/2 ketika Anda menyamakannya vs 3/2?).

Memiliki algoritma yang menggerakkan kesalahan fraksional, yang kemungkinan akan menghasilkan klasifikasi yang benar atau perbedaan yang sangat kecil antara perkiraan dan kebenaran dasar, jika dibiarkan mendekati nol, sementara meninggalkan kesalahan besar sebagai kesalahan besar atau kesalahan klasifikasi, bukanlah karakteristik yang diinginkan dari sebuah algoritma.

Menggunakan kuadrat kesalahan menggunakan kesalahan sebagai bobot kepentingan tersirat untuk menyesuaikan prediksi.


jadi, apa kesalahan sewenang-wenang
jeza

3

Dalam formulasi Anda, Anda mencoba untuk mendapatkan penyimpangan rata-rata perkiraan Anda dari data yang diamati.

Jika nilai rata-rata aproksimasi Anda dekat atau sama dengan nilai rata-rata dari data yang diamati (sesuatu yang diinginkan dan sering terjadi dengan banyak skema aproksimasi), maka hasil formulasi Anda akan menjadi nol atau dapat diabaikan, karena kesalahan positif mengimbangi dengan negatif kesalahan. Ini mungkin mengarah pada kesimpulan bahwa perkiraan Anda bagus pada setiap sampel yang diamati, sementara itu mungkin tidak demikian. Itu sebabnya Anda menggunakan kuadrat kesalahan pada setiap sampel dan Anda menambahkannya (giliran Anda setiap kesalahan positif).

Tentu saja ini hanya solusi yang memungkinkan, karena Anda bisa menggunakan norma L1 (nilai absolut kesalahan pada setiap sampel) atau banyak lainnya, alih-alih norma L2.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.