Apa perbedaan antara jaringan saraf convolutional dan pembelajaran yang mendalam?


25

Saya ingin menggunakan pembelajaran mendalam dalam proyek saya. Saya membaca beberapa makalah dan muncul pertanyaan: apakah ada perbedaan antara jaringan saraf konvolusi dan pembelajaran yang mendalam? Apakah hal-hal ini sama atau mereka memiliki perbedaan besar, dan mana yang lebih baik?


Katakan padaku apa perbedaan yang tepat dari pembelajaran yang mendalam dan jaringan saraf convolutional saya beberapa kebingungan apa pada 2 topik ini
Yamini

Jawaban:


33

Deep Learning adalah cabang Machine Learning yang didasarkan pada Deep Neural Networks (DNNs), yang berarti jaringan saraf dengan setidaknya 3 atau 4 layer (termasuk layer input dan output). Tetapi bagi sebagian orang (terutama non-teknis), setiap jaringan syaraf memenuhi syarat sebagai Deep Learning, terlepas dari dalamnya. Dan yang lain menganggap 10-layer neural net sebagai dangkal.

Convolutional Neural Networks (CNNs) adalah salah satu arsitektur jaringan saraf yang paling populer. Mereka sangat sukses dalam pemrosesan gambar, tetapi juga untuk banyak tugas lain (seperti pengenalan suara, pemrosesan bahasa alami, dan banyak lagi). CNN yang canggih cukup dalam (setidaknya puluhan lapisan), sehingga mereka adalah bagian dari Deep Learning. Tetapi Anda dapat membangun CNN dangkal untuk tugas sederhana, dalam hal ini bukan (benar-benar) Belajar Dalam.

Tapi CNN tidak sendirian, ada banyak arsitektur jaringan saraf lain di luar sana, termasuk Jaringan Syaraf Berulang (RNN), Autoencoder, Transformer, Jaring Belief Dalam (DBN = setumpuk Mesin Boltzmann Terbatas, RBM), dan banyak lagi. Mereka bisa dangkal atau dalam. Catatan: bahkan RNN dangkal dapat dianggap sebagai bagian dari Pembelajaran Jauh karena melatih mereka membutuhkan membuka gulungan mereka dari waktu ke waktu, menghasilkan jaring yang dalam.


@MiniQurak. Tolong perbaiki saya, saya salah. apa yang saya pahami adalah CNN hanyalah salah satu arsitektur jaring dalam seperti Autoencoder, Deep Belief Nets, Recurrent Neural Networks (RNN) .. apakah benar?
Aadnan Farooq A

Ya itu benar.
MiniQuark

lalu bisakah kita dapat mengatakan arsitektur mana yang lebih baik tergantung pada dataset? atau apa saja faktor kuncinya?
Aadnan Farooq A

1
CNN sangat bagus untuk tugas pengenalan gambar. Mereka juga bersinar setiap kali data memiliki beberapa bentuk struktur hierarkis, dengan pola-pola lokal (mis. Segmen garis) yang dirangkai menjadi pola-pola besar (mis. Bujur sangkar, segitiga), dirangkai menjadi pola-pola yang lebih besar (mis. Rumah, bidang). Ini bekerja dengan baik untuk tugas pengenalan ucapan. RNN sangat bagus untuk deret waktu (mis. Memprediksi cuaca), dan umumnya menangani urutan data (mis. Kalimat). Mereka banyak digunakan untuk NLP (pemrosesan bahasa alami). AutoEncoders tidak diawasi, mereka mempelajari pola dalam data.
MiniQuark

1
Baiklah kalau begitu :)
Firebug

21

Dalam bidang pemrosesan sinyal adaptif / pembelajaran mesin, deep learning (DL) adalah metodologi tertentu di mana kita dapat melatih representasi mesin yang kompleks.

Secara umum, mereka akan memiliki formulasi yang dapat memetakan input Anda , sampai ke tujuan target, , melalui serangkaian operasi yang disusun secara hierarkis (ini adalah tempat 'deep' berasal) operasi . Operasi-operasi tersebut biasanya operasi / proyeksi linear ( ), diikuti oleh non-linearitas ( ), seperti:y W i f ixyWifi

y=fN(...f2(f1(xTW1)W2)...WN)

Sekarang dalam DL, ada banyak arsitektur yang berbeda : Salah satu arsitektur tersebut dikenal sebagai jaring saraf convolutional (CNN). Arsitektur lain dikenal sebagai perceptron multi-layer , (MLP), dll. Arsitektur yang berbeda memungkinkan mereka untuk memecahkan berbagai jenis masalah.

MLP mungkin adalah salah satu jenis arsitektur DL paling tradisional yang mungkin ditemukan, dan saat itulah setiap elemen dari lapisan sebelumnya, terhubung ke setiap elemen dari lapisan berikutnya. Ini terlihat seperti ini:

masukkan deskripsi gambar di sini

Dalam MLP, matricies menyandikan transformasi dari satu layer ke layer lainnya. (Melalui perkalian matriks). Misalnya, jika Anda memiliki 10 neuron dalam satu lapisan yang terhubung ke 20 neuron berikutnya, maka Anda akan memiliki matriks , yang akan memetakan input ke output , melalui: . Setiap kolom di , mengkodekan semua tepi dari semua elemen lapisan, ke salah satu elemen dari lapisan berikutnya.W R 10 x 20 v R 10 x 1 u R 1 x 20 u = v T W WWiWR10x20vR10x1uR1x20u=vTWW

MLP tidak disukai lagi, sebagian karena mereka sulit untuk dilatih. Walaupun ada banyak alasan untuk kesulitan itu, salah satunya juga karena koneksi mereka yang padat tidak memungkinkan mereka untuk dengan mudah mengukur berbagai masalah penglihatan komputer. Dengan kata lain, mereka tidak memiliki terjemahan-ekivalensi yang dipasangkan. Ini berarti bahwa jika ada sinyal di satu bagian gambar yang mereka butuhkan untuk peka, mereka perlu belajar kembali bagaimana menjadi peka jika sinyal itu bergerak. Ini menyia-nyiakan kapasitas jaring, sehingga pelatihan menjadi sulit.

Di sinilah CNN masuk! Berikut ini tampilannya:

masukkan deskripsi gambar di sini

CNN memecahkan masalah penerjemahan sinyal, karena mereka akan menggabungkan setiap sinyal input dengan detektor, (kernel), dan dengan demikian peka terhadap fitur yang sama, tetapi kali ini di mana-mana. Dalam hal ini, persamaan kami masih terlihat sama, tetapi bobot matricies sebenarnya toeplitz konvolusional . Matematikanya sama saja. Wi

Adalah umum untuk melihat "CNN" merujuk ke jaring di mana kita memiliki lapisan konvolusional di seluruh jaring, dan MLP di bagian paling akhir, sehingga merupakan satu peringatan yang harus diperhatikan.


1
+1 Jawaban yang bagus, saya baru belajar tentang matrik toeplitz. ;-)
MiniQuark

@MiniQuark Terima kasih! Ya - Anda dapat menuliskan konvolusi sebagai perkalian dengan matriks toeplitz. :)
Tarin Ziyaee

@TarinZiyaee dan MiniQurak Bisakah kalian menyarankan saya buku / jurnal artikel / tutorial yang baik bagi pemula untuk belajar tentang pembelajaran mendalam secara rinci.
Aadnan Farooq A

CNN belum tentu dalam (-1)
Firebug

7

Pembelajaran mendalam = jaringan saraf tiruan yang dalam + model-model mendalam lainnya .

Jaringan syaraf tiruan dalam = jaringan syaraf tiruan dengan lebih dari 1 lapisan. (lihat jumlah minimum lapisan dalam jaringan saraf yang dalam atau Wikipedia untuk debat lebih lanjut ...)

Convolution Neural Network = Suatu jenis jaringan saraf tiruan


Cukup adil, Deep Learning juga mencakup "mesin kernel Multilayer", dan CNN bisa dangkal. :)
MiniQuark

@MiniQuark ya.
Franck Dernoncourt

jaringan saraf tiruan dengan lebih dari 1 lapisan ..... Saya tidak yakin jaringan dengan hanya 2 lapisan disebut jaringan yang dalam.
SmallChess

1
@StudentT Mungkin, saya tidak bekerja dalam pemasaran;) en.wikipedia.org/w/…
Franck Dernoncourt

1
Ini harus menjadi jawaban teratas, karena CNN belum tentu dalam, dan Pembelajaran mendalam tidak hanya tentang JST (dalam arti biasa).
Firebug

6

Slide ini oleh Yann LeCun membuat titik bahwa hanya model dengan hierarki fitur (fitur tingkat lebih rendah dipelajari pada satu lapisan model, dan kemudian fitur-fitur tersebut digabungkan pada tingkat berikutnya) yang mendalam .

CNN bisa dalam atau dangkal; yang mana masalahnya tergantung pada apakah ia mengikuti konstruksi "hierarki fitur" ini karena jaringan saraf tertentu, termasuk model 2-lapisan , tidak dalam.

Definisi Yann LeCun


3

Deep learningadalah istilah umum untuk berurusan dengan jaringan saraf rumit dengan banyak lapisan. Tidak ada definisi standar tentang apa sebenarnya deep. Biasanya, Anda dapat berpikir jaringan yang dalam adalah sesuatu yang terlalu besar untuk dilalui oleh laptop dan PC Anda. Kumpulan data akan sangat besar sehingga Anda tidak dapat memasukkannya ke dalam memori Anda. Anda mungkin perlu GPU untuk mempercepat pelatihan Anda.

Deep lebih seperti istilah pemasaran untuk membuat sesuatu terdengar lebih profesional daripada yang lainnya.

CNNadalah jenis jaringan saraf yang dalam, dan ada banyak jenis lainnya. CNN sangat populer karena mereka memiliki aplikasi yang sangat berguna untuk pengenalan gambar.


Saya ingin mengajukan keberatan terhadap beberapa pernyataan ini: sebuah jaringan umumnya dianggap dalam ketika memiliki lebih dari satu lapisan tersembunyi, dan kebanyakan orang akan setuju bahwa memiliki lebih dari 10 lapisan tersembunyi jelas dalam. Sangat mungkin untuk melatih jaringan yang dalam pada laptop Anda, saya selalu melakukannya. Dataset tidak memiliki untuk menjadi besar, khususnya jika Anda menggunakan transfer belajar (yaitu. Lapisan reuse dari jaringan pretrained), dan / atau data augmentasi. Tentu saja ada banyak hype di sekitar kata "deep", tetapi ada teknik khusus untuk pembelajaran mendalam sehingga bukan hanya hype. :)
MiniQuark

@MiniQuark Dengan augmentasi data, kumpulan data Anda akan tetap besar, hanya saja Anda memulai dengan sesuatu yang kecil ...
SmallChess

Poin bagus, kamu benar. Yang ingin saya katakan adalah bahwa dataset akan sesuai dengan memori karena Anda akan menghasilkan sebagian besar data dengan cepat.
MiniQuark
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.