Apa yang dilakukan lapisan yang terhubung sepenuhnya di CNN?

19

Saya memahami lapisan convolutional dan pooling, tetapi saya tidak dapat melihat alasan untuk lapisan yang sepenuhnya terhubung di CNN. Mengapa tidak lapisan sebelumnya terhubung langsung ke lapisan keluaran?

jeff
sumber

Jawaban:

31

Output dari lapisan konvolusional mewakili fitur tingkat tinggi dalam data. Sementara keluaran itu dapat diratakan dan dihubungkan ke lapisan keluaran, menambahkan lapisan yang sepenuhnya terhubung adalah cara (biasanya) yang murah untuk mempelajari kombinasi non-linear dari fitur-fitur ini.

Pada dasarnya lapisan konvolusional menyediakan ruang fitur yang bermakna, berdimensi rendah, dan agak invarian, dan lapisan yang sepenuhnya terhubung mempelajari fungsi (mungkin non-linear) di ruang tersebut.

CATATAN: Ini sepele untuk mengkonversi dari lapisan FC ke lapisan Conv. Mengubah lapisan FC teratas ini ke lapisan Conv dapat membantu seperti yang dijelaskan halaman ini .

jamesmf
sumber
Terima kasih atas jawaban Anda, James. Jadi kita mempelajari bobot antara lapisan yang terhubung dengan propagasi belakang, apakah itu benar?
jeff
Ya kesalahan kembali menyebar melalui lapisan yang sepenuhnya terhubung ke lapisan convolutional dan pooling.
jamesmf
Baik. Jadi tujuan dari lapisan fc dapat dianggap seperti PCA non-linier, itu memperbaiki fitur "baik" dan mengurangi yang lain melalui mempelajari set lengkap bobot.
jeff
1
Sebagian besar memungkinkan Anda kombinasi fitur non-linear. Semua fitur mungkin baik (dengan asumsi Anda tidak memiliki fitur "mati"), tetapi kombinasi dari fitur-fitur itu mungkin lebih baik.
jamesmf
@jamesmf: Apa itu fitur mati? dan apa saja kombinasi fitur yang Anda bicarakan? apa yang Anda maksud dengan kombinasi non linier? Apakah menggunakan layer yang sepenuhnya terhubung wajib di cnn? atau dapatkah itu diganti tanpa efek buruk pada keakuratan? Terima kasih banyak sebelumnya. Saya akan berterima kasih jika Anda bisa memberikan intuisi pada pertanyaan yang saya ajukan.
Rika
4

Saya menemukan jawaban ini oleh Anil-Sharma di Quora bermanfaat.

Kami dapat membagi seluruh jaringan (untuk klasifikasi) menjadi dua bagian:

  • Ekstraksi fitur : Dalam algoritma klasifikasi konvensional, seperti SVM, kami biasa mengekstraksi fitur dari data untuk membuat klasifikasi berfungsi. Lapisan convolutional melayani tujuan yang sama dari ekstraksi fitur. CNN menangkap representasi data yang lebih baik dan karenanya kami tidak perlu melakukan rekayasa fitur.

  • Klasifikasi : Setelah ekstraksi fitur kita perlu mengklasifikasikan data ke dalam berbagai kelas, ini dapat dilakukan dengan menggunakan jaringan saraf terhubung penuh (FC). Di tempat lapisan yang terhubung sepenuhnya, kita juga dapat menggunakan classifier konvensional seperti SVM. Tapi kami pada akhirnya menambahkan lapisan FC untuk membuat model yang ujung ke ujung bisa dilatih.

batu-batuan
sumber