Gradient descent vs lm () berfungsi dalam R?

14

Saya akan melihat video dalam kursus pembelajaran mesin online gratis Andrew Ng di Stanford. Dia membahas Gradient Descent sebagai algoritma untuk menyelesaikan fungsi regresi linear dan penulisan dalam Oktaf untuk melakukannya. Agaknya saya bisa menulis ulang fungsi-fungsi di R, tetapi pertanyaan saya adalah bukankah fungsi lm () sudah memberi saya hasil regresi linier? Mengapa saya ingin menulis fungsi gradient descent sendiri? Apakah ada keuntungan atau murni sebagai latihan belajar? Apakah lm () melakukan gradient descent?

Pengguna
sumber
Saya pikir Anda mungkin perlu menerapkan gradient descent sendiri dalam bahasa lain jika tidak ada solusi yang baik dalam R (misalnya, beberapa variasi regresi, seperti regresi yang
diregulasi

Jawaban:

20

Keturunan gradien sebenarnya merupakan cara yang cukup buruk untuk menyelesaikan masalah regresi linier. The lm()fungsi dalam R internal menggunakan bentuk QR dekomposisi , yang jauh lebih efisien. Namun, gradient descent adalah teknik yang umumnya bermanfaat, dan layak diperkenalkan dalam konteks sederhana ini, sehingga lebih jelas bagaimana menerapkannya dalam masalah yang lebih kompleks. Jika Anda ingin menerapkan versi Anda sendiri sebagai latihan pembelajaran, itu adalah hal yang bermanfaat untuk dilakukan, tetapi lm()merupakan pilihan yang lebih baik jika semua yang Anda inginkan adalah alat untuk melakukan regresi linier.

Martin O'Leary
sumber
@ Martin Bisakah lm () masih lebih baik jika kita memiliki banyak fitur?
user2626445
0

Alasan gradien online berguna adalah untuk aplikasi skala besar. Bagaimanapun, sekarang ada perpustakaan yang mengimplementasikannya sehingga Anda tidak perlu memprogramnya. Ini adalah cara yang baik untuk mempelajari cara kerja berbagai hal.

Dalam kata-kata Leon Bottou:

Pembelajaran mesin skala besar pertama kali didekati sebagai masalah teknik. Misalnya, untuk memanfaatkan perangkat pelatihan yang lebih besar, kita dapat menggunakan komputer paralel untuk menjalankan algoritma pembelajaran mesin yang dikenal atau mengadaptasi metode numerik yang lebih maju untuk mengoptimalkan fungsi tujuan pembelajaran mesin yang dikenal. Pendekatan semacam itu bergantung pada asumsi menarik bahwa seseorang dapat memisahkan aspek statistik dari aspek komputasi masalah pembelajaran mesin.

Pekerjaan ini menunjukkan bahwa asumsi ini salah, dan menyerah itu mengarah pada algoritma pembelajaran yang jauh lebih efektif. Kerangka teori baru memperhitungkan efek perkiraan optimasi pada algoritma pembelajaran.

Analisis menunjukkan pengorbanan yang berbeda untuk kasus masalah pembelajaran skala kecil dan besar. Masalah pembelajaran skala kecil tunduk pada tradeoff aproksimasi-estimasi yang biasa. Masalah pembelajaran skala besar tunduk pada tradeoff kualitatif yang berbeda yang melibatkan kompleksitas komputasi dari algoritma optimasi yang mendasari dalam cara-cara non-sepele. Sebagai contoh, algoritma Stochastic Gradient Descent (SGD) nampaknya merupakan algoritma optimasi yang biasa-biasa saja, namun terbukti memiliki kinerja yang sangat baik pada masalah pembelajaran skala besar.

Pembelajaran skala besar

proyek sgd

Marbel
sumber