Mengembangkan jaringan saraf tiruan untuk memecahkan masalah NP

10

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).

Konsep

NMO
sumber
1
Kita tidak harus melakukannya. Kita bisa menggunakan brute-force. Apa tujuan Anda sebenarnya?
Pål GD
2
Saya bukan ahli jaringan saraf jadi saya tidak tahu apakah mereka dapat dilatih untuk memecahkan masalah NP dengan benar. Tapi saya pikir Anda tidak mengajukan pertanyaan yang tepat. Menghasilkan algoritma yang memecahkan masalah yang terkandung dalam NP biasanya tidak sulit, cukup periksa setiap solusi yang mungkin. Namun, menemukan algoritma yang memecahkan masalah NP-hard dalam waktu polinomial adalah cerita yang berbeda dan keberadaannya sangat tidak mungkin. Karena jaringan saraf dapat disimulasikan oleh mesin truing, mereka masih membutuhkan waktu polinomial yang super kecuali P = NP dan tidak akan banyak membantu.
Dennis Kraft
ya, jaring saraf telah digunakan terhadap masalah lengkap NP misalnya Travelling Salesman dan banyak lainnya dan ada penelitian / literatur tentang subjek. mereka dapat memiliki beberapa sifat yang bermanfaat tetapi mereka tidak bisa lepas dari batasan waktu dari teori kompleksitas seperti yang ditunjukkan DK.
vzn
Maksud saya adalah: Menggunakan tingkat mutasi yang tepat dan waktu yang cukup kita dapat (setidaknya secara teoritis) menemukan solusi optimal. (Atau setidaknya maksimum lokal) Gambar: Konsep
NMO
2
Algoritma genetika (dan sisanya dari banyak teknik "AI") pada dasarnya acak "coba sampel ruang solusi" dengan beberapa kecerdasan (heuristik) yang dilemparkan untuk membuatnya tidak sepenuhnya acak. Tidak, itu tidak lebih baik daripada "coba semua solusi yang mungkin", sebagian besar waktu jauh lebih buruk (karena tidak ada jaminan untuk tidak memeriksa lagi kasus dibuang yang sama). Tentu, mereka menemukan solusi yang "layak". Tetapi kami ingin menemukan yang terbaik .
vonbrand

Jawaban:

21

Tidak. Arah ini tidak mungkin berguna, karena dua alasan:

  1. 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.

  2. 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.

DW
sumber
1
Jawaban yang sangat bagus. Algoritma Genetika + Jaringan Saraf Tiruan tampaknya sangat kuat tetapi mungkin itu tidak cukup untuk menyelesaikan setiap masalah np. Saya membayangkan meninggalkan jaringan saraf ini + algoritma genetika di alam liar mencari solusi p ini. Seperti pengintai kecil haha.
NMO
1
Mungkin juga perlu dicatat bahwa jaringan saraf biasanya memberikan beberapa kemungkinan untuk menemukan jawaban yang benar, bukan jaminan. Ketika Anda melonggarkan persyaratan masalah Anda untuk memungkinkan solusi sub-optimal, seringkali ada solusi praktis untuk masalah NP-complete, meskipun tidak dapat diatasi dalam kasus terburuk.
Dan Bryant
9

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:

vzn
sumber
4

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.

Cort Ammon
sumber
1

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.

baru saja
sumber
Bisakah Anda menambahkan beberapa referensi ke jawaban Anda? Juga, cobalah untuk meningkatkan pemformatan (misalnya, gunakan NP, SGD, backpropagation, dan sebagainya, dan mungkin tambahkan beberapa jeda baris).
Yuval Filmus
Baiklah lakukan beberapa pengeditan, beri tahu saya jika saya harus melangkah lebih jauh ke mana saja
sekitar
Saya pikir Anda harus memberikan beberapa pembenaran untuk klaim Anda bahwa "algoritma evolusioner ... kurang tepat daripada SGD dan teknik pembelajaran mesin lainnya untuk terjebak dalam optimum lokal". Saya pikir itu tidak benar, terutama untuk tugas khusus pelatihan jaringan saraf.
DW
Jawaban ini memiliki beberapa kebingungan tentang definisi kelengkapan NP. Bertentangan dengan apa yang Anda klaim, jika kami menyelesaikan masalah NP-complete, kami dapat memeriksa apakah kami memiliki solusi yang benar. Ada perbedaan antara masalah pencarian NP-lengkap dan masalah optimasi NP-keras; untuk yang pertama, kita memang bisa secara efisien memeriksa apakah solusinya benar, tetapi untuk yang terakhir kita mungkin tidak bisa.
DW
Saya memenuhi syarat bahwa kami tidak dapat memverifikasi itu adalah solusi optimal tanpa brute memaksakan solusi yang benar-benar optimal terlebih dahulu, apakah ini tidak benar? Saya memberikan alasan untuk alasan saya bahwa neuroevolution kurang tepat untuk terjebak dalam optimal lokal dengan tautan yang direferensikan ke algoritma rapi dan kebugaran bersama, saya pikir gradien menurunkan kerentanan untuk terjebak dalam optimal lokal agak jelas, dan sementara penyetelan hyperparameter Kerangka kerja dapat membantu meringankan ini saya tidak akan kredit bahwa sebagai keengganan sgd harus terjebak.
julukan