Apa perbedaan antara jaringan saraf dan jaringan saraf dalam, dan mengapa jaringan yang dalam bekerja lebih baik?

114

Saya belum melihat pertanyaan yang dinyatakan secara tepat dalam istilah ini, dan inilah mengapa saya membuat pertanyaan baru.

Apa yang saya tertarik ketahui bukanlah definisi jaringan saraf, tetapi memahami perbedaan yang sebenarnya dengan jaringan saraf yang mendalam.

Untuk lebih banyak konteks: Saya tahu apa itu jaringan syaraf dan bagaimana backpropagation bekerja. Saya tahu bahwa DNN harus memiliki beberapa lapisan tersembunyi. Namun, 10 tahun yang lalu di kelas I belajar bahwa memiliki beberapa lapisan atau satu lapisan (tidak termasuk lapisan input dan output) adalah setara dalam hal fungsi-fungsi yang dapat diwakili oleh jaringan saraf (lihat teorema pendekatan universal Cybenko ), dan bahwa memiliki lebih banyak lapisan membuatnya lebih kompleks untuk dianalisis tanpa mendapatkan kinerja. Jelas, bukan itu masalahnya lagi.

Saya kira, mungkin salah, bahwa perbedaan dalam hal algoritma pelatihan dan sifat daripada struktur, dan karena itu saya akan sangat menghargai jika jawabannya dapat menggarisbawahi alasan yang membuat pindah ke DNN mungkin (misalnya bukti matematika atau bermain secara acak dengan jaringan) ?) dan diinginkan (misalnya kecepatan konvergensi?)

Nicolas
sumber
Jika fungsi yang ingin Anda perkirakan adalah fungsi komposisi (umum dalam pemrosesan gambar dan banyak domain alami karena hukum fisika). Dapat dibuktikan bahwa jaringan dalam dapat mengeksploitasi komposisionalitas ini dan mencapai tingkat kesalahan aproksimasi yang sama dengan jumlah neuron yang secara eksponensial lebih sedikit (dibandingkan dengan jaringan lapisan-tersembunyi-tunggal). Ref: Poggio, Tomaso, dkk. "Mengapa dan kapan jaringan yang dalam tetapi tidak dangkal dapat menghindari kutukan dimensi: ulasan." International Journal of Automation and Computing (2017)
DataHungry
Anda mungkin ingin melihat artikel ini
agcala

Jawaban:

152

Mari kita mulai dengan triviliaty: Deep neural network hanyalah jaringan feedforward dengan banyak lapisan tersembunyi.

Ini kurang lebih semua yang bisa dikatakan tentang definisi. Jaringan saraf dapat berulang atau diteruskan; feedforward yang tidak memiliki loop dalam grafik mereka dan dapat diatur dalam lapisan. Jika ada "banyak" lapisan, maka kita katakan bahwa jaringannya dalam .

Berapa banyak lapisan yang harus dimiliki suatu jaringan agar memenuhi syarat sedalam itu? Tidak ada jawaban pasti untuk ini (ini seperti menanyakan berapa banyak butiran yang membuat tumpukan ), tetapi biasanya memiliki dua atau lebih lapisan tersembunyi yang diperhitungkan sedalam mungkin. Sebaliknya, jaringan dengan hanya satu lapisan tersembunyi secara konvensional disebut "dangkal". Saya menduga bahwa akan ada beberapa inflasi yang terjadi di sini, dan dalam sepuluh tahun orang mungkin berpikir bahwa apa pun dengan kurang dari, katakanlah, sepuluh lapis adalah dangkal dan hanya cocok untuk latihan taman kanak-kanak. Secara informal, "dalam" menunjukkan bahwa jaringan itu sulit untuk ditangani.

Berikut ini adalah ilustrasi, diadaptasi dari sini :

Jaringan saraf deep vs non-deep

Tetapi pertanyaan sebenarnya yang Anda tanyakan adalah, tentu saja, Mengapa memiliki banyak lapisan bermanfaat?

Saya pikir jawaban yang agak mencengangkan adalah tidak ada yang benar-benar tahu. Ada beberapa penjelasan umum yang akan saya ulas secara singkat di bawah ini, tetapi tidak satupun dari mereka yang secara meyakinkan terbukti benar, dan orang bahkan tidak dapat memastikan bahwa memiliki banyak lapisan benar - benar bermanfaat.

Saya mengatakan bahwa ini mencengangkan, karena pembelajaran yang dalam sangat populer, memecahkan semua catatan (dari pengenalan gambar, bermain Go, ke terjemahan otomatis, dll.) Setiap tahun, digunakan oleh industri, dll. Dan kita masih belum cukup yakin mengapa ia bekerja sangat baik.

Aku mendasarkan diskusi saya di Belajar Jauh buku oleh Goodfellow, Bengio, dan Courville yang keluar pada tahun 2017 dan secara luas dianggap sebagai yang buku tentang pembelajaran yang mendalam. (Ini tersedia secara online secara gratis.) Bagian yang relevan adalah 6.4.1 Sifat dan Kedalaman Pendekatan Universal .

Anda yang menulisnya

10 tahun yang lalu di kelas saya belajar bahwa memiliki beberapa lapisan atau satu lapisan (tidak termasuk lapisan input dan output) adalah setara dalam hal fungsi yang dapat mewakili jaringan saraf [...]

Anda harus merujuk pada apa yang disebut teorema aproksimasi Universal , dibuktikan oleh Cybenko pada tahun 1989 dan digeneralisasi oleh berbagai orang di tahun 1990-an. Pada dasarnya dikatakan bahwa jaringan saraf dangkal (dengan 1 lapisan tersembunyi) dapat mendekati fungsi apa pun , yaitu pada prinsipnya dapat mempelajari apa saja . Hal ini berlaku untuk berbagai fungsi aktivasi nonlinier, termasuk unit linear yang diperbaiki yang sebagian besar jaringan saraf gunakan saat ini (buku teks referensi Leshno et al. 1993 untuk hasil ini).

Jika demikian, mengapa semua orang menggunakan jaring yang dalam?

Yah, jawaban yang naif adalah karena mereka bekerja lebih baik. Berikut adalah gambar dari buku Deep Learning yang menunjukkan bahwa membantu memiliki lebih banyak lapisan dalam satu tugas tertentu, tetapi fenomena yang sama sering diamati di berbagai tugas dan domain:

Lebih banyak lapisan baik

Kita tahu bahwa jaringan yang dangkal dapat bekerja sebaik jaringan yang lebih dalam. Tetapi tidak; dan biasanya tidak. Pertanyaannya adalah --- mengapa? Jawaban yang memungkinkan:

  1. Mungkin jaringan yang dangkal akan membutuhkan lebih banyak neuron daripada yang dalam?
  2. Mungkin jaringan yang dangkal lebih sulit untuk dilatih dengan algoritma kita saat ini (misalnya memiliki minima lokal yang lebih buruk, atau tingkat konvergensi lebih lambat, atau apa pun)?
  3. Mungkin arsitektur yang dangkal tidak sesuai dengan jenis masalah yang biasanya kita coba selesaikan (mis. Pengenalan objek adalah proses "hierarkis" yang mendalam dan klasik)?
  4. Sesuatu yang lain

Buku Deep Learning mengemukakan poin-poin # 1 dan # 3. Pertama, ia berpendapat bahwa jumlah unit dalam jaringan yang dangkal tumbuh secara eksponensial dengan kompleksitas tugas. Jadi agar berguna, jaringan yang dangkal mungkin harus sangat besar; mungkin jauh lebih besar dari jaringan yang dalam. Ini didasarkan pada sejumlah makalah yang membuktikan bahwa jaringan dangkal dalam beberapa kasus membutuhkan banyak neuron secara eksponensial; tetapi apakah klasifikasi MNIST atau Go Playing adalah kasus seperti itu tidak benar-benar jelas. Kedua, buku ini mengatakan ini:

Memilih model yang dalam mengkodekan keyakinan yang sangat umum bahwa fungsi yang ingin kita pelajari harus melibatkan komposisi beberapa fungsi yang lebih sederhana. Ini dapat ditafsirkan dari sudut pandang pembelajaran representasi yang mengatakan bahwa kami percaya masalah belajar terdiri dari menemukan serangkaian faktor yang mendasari variasi yang pada gilirannya dapat dijelaskan dalam hal faktor variasi mendasar lainnya yang lebih sederhana.

Saya pikir "konsensus" saat ini adalah bahwa itu adalah kombinasi dari poin-poin # 1 dan # 3: untuk tugas-tugas dunia nyata, arsitektur yang dalam sering kali bermanfaat dan arsitektur yang dangkal akan tidak efisien dan membutuhkan lebih banyak neuron untuk kinerja yang sama.

Tapi itu masih jauh dari terbukti. Pertimbangkan misalnya Zagoruyko dan Komodakis, 2016, Wide Residual Networks . Jaringan residual dengan 150+ lapisan muncul pada 2015 dan memenangkan berbagai kontes pengenalan gambar. Ini adalah kesuksesan besar dan tampak seperti argumen yang meyakinkan yang mendukung kedalaman; di sini adalah satu gambar dari presentasi oleh penulis pertama pada kertas jaringan sisa (perhatikan bahwa waktu yang membingungkan pergi ke kiri di sini):

jaringan residu yang dalam

Tetapi kertas yang terhubung di atas menunjukkan bahwa jaringan residu "lebar" dengan "hanya" 16 lapisan dapat mengungguli yang "dalam" dengan 150+ lapisan. Jika ini benar, maka seluruh poin dari gambar di atas rusak.

Atau pertimbangkan Ba dan Caruana, 2014, Apakah Jaring Yang Dalam Sangat Perlu Menjadi Dalam? :

Dalam makalah ini kami memberikan bukti empiris bahwa jaring dangkal mampu mempelajari fungsi yang sama seperti jaring dalam, dan dalam beberapa kasus dengan jumlah parameter yang sama dengan jaring dalam. Kami melakukan ini dengan pertama-tama melatih model dalam yang canggih, dan kemudian melatih model yang dangkal untuk meniru model dalam. Model mimik dilatih menggunakan skema kompresi model yang dijelaskan di bagian selanjutnya. Hebatnya, dengan kompresi model kami dapat melatih jaring yang dangkal seakurat beberapa model yang dalam, meskipun kami tidak dapat melatih jaring yang dangkal ini seakurat jaring yang dalam ketika jaring yang dangkal dilatih langsung pada yang asli. berlabel data pelatihan. Jika jaring dangkal dengan jumlah parameter yang sama dengan jaring dalam dapat belajar meniru jaring dalam dengan kesetiaan tinggi,

Jika benar, ini berarti bahwa penjelasan yang benar adalah peluru saya # 2, dan bukan # 1 atau # 3.

Seperti yang saya katakan --- belum ada yang tahu pasti.


Komentar penutup

Jumlah kemajuan yang dicapai dalam pembelajaran mendalam atas ~ 10 tahun terakhir benar-benar menakjubkan, tetapi sebagian besar kemajuan ini dicapai dengan trial and error, dan kami masih kekurangan pemahaman dasar tentang apa yang sebenarnya membuat jaring yang mendalam untuk bekerja dengan baik. Bahkan daftar hal-hal yang orang anggap penting untuk membangun jaringan mendalam yang efektif tampaknya berubah setiap beberapa tahun.

Kebangkitan pembelajaran yang dalam dimulai pada tahun 2006 ketika Geoffrey Hinton (yang telah bekerja pada jaringan saraf selama 20 tahun lebih tanpa minat banyak orang) menerbitkan beberapa makalah terobosan yang menawarkan cara yang efektif untuk melatih jaringan yang dalam ( kertas Sains , kertas perhitungan Neural ) . Caranya adalah dengan menggunakan pra-pelatihan tanpa pengawasan sebelum memulai gradient descent. Makalah-makalah ini merevolusi lapangan, dan selama beberapa tahun orang berpikir bahwa pra-pelatihan tanpa pengawasan adalah kuncinya.

Kemudian pada tahun 2010 Martens menunjukkan bahwa jaringan saraf yang dalam dapat dilatih dengan metode orde dua (disebut metode bebas Hessian) dan dapat mengungguli jaringan yang dilatih dengan pra-pelatihan: Pembelajaran mendalam melalui pengoptimalan bebas Hessian . Kemudian pada 2013 Sutskever et al. menunjukkan bahwa gradien keturunan stochastic dengan beberapa trik yang sangat pintar dapat mengungguli metode bebas Hessian: Pada pentingnya inisialisasi dan momentum dalam pembelajaran yang mendalam . Juga, sekitar 2010 orang menyadari bahwa menggunakan unit linear yang diperbaiki alih-alih unit sigmoid membuat perbedaan besar untuk gradient descent. Dropout muncul pada 2014. Jaringan residual muncul pada 2015. Orang-orang terus memunculkan cara yang lebih dan lebih efektif untuk melatih jaringan dalam danapa yang tampak seperti wawasan kunci 10 tahun yang lalu sering dianggap sebagai gangguan saat ini. Semua itu sebagian besar didorong oleh coba-coba dan ada sedikit pemahaman tentang apa yang membuat beberapa hal bekerja dengan baik dan beberapa hal lainnya tidak. Melatih jaringan yang dalam adalah seperti sekumpulan besar trik. Trik yang berhasil biasanya dirasionalisasi post factum.

Kami bahkan tidak tahu mengapa jaringan yang dalam mencapai puncak kinerja; hanya 10 tahun orang menyalahkan minima lokal, tetapi pemikiran saat ini adalah bahwa ini bukan intinya (ketika kinerja tinggi, gradien cenderung tetap besar). Ini adalah pertanyaan mendasar tentang jaringan yang dalam, dan kami bahkan tidak tahu ini .

Pembaruan: Ini kurang lebih adalah subjek pembicaraan NIPS 2017 Ali Rahimi tentang pembelajaran mesin sebagai alkimia: https://www.youtube.com/watch?v=Qi1Yry33TQE .


[Jawaban ini sepenuhnya ditulis ulang pada bulan April 2017, jadi beberapa komentar di bawah ini tidak berlaku lagi.]

amuba
sumber
2
Respons yang bagus! 1) Seperti yang juga disebutkan oleh @Nicolas, ternyata ada teorema ( en.wikipedia.org/wiki/Universal_approximation_theorem ) yang mengklaim bahwa jaringan saraf umpan maju dengan lapisan tersembunyi tunggal dan jumlah neuron yang terbatas dapat diperkirakan. fungsi kontinu (termasuk DNN) pada hypercube unit. Hasil ini diklaim independen dari pilihan fungsi aktivasi. 2) Saya tidak yakin apakah komentar terakhir Anda (yaitu bahwa Hinton bergabung dengan Google) relevan dengan keberhasilan DNN baru-baru ini; Hinton bergabung dengan Google lama setelah DNN menjadi epidemi!
Sobi
4
Mungkin kita menggunakan terminologi secara berbeda. Perceptrons tidak memiliki lapisan tersembunyi - input mereka adalah data, output mereka adalah klasifikasi. Jaringan multilayer terdiri dari sekelompok perceptron yang disatukan sehingga output dari layer membentuk input ke layer . Jaringan dengan satu lapisan tersembunyi sehingga memiliki tiga lapisan (input, tersembunyi, keluaran). Lapisan tersembunyi ini adalah kunci untuk pendekatan universal: perceptrons, yang tidak memilikinya, tidak dapat menghitung hal-hal seperti XOR, tetapi jaringan multilayer bisa. nn1n
Matt Krause
2
Masalah linearitas sepertinya merupakan kombinasi dari dua masalah. Perceptrons hanya dapat menghitung batas keputusan linear - ia hanya dapat menggambar garis lurus untuk membagi dua kelas. Jaringan multilayer dapat "menggambar" batas yang lebih rumit. Tetapi perceptrons atau jaringan multilayer tidak menggunakan fungsi aktivasi linier, kecuali pada lapisan output dari jaringan multilayer. Fungsi aktivasi perceptron adalah heaviside (1 jika x> 0, 0 sebaliknya); jaringan multilayer sering menggunakan sigmoids, tetapi kendala untuk approx universal. cukup ringan: tidak konstan, dibatasi, dan meningkat secara monoton.
Matt Krause
2
@amoeba jawaban yang bagus, gambar di awal agak membuat saya pergi untuk membaca sisanya, tapi itu yang terbaik. Perceptron adalah mitra dari regresi linier untuk klasifikasi, itulah sebabnya ketika orang menggunakan solusi bentuk tertutup (pseudoinverse) untuk menyelesaikan masalah daripada metode online (sgd), itu disebut Regresi Logistik, karena logistik (fungsi sigmoid) = perceptron. Regresi perceptron / logistik hanya dapat 'menggambar' batas keputusan linier dan itulah mengapa disebut linear.
shuriken x blue
2
Namun, multi-layer perceptron (apa yang Anda gambar pada gambar pertama Anda di sebelah kiri) dapat menggabungkan beberapa batas keputusan linier tersebut dan dengan demikian dapat mempartisi ruang untuk memecahkan masalah XOR (non-linear) seperti @Matt yang disebutkan. Jadi, banyak banyak batas keputusan linier gabungan dapat membuat lingkaran misalnya jika Anda menyipitkan mata. Itu tergantung pada bagaimana Anda memikirkannya - keputusannya masih linier di ruang yang lebih tinggi, jika Anda terbiasa dengan kernel, itu semacam hal yang sama.
shuriken x blue
8

Jawaban yang bagus sejauh ini, meskipun ada beberapa hal yang tidak ada yang disebutkan di sini, inilah $ 0,02 saya

Saya hanya akan menjawab dalam bentuk cerita, harus membuat semuanya lebih menyenangkan dan jelas. Tidak ada tldr di sini. Dalam prosesnya Anda harus bisa memahami apa perbedaannya.

Ada beberapa alasan mengapa DNN memicu ketika mereka melakukannya (bintang harus sejajar, seperti semua hal serupa, itu hanya masalah tempat yang tepat, waktu yang tepat, dll).

Salah satu alasannya adalah ketersediaan data, banyak data (data berlabel). Jika Anda ingin dapat menggeneralisasi dan mempelajari sesuatu seperti 'generic priors' atau 'universal priors' (alias blok bangunan dasar yang dapat digunakan kembali di antara tugas / aplikasi) maka Anda memerlukan banyak data. Dan data liar, mungkin saya tambahkan, tidak set data steril dicatat dengan hati-hati di laboratorium dengan pencahayaan terkontrol dan semua. Mekanik Turk memungkinkan (memberi label).

Kedua, kemungkinan untuk melatih jaringan yang lebih besar lebih cepat menggunakan GPU membuat eksperimen lebih cepat. Unit ReLU membuat hal-hal komputasi lebih cepat juga dan menyediakan regularisasi mereka karena Anda perlu menggunakan lebih banyak unit dalam satu lapisan untuk dapat mengompres informasi yang sama karena lapisan sekarang lebih jarang, sehingga juga berjalan baik dengan putus sekolah. Juga, mereka membantu dengan masalah penting yang terjadi ketika Anda menumpuk banyak lapisan. Lebih lanjut tentang itu nanti. Berbagai macam trik yang meningkatkan kinerja. Seperti menggunakan mini-batch (yang sebenarnya merugikan untuk kesalahan akhir) atau konvolusi (yang sebenarnya tidak menangkap varians sebanyak bidang reseptif lokal) tetapi komputasi lebih cepat.

Sementara itu, orang-orang berdebat jika mereka menyukai mereka yang lebih kurus atau lebih gemuk, lebih kecil atau lebih tinggi, dengan atau tanpa bintik-bintik, dll. Optimasi itu seperti gagal atau tidak meledak sehingga penelitian bergerak menuju metode pelatihan yang lebih kompleks seperti gradien konjugat dan metode newton, akhirnya mereka semua menyadari tidak ada makan siang gratis. Jaringan bersendawa.

Apa yang memperlambat segalanya adalah masalah gradien menghilang . Orang-orang pergi seperti: whoa, itu jauh sekali, bung! Singkatnya itu berarti sulit untuk menyesuaikan kesalahan pada lapisan lebih dekat ke input. Saat Anda menambahkan lebih banyak lapisan pada kue, menjadi terlalu goyah. Anda tidak dapat kembali menyebarkan kesalahan yang berarti kembali ke lapisan pertama. Semakin banyak layer, semakin buruk. Kekecewaan.

Beberapa orang tahu bahwa menggunakan cross-entropy sebagai fungsi kehilangan (well, sekali lagi, klasifikasi dan pengenalan gambar) menyediakan semacam pengaturan dan membantu melawan jaringan menjadi jenuh dan pada gilirannya gradien tidak dapat menyembunyikan itu dengan baik.

Apa yang juga memungkinkan adalah pra-pelatihan per-lapisan menggunakan metode yang tidak diawasi. Pada dasarnya, Anda mengambil banyak auto-encoders dan belajar representasi abstrak semakin kurang saat Anda meningkatkan rasio kompresi. Bobot dari jaringan ini digunakan untuk menginisialisasi versi yang dilindungi. Ini memecahkan masalah gradien hilang dengan cara lain: Anda sudah memulai pelatihan yang diawasi dari posisi awal yang jauh lebih baik. Jadi semua jaringan lain bangkit dan mulai memberontak. Namun jaringan tetap membutuhkan pengawasan, jika tidak, data tetap tidak mungkin disimpan.

Sekarang, untuk bagian terakhir yang akhirnya mengarah pada jawaban Anda yang terlalu rumit untuk disingkat: mengapa lebih banyak lapisan dan bukan hanya satu. Karena kita bisa! dan karena deskriptor fitur konteks dan invarian. dan kolam.

Berikut ini sebuah contoh: Anda memiliki kumpulan data gambar, bagaimana Anda akan melatih rencana NN menggunakan data itu? Nah, secara naif, Anda katakan saja setiap baris dan Anda menggabungkannya menjadi satu vektor panjang dan itulah input Anda. Apa yang kamu pelajari? Nah, beberapa fungsi fuzzy nonsense yang mungkin tidak terlihat seperti apa pun, karena banyaknya banyak jenis varian yang terdapat pada objek dalam gambar dan Anda tidak dapat membedakan antara hal-hal yang relevan dan tidak relevan. Dan pada titik tertentu jaringan perlu lupa untuk dapat mempelajari kembali hal-hal baru. Jadi ada masalah kapasitas. Ini lebih merupakan dinamika non-linear, tetapi intinya adalah Anda perlu meningkatkan jumlah neuron untuk dapat memasukkan lebih banyak informasi dalam jaringan Anda.

Jadi intinya adalah bahwa jika Anda hanya memasukkan gambar sebagai satu bagian, menambahkan lapisan tambahan tidak terlalu banyak untuk Anda karena Anda tidak dapat mempelajari abstraksi , yang sangat penting. Melakukan hal-hal secara holistik sehingga tidak berfungsi dengan baik, kecuali jika Anda melakukan hal-hal yang lebih sederhana dengan jaringan seperti berfokus pada jenis objek tertentu, jadi Anda membatasi diri pada satu kelas dan Anda memilih beberapa properti global sebagai tujuan klasifikasi.

Jadi, apa yang harus dilakukan? Lihatlah ujung layar Anda dan cobalah membaca teks ini. Masalah? Sebodoh kedengarannya, Anda perlu melihat apa yang Anda baca. Kalau tidak, terlalu kabur / tidak ada resolusi / rincian yang cukup. Mari kita sebut area fokus bidang reseptif. Jaringan harus dapat fokus juga. Pada dasarnya alih-alih menggunakan seluruh gambar sebagai input, Anda memindahkan jendela geser di sepanjang gambar dan kemudian Anda menggunakannya sebagai input ke jaringan (sedikit kurang stokastik daripada apa yang dilakukan manusia). Sekarang Anda juga memiliki kesempatan untuk menangkap korelasi antara piksel dan karenanya objek dan Anda juga dapat membedakan antara kucing yang mengantuk duduk di sofa dan kucing melompat bungee terbalik. Rapi, iman pada manusia pulih kembali. Jaringan dapat mempelajari abstraksi lokal dalam suatu gambar pada berbagai tingkatan. Jaringan mempelajari filter,

Jadi, untuk meringkas segalanya: bidang / konvolusi reseptif, inisialisasi tanpa pengawasan, unit linear yang diperbaiki, putus sekolah atau metode regularisasi lainnya. Jika Anda sangat serius tentang ini, saya sarankan Anda melihat Deep Learning Schmidhuber di Neural Networks: Tinjauan di sini adalah url untuk preprint http://arxiv.org/abs/1404.7828

Dan ingat: pembelajaran besar, data mendalam. Kata.

shuriken x blue
sumber
Hai Florin, terima kasih atas jawaban yang bagus! Saya suka gaya menulis. Ketika Anda berbicara tentang jendela geser, apakah Anda mengacu pada bagaimana lapisan konvolusional NN konvolusional mengamati bagian gambar yang berbeda dan memproyeksikan aktivasi mereka pada ruang dimensi yang lebih rendah?
Nicolas
cukup banyak ya, konvolusi tidak diperlukan, tetapi komputasinya lebih cepat, karena bobotnya terbatas. lihat makalah ini di mana mereka tidak menggunakan konvolusi dan menggunakan bidang reseptif lokal. kata kunci penting adalah lokal / hierarkis: arxiv.org/pdf/1112.6209.pdf
shuriken x blue
Saya juga berpikir jawaban sistematis terdekat adalah jawaban sobi. dia punya upvote saya. Saya hanya menambahkan beberapa hal lagi di sana-sini dengan sedikit garam dan merica.
shuriken x blue
6

Dalam istilah awam, perbedaan utama dengan Neural Networks klasik adalah mereka memiliki lapisan yang lebih tersembunyi.

Idenya adalah untuk menambahkan label ke lapisan untuk membuat beberapa lapisan abstraksi:

Misalnya, jaringan saraf yang dalam untuk pengenalan objek :

  • Layer 1: Pixel tunggal
  • Layer 2: Tepi
  • Layer 3: Bentuk (lingkaran, kotak)
  • Layer n: Seluruh objek

Anda dapat menemukan penjelasan yang bagus untuk pertanyaan ini di Quora .

Dan, jika Anda tertarik pada subjek ini saya akan merekomendasikan untuk melihat buku ini .

David Gasquez
sumber
1
Terima kasih David, tetapi saya tidak benar-benar melihat bagaimana cara menambahkan label membuatnya berbeda. Saya juga ingat itu adalah masalah yang sulit untuk memahami dan menguraikan bagaimana suatu fungsi dikodekan oleh jaringan saraf. Pasti ada sesuatu yang lain selain memiliki lebih banyak layer. Adapun contoh yang Anda berikan, saya percaya bahwa Anda dapat melatih jaringan saraf (sekolah tua) secara individual untuk melakukan masing-masing tugas.
Nicolas
Kekuatan datang ketika Anda menggunakannya seperti pipa, sehingga input dan output dari lapisan menumpuk di setiap lapisan.
David Gasquez
Saya telah membaca tautan pertama Anda, yang merupakan sumber daya yang bagus, dan pertanyaan terkait lainnya tentang quora dan se, namun contoh yang Anda berikan tampaknya tidak akurat dengan apa yang saya baca. Saya akan mencoba menjawab pertanyaan saya sendiri, merangkum bacaan tesis ini.
Nicolas
2
Meskipun sumber daya rujukan menarik, jawaban saat ini tidak menjawab pertanyaan.
Nicolas
Bisakah Anda menunjukkan contoh di mana lapisan diberi label (selain dengan cara deskriptif murni)? Memang benar bahwa lapisan tersembunyi muncul ke fitur yang lebih kompleks berturut-turut di setiap lapisan tersembunyi, tetapi "menambahkan label" tampaknya menyiratkan bahwa mereka sedang dilatih khusus untuk melakukan itu.
Matt Krause
2

Saya juga agak bingung pada awalnya oleh perbedaan antara jaringan saraf (NN) dan jaringan saraf dalam (DNN), namun 'kedalaman' hanya merujuk pada jumlah parameter & lapisan, sayangnya. Anda dapat menganggapnya sebagai semacam branding ulang di bawah apa yang disebut 'Mafia Kanada'.

Beberapa tahun yang lalu, saya juga memiliki Neural Networks sebagai bagian dari kelas dan kami melakukan pengenalan angka, perkiraan gelombang dan aplikasi serupa dengan menggunakan NN, yang memiliki beberapa lapisan dan output tersembunyi dan semua jazz yang dimiliki DNN. Namun, yang tidak kami miliki saat itu adalah kekuatan komputasi.

Alasan yang membuat pemindahan ke DNN menjadi mungkin dan diinginkan adalah kemajuan dalam pengembangan perangkat keras. Sederhananya, sekarang kita dapat menghitung lebih banyak, lebih cepat dan lebih paralel (DNN pada GPU), sementara sebelumnya, waktu adalah hambatan untuk NN.

Seperti yang dirujuk pada halaman Wikipedia untuk Deep Learning , bagian 'dalam' sebagian besar merujuk pada fitur yang berinteraksi secara non-linear pada berbagai lapisan, oleh karena itu melakukan ekstraksi fitur dan transformasi. Ini juga dilakukan dalam standar NN, namun pada skala yang lebih kecil.

Pada halaman yang sama, di sini Anda memiliki definisi 'Jaringan saraf dalam (DNN) adalah jaringan saraf tiruan (JST) dengan beberapa lapisan unit yang tersembunyi antara lapisan input dan output.'

mttk
sumber
Hai Mttk, terima kasih atas jawaban Anda, ini memberikan lebih banyak cahaya pada pertanyaan ini. Mengenai poin terakhir Anda, ya strukturaly sangat mudah untuk menjelaskan perbedaannya (1 vs beberapa lapisan), tetapi perbedaan dalam bagaimana banyak lapisan ini digunakan tampaknya menjadi hal yang penting dan jauh lebih jelas. Itu sebabnya saya memfokuskan pertanyaan bukan pada struktur ..
Nicolas
Sejujurnya, saya tidak setuju dengan definisi terakhir yang saya referensikan - karena ANN / NN dengan satu lapisan tersembunyi tidak benar-benar efisien, dan Anda memerlukan banyak untuk setiap jenis prediksi yang lebih kompleks (saya mengatakan ini karena saya pikir DNN adalah seorang kata kunci yang tidak berguna ditambahkan ke istilah yang sudah bagus, NN). Saya pikir Anda dapat menggunakan NN dan DNN secara bergantian (karena saat ini tidak ada yang menggunakan NN satu-lapisan tersembunyi), sementara penggunaan lapisan berbeda antara jenis DNN (CNN, RBM, RNN, LSTM, CW-RNN, ...) dan bukan ide DNN itu sendiri.
mttk
2

Sejauh yang saya tahu, apa yang disebut Deep Neural Network (DNN) saat ini tidak ada yang secara fundamental atau filosofis berbeda dari standar Neural Network (NN). Meskipun, secara teori, seseorang dapat memperkirakan NN sewenang-wenang menggunakan NN dangkal dengan hanya satu lapisan tersembunyi, namun, ini tidak berarti bahwa dua jaringan akan melakukan hal yang sama ketika dilatih menggunakan algoritma dan data pelatihan yang sama. Bahkan ada minat yang tumbuh dalam pelatihan jaringan dangkal yang berkinerja sama dengan jaringan dalam. Namun, cara ini dilakukan adalah dengan melatih jaringan yang dalam terlebih dahulu, dan kemudian melatih jaringan yang dangkal untuk ditiruhasil akhir (yaitu keluaran dari lapisan kedua dari belakang) dari jaringan yang dalam. Lihat, apa yang membuat arsitektur yang mendalam disukai adalah bahwa teknik pelatihan saat ini (propagasi balik) terjadi untuk bekerja lebih baik ketika neuron diletakkan dalam struktur hierarkis.

Pertanyaan lain yang mungkin diajukan adalah: mengapa Neural Networks (khususnya DNNs) menjadi begitu populer secara tiba-tiba. Menurut pemahaman saya, bahan ajaib yang membuat DNN begitu populer baru-baru ini adalah sebagai berikut:

A. Peningkatan dataset dan kemampuan pemrosesan data

1. Kumpulan data skala besar dengan jutaan gambar beragam tersedia

2. Implementasi GPU cepat dibuat tersedia untuk umum

B. Peningkatan algoritma pelatihan dan arsitektur jaringan

1. Rectified Linear Units (ReLU) bukan sigmoid atau tanh

2. Arsitektur jaringan dalam berkembang selama bertahun-tahun


A-1) Sampai baru-baru ini, setidaknya dalam Computer Vision, kami tidak dapat melatih model pada jutaan gambar berlabel; hanya karena dataset berlabel ukuran itu tidak ada. Ternyata, di samping jumlah gambar, granularity dari set label juga merupakan faktor yang sangat penting dalam keberhasilan DNNs (lihat Gambar 8 dalam makalah ini , oleh Azizpour et al.).

A-2) Banyak upaya rekayasa telah dilakukan untuk memungkinkan untuk melatih DNN yang bekerja dengan baik dalam praktik, terutama, munculnya implementasi GPU. Salah satu implementasi GPU pertama DNN yang berhasil, berjalan pada dua GPU paralel; namun, dibutuhkan sekitar satu minggu untuk melatih DNN pada 1,2 juta gambar dari 1000 kategori menggunakan GPU kelas atas (lihat makalah ini, oleh Krizhevsky et al.).

B-1) Penggunaan Simple Rectified Linear Units (ReLU) alih-alih fungsi sigmoid dan tanh mungkin merupakan blok bangunan terbesar dalam membuat pelatihan DNN dimungkinkan. Perhatikan bahwa kedua fungsi sigmoid dan tanh memiliki gradien hampir nol hampir di mana-mana, tergantung pada seberapa cepat mereka berpindah dari tingkat aktivasi rendah ke tinggi; dalam kasus ekstrem, ketika transisi tiba-tiba, kita mendapatkan fungsi langkah yang memiliki kemiringan nol di mana-mana kecuali pada satu titik di mana transisi terjadi.

B-2) Cerita tentang bagaimana arsitektur jaringan saraf berkembang selama bertahun-tahun mengingatkan saya pada bagaimana evolusi mengubah struktur organisme di alam. Pembagian parameter (misalnya dalam lapisan konvolusional), regularisasi putus sekolah, inisialisasi, jadwal tingkat pembelajaran, pengelompokan spasial, sub-pengambilan sampel pada lapisan yang lebih dalam, dan banyak trik lain yang sekarang dianggap standar dalam pelatihan. DNN dikembangkan, dikembangkan, akhirnya disesuaikan dengan kebutuhan bertahun-tahun untuk memungkinkan pelatihan jaringan mendalam seperti sekarang ini.

Sobi
sumber
3
+1. Jawaban pertama di utas ini yang menyediakan jawaban yang memadai untuk pertanyaan OP. Banyak poin bagus di sini. Satu-satunya komentar utama saya adalah bahwa selain A dan B Anda, ada juga C: Peningkatan besar-besaran dalam ukuran dataset pelatihan yang tersedia. Ini tampaknya setidaknya sama pentingnya dengan A dan B.
amoeba
1
Saya tidak berpikir relu begitu penting: kertas Alex krizhevsky mengklaim itu membuat nn belajar hingga 6 kali lebih cepat. Sebagian besar perubahan struktur jaringan lain yang Anda sebutkan berkaitan dengan nvol konvolusional, yang hanya menyalin pipa pemrosesan gambar standar (hal yang baik, tetapi tidak ada wawasan baru)
seanv507
1
@amoeba: ukuran dataset di bawah A. Saya memperbarui teks untuk menyorotnya.
Sobi
@ seanv507: memang, saya memiliki jaringan convolutional (ConvNets) dalam pikiran ketika menulis jawabannya. Jika ada faktor penting lainnya (tidak terkait dengan ConvNets) yang saya lewatkan, saya akan sangat menghargainya jika Anda menyebutkannya. Saya akan dengan senang hati memperbarui jawaban saya. Mengenai ReLU, melatih nns dengan tanh dan sigmoid jauh lebih sulit daripada dengan ReLU karena masalah menghilangkan gradien: unit menjadi mudah jenuh dan, begitu itu terjadi, butuh waktu lama untuk menjadi tidak jenuh lagi (gradien sangat kecil ketika unit jenuh)
Sobi
2

Perbedaan antara NN "Deep" dan NN standar murni kualitatif: tidak ada definisi tentang apa yang dimaksud "Deep". "Dalam" dapat berarti apa saja dari arsitektur yang sangat canggih yang digunakan oleh Google, Facebook dan rekan yang memiliki 50-80 atau bahkan lebih lapisan, hingga 2 lapisan tersembunyi (total 4 lapisan). Saya tidak akan terkejut jika Anda bahkan dapat menemukan artikel yang mengklaim melakukan pembelajaran mendalam dengan satu lapisan tersembunyi, karena "dalam" tidak berarti banyak.

"Jaringan saraf" juga merupakan kata yang tidak memiliki makna yang sangat tepat. Ini mencakup ansambel model yang sangat besar, dari mesin boltzman acak (yang merupakan grafik tidak terarah) hingga arsitektur feedforward dengan berbagai fungsi aktivasi. Sebagian besar NN akan dilatih menggunakan backprop, tetapi tidak harus demikian sehingga bahkan algoritma pelatihannya tidak terlalu homogen.

Secara keseluruhan, pembelajaran yang mendalam, NN yang dalam dan NNs semuanya menjadi catch-all words yang menangkap banyak pendekatan.

Untuk referensi pengantar yang baik ke "apa yang berubah": Pembelajaran mendalam Representasi: Looking Forward , Bengio, 2013 adalah tinjauan + perspektif yang baik untuk masa depan. Juga lihat Apakah Jaring Yang Dalam Sangat Perlu Menjadi Dalam? Ba & Caruana, 2013 yang menggambarkan bahwa menjadi dalam mungkin tidak berguna untuk representasi tetapi untuk belajar.

Guillaume Dehaene
sumber
Referensi yang Anda berikan sangat membantu, tetapi sisa jawaban dalam bentuk saat ini (yang berbunyi "NN tidak berarti apa-apa, DNN tidak berarti apa-apa, NN dan DNN dapat melakukan banyak hal") tidak banyak, akankah Anda mempertimbangkan untuk merevisinya?
Nicolas
1

Untuk memperluas jawaban David Gasquez, salah satu perbedaan utama antara jaringan saraf dalam dan jaringan saraf tradisional adalah bahwa kita tidak hanya menggunakan backpropagation untuk jaring saraf dalam.

Mengapa? Karena backpropagation melatih lapisan selanjutnya dengan lebih efisien daripada melatih lapisan sebelumnya - seperti yang Anda lakukan sebelumnya dan sebelumnya dalam jaringan, kesalahan semakin kecil dan semakin menyebar. Jadi jaringan sepuluh-lapisan pada dasarnya akan menjadi tujuh lapis bobot acak diikuti oleh tiga lapis bobot pas, dan melakukan sama baiknya dengan jaringan tiga lapis. Lihat di sini untuk lebih lanjut.

Jadi terobosan konseptual memperlakukan masalah yang terpisah (lapisan berlabel) sebagai masalah yang terpisah - jika kita pertama kali mencoba memecahkan masalah membangun lapisan pertama yang baik secara umum, dan kemudian mencoba untuk memecahkan masalah membangun lapisan kedua yang baik secara umum, akhirnya kami akan memiliki ruang fitur yang mendalam yang dapat kami masukkan ke masalah kami yang sebenarnya.

Matthew Graves
sumber
1

NN:

  • satu lapisan tersembunyi sudah cukup tetapi dapat memiliki beberapa lapisan namun, urutan kiri ke kanan (model: umpan maju NN)
  • dilatih hanya dengan cara diawasi (backpropagation)
  • ketika banyak layer digunakan, latih semua layer secara bersamaan (algoritma yang sama: backpropagation), lebih banyak layer membuatnya sulit untuk digunakan karena kesalahan menjadi terlalu kecil
  • sulit untuk memahami apa yang dipelajari di setiap lapisan

DNN:

  • diperlukan beberapa lapisan, tepi tidak terarah (model: mesin boltzman terbatas)
  • pertama-tama dilatih dengan cara yang tidak diawasi, di mana jaringan mempelajari fitur-fitur yang relevan dengan belajar mereproduksi inputnya, kemudian dilatih dengan cara yang diawasi yang menyempurnakan fitur-fitur tersebut untuk mengklasifikasikan fitur
  • melatih layer satu per satu dari input ke output layer (algoritma: divergence kontrasif)
  • setiap lapisan jelas mengandung fitur peningkatan abstraksi

Perpindahan ke DNN disebabkan oleh tiga terobosan independen yang terjadi pada tahun 2006.

Mengenai teorema pada NN, pertanyaan yang disinggung adalah:

  • teorema aproksimasi universal atau teorema Cybenko: jaringan saraf umpan-maju dengan lapisan tersembunyi tunggal dapat mendekati setiap fungsi kontinu. Namun dalam praktiknya mungkin membutuhkan lebih banyak neuron jika satu lapisan tersembunyi digunakan.
Nicolas
sumber
2
-1? Benarkah? Saya membaca semua ini dalam literatur dan membuat perbandingan poin demi poin dari kedua pendekatan! Tolong setidaknya nyatakan apa yang tidak benar ...
Nicolas
3
Saya tidak downvote (mungkin downvoter tidak suka Anda menjawab pertanyaan Anda sendiri? Tapi itu tentu saja baik-baik saja di sini), tetapi di sini ada satu hal yang tidak sepenuhnya benar. Apa yang Anda cantumkan sebagai properti DNN: bahwa tepiannya tidak terarah, bahwa itu pertama kali dilatih dengan cara yang tidak diawasi, bahwa lapisan-lapisan tersebut dilatih satu per satu - semua itu hanya mengacu pada jaringan kepercayaan mendalam yang disarankan oleh Hinton pada tahun 2006. Ini bukan tentu benar untuk jaringan saraf yang dalam pada umumnya dan pada kenyataannya sekarang ada banyak cara untuk melatih jaringan yang dalam tanpa semua itu. Lihat jawaban saya.
amoeba
1

O(n)

Saya pikir Anda harus melangkah mundur dan melihat bahwa ini telah menciptakan kebangkitan AI dangkal - mis. Sekumpulan kata untuk analisis sentimen dan aplikasi bahasa lainnya dan sekumpulan kata-kata memimpin pendekatan untuk pengenalan gambar sebelum DNN. Tidak ada yang mengatakan kantong kata-kata adalah model bahasa yang benar, tetapi itu adalah solusi teknik yang efektif. Jadi saya akan mengatakan DNN adalah 'tas kata-kata visual' yang lebih baik - lihat misalnya Szegedy et al. 2013 Properti menarik dari jaringan saraf dan Nguyen et al. Deep Neural Networks Mudah Tertipu: Prediksi Keyakinan Tinggi untuk Gambar Tidak Dikenali di mana jelas bahwa tidak ada struktur urutan yang lebih tinggi, dll. Sedang dipelajari (atau apa pun yang diklaim untuk DNN).

seanv507
sumber
@amoeba kertas lain ini hampir merupakan kertas pendamping yang pertama (sekali lagi dengan banyak gambar!)
seanv507
0

Deep Learning adalah serangkaian algoritma dalam pembelajaran mesin yang berupaya memodelkan abstraksi tingkat tinggi dalam data dengan menggunakan arsitektur yang terdiri dari beberapa transformasi non-linear .

Sumber: Arno Candel

JimBoy
sumber