Mengapa metode Newton tidak banyak digunakan dalam pembelajaran mesin?

132

Ini adalah sesuatu yang telah mengganggu saya untuk sementara waktu, dan saya tidak dapat menemukan jawaban yang memuaskan secara online, jadi begini:

Setelah meninjau satu set ceramah tentang optimasi cembung, metode Newton tampaknya menjadi algoritma yang jauh lebih unggul daripada gradient descent untuk menemukan solusi optimal secara global, karena metode Newton dapat memberikan jaminan untuk solusinya, itu affine invariant, dan sebagian besar semuanya menyatu dalam langkah yang jauh lebih sedikit. Mengapa algoritma optimisasi orde dua, seperti metode Newton tidak banyak digunakan sebagai keturunan gradien stokastik dalam masalah pembelajaran mesin?

Fei Yang
sumber
24
Untuk jaringan saraf, deeplearningbook.org Bagian "8.6 Perkiraan Metode Orde Kedua" memberikan gambaran yang bagus. Singkatnya, "Di luar tantangan yang diciptakan oleh fitur tertentu dari fungsi objektif, seperti titik sadel, penerapan metode Newton untuk melatih jaringan saraf besar dibatasi oleh beban komputasi signifikan yang ditimpakannya." Ada alternatif yang mencoba untuk mendapatkan beberapa keuntungan dari metode Newton sambil melangkahi rintangan komputasi, tetapi mereka memiliki masalah mereka sendiri.
Franck Dernoncourt
1
lihat pertanyaan dan komentar terkait ini, stats.stackexchange.com/questions/232305/…
Haitao Du
1
Perhatikan bahwa komentar lain memiliki beberapa penerapan yang lebih luas untuk pembelajaran mesin di luar sekadar "pembelajaran mendalam". Namun sementara semua masalah ML cenderung menjadi "data besar", tidak semua masalah ML harus "fitur besar" (yaitu banyak parameter yang perlu diperhatikan), meskipun pembelajaran yang mendalam selalu demikian.
GeoMatt22
1
Perlu dicatat bahwa dalam pembelajaran mesin di luar pembelajaran mendalam, L-BFGS (yang, secara kasar, mendekati metode Newton) adalah algoritma optimasi yang cukup umum.
Dougal
2
Metode Newton mengasumsikan cembung, masalah ML modern (jaring netral) tidak mungkin mendekati cembung, meskipun diakui sebagai bidang penelitian terbuka di sana. Oleh karena itu, metode Newton mungkin sama buruknya dengan estimator linier di mana saja tetapi mendekati titik perhitungan. Anda mungkin akan mendapatkan sangat sedikit untuk peningkatan perhitungan kuadratik. Yang mengatakan, konferensi baru-baru ini di Berkeley memiliki presenter yang terus menunjukkan kemajuan dalam menggunakan metode urutan ke-2, sehingga tidak mati dengan cara apa pun.
David Parks

Jawaban:

95

Gradient descent memaksimalkan fungsi menggunakan pengetahuan turunannya. Metode Newton, algoritma pencarian akar, memaksimalkan fungsi menggunakan pengetahuan turunan keduanya. Itu bisa lebih cepat ketika turunan kedua diketahui dan mudah untuk dihitung (algoritma Newton-Raphson digunakan dalam regresi logistik). Namun, ekspresi analitik untuk turunan kedua sering rumit atau tidak dapat dilaksanakan, membutuhkan banyak perhitungan. Metode numerik untuk menghitung turunan kedua juga membutuhkan banyak perhitungan - jika nilai diperlukan untuk menghitung turunan pertama, diperlukan untuk turunan kedua.NN2

jwimberley
sumber
5
Patut dicatat bahwa (hal-hal berdasarkan) metode Gauss-Newton mungkin lebih umum. Ini adalah spesialisasi Newton ke kuadrat terkecil nonlinear.
GeoMatt22
4
Saya tidak akan menyebut Gauss-Newton sebagai spesialisasi Newton untuk kuadrat terkecil nonlinier. Saya akan menyebutnya pendekatan bastardized Newton untuk kuadrat terkecil nonlinier, yang menggunakan pendekatan Hessian yang lebih tidak akurat, semakin besar residu dalam persamaan pas, dan karenanya, semakin jauh argumen dari optimalitas.
Mark L. Stone
1
@ MarkL.Stone fair point, saya mencoba untuk tidak masuk ke masalah teknis :) Memang benar bahwa metode gaya Gauss-Newton mencoba untuk "memalsukan" urutan kedua dengan hanya info urutan pertama. Secara pribadi saya belum pernah menggunakan metode Newton untuk optimasi, hanya Gauss-Newton (atau LM, atau ~ UKF serupa) atau metode DFO-SQP (misalnya BOBYQA ). "Optimalitas" adalah pertanyaan rumit yang akan saya katakan ... untuk masalah ML, vs. katakanlah masalah rekayasa-optimasi desain, keandalan / keinformatifan dari "Hessian lokal" dapat meragukan. Mungkin DFO-SQP non-lokal adalah ~ "stochastic Newton"? (mis. "online")
GeoMatt22
1
Setelah dipikir-pikir, pendekatan DFO-SQP cenderung nonlokal dalam ruang parameter , bukan kumpulan data. The UKF mungkin yang paling dekat dalam rasa untuk "stochastic Newton" karena secara online w / memori terbatas ... tapi efektif mengasumsikan Hessian positif-yang pasti (yaitu Gaussian approx.).
GeoMatt22
1
Sebenarnya itu adalah alasan yang menyesatkan karena ada metode urutan kedua seperti CG yang tidak memerlukan komputasi hessian. k iterasi CG hanya akan dikenakan biaya kN. Benar bahwa CG secara teoritis akan cocok dengan Newton hanya pada k = N, tetapi Anda benar-benar tidak membutuhkan banyak iterasi.
user25322
40

Lebih banyak orang harus menggunakan metode Newton dalam pembelajaran mesin *. Saya mengatakan ini sebagai seseorang dengan latar belakang dalam optimasi numerik, yang telah mencoba-coba pembelajaran mesin selama beberapa tahun terakhir.

Kelemahan dalam jawaban di sini (dan bahkan dalam literatur) tidak menjadi masalah jika Anda menggunakan metode Newton dengan benar. Selain itu, kelemahan yang penting juga memperlambat penurunan gradien jumlah yang sama atau lebih, tetapi melalui mekanisme yang kurang jelas.

  • Menggunakan pencarian garis dengan kondisi Wolfe atau menggunakan atau mempercayai daerah mencegah konvergensi ke poin sadel. Implementasi gradient descent yang tepat harus melakukan ini juga. The kertas dirujuk dalam jawaban Cam.Davidson.Pilon ini menunjukkan masalah dengan "metode Newton" di hadapan poin pelana, tetapi memperbaiki mereka menganjurkan juga merupakan metode Newton.

  • Menggunakan metode Newton tidak memerlukan pembangunan seluruh (padat) Hessian; Anda dapat menerapkan kebalikan dari Hessian ke vektor dengan metode berulang yang hanya menggunakan produk-produk matriks-vektor (misalnya, metode Krylov seperti gradien konjugat). Lihat, misalnya, metode wilayah kepercayaan CG-Steihaug.

  • Anda dapat menghitung produk-produk vektor-matriks Hessian secara efisien dengan menyelesaikan dua persamaan adjoint orde tinggi dari bentuk yang sama dengan persamaan adjoint yang sudah digunakan untuk menghitung gradien (misalnya, karya dua langkah propagasi balik dalam pelatihan jaringan saraf).

  • Pengondisian yang buruk memperlambat konvergensi dari pemecah linear yang berulang, tetapi juga memperlambat penurunan gradien secara merata atau lebih buruk. Menggunakan metode Newton daripada gradient descent menggeser kesulitan dari tahap optimisasi nonlinier (di mana tidak banyak yang dapat dilakukan untuk memperbaiki situasi) ke tahap aljabar linier (di mana kita dapat menyerang dengan seluruh arsenal teknik prakondisi aljabar linear numerik).

  • Juga, perhitungan bergeser dari "banyak langkah murah" ke "beberapa langkah mahal", membuka lebih banyak peluang untuk paralelisme pada tingkat sub-langkah (aljabar linier).

Untuk informasi latar belakang tentang konsep-konsep ini, saya merekomendasikan buku "Numerical Optimization" oleh Nocedal dan Wright.

* Tentu saja, metode Newton tidak akan membantu Anda dengan L1 atau penginderaan terkompresi / sparsity serupa lainnya yang mempromosikan fungsi penalti, karena tidak memiliki kelancaran yang diperlukan.

Nick Algeria
sumber
2
Saya pikir kita dalam perjanjian kekerasan satu sama lain, bukan dengan orang lain.
Mark L. Stone
1
Itu seperti membandingkan apakah Inggris atau AS menghasilkan ahli matematika penelitian yang lebih baik dengan membandingkan kemampuan matematika putus sekolah SMA pecandu 26 tahun, daripada dengan membandingkan eselon atas siswa lulusan matematika yang keluar dari sekolah terbaik masing-masing negara. Makalah ini ditandatangani, disegel, dan dikirim, tidak ada, dan maksud saya tidak ada yang mengubahnya atau menariknya sekarang. Tidak bisa dihancurkan.
Mark L. Stone
3
@ MarkL.Stone Sepertinya percakapan terjadi di sini dan dihapus saat saya pergi. Bagaimanapun, saya pikir Anda benar bahwa kami sepakat satu sama lain dan tidak ada orang lain. Saya kira ini yang diharapkan berdasarkan latar belakang kita dibandingkan dengan orang lain di sini. Seperti yang mungkin Anda harapkan, saya tidak terlalu memikirkan makalah terkait. Di sisi lain, saya berpikir bahwa Riemannian manifold metode Newton , di mana seseorang menembakkan lintasan geodesi dalam arah pencarian Newton, adalah teknik dengan banyak janji untuk masalah yang sangat sulit.
Nick Alger
2
Bagaimana Anda menangani satu set pelatihan besar? Jika Anda memiliki mis. 1 juta sampel pelatihan, maka hanya mengevaluasi tujuan optimasi saat ini memerlukan pengujian 1 juta sampel. Dan Anda perlu melakukannya berkali-kali selama pencarian baris. Jadi pada saat Anda telah melakukan 1 langkah Newton, Stochastic Gradient Descent akan melakukan beberapa juta pembaruan.
nikie
2
Nick dan @ MarkL.Stone: Apakah Anda pada dasarnya berbicara tentang pendekatan ini ? Ini adalah sesuatu yang secara singkat populer dalam pembelajaran yang mendalam, terutama untuk jaring berulang, tetapi sejak itu tidak disukai saya berasumsi karena itu hanya tidak bekerja secara empiris yang jauh lebih baik daripada metode gradien adaptif. Jika mereka hanya melakukan sesuatu yang salah, dan Anda memperbaiki apa pun itu dan menunjukkannya secara umum mengungguli varian standar SGD Adam, Anda mungkin membuat dampak besar: koran Adam telah memiliki 1.345 kutipan dalam dua tahun ....
Dougal
33

Saya baru-baru ini belajar sendiri - masalahnya adalah proliferasi titik sadel di ruang dimensi tinggi, yang ingin disatukan oleh metode Newton. Lihat artikel ini: Mengidentifikasi dan menyerang masalah titik sadel dalam optimasi non-cembung dimensi tinggi .

Memang rasio jumlah titik sadel ke minimum lokal meningkat secara eksponensial dengan dimensi N.

Sementara dinamika penurunan gradien diusir dari titik sadel ke kesalahan yang lebih rendah dengan mengikuti arah kelengkungan negatif, ... metode Newton tidak memperlakukan titik sadel dengan tepat; sebagaimana didalilkan di bawah ini, sadel-poin malah menjadi menarik di bawah dinamika Newton.

Cam.Davidson.Pilon
sumber
3
Bisakah Anda menambahkan beberapa alasan mengapa demikian? Secara teori, metode Newton membentuk penurunan gradien tertimbang dengan bobot "optimal" untuk masing-masing vektor eigen.
nbubis
4
Apa yang artikel itu katakan tentang metode Newton "ingin" konvergen ke titik pelana hanya berlaku untuk implementasi sampah dari metode Newton.
Mark L. Stone
Makalah ini merekam ulang masalah dalam hal nilai eigen dan vektor eigen, dan menggunakannya untuk menunjukkan bahwa gradient descent bergerak menjauh dari titik pelana: ia bergerak menuju titik pelana ke arah vektor-e negatif, tetapi bergerak menjauh ke arah vektor vektor e-positif, sehingga akhirnya meninggalkan titik sadel. Newton, di sisi lain, tidak memiliki jaminan seperti itu.
Elizabeth Santorella
Algoritma baru yang mereka anjurkan dalam makalah ini adalah (varian dari) metode Newton. pada dasarnya metode Newton untuk arah kelengkungan positif dan metode Newton negatif untuk arah kelengkungan negatif.
Nick Alger
26

Kombinasi dua alasan:

  • Metode Newton menarik untuk poin pelana;
  • poin sadel umum dalam pembelajaran mesin, atau bahkan optimasi multivariabel.

Lihatlah fungsi

f=x2y2
masukkan deskripsi gambar di sini

Jika Anda menerapkan metode multivarian Newton , Anda mendapatkan yang berikut ini.

xn+1=xn[Hf(xn)]1f(xn)

Mari kita dapatkan Hessian :

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2].

H=[2002]

Balikkan:

[Hf]1=[1/2001/2]

Dapatkan gradien:

f=[2x2y]

Dapatkan persamaan final:

[xy]n+1=[xy]n[1/2001/2][2xn2yn]=[xy]n[xy]n=[00]

Jadi, Anda melihat bagaimana metode Newton membawa Anda ke titik pelana di .x=0,y=0

Sebaliknya, metode gradient descent tidak akan mengarah ke titik pelana. Gradien adalah nol pada titik pelana, tetapi langkah kecil keluar akan menarik optimasi seperti yang Anda lihat dari gradien di atas - gradiennya pada variabel-y adalah negatif.

Aksakal
sumber
1
Terima kasih kepada Anda, saya benar-benar mengerti cara kerja metode ini dari A hingga Z, jadi terima kasih banyak untuk contoh yang jelas ini!
greenoldman
Apa yang menjadi poin favorit di sini?
Ben
14

Anda mengajukan dua pertanyaan: Mengapa tidak lebih banyak orang menggunakan metode Newton, dan mengapa begitu banyak orang menggunakan penurunan gradien stokastik? Pertanyaan-pertanyaan ini memiliki jawaban yang berbeda, karena ada banyak algoritma yang mengurangi beban komputasi metode Newton tetapi sering bekerja lebih baik daripada SGD.

Pertama: Metode Newton membutuhkan waktu yang lama untuk setiap iterasi dan membutuhkan banyak memori. Seperti yang ditunjukkan jwimberley, Metode Newton membutuhkan komputasi turunan kedua, , yaitu , di mana adalah jumlah fitur, sedangkan komputasi gradien, , hanya . Tetapi langkah selanjutnya adalah , yang merupakan untuk dihitung. Jadi, sementara menghitung Hessian itu mahal, membalikkannya atau memecahkan kuadrat terkecil seringkali lebih buruk. (Jika Anda memiliki fitur yang jarang, asimptotik terlihat lebih baik, tetapi metode lain juga berperforma lebih baik, sehingga sparsity tidak membuat Newton relatif lebih menarik.)O ( N 2 ) N g O ( N ) H - 1 g O ( N 3 )HO(N2)NgO(N)H1gO(N3)

Kedua, banyak metode, bukan hanya gradient descent, digunakan lebih sering daripada Newton; mereka sering tiruan dari metode Newton, dalam arti bahwa mereka mendekati langkah Newton dengan biaya komputasi yang lebih rendah per langkah tetapi mengambil lebih banyak iterasi untuk bertemu. Beberapa contoh:

  • Karena biaya membalikkan Hessian, metode `quasi-Newton" seperti BFGS mendekati Hessian terbalik , , dengan melihat bagaimana gradien telah berubah selama beberapa langkah terakhir.H1

  • BFGS masih sangat intensif dalam pengaturan dimensi tinggi karena memerlukan penyimpanan seluruh perkiraan Hessian terbalik. Memori terbatas BFGS (L-BFGS) menghitung arah langkah selanjutnya sebagai perkiraan Hessian terbalik kali gradien, tetapi hanya membutuhkan menyimpan beberapa pembaruan gradien terakhir; itu tidak secara eksplisit menyimpan perkiraan Goni terbalik.O(N2)

  • Ketika Anda tidak ingin berurusan dengan perkiraan turunan kedua sama sekali, gradient descent menarik karena hanya menggunakan informasi urutan pertama saja. Keturunan gradien secara implisit mendekati Hessian terbalik sebagai laju pembelajaran dikali matriks identitas. Saya, secara pribadi, jarang menggunakan gradient descent: L-BFGS juga mudah diimplementasikan, karena hanya membutuhkan menentukan fungsi dan gradien objektif; ia memiliki pendekatan Hessian terbalik yang lebih baik daripada gradient descent; dan karena gradient descent memerlukan penyetelan laju pembelajaran.

  • Terkadang Anda memiliki jumlah pengamatan (titik data) yang sangat besar, tetapi Anda bisa belajar hampir juga dari jumlah pengamatan yang lebih kecil. Ketika itu terjadi, Anda dapat menggunakan "metode batch", seperti keturunan gradien stokastik, yang siklus melalui menggunakan himpunan bagian dari pengamatan.

Elizabeth Santorella
sumber
(+1) Perlu dicatat bahwa L-BFGS memiliki urutan kompleksitas yang sama dengan gradient descent sehubungan dengan jumlah parameter. Ini bukan kasus untuk BFGS. Jadi bukan hanya bagian memori terbatas L-BFGS yang membuatnya menarik.
Cliff AB
12

Arah penurunan gradien lebih murah untuk dihitung, dan melakukan pencarian garis ke arah itu adalah sumber kemajuan yang lebih andal dan stabil menuju yang optimal. Singkatnya, penurunan gradien relatif dapat diandalkan.

Metode Newton relatif mahal karena Anda perlu menghitung Hessian pada iterasi pertama. Kemudian, pada setiap iterasi berikutnya, Anda dapat menghitung ulang sepenuhnya Hessian (seperti dalam metode Newton) atau hanya "memperbarui" Hessian iterasi sebelumnya (dalam metode kuasi-Newton) yang lebih murah tetapi kurang kuat.

Dalam kasus ekstrem dari fungsi berperilaku sangat baik, terutama fungsi kuadrat sempurna, metode Newton adalah pemenang yang jelas. Jika kuadrat sempurna, metode Newton akan bertemu dalam satu iterasi tunggal.

Dalam kasus ekstrim yang berlawanan dari fungsi yang berperilaku sangat buruk, gradient descent akan cenderung menang. Ini akan memilih arah pencarian, mencari ke bawah arah itu, dan pada akhirnya mengambil langkah kecil tapi produktif. Sebaliknya, metode Newton akan cenderung gagal dalam kasus-kasus ini, terutama jika Anda mencoba menggunakan pendekatan kuasi-Newton.

Di antara gradien keturunan dan metode Newton, ada metode seperti algoritma Levenberg-Marquardt (LMA), meskipun saya telah melihat nama-nama itu agak membingungkan. Intinya adalah menggunakan lebih banyak informasi pencarian gradien-keturunan ketika semuanya kacau dan membingungkan, kemudian beralih ke pencarian metode-Newton lebih informasi ketika semuanya menjadi lebih linier dan dapat diandalkan.

Nat
sumber
3
Boy, Anda harus menggunakan implementasi mengerikan dari Newton dan Quasi-Newton. Jika menggunakan salah satu dengan Goni definitif non-positif, maka gunakan wilayah kepercayaan atau lakukan pencarian garis sepanjang arah kelengkungan negatif. Jika demikian, mereka LEBIH dapat diandalkan daripada keturunan paling curam (yaitu, penurunan gradien dengan pencarian garis atau wilayah kepercayaan). Singkatnya, gradiewnt descent jauh lebih tidak dapat diandalkan daripada metode Quasi-Newton yang diterapkan dengan benar, yang kurang dapat diandalkan daripada metode Newton yang diterapkan dengan benar. Namun, waktu komputasi dan persyaratan memori per iterasi adalah masalah yang berbeda.
Mark L. Stone
4
Saya pikir maksud Anda fungsi kuadrat sempurna. Yaitu, metode Newton menyatu dalam satu iterasi dengan fungsi tujuan kuadratik, yang memiliki gradien linier.
Elizabeth Santorella
1
@ ElizabethSantorella: Ya, Anda benar! Saya memperbarui jawabannya.
Nat
2
Keuntungan dari metode Newton yang diimplementasikan dengan baik dan terlindungi dari penurunan paling curam meningkatkan fungsi yang lebih buruk, lebih buruk, lebih tidak cembung. Jika Anda meminimalkan fungsi kuadrat berperilaku terbaik yang ada, memiliki istilah kuadratik , yaitu, matriks Hessian = Identity, maka penurunan paling curam baik-baik saja, dan sama dengan metode Newton. 1/2xTx
Mark L. Stone
1
Saya sudah membuat kasus saya. jika Anda ingin berpikir penurunan paling curam, gradient descent sangat bagus, terutama pada fungsi yang berperilaku buruk, itu urusan Anda. Hancurkan diri Anda.
Mark L. Stone
7

Untuk dimensi besar, Goni biasanya mahal untuk disimpan dan penyelesaian untuk arah bisa mahal. Ini juga lebih sulit untuk diparalelkan.Hd=g

Metode Newton bekerja dengan baik ketika dekat dengan solusi, atau jika Hessian perlahan bervariasi, tetapi membutuhkan beberapa trik untuk mengatasi kurangnya konvergensi dan kurangnya kepastian.

Seringkali perbaikan dicari, bukan solusi yang tepat, dalam hal ini biaya tambahan metode Newton atau Newton tidak dibenarkan.

Ada berbagai cara untuk memperbaiki hal di atas seperti metrik variabel atau metode wilayah kepercayaan.

Sebagai catatan, dalam banyak masalah masalah utama adalah penskalaan dan Hessian memberikan informasi penskalaan yang sangat baik, meskipun dengan biaya. Jika seseorang dapat mendekati Hessian, sering kali dapat meningkatkan kinerja secara signifikan. Hingga taraf tertentu, metode Newton memberikan penskalaan 'terbaik' karena metode ini afinitas invarian.

tembaga
sumber
0

Ada banyak kesulitan terkait penggunaan metode Newton untuk SGD, terutama:

  • perlu matriks Hessian - bagaimana memperkirakannya misalnya dari gradien bising dengan presisi yang cukup dalam biaya yang masuk akal?

  • Hessian penuh terlalu mahal - kita lebih membutuhkan pembatasan, misalnya ke subruang (subruang yang mana?),

  • itu membutuhkan , apa yang mahal dan sangat tidak stabil untuk estimasi bising - dapat dikaburkan di sekitar membalikkan hingga tak terbatas,H1λ=0

  • Metode Newton secara langsung menarik untuk menutup titik dengan gradien nol ... yang biasanya merupakan pelana di sini. Bagaimana cara mengusir mereka? Misalnya Newton bebas pelana membalikkan arah kelengkungan negatif, tetapi itu membutuhkan tanda-tanda kontrol nilai eigen,

  • akan lebih baik untuk melakukannya secara online - daripada melakukan banyak perhitungan dalam satu titik, cobalah untuk memecahnya menjadi banyak langkah kecil yang mengeksploitasi lebih banyak informasi lokal.

Kita dapat beralih dari urutan pertama ke urutan kedua dalam langkah-langkah kecil, misalnya menambahkan pembaruan hanya 3 rata-rata ke metode momentum, kita dapat secara bersamaan MSE menyesuaikan parabola dalam arahnya untuk pilihan ukuran langkah yang lebih cerdas ... pemodelan urutan kedua dalam ruang subruang dimensi rendah kita masih dapat menggunakan koordinat yang tersisa untuk penurunan gradien simultan.

Jarek Duda
sumber