Bagaimana jaringan saraf menangani berbagai ukuran input?


42

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.


dapatkah Anda mengklarifikasi apa yang Anda maksudkan dengan downsampling ke ukuran yang tetap? Bagaimana downsampling dilakukan?
Charlie Parker

Jawaban:


36

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 .


1
Apa perbedaan antara apa yang Anda sebut "NN rekursif", dan RNN? R adalah untuk rekursif ... Juga, beberapa kutipan dan petunjuk akan bermanfaat.
Eric Platon

3
R adalah untuk berulang. Berulang berarti menambahkan input secara linear ke NN yang sama berulang kali. Rekursif berarti memasukkan data di sepanjang struktur pohon.
BlindKungFuMaster

@BlindKungFuMaster 0 padding dengan mask untuk MLP apakah bagus dan tidak memengaruhi akurasi?
DINA TAKLIT

12

Yang lain telah disebutkan:

  • tanpa bantalan
  • RNN
  • NN rekursif

jadi saya akan menambahkan kemungkinan lain: menggunakan konvolusi beberapa kali tergantung pada ukuran input. Ini adalah buku yang bagus yang mendukung pendekatan ini:

Pertimbangkan koleksi gambar, di mana setiap gambar memiliki lebar dan tinggi yang berbeda. Tidak jelas bagaimana memodelkan input tersebut dengan matriks bobot ukuran tetap. Konvolusi mudah diterapkan; kernel hanya diterapkan beberapa kali tergantung pada ukuran input, dan output skala operasi konvolusi sesuai.

Diambil dari halaman 360. Anda dapat membacanya lebih lanjut untuk melihat beberapa pendekatan lain.


1
Terjadi pada saya bahwa pendekatan ini hanya akan bekerja jika 1) aspek rasio (AR) dari semua gambar input adalah sama, 2) Anda mengubah skala semua gambar ke AR yang diberikan, atau 3) Anda gambar nol-pad untuk memaksa suatu diberikan AR.
Matt Wenham

@Salvador Dali dapat "0" melapisi dengan topeng menjadi solusi yang baik untuk MLP?
DINA TAKLIT

Saya tidak dapat menemukan teks yang Anda kutip dalam jawaban Anda di buku. Mungkin itu ada pada awalnya dan telah dihapus kemudian? Halaman 354 saat ini memiliki paragraf yang dimulai dengan cara yang sama, tetapi tidak pernah menggunakan jumlah variabel lapisan (tetapi ukuran output variabel sebagai gantinya).
Jochen

7

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:

  1. gunakan pengulangan dari subnetwork yang sama untuk masing-masing kelompok input (yaitu dengan bobot bersama). Subnetwork berulang ini mempelajari representasi dari (kelompok) input.
  2. menggunakan operasi pada representasi input yang memiliki simetri yang sama dengan input. Untuk data invarian pesanan, rata-rata representasi dari jaringan input adalah pilihan yang memungkinkan.
  3. menggunakan jaringan keluaran untuk meminimalkan fungsi kerugian pada keluaran berdasarkan pada kombinasi representasi input.

Strukturnya terlihat sebagai berikut:

struktur jaringan

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).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.