Baru-baru ini saya membaca entri blog yang sangat menarik dari Google Research Blog yang berbicara tentang jaringan saraf. Pada dasarnya mereka menggunakan jaringan saraf ini untuk menyelesaikan berbagai masalah seperti pengenalan gambar. Mereka menggunakan algoritma genetika untuk "mengembangkan" bobot akson.
Jadi pada dasarnya ide saya adalah sebagai berikut. Jika saya seharusnya menulis sebuah program yang mengenali angka, saya tidak akan tahu bagaimana memulainya (saya dapat memiliki beberapa gagasan yang kabur tetapi poin saya adalah: Itu tidak sepele, juga tidak mudah.) Tetapi dengan menggunakan jaringan saraf saya tidak harus melakukannya. Dengan menciptakan konteks yang tepat agar jaringan saraf berkembang, jaringan saraf saya akan "menemukan algoritma yang benar". Di bawah ini saya mengutip bagian yang sangat menarik dari artikel di mana mereka menjelaskan bagaimana setiap lapisan memiliki peran yang berbeda dalam proses pengenalan gambar.
Salah satu tantangan jaringan saraf adalah memahami apa yang sebenarnya terjadi di setiap lapisan. Kita tahu bahwa setelah pelatihan, setiap lapisan secara progresif mengekstraksi fitur gambar yang lebih tinggi dan lebih tinggi, sampai lapisan terakhir pada dasarnya membuat keputusan tentang apa yang ditunjukkan gambar. Sebagai contoh, lapisan pertama mungkin mencari tepi atau sudut. Lapisan menengah menafsirkan fitur dasar untuk mencari bentuk atau komponen keseluruhan, seperti pintu atau daun. Beberapa lapisan terakhir menggabungkannya menjadi interpretasi lengkap — neuron-neuron ini aktif sebagai respons terhadap hal-hal yang sangat kompleks seperti seluruh bangunan atau pohon.
Jadi pada dasarnya pertanyaan saya adalah sebagai berikut: Tidak bisakah kita menggunakan algoritma genetika + jaringan saraf untuk menyelesaikan setiap masalah NP? Kami hanya menciptakan konteks evolusi yang tepat dan membiarkan "alam" menemukan solusinya.
Inceptionism: Pergi Lebih Jauh ke Jaringan Saraf Tiruan
EDIT: Saya tahu kita bisa menggunakan Brute-Force atau menemukan solusi yang tidak efisien dalam banyak kasus. Itulah sebabnya saya mencoba menyoroti jaringan saraf tiruan Evolving . Seperti yang saya katakan dalam komentar: Diberikan waktu yang cukup dan tingkat mutasi yang sesuai kita dapat menemukan solusi optimal (Atau setidaknya itulah yang saya pikirkan).
Jawaban:
Tidak. Arah ini tidak mungkin berguna, karena dua alasan:
Kebanyakan ilmuwan komputer meyakini P yang NP. Dengan asumsi P NP, ini berarti ada tidak ada setiap algoritma polinomial-waktu untuk memecahkan setiap masalah NP-lengkap. Jika Anda ingin jaringan saraf Anda untuk memecahkan masalah dalam jumlah waktu yang wajar, maka itu tidak bisa terlalu besar, dan dengan demikian jaringan saraf itu sendiri akan menjadi algoritma waktu polinomial. Oleh karena itu, jika P NP, jaringan saraf tidak dapat secara efisien menyelesaikan masalah NP-complete.≠ ≠≠ ≠ ≠
Jaringan saraf bukan "sihir". Mereka adalah cara mencoba menemukan pola. Untuk beberapa masalah di mana ada pola yang cukup kuat untuk ditemukan, dan pola tersebut dapat dipelajari dari sejumlah contoh yang masuk akal, mereka mungkin efektif. Tapi itu bukan debu peri sihir. Hanya karena Anda dapat mengatur jaringan saraf tidak berarti bahwa backpropagation akan selalu menemukan cara yang baik untuk menyelesaikan masalah Anda. Mungkin tidak ada pola yang dapat ditemukan, bahwa pola hanya dapat ditemukan dengan jumlah contoh yang tidak layak, atau pola ada tetapi prosedur pelatihan jaringan saraf tidak dapat menemukannya.
Jaringan saraf hanyalah bentuk lain dari pembelajaran mesin. Kita bisa membuat pernyataan yang sama tentang SVM atau hutan acak atau regresi linier dalam bentuk pembelajaran mesin lainnya. Jaringan saraf bukan semacam peluru perak ajaib yang menyelesaikan semua masalah pembelajaran mesin. Mereka hampir sama efektifnya dengan metode pembelajaran mesin lainnya, atau untuk beberapa jenis masalah, mungkin sedikit lebih efektif, tetapi mereka bukan sihir.
Kadang-kadang saya bertemu orang-orang yang hanya mendengar sedikit tentang jaringan saraf, dan mereka berjalan berpikir bahwa jaringan saraf adalah jawaban untuk segalanya - mungkin karena mereka mendengar bahwa "otak Anda menggunakan jaringan saraf juga", atau mereka melihat beberapa aplikasi keren (pengenalan suara atau sesuatu). Tapi jangan tertipu. Jangan percaya hype. Jaringan saraf adalah teknik yang berguna, tetapi mereka tidak akan memungkinkan komputer untuk menyelesaikan masalah NP-lengkap, atau untuk mengalahkan tes Turing, mengambil semua pekerjaan kita dan mengganti manusia dengan komputer. Lagipula tidak dalam waktu dekat. Itu hanya fiksi ilmiah.
sumber
Tampaknya jawaban lain sementara informatif / bermanfaat sebenarnya tidak benar-benar memahami pertanyaan Anda dan membaca terlalu banyak ke dalamnya. Anda tidak bertanya apakah jaringan saraf akan mengungguli metode lain, Anda hanya bertanya apakah mereka dapat diterapkan untuk menyelesaikan masalah NP. Jawabannya adalah ya, dengan beberapa keberhasilan dan ini telah dikenal selama beberapa dekade dan ada banyak penelitian tentang ini, dan ini terus berlanjut. Ini ada hubungannya dengan fleksibilitas pembelajaran mesin. Perhatikan bahwa meskipun mereka tidak menemukan solusi yang tepat atau optimal, solusi yang mereka miliki mungkin memiliki properti yang diinginkan lainnya. beberapa makalah contoh:
Neural Networks dan Masalah Optimasi NP-complete; Studi Kinerja pada Grafik Bisection Problem / Peterson, Anderson
Neural Networks Untuk Masalah NP-Lengkap (1996) / Budinich
Menemukan Perkiraan Solusi untuk Masalah NP-Hard oleh Neural Networks Sulit / Yao
Tentang Kekuatan Jaringan Saraf untuk Memecahkan Masalah Keras / Bruck, Goodman
sumber
Jaringan saraf tidak benar-benar menyelesaikan masalah NP-complete. Apa yang mereka lakukan adalah menyelesaikan masalah yang sangat dekat dengan masalah NP-complete.
Salah satu fitur besar dari jaringan saraf adalah bahwa mereka tidak diwajibkan untuk menemukan jawaban yang "benar" setiap saat. Mereka diijinkan untuk menjadi "salah." Misalnya, Anda mungkin memecahkan masalah pengemasan bin, dan menemukan solusi yang diskon 1% dari solusi ideal dan benar-benar puas dengan jawaban itu.
Jika Anda menghapus persyaratan untuk 100% benar setiap saat, pendekatan pemecahan masalah lainnya bekerja dengan sangat baik. Sebagai contoh, banyak algoritma perencanaan rute (ala Google Maps) harus lengkap-NP, tetapi cukup sepele untuk menemukan algoritma yang menemukan jalur dalam 1% dari optimal 99,9% dari waktu. Ini mencoba untuk menjabarkan hasil dalam 0,1% terakhir dari kasus-kasus yang mendorong upaya NP-lengkap menjadi sangat mahal.
Seperti yang terjadi, ketika kami mencoba menggunakan persamaan NP-complete dalam kehidupan nyata, kami tidak sering membutuhkan jawaban yang sebenarnya . Kami sering sangat nyaman dengan jawaban "dekat", meskipun kami sering tidak memiliki kata-kata untuk menjelaskan metrik "dekat" apa yang kami gunakan. Ini adalah situasi di mana jaringan saraf dapat menjawab pertanyaan aktual yang ingin Anda tanyakan, daripada harus benar-benar menyelesaikan masalah NP-lengkap yang Anda minta.
sumber
Jaringan saraf dikenal mampu melakukan pendekatan fungsi universal , tetapi ini membutuhkan pelatihan mereka tentang masalah (optimasi) yang merupakan masalah NP-lengkap dalam dan dari itu sendiri , yang mengapa Anda memiliki pelatihan evolusi dan SGD dengan backpropagation dan sebagainya.
Jadi, meskipun mereka tidak mungkin menyelesaikan masalah NP-complete, mereka dapat dilatih untuk memperkirakan tingkat akurasi sembarang fungsi yang memodelkan masalah. Juga bahkan jika Anda memecahkan masalah NP-lengkap secara optimal menggunakan jaringan saraf, Anda masih tidak memiliki cara untuk membuktikan bahwa solusi yang ditemukannya sebenarnya adalah global optimal tanpa brute memaksa solusi (ini tentu saja tidak layak untuk hampir semua praktis gunakan case dari neural networks).
Visualisasi Anda akurat dalam arti bahwa algoritma evolusioner (lihat bagaimana algoritma yang rapi mencegah satu spesies dari mengambil alih populasi dengan struktur yang awalnya sangat berkinerja dengan menggunakan kebugaran bersama) kurang tepat daripada SGD dan teknik pembelajaran mesin lainnya yang harus terjebak dalam optimum lokal tetapi mereka tidak memberikan bukti bahwa solusi yang mereka temukan sebenarnya adalah solusi optimal global.
sumber