Saya menyelesaikan kursus Pembelajaran Mesin Andrew Ng sekitar setahun yang lalu, dan sekarang saya sedang menulis penjelajahan Matematika SMA saya tentang cara kerja Regresi Logistik dan teknik untuk mengoptimalkan kinerja. Salah satu teknik ini, tentu saja, regularisasi.
Tujuan dari regularisasi adalah untuk mencegah overfitting dengan memperluas fungsi biaya untuk memasukkan tujuan kesederhanaan model. Kita dapat mencapai ini dengan menghukum ukuran bobot dengan menambahkan fungsi biaya masing-masing bobot kuadrat, dikalikan dengan beberapa paramater regularisasi.
Sekarang, algoritma Machine Learning akan bertujuan untuk mengurangi ukuran bobot sambil mempertahankan akurasi pada set pelatihan. Idenya adalah bahwa kita akan mencapai beberapa titik di tengah di mana kita dapat menghasilkan model yang menggeneralisasi data dan tidak mencoba menyesuaikan semua kebisingan stokastik dengan menjadi kurang kompleks.
Kebingungan saya adalah mengapa kita menghukum ukuran bobotnya? Mengapa bobot yang lebih besar membuat model yang lebih kompleks, dan bobot yang lebih kecil membuat model yang lebih sederhana / lebih halus? Andrew Ng mengklaim dalam ceramahnya bahwa penjelasannya sulit untuk diajarkan, tetapi saya kira saya sedang mencari penjelasan ini sekarang.
Prof. Ng memang memberikan contoh bagaimana fungsi biaya baru dapat menyebabkan bobot fitur (mis. X ^ 3 dan x ^ 4) cenderung ke arah nol sehingga derajat model berkurang, tetapi ini tidak membuat lengkap penjelasan.
Intuisi saya adalah bahwa bobot yang lebih kecil akan cenderung lebih "dapat diterima" pada fitur dengan eksponen yang lebih besar daripada yang dengan eksponen lebih kecil (karena fitur dengan bobot kecil seperti dasar fungsi). Bobot yang lebih kecil menyiratkan "kontribusi" yang lebih kecil untuk fitur dengan urutan tinggi. Tetapi intuisi ini tidak terlalu konkret.
Jawaban:
Jika Anda menggunakan regularisasi, Anda tidak hanya meminimalkan kesalahan dalam-sampel tetapi juga .O u t O fSa m p l e Error≤InSampleError+ModelComplexityPenalty
Lebih tepatnya, untuk hipotesis , di mana adalah beberapa parameter, biasanya , adalah jumlah contoh dalam dataset Anda, dan adalah beberapa penalti yang bergantung pada bobot , . Ini dikenal sebagai kesalahan augmented . Sekarang, Anda hanya dapat meminimalkan fungsi di atas jika bobotnya agak kecil.h∈Hλλ∈(0,1)mΩwΩ=wTwJaug(h(x),y,λ,Ω)=J(h(x),y)+λ2mΩ h∈H λ λ ∈ ( 0 , 1 ) m Ω w Ω = wTw
Berikut adalah beberapa kode R untuk dipermainkan
Jadi, bukannya menghukum seluruh ruang hipotesis , kami menghukum setiap hipotesis individual. Kami terkadang merujuk pada hipotesis dengan vektor bobotnya .h h wH h h w
Mengenai mengapa bobot kecil sejalan dengan kompleksitas model rendah, mari kita lihat hipotesis berikut: . Secara total kami mendapat tiga parameter bobot aktif . Sekarang, mari kita atur ke nilai yang sangat kecil, . Ini mengurangi kompleksitas model menjadi: . Alih-alih tiga parameter berat aktif, kami hanya punya dua yang tersisa.w 1 , … , w 3 w 3 w 3 = 0 h 1 ( x ) = x 1 × w 1 + x 2 × w 2h1( x ) = x1× w1+ x2× w2+ x3× w3 w1, ... , ay3 w3 w3= 0 h1( x ) = x1× w1+ x2×w2
sumber
Saya tidak yakin apakah saya benar-benar tahu apa yang saya bicarakan tetapi saya akan mencobanya. Ini tidak banyak memiliki bobot kecil yang mencegah overfitting (saya pikir), itu lebih merupakan fakta bahwa regularisasi lebih kuat mengurangi ruang model. Bahkan Anda dapat mengatur sekitar 10.000000 jika Anda ingin dengan mengambil norma L2 dari nilai X Anda dikurangi vektor 10000000s. Ini juga akan mengurangi overfitting (tentu saja Anda juga harus memiliki alasan di balik melakukan hal itu (yaitu mungkin nilai Y Anda 10.000.000 kali lebih besar dari jumlah nilai X Anda, tetapi tidak ada yang benar-benar melakukannya karena Anda hanya dapat menskala ulang data).
Bias dan varians keduanya merupakan fungsi dari kompleksitas model. Ini terkait dengan teori VC jadi lihatlah itu. Semakin besar ruang model yang mungkin (yaitu nilai semua parameter Anda dapat mengambil pada dasarnya) semakin besar kemungkinan model akan sesuai. Jika model Anda dapat melakukan semuanya mulai dari garis lurus hingga bergoyang di setiap arah seperti gelombang sinus yang juga bisa naik turun, jauh lebih mungkin untuk mengambil dan memodelkan gangguan acak dalam data Anda yang bukan merupakan hasil dari sinyal yang mendasarinya tetapi hasil dari keberuntungan hanya dalam set data (inilah sebabnya mendapatkan lebih banyak data membantu overfitting tetapi tidak underfitting).
Ketika Anda mengatur, pada dasarnya Anda mengurangi ruang model. Ini tidak berarti bahwa fungsi yang lebih halus / lebih rata memiliki bias lebih tinggi dan lebih sedikit varians. Pikirkan model linier yang dilapisi dengan gelombang sinus yang dibatasi untuk memiliki osilasi amplitudo sangat kecil yang pada dasarnya tidak melakukan apa-apa (pada dasarnya merupakan garis fuzzy). Dalam arti tertentu fungsi ini sangat mudah berubah tetapi hanya sedikit lebih cocok daripada regresi linier. Alasan mengapa fungsi yang lebih halus / lebih rata cenderung memiliki bias yang lebih tinggi dan varians yang lebih sedikit adalah karena kita sebagai ilmuwan data berasumsi bahwa jika kita memiliki ruang sampel yang berkurang, kita lebih suka dengan pisau cukur tetap menggunakan model yang lebih halus dan sederhana serta membuang model. yang bergetar dan berosilasi di semua tempat. Masuk akal untuk membuang model wiggly pertama,
Regularisasi seperti regresi ridge, mengurangi ruang model karena membuatnya lebih mahal untuk menjauh dari nol (atau angka apa pun). Jadi ketika model dihadapkan dengan pilihan dengan mempertimbangkan gangguan kecil dalam data Anda, itu akan lebih cenderung keliru di sisi tidak, karena itu akan (umumnya) meningkatkan nilai parameter Anda. Jika gangguan itu disebabkan oleh peluang acak (yaitu salah satu variabel x Anda hanya memiliki sedikit korelasi acak dengan variabel y Anda) model tidak akan memperhitungkannya dibandingkan dengan regresi yang tidak diatur karena regresi yang tidak teratur tidak memiliki biaya yang terkait dengan meningkatkan ukuran beta. Namun, jika gangguan itu disebabkan oleh sinyal nyata, regresi Anda yang terregulasi akan lebih cenderung melewatinya sehingga itu memiliki bias yang lebih tinggi (dan mengapa ada tradeoff varians bias).
sumber
Cerita:
Nenek saya berjalan, tetapi tidak memanjat. Beberapa nenek melakukannya. Seorang nenek terkenal karena mendaki Kilimanjaro .
Gunung berapi aktif itu besar. Ini adalah 16.000 kaki di atas pangkalannya. (Jangan benci unit kekaisaran saya.) Terkadang juga ada gletser di atasnya.
Jika Anda naik pada tahun di mana tidak ada gletser, dan Anda sampai di puncak, apakah itu sama dengan jika ada gletser? Ketinggiannya berbeda. Jalan yang harus Anda ambil berbeda. Bagaimana jika Anda pergi ke atas ketika ketebalan gletser lebih besar? Apakah itu membuatnya lebih dari sebuah pencapaian? Sekitar 35.000 orang berusaha mendaki setiap tahun, tetapi hanya sekitar 16.000 yang berhasil.
Aplikasi:
Jadi saya akan menjelaskan kontrol bobot (alias meminimalkan kompleksitas model) kepada nenek saya, sebagai berikut:
Nenek, otak Anda adalah pemikir yang luar biasa, baik Anda mengetahuinya atau tidak. Jika saya bertanya kepada Anda berapa banyak dari 16.000 yang berpikir bahwa mereka mencapai puncak benar-benar melakukannya, Anda akan mengatakan "mereka semua".
Jika saya menempatkan sensor pada sepatu dari semua 30.000 pendaki, dan mengukur ketinggian di atas permukaan laut, maka beberapa dari orang-orang itu tidak setinggi yang lain, dan mungkin tidak memenuhi syarat. Ketika saya melakukan itu saya akan ke model konstan - saya katakan jika tinggi tidak sama dengan beberapa persentil dari ketinggian max yang diukur maka itu bukan bagian atas. Beberapa orang melompat di atas. Beberapa orang hanya melewati batas dan duduk.
Saya bisa menambahkan garis lintang dan bujur ke sensor, dan cocok dengan beberapa persamaan urutan yang lebih tinggi dan mungkin saya bisa mendapatkan yang lebih baik, dan memiliki lebih banyak orang, bahkan mungkin persis 45% dari total orang yang mencobanya.
Jadi katakanlah tahun depan adalah tahun "gletser besar" atau tahun "tidak gletser" karena beberapa gunung berapi benar-benar mengubah albedo bumi. Jika saya mengambil model saya yang rumit dan rumit dari tahun ini dan menerapkannya pada orang-orang yang naik tahun depan, model ini akan memiliki hasil yang aneh. Mungkin semua orang akan "lulus" atau bahkan terlalu tinggi untuk lulus. Mungkin tidak ada yang akan lulus, dan akan berpikir tidak ada yang benar-benar menyelesaikan pendakian. Terutama ketika modelnya kompleks, ia cenderung tidak menggeneralisasi dengan baik. Ini mungkin cocok dengan data "pelatihan" tahun ini, tetapi ketika data baru datang itu berperilaku buruk.
Diskusi:
Ketika Anda membatasi kompleksitas model, maka Anda biasanya dapat memiliki generalisasi yang lebih baik tanpa pemasangan berlebihan. Menggunakan model-model yang lebih sederhana, model yang lebih dibangun untuk mengakomodasi variasi dunia nyata, cenderung memberikan hasil yang lebih baik, semuanya setara.
Sekarang Anda memiliki topologi jaringan tetap, jadi Anda mengatakan "jumlah parameter saya sudah diperbaiki" - Saya tidak dapat memiliki variasi dalam kompleksitas model. Omong kosong. Ukur entropi dalam bobot. Ketika entropi lebih tinggi, itu berarti beberapa koefisien membawa lebih banyak "keinformatifan" daripada yang lain. Jika Anda memiliki entropi yang sangat rendah, itu berarti bahwa secara umum koefisien memiliki tingkat "keinformatifan" yang serupa. Informativeness tidak selalu merupakan hal yang baik. Dalam demokrasi Anda ingin semua orang sama, dan hal-hal seperti George Orwell "lebih setara daripada yang lain" adalah ukuran kegagalan sistem. Jika Anda tidak memiliki alasan yang bagus untuk itu, Anda ingin beban cukup mirip satu sama lain.
Pada catatan pribadi: daripada menggunakan voodoo atau heuristik, saya lebih suka hal-hal seperti "kriteria informasi" karena mereka memungkinkan saya untuk mendapatkan hasil yang dapat diandalkan dan konsisten. AIC , AICc , dan BIC adalah beberapa titik awal yang umum dan bermanfaat. Mengulangi analisis untuk menentukan stabilitas solusi, atau rentang hasil kriteria informasi adalah pendekatan umum. Orang mungkin melihat meletakkan langit-langit di entropi di beban.
sumber
Intuisi sederhana adalah sebagai berikut. Ingatlah bahwa untuk regularisasi fitur harus distandarisasi agar memiliki kira-kira. skala yang sama.
Katakanlah fungsi minimalisasi hanya jumlah kesalahan kuadrat:
Sekarang pertimbangkan regularisasi, LASSO dalam kasus ini. Fungsi yang akan diminimalkan adalah
Menambahkan fitur tambahan sekarang menghasilkan penalti tambahan: jumlah koefisien absolut semakin besar! Pengurangan SSE harus lebih besar daripada hukuman tambahan yang ditambahkan. Tidak mungkin lagi menambahkan fitur tambahan tanpa biaya.
Kombinasi standardisasi fitur dan menghukum jumlah dari koefisien absolut membatasi ruang pencarian, yang mengarah ke kurang overfitting.
Sekarang LASSO:
cenderung menempatkan koefisien ke nol, sedangkan regresi ridge:
cenderung menyusut koefisien secara proporsional. Ini dapat dilihat sebagai efek samping dari jenis fungsi menghukum. Gambar di bawah ini membantu dengan ini:
Fungsi penalti regularisasi dalam praktiknya memberikan 'anggaran' untuk parameter, seperti yang digambarkan di atas oleh area cyan.
Gambar diambil dari https://onlinecourses.science.psu.edu/stat857/node/158
Meringkas: regularisasi menghukum menambahkan parameter ekstra, dan tergantung pada jenis regularisasi akan menyusutkan semua koefisien (ridge), atau akan menetapkan sejumlah koefisien ke 0 sambil mempertahankan koefisien lainnya sejauh anggaran memungkinkan (laso)
sumber
Dengan menambahkan noise Guassian ke input, model pembelajaran akan berperilaku seperti regulator L2-penalti.
Untuk mengetahui alasannya, pertimbangkan regresi linier di mana noise ditambahkan ke fitur. Kehilangan sekarang akan menjadi fungsi dari kesalahan + kontribusi norma bobot.
lihat derivasi: https://www.youtube.com/watch?v=qw4vtBYhLp0
sumber
Saya ingat di kelas universitas, guru saya mengatakan menghukum parameter besar dapat mengurangi overfitting karena mencegah model dari memberikan terlalu banyak bobot pada fitur spesifik dalam data, yang menyebabkan overfitting karena model hanya mengingat beberapa karakteristik spesifik dari data dan menghubungkannya dengan label alih-alih mencoba mempelajari aturan umum.
sumber