Apa perbedaan antara Neural Network Konvolusional dan Neural Network biasa?

18

Saya telah melihat istilah-istilah ini banyak dilemparkan ke situs ini, khususnya pada tag dan .

Saya tahu bahwa Jaringan Saraf Tiruan adalah sistem yang didasarkan pada otak manusia secara longgar. Tapi apa perbedaan antara Neural Network Konvolusional dan Neural Network biasa? Apakah satu hanya jauh lebih rumit dan, ahem, berbelit - belit daripada yang lain?

Mitis
sumber

Jawaban:

23

TLDR: Jaringan convolutional-neural adalah subkelas dari neural-jaringan yang memiliki setidaknya satu lapisan konvolusi. Mereka bagus untuk menangkap informasi lokal (misalnya piksel tetangga dalam gambar atau kata-kata di sekitarnya dalam teks) serta mengurangi kompleksitas model (pelatihan lebih cepat, membutuhkan sampel lebih sedikit, mengurangi kemungkinan overfitting).

Lihat tabel berikut yang menggambarkan beberapa saraf-jaringan arsitektur termasuk-saraf-jaringan dalam-konvensional: visualisasi.


Neural Networks (NN) , atau lebih tepatnya Jaringan Syaraf Tiruan (JST) , adalah kelas algoritma Machine Learning yang baru-baru ini menerima banyak perhatian (lagi!) Karena ketersediaan Big Data dan fasilitas komputasi cepat (sebagian besar Deep Learning Algoritma pada dasarnya adalah variasi yang berbeda dari JST).

Kelas ANN mencakup beberapa arsitektur termasuk Convolutional Neural Networks ( CNN ), Recurrent Neural Networks ( RNN ) misalnya LSTM dan GRU , Autoencoder , dan Deep Belief Networks . Karena itu, CNN hanyalah satu jenis JST.

Secara umum, JST adalah kumpulan unit yang terhubung dan merdu (alias node, neuron, dan neuron buatan) yang dapat melewati sinyal (biasanya angka bernilai nyata) dari satu unit ke unit lainnya. Jumlah (lapisan) unit, tipenya, dan cara mereka terhubung satu sama lain disebut arsitektur jaringan.

CNN, khususnya, memiliki satu atau lebih lapisan unit konvolusi . Unit konvolusi menerima input dari beberapa unit dari lapisan sebelumnya yang bersama-sama menciptakan kedekatan. Oleh karena itu, unit input (yang membentuk lingkungan kecil) berbagi bobotnya.

Unit konvolusi (serta unit pooling) sangat bermanfaat sebagai:

  • Mereka mengurangi jumlah unit dalam jaringan (karena mereka pemetaan banyak-ke-satu ). Ini berarti, ada lebih sedikit parameter untuk dipelajari yang mengurangi kemungkinan overfitting karena modelnya akan lebih kompleks daripada jaringan yang terhubung penuh.
  • Mereka mempertimbangkan konteks / informasi bersama di lingkungan kecil. Masa depan ini sangat penting dalam banyak aplikasi seperti gambar, video, teks, dan pemrosesan pidato / penambangan sebagai input tetangga (mis. Piksel, bingkai, kata, dll) biasanya membawa informasi terkait.

Baca berikut ini untuk informasi lebih lanjut tentang CNN (dalam):

  1. ImageNet Klasifikasi dengan Jaringan Neural Konvolusional Dalam
  2. Menjadi Lebih Dalam dengan Konvolusi

id JST bukan "sistem yang didasarkan secara longgar pada otak manusia" melainkan kelas sistem yang terinspirasi oleh koneksi neuron yang ada di otak hewan.

Borhan Kazimipour
sumber
10

Convolutional Neural Networks (CNNs) adalah jaringan saraf dengan kendala arsitektur untuk mengurangi kompleksitas komputasi dan memastikan invariansi translasi (jaringan menginterpretasikan pola input yang sama tanpa memandang terjemahan — dalam hal pengenalan gambar: pisang adalah pisang terlepas dari di mana ia berada dalam gambar). Jaringan Syaraf Konvolusional memiliki tiga fitur arsitektur yang penting.

Konektivitas Lokal: Neuron dalam satu lapisan hanya terhubung ke neuron di lapisan berikutnya yang secara spasial dekat dengan mereka. Desain ini memangkas sebagian besar koneksi antara lapisan yang berurutan, tetapi menjaga orang-orang yang membawa informasi yang paling berguna. Asumsi yang dibuat di sini adalah bahwa data input memiliki signifikansi spasial, atau dalam contoh visi komputer, hubungan antara dua piksel yang jauh mungkin kurang signifikan daripada dua tetangga dekat.

Shared Weight: Ini adalah konsep yang membuat CNN "convolutional." Dengan memaksa neuron dari satu lapisan untuk berbagi bobot, umpan maju (memasukkan data melalui jaringan) menjadi setara dengan menggabungkan filter di atas gambar untuk menghasilkan gambar baru. Pelatihan CNN kemudian menjadi tugas mempelajari filter (memutuskan fitur apa yang harus Anda cari dalam data).

Pooling dan ReLU: CNNs memiliki dua non-linearitas: pooling layers dan fungsi ReLU. Pooling layer mempertimbangkan blok input data dan hanya meneruskan nilai maksimum. Melakukan hal ini mengurangi ukuran output dan tidak memerlukan parameter tambahan untuk dipelajari, sehingga pooling layer sering digunakan untuk mengatur ukuran jaringan dan menjaga sistem di bawah batas komputasi. Fungsi ReLU mengambil satu input, x, dan mengembalikan maksimum {0, x}. ReLU(x) = argmax(x, 0). Ini memperkenalkan efek yang mirip dengan tanh (x) atau sigmoid (x) sebagai non-linearitas untuk meningkatkan daya ekspresif model.


Bacaan lebih lanjut

Seperti jawaban lain yang disebutkan, kursus CS 231n Stanford membahas hal ini secara rinci. Lihatlah panduan tertulis ini dan kuliah ini untuk informasi lebih lanjut. Posting blog seperti ini dan ini juga sangat membantu.

Jika Anda masih penasaran mengapa CNN memiliki struktur yang mereka lakukan, saya sarankan membaca makalah yang memperkenalkan mereka meskipun ini cukup lama, dan mungkin memeriksa diskusi ini antara Yann Lecun dan Christopher Manning tentang priate bawaan (asumsi yang kami buat ketika kami mendesain arsitektur model).

Jackson Waschura
sumber
2
"dan pastikan terjemahan invarian" Apa sih terjemahan invarian itu? Ketika Anda menyebutkan istilah misterius seperti itu, setidaknya Anda harus mendefinisikannya secara intuitif.
tidak
1
Aduh, aku setuju— aku menambahkan dalam uraian singkat.
Jackson Waschura
1
Ini adalah jawaban yang lebih baik bagi saya karena menjelaskan persis bagaimana CNN adalah tipe spesifik NN. Jawaban lain tidak menyebutkan bahwa pembagian berat badan diberlakukan.
Denziloe
5

Sebuah convolutional jaringan saraf adalah salah satu yang memiliki convolutional lapisan. Jika jaringan saraf umum, secara longgar, diilhami oleh otak manusia (yang tidak terlalu akurat), jaringan saraf convolutional terinspirasi oleh sistem korteks visual, pada manusia dan hewan lain (yang lebih dekat dengan kebenaran) . Seperti namanya, lapisan ini menerapkan konvolusi dengan filter yang dapat dipelajari (alias kernel ), akibatnya jaringan mempelajari pola dalam gambar: edge, corner, arc, kemudian angka yang lebih kompleks. Jaringan saraf convolutional dapat mengandung lapisan lain juga, umumnya lapisan penyatuan dan padat.

Sangat merekomendasikan tutorial CS231n tentang masalah ini: sangat detail dan berisi banyak visualisasi yang sangat bagus.

Pepatah
sumber