Saya sudah memikirkan Recurrent Neural Networks (RNN) dan varietas mereka dan Convolutional Neural Networks (CNN) dan varietas mereka.
Apakah kedua poin ini adil untuk dikatakan:
Gunakan CNN untuk memecah komponen (seperti gambar) menjadi subkomponen (seperti objek dalam gambar, seperti garis besar objek dalam gambar, dll.)
Gunakan RNN untuk membuat kombinasi subkomponen (keterangan gambar, pembuatan teks, terjemahan bahasa, dll.)
Saya akan menghargai jika ada yang ingin menunjukkan ketidakakuratan dalam pernyataan ini. Tujuan saya di sini adalah untuk mendapatkan landasan yang lebih jelas tentang penggunaan CNN dan RNN.
CNN akan belajar mengenali pola lintas ruang. Jadi, seperti yang Anda katakan, CNN akan belajar mengenali komponen gambar (misalnya, garis, kurva, dll.) Dan kemudian belajar menggabungkan komponen ini untuk mengenali struktur yang lebih besar (misalnya, wajah, objek, dll.).
Anda bisa mengatakan, dengan cara yang sangat umum, bahwa RNN juga akan belajar mengenali pola dari waktu ke waktu. Jadi RNN yang dilatih untuk menerjemahkan teks mungkin belajar bahwa "anjing" harus diterjemahkan secara berbeda jika didahului dengan kata "panas".
Namun mekanisme di mana kedua jenis NN mewakili pola-pola ini berbeda. Dalam hal CNN, Anda mencari pola yang sama pada semua subbidang gambar yang berbeda. Dalam kasus RNN Anda (dalam kasus paling sederhana) memberi makan lapisan tersembunyi dari langkah sebelumnya sebagai input tambahan ke langkah berikutnya. Sementara RNN membangun memori dalam proses ini, RNN tidak mencari pola yang sama pada irisan waktu yang berbeda dengan cara yang sama seperti CNN mencari pola yang sama di berbagai wilayah ruang yang berbeda.
Saya juga harus mencatat bahwa ketika saya mengatakan "waktu" dan "ruang" di sini, itu tidak boleh dianggap terlalu harfiah. Anda dapat menjalankan RNN pada gambar tunggal untuk penulisan gambar, misalnya, dan arti "waktu" hanyalah urutan di mana bagian-bagian berbeda dari gambar diproses. Jadi objek yang awalnya diproses akan menginformasikan judul objek yang kemudian diproses.
Anda bisa mendapatkan intuisi yang bagus untuk perbedaan model RNN dari karpathy.github.io/assets/rnn/diags.jpeg - grafik yang banyak disalin. CNNs bersama MLP dan model non-rekursif lainnya hanya menerapkan kasus model satu-ke-satu.
Neil Slater
@ NeilSlater Aku bahkan tahu artikel asli dari gambar ini, tetapi tidak pernah bisa mengekstraksi apapun yang berguna darinya. Tolong, bisakah Anda menguraikan apa yang Anda pelajari dari gambar?
Hi-Angel
2
@ Hi-Angel: Gambar memvisualisasikan kemungkinan hubungan antara sekuens dan entitas tunggal yang dapat dipetakan oleh model. Jika Anda sudah memahami permutasi dengan baik, maka Anda mungkin tidak mendapatkan apa-apa darinya. Alasan gambar muncul dalam artikel adalah bahwa itu menunjukkan fleksibilitas relatif RNNs: Sebuah RNN dapat diterapkan untuk semua jenis masalah yang ditampilkan (misalnya dapat digunakan dalam masalah terjemahan bahasa yang cocok dengan item ke-4), sementara jaringan umpan-maju hanya berlaku untuk masalah pencocokan gambar pertama.
Perbedaan antara CNN dan RNN adalah sebagai berikut:
CNN:
CNN mengambil input ukuran tetap dan menghasilkan output ukuran tetap.
CNN adalah jenis jaringan saraf tiruan feed-forward - adalah variasi perceptrons multilayer yang dirancang untuk menggunakan preprocessing dalam jumlah minimal.
CNN menggunakan pola konektivitas antara neuron-neuronnya terinspirasi oleh organisasi korteks visual hewan, yang neuron-neuron individualnya diatur sedemikian rupa sehingga mereka merespons daerah yang tumpang tindih dengan bidang visual.
CNN ideal untuk pemrosesan gambar dan video.
RNN:
RNN dapat menangani panjang input / output sewenang-wenang.
RNN, tidak seperti jaringan saraf feedforward, dapat menggunakan memori internal mereka untuk memproses urutan input sewenang-wenang.
Jaringan saraf berulang menggunakan informasi deret waktu (yaitu apa yang saya ucapkan terakhir akan memengaruhi apa yang akan saya bicarakan selanjutnya.)
CNN tanpa lapisan padat dapat mengambil input berukuran sembarang.
Mikael Rousson
1
Saya pikir kedua pernyataan tersebut tidak benar karena CNN tidak memecah komponen menjadi subkomponen tetapi menggunakan bobot bersama pada semua subkomponen yang saling tumpang tindih (bidang reklamasi) untuk menemukan pola yang sama. Ini bukan algoritma divide and conquer.
Secara umum CNN cenderung mengekstraksi fitur lokal dan invarian-posisi (terlepas dari posisi mereka), dan RNN cenderung menemukan pola diffenret sepanjang waktu bahkan jika mereka jauh.
Sebagai contoh dalam kasus penerapan keduanya pada bahasa alami, CNN pandai mengekstraksi fitur lokal dan invarian posisi tetapi tidak menangkap ketergantungan semantik jarak jauh. Itu hanya mempertimbangkan frase kunci lokal.
Jadi ketika hasilnya ditentukan oleh seluruh kalimat atau ketergantungan semantik jangka panjang, CNN tidak efektif seperti yang ditunjukkan dalam makalah ini di mana penulis membandingkan kedua architechrures pada NLP taks.
Perbedaan antara CNN dan RNN adalah sebagai berikut:
CNN:
CNN mengambil input ukuran tetap dan menghasilkan output ukuran tetap.
CNN adalah jenis jaringan saraf tiruan feed-forward - adalah variasi perceptrons multilayer yang dirancang untuk menggunakan preprocessing dalam jumlah minimal.
CNN menggunakan pola konektivitas antara neuron-neuronnya terinspirasi oleh organisasi korteks visual hewan, yang neuron-neuron individualnya diatur sedemikian rupa sehingga mereka merespons daerah yang tumpang tindih dengan bidang visual.
CNN ideal untuk pemrosesan gambar dan video.
RNN:
RNN dapat menangani panjang input / output sewenang-wenang.
RNN, tidak seperti jaringan saraf feedforward, dapat menggunakan memori internal mereka untuk memproses urutan input sewenang-wenang.
Jaringan saraf berulang menggunakan informasi deret waktu (yaitu apa yang saya ucapkan terakhir akan memengaruhi apa yang akan saya bicarakan selanjutnya.)
RNN ideal untuk analisis teks dan ucapan.
sumber
Saya pikir kedua pernyataan tersebut tidak benar karena CNN tidak memecah komponen menjadi subkomponen tetapi menggunakan bobot bersama pada semua subkomponen yang saling tumpang tindih (bidang reklamasi) untuk menemukan pola yang sama. Ini bukan algoritma divide and conquer.
Secara umum CNN cenderung mengekstraksi fitur lokal dan invarian-posisi (terlepas dari posisi mereka), dan RNN cenderung menemukan pola diffenret sepanjang waktu bahkan jika mereka jauh.
Sebagai contoh dalam kasus penerapan keduanya pada bahasa alami, CNN pandai mengekstraksi fitur lokal dan invarian posisi tetapi tidak menangkap ketergantungan semantik jarak jauh. Itu hanya mempertimbangkan frase kunci lokal.
Jadi ketika hasilnya ditentukan oleh seluruh kalimat atau ketergantungan semantik jangka panjang, CNN tidak efektif seperti yang ditunjukkan dalam makalah ini di mana penulis membandingkan kedua architechrures pada NLP taks.
sumber