Saya mencoba mempelajari pembelajaran mesin menggunakan materi Coursera . Dalam kuliah ini, Andrew Ng menggunakan algoritma gradient descent untuk menemukan koefisien model regresi linier yang akan meminimalkan fungsi kesalahan (fungsi biaya).
Untuk regresi linier, apakah kita perlu gradient descent? Tampaknya saya dapat secara analitis membedakan fungsi kesalahan dan menetapkannya ke nol untuk menyelesaikan koefisien; Apakah itu benar?
Jawaban:
Kotak Linear Least dapat diselesaikan dengan
0) Menggunakan pemecah kuadrat linier kualitas tinggi, berdasarkan SVD atau QR, seperti yang dijelaskan di bawah ini, untuk kuadrat linear tak terbatas, atau berdasarkan versi Quadratic Programming atau Optimasi Konic untuk kuadrat terkecil yang terikat atau dibatasi secara linear, seperti dijelaskan di bawah ini. Pemecah masalah seperti itu sudah dikalengkan, sangat teruji, dan siap digunakan - gunakanlah.
1) SVD, yang merupakan metode yang paling dapat diandalkan dan akurat secara numerik, tetapi juga membutuhkan lebih banyak komputasi daripada alternatif. Dalam MATLAB, solusi SVD dari masalah kuadrat linier tak terbatas A * X = b adalah pinv (A) * b, yang sangat akurat dan dapat diandalkan.
2) QR, yang cukup dapat diandalkan dan akurat secara numerik, tetapi tidak sebanyak SVD, dan lebih cepat dari SVD. Dalam MATLAB, solusi QR dari masalah kuadrat linier tak terbatas A * X = b adalah A \ b, yang cukup akurat dan dapat diandalkan, kecuali ketika A dikondisikan, yaitu, memiliki nomor kondisi yang besar. A \ b lebih cepat untuk dihitung daripada pinv (A) * b, tetapi tidak dapat diandalkan atau akurat.
3) Membentuk persamaan Normal (TERRIBLE dari sudut pandang keandalan dan akurasi numerik, karena menguadratkan angka kondisi, yang merupakan hal yang sangat buruk untuk dilakukan) dan
3a) penyelesaian dengan Cholesky Factorization (tidak baik)
3b) secara eksplisit pembalik matriks (MENGERIKAN)
4) Memecahkan sebagai masalah Pemrograman Quadratic atau masalah Orde Kerucut Kedua
4a) Memecahkan menggunakan perangkat lunak Pemrograman Kuadratik berkualitas tinggi Ini dapat diandalkan dan akurat secara numerik, tetapi membutuhkan waktu lebih lama dari SVD atau QR. Namun, mudah untuk menambahkan batasan linier terikat atau umum, atau hukuman linear atau kuadrat (dua norma) atau ketentuan regularisasi ke fungsi tujuan, dan masih menyelesaikan masalah menggunakan perangkat lunak Pemrograman Quadratic.
4b) Memecahkan sebagai masalah Kerucut Orde Kedua menggunakan perangkat lunak Conic Optimization berkualitas tinggi. Keterangannya sama dengan perangkat lunak Pemrograman Quadratic, tetapi Anda juga dapat menambahkan batasan linier terikat atau umum dan batasan kerucut lainnya atau istilah fungsi tujuan, seperti hukuman atau ketentuan regularisasi dalam berbagai norma.
5) Memecahkan menggunakan perangkat lunak optimasi tujuan umum nonlinear berkualitas tinggi. Ini mungkin masih bekerja dengan baik, tetapi secara umum akan lebih lambat dari Quadratic Programming atau Conic Optimization software, dan mungkin tidak cukup dapat diandalkan. Namun, dimungkinkan untuk memasukkan tidak hanya kendala linear terikat dan umum, tetapi juga kendala nonlinier ke dalam optimasi kuadrat terkecil. Juga, dapat digunakan untuk kuadrat terkecil nonlinier, dan jika istilah nonlinier lainnya ditambahkan ke fungsi objektif.
6) Memecahkan menggunakan algoritma optimasi non-linear tujuan umum yang buruk -> JANGAN PERNAH MELAKUKANNYA.
7) Selesaikan dengan menggunakan algoritma optimisasi tujuan umum non-linear YANG TERBURUK YANG MUNGKIN, yaitu gradient descent. Gunakan ini hanya jika Anda ingin melihat seberapa buruk dan tidak dapat diandalkannya suatu metode solusi. Jika seseorang memberi tahu Anda untuk menggunakan gradient descent untuk menyelesaikan masalah linear least square
7 i) Pelajari tentang komputasi statistik dari seseorang yang mengetahui sesuatu tentang itu
7 ii) Pelajari pengoptimalan dari seseorang yang mengetahui sesuatu tentangnya.
sumber
Menemukan koefisien model linier secara teknis adalah proses menemukan solusi untuk seperangkat Persamaan Linear .
Untuk menghitung solusi semacam itu, banyak yang
optimization techniques
telah dikembangkan danGradient Descent
merupakan salah satunya.Dengan demikian, Keturunan Gradien bukan satu-satunya cara untuk melakukan itu.
Andrew Ng menggunakannya dalam kursus ini karena mudah dimengerti, tanpa berurusan dengan Aljabar Linear dan Komputasi Angka.
sumber
GD
-gradient decent- digunakan sebagai contoh untuk memperkenalkan metode yang lebih maju (mis.SGD
- stokastikGD
).SGD
. Karena kebanyakan orang tidak memiliki matriks yang sangat besar, dekomposisi QR lebih baik. Secara umum dekomposisi QR telah membentuk dunia numerik; SIAM memilihnya sebagai salah satu dari 10 algoritma terbaik abad ke-20.