Mengapa RNN biasanya memiliki lapisan tersembunyi yang lebih sedikit daripada CNN?

8

CNN dapat memiliki ratusan lapisan tersembunyi dan karena mereka sering digunakan dengan data gambar, memiliki banyak lapisan menangkap lebih banyak kompleksitas.

Namun, sejauh yang saya lihat, RNN biasanya memiliki beberapa layer misalnya 2-4. Misalnya, untuk klasifikasi elektrokardiogram (EKG), saya telah melihat makalah menggunakan LSTM dengan 4 lapisan dan CNN dengan 10-15 lapisan dengan hasil yang sama.

Apakah ini karena RNNs / LSTMs lebih sulit untuk dilatih jika mereka lebih dalam (karena masalah gradien menghilang) atau karena RNNs / LSTMs cenderung menyesuaikan data sekuensial dengan cepat?

KRL
sumber

Jawaban:

3

Metode ekstraksi fitur CNN dan RNN:

CNN cenderung mengekstraksi fitur spasial. Misalkan, kita memiliki total 10 lapisan konvolusi yang saling bertumpuk. Kernel lapisan pertama akan mengekstraksi fitur dari input. Peta fitur ini kemudian digunakan sebagai input untuk lapisan konvolusi berikutnya yang kemudian menghasilkan peta fitur dari peta fitur inputnya.

Demikian juga, fitur diekstraksi level demi level dari gambar input. Jika input adalah gambar kecil 32 * 32 piksel, maka kita pasti akan membutuhkan lebih sedikit lapisan konvolusi. Gambar yang lebih besar dari 256 * 256 akan memiliki kompleksitas fitur yang relatif lebih tinggi.

RNNs adalah ekstraktor fitur temporal karena mereka memegang memori dari aktivasi lapisan masa lalu. Mereka mengekstrak fitur seperti NN, tetapi RNN mengingat fitur yang diekstraksi di seluruh timesteps. RNNs juga dapat mengingat fitur yang diekstraksi melalui lapisan konvolusi. Karena mereka memiliki semacam memori, mereka bertahan dalam fitur temporal / waktu.


Dalam hal klasifikasi elektrokardiogram:

Atas dasar makalah yang Anda baca, tampaknya,

Data EKG dapat dengan mudah diklasifikasikan menggunakan fitur temporal dengan bantuan RNNs. Fitur temporal membantu model untuk mengklasifikasikan EKG dengan benar. Oleh karena itu, penggunaan RNN kurang kompleks.

CNN lebih kompleks karena,

Metode ekstraksi fitur yang digunakan oleh CNN mengarah ke fitur seperti itu yang tidak cukup kuat untuk secara unik mengenali EKG. Oleh karena itu, jumlah yang lebih besar dari lapisan konvolusi diperlukan untuk mengekstraksi fitur-fitur minor untuk klasifikasi yang lebih baik.

Akhirnya,

Fitur yang kuat memberikan kompleksitas yang lebih sedikit pada model sedangkan fitur yang lebih lemah perlu diekstraksi dengan lapisan yang kompleks.


Apakah ini karena RNNs / LSTMs lebih sulit untuk dilatih jika mereka lebih dalam (karena masalah gradien menghilang) atau karena RNNs / LSTMs cenderung menyesuaikan data sekuensial dengan cepat?

Ini bisa diambil sebagai perspektif pemikiran. LSTM / RNNs cenderung overfitting di mana salah satu alasannya bisa menghilangkan masalah gradien seperti yang disebutkan oleh @Ismael EL ATIFI dalam komentar.

Saya berterima kasih kepada @Ismael EL ATIFI untuk koreksi.

Shubham Panchal
sumber
4
"LSTM / RNNs cenderung overfitting karena masalah gradien hilang." Saya tidak setuju. Overvitting tidak dapat disebabkan oleh masalah menghilangnya gradien hanya karena menghilangnya gradien mencegah parameter dari lapisan awal untuk diperbarui dengan benar dan dengan demikian sesuai. "Lapisan konvolusi pada umumnya tidak sesuai, mereka adalah ekstraktor fitur." Lapisan konvolusi DAPAT menyiasati seperti halnya semua lapisan yang dapat dilatih lainnya dan CNN apa pun akan benar-benar cocok jika memiliki terlalu banyak parameter dibandingkan dengan jumlah dan variasi data yang dilatihkan.
Ismael EL ATIFI
1

Tentang jumlah lapisan

Alasannya dapat dipahami dengan melihat arsitektur CNN dan LSTM dan bagaimana mungkin dioperasikan pada data time-series. Tetapi saya harus mengatakan bahwa jumlah lapisan adalah sesuatu yang sangat tergantung pada masalah yang Anda coba selesaikan. Anda mungkin dapat menyelesaikan klasifikasi EKG menggunakan beberapa layer LSTM, tetapi untuk pengenalan aktivitas dari video Anda membutuhkan lebih banyak layer.

Dengan mengesampingkan itu, inilah cara CNN dan LSTM dapat memproses sinyal deret waktu. Sinyal yang sangat sederhana dimana setelah tiga siklus positif Anda mendapatkan siklus negatif.

CNN vs LSTMs

Untuk CNN untuk melihat pola sederhana ini dibutuhkan 4 lapisan dalam contoh ini. Ketika CNN memproses input deret waktu, output konvolusi tidak tahu tentang output sebelumnya (yaitu mereka tidak terhubung). Namun LSTM dapat melakukannya hanya dengan menggunakan satu lapisan karena mereka dapat mengingat pola temporal hingga 100-an langkah waktu. Karena satu output didasarkan pada input saat ini dan juga input sebelumnya, model telah melihat.

Saya tidak mengatakan ini adalah satu-satunya alasan, tetapi mungkin merupakan salah satu faktor utama mengapa CNN membutuhkan lebih banyak lapisan dan LSTM tidak untuk data time series.

Tentang menghilang gradien dan overfitting

Lenyapnya gradien cenderung menjadi masalah dalam satu lapisan daripada seluruh lapisan. Saat itulah memproses banyak langkah berurutan pengetahuan tentang beberapa langkah pertama kemungkinan akan hilang. Dan saya tidak berpikir model berurutan cenderung cocok pada data time-series jika Anda mengaturnya dengan benar. Jadi pilihan ini mungkin lebih dipengaruhi oleh arsitektur / kemampuan model daripada oleh gradien menghilang atau overfitting.

thushv89
sumber
0

Saya melihat 2 alasan yang memungkinkan mengapa RNN dapat memerlukan lebih sedikit lapisan daripada CNN untuk mencapai kinerja yang sama:
- Lapisan RNN umumnya merupakan lapisan yang sepenuhnya terhubung yang memiliki lebih banyak parameter daripada lapisan konvolusional.
- RNN memiliki beberapa komponen yang memungkinkan untuk menggabungkan input dengan penggandaan tidak seperti CNN yang hanya dapat menggabungkan input dengan penambahan tertimbang. Dengan demikian kapasitas multiplikasi dari RNN memberinya lebih banyak "kekuatan" untuk menghitung fitur. CNN akan membutuhkan banyak lapisan untuk "meniru" kapasitas multiplikasi ini.

Ismael EL ATIFI
sumber