Perbedaan antara sampel, langkah waktu dan fitur dalam jaringan saraf

18

Saya akan melalui blog berikut pada jaringan saraf LSTM: http://machinelearningmastery.com/understanding-stateful-lstm-recurrent-neural-networks-python-keras/

Penulis membentuk kembali vektor input X sebagai [sampel, langkah waktu, fitur] untuk konfigurasi LSTM yang berbeda.

Penulis menulis

Memang, urutan huruf adalah langkah waktu dari satu fitur daripada satu langkah waktu dari fitur yang terpisah. Kami telah memberikan lebih banyak konteks ke jaringan, tetapi tidak lebih banyak urutan seperti yang diharapkan

Apa artinya ini?

Vipul Jain
sumber

Jawaban:

18

Saya menemukan ini tepat di bawah [sampel, time_steps, fitur] yang Anda khawatirkan.

X = numpy.reshape(dataX, (len(dataX), seq_length, 1))

Sampel - Ini adalah len (dataX), atau jumlah titik data yang Anda miliki.

Langkah waktu - Ini sama dengan jumlah langkah waktu Anda menjalankan jaringan saraf berulang Anda. Jika Anda ingin jaringan Anda memiliki memori 60 karakter, jumlah ini harus 60.

Fitur - ini adalah jumlah fitur dalam setiap langkah waktu. Jika Anda memproses gambar, ini adalah jumlah piksel. Dalam hal ini Anda tampaknya memiliki 1 fitur per langkah waktu.

Joonatan Samuel
sumber
1
dapatkah Anda menjelaskan perbedaan antara: X = numpy.reshape (dataX, (len (dataX), 3, 1)) dan X = numpy.reshape (dataX, (len (dataX), 1, 3)) Bagaimana hal ini memengaruhi lstm?
Vipul Jain
1
(len (dataX), 3, 1) menjalankan LSTM untuk 3 iterasi, memasukkan vektor input bentuk (1,). (len (dataX), 1, 3) menjalankan LSTM untuk 1 iterasi. Yang berarti sangat tidak berguna untuk memiliki koneksi berulang karena tidak mungkin ada umpan balik dari iterasi sebelumnya. Dalam hal ini bentuk input ke RNN adalah dari bentuk (3,)
Joonatan Samuel
"(len (dataX), 3, 1) menjalankan LSTM untuk 3 iterasi" jangan kita gunakan zaman untuk itu. apakah artinya sama dengan zaman = 3?
Vipul Jain
1
Satu zaman dalam terjemahan kasar berarti bahwa kita telah melatih satu kali pada setiap titik data dalam kumpulan data kita. Sementara pelatihan, setelah melihat melalui len (dataX) contoh dihitung sebagai 1 zaman. Namun, RNN mengambil data secara berurutan. Pada setiap contoh pelatihan, Anda harus memasukkan data itu ke beberapa iterasi. Misalnya, saya memiliki kata "mobil" dan pada setiap iterasi saya memberinya satu huruf, biarkan itu menyelesaikan perhitungan dan kemudian memberi makan surat berikutnya. Untuk menyelesaikan pemrosesan kata "mobil" perlu 3 iterasi untuk memproses seluruh kata huruf demi huruf.
Joonatan Samuel
@JoonatanSamuel hai, saya tahu banyak waktu telah berlalu tetapi saya memiliki banyak kesulitan memahami topik yang sama. Jawaban Anda sangat jelas, tetapi saya masih agak bingung. Immagine kami memiliki rangkaian waktu yang menggambarkan penjualan setiap bulan selama beberapa tahun (katakanlah). Bayangkan len (data) = 3000, data.shape = (3000,1) misalnya, jadi kita memiliki 3000 bulan yang direkam. Prediksi berikutnya : Jika saya ingin menggunakan N pengamatan sebelumnya untuk memprediksi yang berikutnya (hanya yang berikutnya!), Seperti apa bentuk data input ke LSTM? Misalnya jika kita ingin menggunakan t-n,..., t-2, t-1untuk memprediksi t.
Euler_Salter
1

Agak terlambat tetapi untuk berjaga-jaga;
Sebuah Contoh bisa merujuk ke contoh pelatihan individu. Variabel "batch_size" karenanya adalah jumlah sampel yang Anda kirim ke jaringan saraf. Yaitu, berapa banyak contoh berbeda yang Anda berikan sekaligus ke jaringan saraf.

TimeSteps adalah kutu waktu. Berapa lama waktu masing-masing sampel Anda. Misalnya, sampel dapat berisi langkah 128 kali, di mana setiap langkah waktu bisa menjadi 30 detik untuk pemrosesan sinyal. Dalam Natural Language Processing (NLP), langkah waktu dapat dikaitkan dengan karakter, kata, atau kalimat, tergantung pada pengaturan.

Fitur hanyalah jumlah dimensi yang kami makan pada setiap langkah waktu. Misalnya di NLP, sebuah kata dapat direpresentasikan oleh 300 fitur menggunakan word2vec. Dalam hal pemrosesan sinyal, mari kita berpura-pura bahwa sinyal Anda adalah 3D. Artinya, Anda memiliki sinyal X, Y dan Z, seperti pengukuran accelerometer pada setiap sumbu. Ini berarti Anda akan mengirim 3 fitur pada setiap langkah waktu untuk setiap sampel.

Oleh Guillaume

hijau
sumber
0

Jawaban saya dengan sebuah contoh: ["halo ini xyz", "apa kabar", "orang hebat ..."]

dalam hal ini "[sampel, langkah waktu, fitur]" berarti:

  • sampel: 3 karena ada 3 elemen dalam daftar
  • langkah waktu: di sini Anda dapat mengambil max_length = 4 panjang ("halo ini xyz") = 4; panjang ("apa kabar)" 4 =; length ("great man ...") = 2 (setelah menghapus tanda baca "."). Alasan mengatakan ini adalah langkah waktu adalah, pada elemen pertama "halo ini xyz" ==> t0 ("halo"), t1 ("ini"), t2 ("adalah") dan t3 ("xyz")
  • fitur: ukuran embedding untuk setiap kata. misalnya, "halo": array 50D, "ini": array 50D dan seterusnya
tintin
sumber