Mengapa tidak menggunakan turunan ketiga untuk optimasi numerik?

29

Jika Hessians sangat baik untuk optimasi (lihat misalnya metode Newton ), mengapa berhenti di situ? Mari kita gunakan derivatif ketiga, keempat, kelima, dan keenam? Kenapa tidak?

gema
sumber
11
Setelah Anda menemukan yang optimal, mengapa harus melihat lebih jauh? Memang, apa yang sebenarnya ingin Anda tanyakan? Apa pertanyaan statistik Anda?
whuber
2
Dalam banyak kasus, distribusi estimasi terbatas yang menyelesaikan persamaan estimasi optimal atau meminimalkan fungsi objektif secara bersama-sama normal, sehingga semuanya dapat dicirikan sepenuhnya oleh momen pertama dan kedua.
AdamO
3
Jika Anda bisa melakukan sesuatu, bukan berarti Anda harus melakukannya. Derivatif orde tinggi semakin rentan terhadap kebisingan.
Vladislavs Dovgalecs
6
Saya memberikan suara untuk menutup pertanyaan ini sebagai di luar topik karena ini bukan tentang statistik. Ini tentang optimasi numerik
Aksakal
11
Anda belum membuat terobosan ilmiah. Halley mengalahkan Anda sekitar 3 1/4 abad. Halley, E., 1694, "Metode baru, tepat, dan mudah untuk menemukan akar persamaan apa pun secara umum, dan tanpa pengurangan sebelumnya" Philos. Trans. Roy. Soc. London, 18, 136–145. Metode turunan ketiga untuk optimisasi telah ada dan telah dipelajari selama bertahun-tahun, tetapi belum mencapai popularitas yang tinggi. Jika diimplementasikan dengan baik, keuntungan terbesar mereka adalah peningkatan ketahanan vs metode Newton yang diterapkan dengan baik. Ini bisa bermanfaat untuk masalah yang paling buruk.
Mark L. Stone

Jawaban:

31

Saya menafsirkan pertanyaan sebagai "Mengapa metode Newton hanya menggunakan turunan pertama dan kedua, bukan turunan ketiga atau lebih tinggi?"

Sebenarnya, dalam banyak kasus, pergi ke turunan ketiga memang membantu; Saya sudah melakukannya dengan barang-barang khusus sebelumnya. Namun, secara umum, pergi ke turunan yang lebih tinggi menambah kompleksitas komputasi - Anda harus menemukan dan menghitung semua turunan itu, dan untuk masalah multivariat, ada lebih banyak turunan ketiga daripada turunan pertama! - yang jauh melebihi penghematan dalam hitungan langkah yang Anda dapatkan, jika ada. Misalnya, jika saya memiliki masalah 3 dimensi, saya memiliki 3 turunan pertama, 6 turunan kedua, dan 10 turunan ketiga, jadi pergi ke versi urutan ketiga lebih dari dua kali lipat jumlah evaluasi yang harus saya lakukan (dari 9 ke 19), belum lagi meningkatnya kerumitan menghitung arah langkah / ukuran setelah saya melakukan evaluasi tersebut, tetapi hampir pasti tidak akan memotong jumlah langkah yang harus saya ambil setengah.

Sekarang, dalam kasus umum dengan variabel , koleksi turunan parsial akan berjumlah , jadi untuk masalah dengan lima variabel, jumlah total ketiga , turunan parsial keempat, dan kelima akan sama dengan 231, peningkatan lebih dari 10 kali lipat dari jumlah turunan parsial pertama dan kedua (20). Anda harus memiliki masalah yang sangat, sangat dekat dengan polinomial orde kelima dalam variabel untuk melihat pengurangan yang cukup besar dalam jumlah iterasi untuk menebus beban komputasi ekstra.knth(k+n1k1)

Jbowman
sumber
3
Bisakah Anda menjelaskan bagaimana Anda menggunakan derivatif yang lebih tinggi?
Whuber
5
@whuber Apa yang dimaksud OP, sangat tidak jelas harus saya akui, adalah metode Newton dalam optimasi. Pertanyaannya sebenarnya adalah "Mengapa metode Newton hanya menggunakan turunan pertama dan kedua, bukan turunan ketiga atau lebih tinggi?". Ini di luar topik dan tidak jelas apa yang dia tanyakan, tapi saya pikir saya hanya akan memberikan jawaban daripada memilih untuk menutup karena satu atau lain alasan.
jbowman
4
+1 Saya pikir ini adalah jawaban yang baik, tetapi bisa ditingkatkan dengan menunjukkan apa yang Anda lakukan berdasarkan pada ekspansi taylor.
Matthew Drury
8
Sebagai salah satu profesor saya - konsultan yang sangat sukses juga - berkata kepada kami sekali, "Setiap kali Anda berpikir Anda telah menemukan cara membangun perangkap tikus yang lebih baik, cobalah mencari tahu mengapa 1.000 orang yang datang dengan ide yang sama persis sebelum Anda belum menaruhnya di pasar. " Inti dari menggunakan Newton adalah untuk menyimpan perhitungan - jika tidak, kami hanya akan melakukan pencarian lengkap. Saya yakinkan Anda, menambahkan turunan ketiga ke masalah 3 dimensi akan sangat, sangat jarang membayar penggandaan perhitungan pada setiap langkah dengan iterasi yang sangat berkurang kecuali fungsinya ~ a kubik.
jbowman
9
Tidak, tidak - ini adalah komentar yang sedikit lebih dalam dari yang pertama kali muncul Intinya ada dua - sebagian besar ide yang tampak bagus pada awalnya, tidak, karena alasan yang mungkin tidak jelas sama sekali, dan kunci nyata untuk pemecahan mungkin bukan ide itu sendiri tetapi sesuatu yang mengatasi atau bekerja di sekitar kelemahan dalam ide. Alasan ini, pada dasarnya, menunjukkan hal itu, dan memberitahu Anda untuk mencari kelemahan dalam ide tersebut. Ini bukan tentang menyerah, ini tentang memikirkan semuanya, dan dengan mata kritis pada saat itu.
jbowman
22

Saya tidak benar-benar melihat apa aspek statistik dari pertanyaan ini, jadi saya akan menjawab bagian pengoptimalan.

Ada 2 bagian untuk konvergensi: biaya iterasi & jumlah iterasi

Cukup banyak setiap jawaban di sini berfokus hanya pada biaya iterasi dan mengabaikan iterasi count . Tapi keduanya penting. Metode yang berulang dalam 1 nanosecond tetapi butuh iterasi untuk bertemu tidak akan ada gunanya bagimu. Dan metode yang meledak tidak akan membantu, tidak peduli seberapa murah biaya iterasinya.1020

Mari kita cari tahu apa yang terjadi.

Jadi: Mengapa tidak menggunakan> derivatif urutan ke-2?

Sebagian karena (dan ini juga berlaku untuk orde kedua, tetapi lebih dari itu dalam sedikit):

Metode tingkat tinggi umumnya hanya bertemu lebih cepat ketika mendekati optimal .

Di sisi lain, mereka meledak lebih mudah ketika mereka lebih jauh dari yang optimal!

(Tentu saja, ini tidak selalu benar; misalnya kuadrat akan menyatu dalam 1 langkah dengan metode Newton. Tetapi untuk fungsi sewenang-wenang di dunia nyata yang tidak memiliki properti bagus, ini umumnya benar.)

Ini berarti bahwa ketika Anda berada jauh dari optimal, Anda umumnya menginginkan metode tingkat rendah (baca: tingkat pertama). Hanya ketika Anda dekat Anda ingin meningkatkan urutan metode.

Jadi mengapa berhenti di urutan ke-2 ketika Anda berada di dekat root?

Karena perilaku konvergensi "kuadratik" benar-benar "cukup baik"!

Untuk melihat mengapa, pertama Anda harus memahami apa "kuadrat konvergensi" berarti .

Secara matematis, konvergensi kuadrat berarti bahwa, jika adalah kesalahan Anda pada iterasi , maka yang berikut ini berlaku untuk beberapa konstanta :ϵkkc

|ϵk+1|c |ϵk|2

Dalam bahasa Inggris yang sederhana, ini berarti bahwa, setelah Anda mendekati yang optimal (penting!), Setiap langkah tambahan menggandakan jumlah digit akurasi .

Mengapa? Sangat mudah untuk melihat dengan contoh: untuk dan , Anda memiliki , , dll. Yang sangat cepat . (Ini super-eksponensial !)c=1|ϵ1|=0.1|ϵ2|0.01|ϵ3|0.0001

Mengapa tidak berhenti di pesanan pertama dan bukan pesanan kedua?

Sebenarnya, orang sering melakukan ini ketika turunan orde dua menjadi terlalu mahal. Tetapi konvergensi linier bisa sangat lambat. mis. jika Anda mendapat maka Anda mungkin memerlukan 10.000.000 iterasi dengan konvergensi linier untuk mendapatkan , tetapi hanya 23 iterasi dengan konvergensi kuadrat. Jadi Anda dapat melihat mengapa ada perbedaan drastis antara konvergensi linier dan kuadratik. Ini tidak benar untuk konvergensi orde 2 dan 3, misalnya (lihat paragraf berikutnya).ϵk=0.9999999|ϵ|<0.5

Pada titik ini, jika Anda mengetahui ilmu komputer, Anda memahami bahwa dengan konvergensi orde 2, masalahnya sudah terpecahkan . Jika Anda tidak melihat alasannya, inilah alasannya: tidak ada cara praktis untuk memperoleh tiga kali lipat jumlah iterasi daripada menggandakannya — apa yang akan Anda beli? Lagi pula, di komputer, bahkan angka double-prisi memiliki presisi 52 bit, yaitu sekitar 16 digit desimal. Mungkin itu akan mengurangi jumlah langkah yang Anda butuhkan dari 16 menjadi 3 ... yang terdengar hebat, sampai Anda menyadari itu harus dibayar dengan harus menghitung turunan ketiga pada setiap iterasi, yang merupakan kutukan dimensi.memukulmu dengan keras. Untuk masalah dimensi, Anda hanya membayar faktor untuk mendapatkan faktor , yang bodoh. Dan di dunia nyata masalah memiliki setidaknya ratusan dimensi (atau bahkan ribuan atau bahkan jutaan), bukan hanya ! Jadi Anda mendapatkan faktor mungkin 20 dengan membayar faktor, katakanlah, 20.000 ... bukan trade-off yang bijaksana.6656

Tetapi sekali lagi: ingat kutukan dimensi adalah setengah dari cerita .

Setengah lainnya adalah bahwa Anda biasanya mendapatkan perilaku yang lebih buruk ketika Anda jauh dari optimal, yang umumnya mempengaruhi jumlah iterasi yang harus Anda lakukan.

Kesimpulan

Dalam pengaturan umum, metode tingkat tinggi dari 2 adalah ide yang buruk. Tentu saja, jika Anda dapat membawa asumsi tambahan yang bermanfaat ke tabel (mis. Mungkin data Anda memang menyerupai polinomial tingkat tinggi, atau Anda memiliki cara untuk membatasi lokasi yang optimal, dll.), Maka mungkin Anda dapat menemukan bahwa itu adalah ide yang bagus — tapi itu akan menjadi keputusan khusus masalah, dan bukan aturan umum yang harus dijalani.

Mehrdad
sumber
Jawaban yang bagus, tapi saya pikir teorema Abel-Ruffini adalah ikan haring merah. Pertama-tama, kita berbicara tentang masalah multivariat, jadi menghitung nol polinomial univariat paling tidak merupakan masalah mudah dengan minat terbatas. Dan, yang lebih penting, tidak masalah apakah ada formula tertutup untuk solusinya atau tidak: dalam praktiknya, sejauh yang saya tahu, orang tidak menggunakan rumus tertutup bahkan untuk polinomial tingkat-4. Mereka terlalu panjang dan rumit dan tidak stabil. Nol polinomial dihitung secara numerik, dalam praktiknya (menggunakan QR pada matriks pendamping).
Federico Poloni
@FedericoPoloni: Ya, pikiran yang sama muncul di benak saya ketika saya memutuskan untuk memasangnya. Saya tidak memilikinya pada awalnya ... Saya pikir mungkin saya harus memasukkannya ke dalam hanya sebagai contoh lain mengapa gelar yang lebih tinggi dapat memiliki masalah tak terduga. Tapi saya rasa saya akan mengeluarkannya lagi jika tidak membantu, terima kasih atas komentarnya.
Mehrdad
@FedericoPoloni: PS sementara kita berada di topik perhitungan numerik, Anda mungkin menemukan fungsi Sturm menarik (jika Anda belum pernah mendengarnya).
Mehrdad
7

Bahkan menghitung Hessians cukup banyak pekerjaan:

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2].

Sekarang lihat bagaimana turunan ketiga terlihat seperti: Ini adalah matriks tiga dimensi. Begini tampilannya:

H/x=[Hx1Hx2Hxn]
(H/x)ijk=3fxixjxk

Turunan keenam akan menjadi matriks enam dimensi:

6fxixjxkxlxmxn

Biasanya, trade-off tidak menguntungkan untuk mengejar lebih tinggi dari Hessian. Maksud saya trade-off antara potensi gain dalam kecepatan melalui menggunakan pendekatan orde yang lebih tinggi vs amplifikasi noise Anda selalu memiliki derau dalam input karena kita berbicara tentang aplikasi statistik. Kebisingan ini akan diperkuat oleh turunannya.

Jika Anda bermain golf maka analogi dalam optimasi adalah untuk pertama-tama mengayunkan mencoba untuk mendapatkan ke hijau, tidak perlu khawatir banyak tentang lubang. Sekali, di atas hijau, kita akan membidik lubang.

Aksakal
sumber
4

Biasanya, ketika Anda menganalisis efektivitas algoritma seperti itu, Anda akan menemukan hasil seperti satu langkah dari algoritma urutan keempat memiliki kurang lebih efektivitas yang sama dengan dua langkah dari algoritma urutan kedua.

Jadi pilihan algoritma mana yang akan digunakan relatif sederhana: jika satu langkah dari algoritma urutan keempat membutuhkan kerja dua kali lebih banyak atau lebih dari satu langkah dari algoritma urutan kedua, Anda harus menggunakan yang terakhir sebagai gantinya.

Itu adalah situasi khas untuk jenis metode ini: algoritma klasik memiliki rasio kerja-ke-efektivitas yang optimal untuk masalah umum. Meskipun ada beberapa masalah di mana pendekatan urutan yang lebih tinggi tidak mudah untuk dihitung dan dapat mengungguli varian klasik, mereka relatif tidak umum.


sumber
2

Anda dapat menganggap urutan turunan sebagai urutan perkiraan polinomial terhadap fungsi. Kebanyakan rutinisasi optimasi bergantung pada konveksitas. Polinomial kuadrat akan menjadi cembung / cekung di mana-mana sedangkan orde 3 atau polinomial yang lebih tinggi tidak akan cembung di mana-mana. Sebagian besar rutinisasi optimasi bergantung pada perkiraan fungsi cembung dengan kuadratik untuk alasan ini. Perkiraan kuadratik yang cembung membutuhkan kondisi ketetapan positif yang harus diberlakukan agar kuadratik menjadi cembung.

Lucas Roberts
sumber
3
Tidak, kuadratik tidak harus cembung atau cekung (pikirkan ). x2y2
Dirk
@Rak sama dengan apa? x2y2
Ovi
1
Ini adalah fungsi kuadrat tetapi tidak cembung atau cekung.
Dirk
@ Malas ya Anda benar, saya harus menambahkan peringatan semi-pasti positif. Saya akan menambahkan itu ke jawaban saya.
Lucas Roberts
1

Biarkan saya menjadi satu-satunya di sini yang mempertahankan metode urutan ke-3 untuk konvergensi SGD, tetapi jelas tidak di seluruh ruang apa yang akan membutuhkan koefisien 3/6, tetapi misalnya hanya dalam satu arah, yang hanya membutuhkan satu koefisien tambahan jika sudah memiliki model pesanan ke-2 dalam arah ini.dim3/6

Mengapa model single direction 3 order dapat bermanfaat? Misalnya karena turunan mendekati nol detik pada arah ini pada dasarnya berarti dua skenario alternatif: dataran tinggi atau titik belok - hanya yang pertama membutuhkan ukuran langkah yang lebih besar, dan turunan ke-3 memungkinkan untuk membedakannya.

Saya percaya kita akan pergi ke arah metode multi-order hybrid: metode urutan ke-2 dalam subruang dimensi rendah misalnya dari PCA dari gradien baru-baru ini, apa yang masih memungkinkan untuk penurunan gradien simultan urutan pertama ke arah bagian dari gradien ortogonal ke subruang ini ... dan tambahan Saya akan menambahkan misalnya model urutan ke-3 untuk satu arah paling relevan.

Jarek Duda
sumber