Apa perbedaan antara jaringan saraf convolutional, mesin Boltzmann terbatas, dan auto-encoders?

123

Baru-baru ini saya telah membaca tentang pembelajaran yang mendalam dan saya bingung tentang istilah (atau mengatakan teknologi). Apa perbedaan antara

  • Jaringan saraf convolutional (CNN),
  • Mesin Boltzmann terbatas (RBM) dan
  • Penyandi otomatis?
RockTheStar
sumber

Jawaban:

237

Autoencoder adalah jaringan saraf 3-lapisan sederhana di mana unit output terhubung langsung kembali ke unit input . Misalnya dalam jaringan seperti ini:

masukkan deskripsi gambar di sini

output[i]memiliki tepi kembali ke input[i]untuk setiap i. Biasanya, jumlah unit tersembunyi jauh lebih sedikit daripada jumlah yang terlihat (input / output). Akibatnya, ketika Anda melewatkan data melalui jaringan seperti itu, pertama-tama memampatkan (mengkodekan) input vektor untuk "cocok" dalam representasi yang lebih kecil, dan kemudian mencoba untuk merekonstruksi (mendekode) kembali. Tugas pelatihan adalah untuk meminimalkan kesalahan atau rekonstruksi, yaitu menemukan representasi kompak (pengkodean) yang paling efisien untuk input data.

RBM berbagi ide yang sama, tetapi menggunakan pendekatan stokastik. Alih-alih deterministik (misalnya logistik atau ReLU) ia menggunakan unit stokastik dengan distribusi tertentu (biasanya biner Gaussian). Prosedur pembelajaran terdiri dari beberapa langkah pengambilan sampel Gibbs (menyebar: sampel hiddens diberi visibles; merekonstruksi: sampel visibles diberikan hiddens; ulangi) dan menyesuaikan bobot untuk meminimalkan kesalahan rekonstruksi.

masukkan deskripsi gambar di sini

Intuisi di balik RBM adalah bahwa ada beberapa variabel acak yang terlihat (misalnya ulasan film dari pengguna yang berbeda) dan beberapa variabel tersembunyi (seperti genre film atau fitur internal lainnya), dan tugas pelatihan adalah untuk mengetahui bagaimana kedua set variabel ini sebenarnya terhubung satu sama lain (lebih lanjut tentang contoh ini dapat ditemukan di sini ).

Jaringan Neural Konvolusional agak mirip dengan keduanya, tetapi alih-alih mempelajari matriks berat global tunggal antara dua lapisan, mereka bertujuan untuk menemukan satu set neuron yang terhubung secara lokal. CNN sebagian besar digunakan dalam pengenalan gambar. Nama mereka berasal dari operator "konvolusi" atau sekadar "filter". Singkatnya, filter adalah cara mudah untuk melakukan operasi yang kompleks dengan cara mengubah konvolusi kernel sederhana. Terapkan kernel Gaussian blur dan Anda akan membuatnya lebih lancar. Terapkan Canny kernel dan Anda akan melihat semua sisi. Terapkan kernel Gabor untuk mendapatkan fitur gradien.

masukkan deskripsi gambar di sini

(gambar dari sini )

Tujuan dari jaringan saraf convolutional adalah bukan untuk menggunakan salah satu kernel yang telah ditentukan, tetapi untuk mempelajari kernel data-spesifik . Idenya sama dengan autoencoder atau RBM - menerjemahkan banyak fitur tingkat rendah (misalnya ulasan pengguna atau piksel gambar) ke representasi tingkat tinggi terkompresi (misalnya genre atau tepi film) - tetapi sekarang bobot dipelajari hanya dari neuron yang merupakan dekat secara spasial satu sama lain.

masukkan deskripsi gambar di sini

Ketiga model memiliki kasus penggunaan, pro dan kontra, tetapi mungkin sifat yang paling penting adalah:

  1. Autoencoder adalah yang paling sederhana. Mereka dapat dimengerti secara intuitif, mudah diimplementasikan dan dipikirkan (misalnya, jauh lebih mudah untuk menemukan meta-parameter yang baik untuk mereka daripada untuk RBM).
  2. RBM bersifat generatif. Yaitu, tidak seperti autoencoder yang hanya mendiskriminasi beberapa vektor data yang mendukung yang lain, RBM juga dapat menghasilkan data baru dengan distribusi gabungan yang diberikan. Mereka juga dianggap lebih kaya fitur dan fleksibel.
  3. CNN adalah model yang sangat spesifik yang sebagian besar digunakan untuk tugas yang sangat spesifik (meskipun tugas yang cukup populer). Sebagian besar algoritma tingkat atas dalam pengenalan gambar entah bagaimana didasarkan pada CNN hari ini, tetapi di luar ceruk itu mereka hampir tidak berlaku (misalnya apa alasan untuk menggunakan konvolusi untuk analisis ulasan film?).

UPD.

Pengurangan dimensi

nnxxmmm<nmkomponen terpenting kemudian digunakan sebagai basis baru. Masing-masing komponen ini dapat dianggap sebagai fitur tingkat tinggi, yang menggambarkan vektor data lebih baik daripada sumbu asli.

nm

Arsitektur yang dalam

mc1..cmx=i=1mwici

nmmk

Tetapi Anda tidak hanya menambahkan layer baru. Pada setiap lapisan Anda mencoba mempelajari representasi terbaik untuk data dari yang sebelumnya:

masukkan deskripsi gambar di sini

Pada gambar di atas ada contoh jaringan yang begitu dalam. Kita mulai dengan piksel biasa, lanjutkan dengan filter sederhana, lalu dengan elemen wajah dan akhirnya berakhir dengan seluruh wajah! Inilah inti dari pembelajaran yang mendalam .

Sekarang perhatikan, bahwa pada contoh ini kami bekerja dengan data gambar dan secara berurutan mengambil area yang lebih besar dan lebih besar dari piksel yang dekat secara spasial. Bukankah itu terdengar sama? Ya, karena ini adalah contoh jaringan konvolusional yang dalam . Baik itu berdasarkan autoencoder atau RBM, ia menggunakan konvolusi untuk menekankan pentingnya lokalitas. Itu sebabnya CNN agak berbeda dari autoencoder dan RBM.

Klasifikasi

Tidak ada model yang disebutkan di sini yang berfungsi sebagai algoritma klasifikasi per se. Sebaliknya, mereka digunakan untuk pretraining - belajar transformasi dari representasi tingkat rendah dan sulit dikonsumsi (seperti piksel) ke yang tingkat tinggi. Setelah jaringan yang dalam (atau mungkin tidak sedalam itu) diprasrrain, vektor input ditransformasikan ke representasi yang lebih baik dan vektor yang dihasilkan akhirnya diteruskan ke pengklasifikasi nyata (seperti SVM atau regresi logistik). Dalam gambar di atas itu berarti bahwa di bagian paling bawah ada satu komponen lagi yang sebenarnya melakukan klasifikasi.

teman
sumber
3
@ teman Penjelasan yang sangat singkat dan jelas. Ada banyak yang ditulis tentang topik ini tetapi briefing Anda sangat fantastis. "RockTheStar" Jika Anda ingin penjelasan lebih rinci, Anda dapat membaca buku 100 halaman Yoshua Bengio ini (www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)
Javierfdr
apa yang akan Anda gunakan untuk memprediksi urutan kejadian?
skan
2
@skan: lihat RNNs . Secara khusus, LSTM cukup populer sekarang. Anda mungkin juga ingin mengajukan pertanyaan terpisah dengan rincian lebih lanjut untuk mendapatkan jawaban yang berkualitas, karena RNN bukan bidang keahlian saya.
berteman
15

Semua arsitektur ini dapat diartikan sebagai jaringan saraf. Perbedaan utama antara AutoEncoder dan Convolutional Network adalah tingkat pemasangan kabel jaringan. Jaring konvolusional sudah cukup bawaan. Operasi konvolusi cukup lokal dalam domain gambar, yang berarti jauh lebih sedikit dalam jumlah koneksi dalam tampilan jaringan saraf. Operasi pooling (subsampling) dalam domain gambar juga merupakan rangkaian koneksi neural yang tertanam dalam domain saraf. Kendala topologi tersebut pada struktur jaringan. Mengingat kendala seperti itu, pelatihan CNN mempelajari bobot terbaik untuk operasi konvolusi ini (Dalam praktiknya ada beberapa filter). CNN biasanya digunakan untuk tugas-tugas gambar dan pidato di mana kendala convolutional adalah asumsi yang baik.

Sebaliknya, Autoencoder hampir tidak menentukan apa pun tentang topologi jaringan. Mereka jauh lebih umum. Idenya adalah untuk menemukan transformasi saraf yang baik untuk merekonstruksi input. Mereka terdiri dari encoder (memproyeksikan input ke hidden layer) dan decoder (memproyeksikan hidden layer ke output). Lapisan tersembunyi mempelajari serangkaian fitur laten atau faktor laten. Autoencoder linear menjangkau subruang yang sama dengan PCA. Diberikan dataset, mereka belajar sejumlah dasar untuk menjelaskan pola data yang mendasarinya.

RBM juga merupakan jaringan saraf. Tetapi interpretasi jaringan sama sekali berbeda. RBM menafsirkan jaringan bukan sebagai feedforward, tetapi grafik bipartit di mana idenya adalah untuk mempelajari distribusi probabilitas gabungan variabel tersembunyi dan input. Mereka dipandang sebagai model grafis. Ingatlah bahwa AutoEncoder dan CNN mempelajari fungsi deterministik. RBM, di sisi lain, adalah model generatif. Ini dapat menghasilkan sampel dari representasi tersembunyi yang dipelajari. Ada berbagai algoritma untuk melatih RBM. Namun, pada akhirnya, setelah mempelajari RBM, Anda dapat menggunakan bobot jaringannya untuk mengartikannya sebagai jaringan feedforward.

Cylonmath
sumber
6

RBM dapat dilihat sebagai semacam encoder otomatis probabilistik. Sebenarnya, telah ditunjukkan bahwa dalam kondisi tertentu mereka menjadi setara.

Namun demikian, jauh lebih sulit untuk menunjukkan kesetaraan ini daripada hanya percaya bahwa mereka adalah binatang buas yang berbeda. Memang, saya merasa sulit untuk menemukan banyak kesamaan di antara ketiganya, segera setelah saya mulai melihat dari dekat.

Misalnya jika Anda menuliskan fungsi yang diimplementasikan oleh auto encoder, RBM dan CNN, Anda mendapatkan tiga ekspresi matematika yang sama sekali berbeda.

bayerj
sumber
1

Saya tidak bisa bercerita banyak tentang RBM, tetapi autoencoder dan CNN adalah dua hal yang berbeda. Autoencoder adalah jaringan saraf yang dilatih dengan cara yang tidak diawasi. Tujuan dari autoencoder adalah untuk menemukan representasi data yang lebih kompak dengan mempelajari encoder, yang mengubah data menjadi representasi kompak yang sesuai, dan dekoder, yang merekonstruksi data asli. Bagian encoder dari autoencoder (dan awalnya RBM) telah digunakan untuk mempelajari bobot awal yang baik dari arsitektur yang lebih dalam, tetapi ada aplikasi lain. Pada dasarnya, autoencoder mempelajari pengelompokan data. Sebaliknya, istilah CNN mengacu pada jenis jaringan saraf yang menggunakan operator konvolusi (seringkali konvolusi 2D ketika digunakan untuk tugas pemrosesan gambar) untuk mengekstraksi fitur dari data. Dalam pemrosesan gambar, filter, yang berbelit-belit dengan gambar, dipelajari secara otomatis untuk menyelesaikan tugas yang ada, misalnya tugas klasifikasi. Apakah kriteria pelatihan adalah regresi / klasifikasi (diawasi) atau rekonstruksi (tidak diawasi) tidak terkait dengan gagasan konvolusi sebagai alternatif transformasi affine. Anda juga dapat memiliki CNN-autoencoder.

Sigurd
sumber
autoencoder adalah pelatihan yang diawasi, saat Anda berlatih untuk menghasilkan informasi yang sama dengan output sebagai input yang diberikan, hanya dengan pemain tersembunyi yang lebih kecil, sehingga jaringan harus menemukan pengkodean yang sesuai, yang mengubah input ke ukuran lapisan tersembunyi dan kembali. . dalam pelatihan tanpa komunikasi, seperti yang digunakan dalam jaringan statistik, seperti SOM atau gas saraf, Anda tidak memiliki informasi target yang disajikan ke jaringan sebagai output.
SCI