Arti (dan bukti) dari "RNN dapat mendekati algoritma apa pun"

28

Baru-baru ini saya membaca bahwa jaringan saraf berulang dapat mendekati algoritma apa pun.

Jadi pertanyaan saya adalah: apa arti tepatnya ini dan dapatkah Anda memberi saya referensi di mana ini terbukti?

pengguna3726947
sumber
Periksa karya-karya Halbert White. Saya pikir dialah yang membuktikan jaringan saraf adalah pendekatan universal. (Namun, tidak yakin tentang jaringan saraf berulang.)
Richard Hardy

Jawaban:

42

Latar Belakang

Pertama-tama kita harus membahas beberapa konsep dari teori perhitungan. Sebuah algoritma adalah prosedur untuk menghitung fungsi. Diberikan input, algoritma harus menghasilkan output yang benar dalam jumlah terbatas langkah dan kemudian berakhir. Mengatakan bahwa suatu fungsi dapat dihitung berarti ada suatu algoritma untuk menghitungnya. Di antara set semua fungsi yang tak terbatas, sebagian besar tidak dapat dihitung. Mesin Turing adalah model matematika yang memformalkan gagasan komputasi. Model setara lainnya ada, tetapi mesin Turing adalah 'model referensi' standar. Menurut tesis Gereja-Turing, algoritma apa pun dapat diimplementasikan oleh mesin Turing, dan semua fungsi yang dapat dihitung dapat dihitung dengan demikian. Mesin instance tertentu dari Turing hanya menghitung fungsi tertentu. Tapi, ada kelas khusus mesin Turing yang disebut mesin Turing universal yang dapat mensimulasikan mesin Turing lainnya untuk input apa pun. Mereka melakukan ini dengan mengambil deskripsi mesin yang akan disimulasikan (dan inputnya) sebagai bagian dari input mereka sendiri. Karena itu setiap contoh khusus dari mesin Universal Turing dapat menghitung fungsi yang dapat dihitung (yaitu dapat mengimplementasikan algoritma apa pun). Sistem apa pun yang berbagi kemampuan ini disebut Turing lengkap. Salah satu cara untuk membuktikan bahwa suatu sistem adalah Turing lengkap adalah dengan menunjukkan bahwa ia dapat mensimulasikan mesin Turing universal. Banyak sistem telah terbukti Turing lengkap (misalnya, sebagian besar bahasa pemrograman, automata seluler tertentu , dan mekanika kuantum ).

Jaringan saraf berulang

Makalah berikut menunjukkan bahwa, untuk fungsi yang dapat dihitung, ada jaringan saraf berulang terbatas (RNN) yang dapat menghitungnya. Selain itu, ada RNN terbatas yang Turing lengkap, dan karenanya dapat mengimplementasikan algoritma apa pun.

Siegelmann dan Sontag (1992) . Pada kekuatan komputasi jaring saraf

Mereka menggunakan jaringan yang mengandung jumlah unit berulang yang terbatas, yang menerima input eksternal pada setiap titik waktu. Keadaan masing-masing unit diberikan oleh jumlah tertimbang inputnya (ditambah bias), dijalankan melalui fungsi aktivasi nonlinier. Fungsi aktivasi adalah fungsi linier jenuh, yang merupakan pendekatan linear sigmoid linier. Bobot dan bias ditetapkan, sehingga pembelajaran tidak terjadi.

Jaringan melakukan pemetaan dari urutan input biner ke urutan output biner. Ada dua input eksternal ke jaringan, yang diumpankan ke semua unit: 'jalur data' dan 'jalur validasi'. Baris data berisi urutan input nol dan yang, kemudian nol setelah urutan input selesai. Baris validasi memungkinkan jaringan tahu kapan urutan input terjadi. Ini berisi satu untuk durasi urutan input, kemudian nol setelah selesai. Satu unit dianggap sebagai 'unit keluaran'. Ini output nol untuk beberapa penundaan sewenang-wenang, maka urutan output nol dan yang, kemudian nol setelah urutan output selesai. Unit lain dianggap sebagai 'unit validasi', yang memberi tahu kami kapan urutan output terjadi.

Meskipun RNNs ini memetakan urutan input biner ke urutan output biner, kita mungkin tertarik pada fungsi yang didefinisikan pada berbagai objek matematika lainnya (jenis angka, vektor, gambar, grafik, dll.) Lainnya. Tetapi, untuk fungsi yang dapat dihitung, jenis objek lain ini dapat dikodekan sebagai sekuens biner (mis. Lihat di sini untuk deskripsi pengkodean objek lain menggunakan bilangan alami, yang pada gilirannya dapat direpresentasikan dalam biner).

Hasil

Mereka menunjukkan bahwa, untuk setiap fungsi yang dapat dihitung, ada RNN terbatas (dari bentuk yang dijelaskan di atas) yang dapat menghitungnya. Mereka melakukan ini dengan menunjukkan bahwa mungkin untuk menggunakan RNN untuk mensimulasikan secara eksplisit automat pushdown dengan dua tumpukan. Ini adalah model lain yang secara komputasi setara dengan mesin Turing. Setiap fungsi yang dapat dihitung dapat dihitung dengan mesin Turing. Setiap mesin Turing dapat disimulasikan oleh otomat pushdown dengan dua tumpukan. Otomat pushdown apa pun dengan dua tumpukan dapat disimulasikan oleh RNN. Oleh karena itu, setiap fungsi yang dapat dihitung dapat dihitung oleh RNN. Lebih lanjut, karena beberapa mesin Turing bersifat universal, RNN yang mensimulasikannya adalah Turing lengkap, dan karenanya dapat mengimplementasikan algoritma apa pun. Secara khusus, mereka menunjukkan bahwa ada Turing RNN lengkap dengan 1058 unit atau lebih sedikit.

Konsekuensi lain

Konsekuensi yang menarik dari hasil simulasi adalah bahwa pertanyaan-pertanyaan tertentu tentang perilaku RNN tidak dapat ditentukan. Ini berarti bahwa tidak ada algoritma yang dapat menjawabnya untuk RNN ​​sewenang-wenang (meskipun mereka mungkin dapat dijawab dalam kasus RNN tertentu ). Misalnya, pertanyaan apakah suatu unit yang pernah mengambil nilai 0 tidak dapat diputuskan; jika seseorang dapat menjawab pertanyaan ini secara umum, akan mungkin untuk memecahkan masalah penghentian untuk mesin Turing, yang tidak dapat diputuskan.

Kekuatan komputasi

Dalam makalah di atas, semua parameter dan status jaringan adalah angka rasional. Ini penting karena membatasi kekuatan RNN, dan membuat jaringan yang dihasilkan lebih realistis. Alasannya adalah bahwa rasional adalah angka yang dapat dihitung , yang berarti bahwa ada algoritma untuk menghitungnya dengan ketepatan yang sewenang-wenang. Sebagian besar bilangan real tidak dapat dihitung, dan karena itu tidak dapat diakses - bahkan mesin Turing paling kuat tidak dapat mewakili mereka, dan banyak orang ragu bahwa mereka bahkan dapat diwakili di dunia fisik. Ketika kita berurusan dengan 'bilangan real' pada komputer digital, kita mengakses subset yang bahkan lebih kecil (misalnya angka floating point 64 bit ). Mewakili bilangan real yang sewenang-wenang akan membutuhkan informasi yang tak terbatas.

Makalah itu mengatakan bahwa memberikan akses jaringan ke bilangan real akan meningkatkan daya komputasi lebih jauh, di luar mesin Turing. Siegelmann menulis sejumlah makalah lain yang mengeksplorasi kemampuan 'super-Turing' ini. Namun, penting untuk dicatat bahwa ini adalah model matematika, dan hasilnya tidak berarti bahwa mesin seperti itu dapat benar-benar ada di dunia fisik. Ada alasan bagus untuk berpikir bahwa itu tidak bisa, meskipun itu pertanyaan terbuka.

pengguna20160
sumber
1
hei, saya menemukan ini sangat menarik, saya bertanya-tanya apakah Anda memiliki referensi untuk mempelajari lebih lanjut tentang teori komputasi ini dan hubungannya dengan algoritma pembelajaran mesin atau komputasi kuantum. Terima kasih!
user110320
0

Saya pikir ini yang Anda cari. Orang ini membuktikan bahwa jaringan multilayer, atau bahkan satu lapisan feedforward dapat mendekati fungsi apa pun, asalkan net memiliki cukup unit tersembunyi.

Hornik, K. (1991). Kemampuan perkiraan jaringan feedforward multilayer. Jaringan saraf, 4 (2), 251-257.

horaceT
sumber
1
ini bukan yang saya maksud. Saya sudah membaca buktinya. Saya mengedit pertanyaan saya.
user3726947