Sejauh yang saya tahu, jaringan saraf memiliki sejumlah neuron pada lapisan input.
Jika jaringan saraf digunakan dalam konteks seperti NLP, kalimat atau blok teks dengan ukuran yang berbeda diumpankan ke jaringan. Bagaimana dengan ukuran input yang bervariasi berdamai dengan ukuran tetap dari lapisan masukan jaringan? Dengan kata lain, bagaimana jaringan semacam itu dibuat cukup fleksibel untuk menangani input yang mungkin ada di mana saja dari satu kata ke beberapa halaman teks?
Jika asumsi saya tentang jumlah tetap neuron input salah dan neuron input baru ditambahkan ke / dihapus dari jaringan untuk mencocokkan ukuran input saya tidak melihat bagaimana ini bisa dilatih.
Saya memberikan contoh NLP, tetapi banyak masalah memiliki ukuran input yang tidak dapat diprediksi secara inheren. Saya tertarik pada pendekatan umum untuk menangani ini.
Untuk gambar, jelas Anda dapat menaikkan / menurunkan sampel ke ukuran tetap, tetapi, untuk teks, ini tampaknya merupakan pendekatan yang mustahil karena menambahkan / menghapus teks mengubah arti input asli.
sumber
Jawaban:
Tiga kemungkinan muncul di pikiran.
Yang paling mudah adalah zero-padding . Pada dasarnya, Anda mengambil ukuran input yang agak besar dan hanya menambahkan nol jika input konkret Anda terlalu kecil. Tentu saja, ini sangat terbatas dan tentu saja tidak berguna jika input Anda berkisar dari beberapa kata hingga teks lengkap.
NN berulang (RNN) adalah NN yang sangat alami untuk dipilih jika Anda memiliki teks dengan ukuran berbeda sebagai input. Anda memasukkan kata-kata sebagai vektor kata (atau embeddings) hanya satu demi satu dan keadaan internal RNN seharusnya menyandikan arti dari rangkaian kata-kata penuh. Ini adalah salah satu makalah sebelumnya.
Kemungkinan lain adalah menggunakan NN rekursif . Ini pada dasarnya adalah bentuk preprocessing di mana teks secara rekursif dikurangi menjadi sejumlah kecil vektor kata sampai hanya satu yang tersisa - input Anda, yang seharusnya menyandikan seluruh teks. Ini masuk akal dari sudut pandang linguistik jika input Anda terdiri dari kalimat (yang dapat sangat bervariasi ukurannya), karena kalimat disusun secara rekursif. Misalnya, kata vektor untuk "pria", harus sama dengan kata vektor untuk "pria yang mengira istrinya topi", karena frasa kata benda bertindak seperti kata benda, dll. Seringkali, Anda dapat menggunakan informasi linguistik untuk memandu rekursi Anda pada kalimat. Jika Anda ingin melampaui artikel Wikipedia, ini mungkin awal yang baik .
sumber
Yang lain telah disebutkan:
jadi saya akan menambahkan kemungkinan lain: menggunakan konvolusi beberapa kali tergantung pada ukuran input. Ini adalah buku yang bagus yang mendukung pendekatan ini:
Diambil dari halaman 360. Anda dapat membacanya lebih lanjut untuk melihat beberapa pendekatan lain.
sumber
Di NLP Anda memiliki pemesanan input yang melekat sehingga RNN adalah pilihan alami.
Untuk input berukuran variabel di mana tidak ada pemesanan khusus di antara input, orang dapat merancang jaringan yang:
Strukturnya terlihat sebagai berikut:
Jaringan serupa telah digunakan untuk mempelajari hubungan antar objek ( arxiv: 1702.05068 ).
Contoh sederhana tentang cara mempelajari varians sampel dari serangkaian nilai ukuran variabel diberikan di sini (penafian: Saya penulis artikel yang ditautkan).
sumber