Dalam kalkulus 101 kita belajar tentang bagaimana mengoptimalkan suatu fungsi menggunakan "metode analitik": kita hanya perlu mendapatkan turunan dari fungsi biaya dan mengatur turunan ke 0 lalu menyelesaikan persamaannya. Ini benar-benar masalah mainan dan hampir tidak akan pernah terjadi di dunia nyata.
Dalam dunia nyata, banyak fungsi biaya tidak memiliki turunan di mana-mana (Selanjutnya, fungsi biaya mungkin terpisah dan tidak memiliki turunan sama sekali). Selain itu, bahkan Anda dapat menghitung turunannya, Anda tidak bisa menyelesaikan persamaannya secara analitis (misalnya, pikirkan tentang bagaimana menyelesaikan analitik? Saya dapat memberi tahu Anda jawaban numerik adalah , tetapi tidak tahu solusi analitis). Kita harus menggunakan beberapa metode numerik (periksa mengapa di sini pada kasus polinomial Abel Ruffin Theorem ).x7+x3−52+ex+log(x+x2)+1/x=0x=1.4786
Metode berulang sangat bagus untuk digunakan, dan sangat intuitif untuk dipahami. Misalkan Anda ingin mengoptimalkan satu fungsi, alih-alih menyelesaikan persamaan dan mendapatkan jawabannya, Anda mencoba meningkatkan jawaban Anda dengan jumlah iterasi / langkah-langkah setelah iterasi yang cukup, Anda akan mendapatkan jawaban yang dekat dengan "jawaban yang benar". Katakanlah jika Anda menggunakan kalkulus untuk meminimalkan , Anda langsung mendapatkan , tetapi menggunakan metode numerik, Anda mungkin mendapatkan .f(x)=x2x=0x=1.1234×10−20
Sekarang, penting untuk memahami bagaimana metode berulang ini bekerja. Konsep kuncinya adalah mengetahui cara memperbarui parameter input Anda untuk mendapatkan solusi yang lebih baik. Misalkan Anda ingin meminimalkan(perhatikan fungsi biaya ini tidak dapat dibedakan di mana-mana, tetapi dapat dibedakan ada di "sebagian besar tempat", ini cukup baik bagi kami, karena kami tahu cara memperbarui di "sebagian besar tempat".), saat ini Anda berada di , dan biayanya , sekarang Anda ingin memperbarui untuk membuat fungsi objektif lebih kecil. Bagaimana Anda akan melakukannya? Anda mungkin mengatakan saya ingin mengurangi keduanya , tetapi mengapa? Bahkan Anda menggunakan implisitf(x1,x2)=x21+x22+|x1+x2|(1,1)4.0(x1,x2)x1 x2konsep gradien "mengubah sejumlah kecil , apa yang akan terjadi pada ". xy. Dalam , turunannya adalah , jadi gradien negatif dikali laju pembelajaran katakan , adalah , jadi kami memperbarui solusi kami dari hingga yang mana biayanya lebih baik.(1,1)(3,3)α=0.0011 , 1 ( 0,997 , 0,997 )(−0.003,−0.003)1,1(0.997,0.997)