Saya telah mempelajari LSTM untuk sementara waktu. Saya mengerti pada tingkat tinggi bagaimana semuanya bekerja. Namun, akan mengimplementasikannya menggunakan Tensorflow saya perhatikan bahwa BasicLSTMCell memerlukan sejumlah unit (yaitu num_units
) parameter.
Dari ini penjelasan yang sangat menyeluruh LSTMs, saya sudah mengumpulkan bahwa satu satuan LSTM adalah salah satu dari berikut ini
yang sebenarnya merupakan unit GRU.
Saya berasumsi bahwa parameter num_units
dari BasicLSTMCell
mengacu pada berapa banyak dari kita ingin menghubungkan satu sama lain dalam sebuah layer.
Itu meninggalkan pertanyaan - apa itu "sel" dalam konteks ini? Apakah "sel" setara dengan lapisan dalam jaringan saraf umpan-maju normal?
Jawaban:
Terminologi ini sayangnya tidak konsisten.ht
num_units
di TensorFlow adalah sejumlah negara yang tersembunyi, yaitu dimensi dalam persamaan yang Anda berikan.Juga, dari https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/api_docs/python/functions_and_classes/shard9/tf.nn.rnn_cell.RNNCell.md :
"Lapisan LSTM" mungkin lebih eksplisit, contoh :
sumber
num_unit
array horizontal berukuran sel LSTM yang saling berhubungan. Masuk akal. Jadi itu akan dianalogikan dengan lapisan tersembunyi di jaringan umpan maju standar?Kebanyakan diagram LSTM / RNN hanya menunjukkan sel-sel yang tersembunyi tetapi tidak pernah unit dari sel-sel itu. Karena itu, kebingungan. Setiap lapisan tersembunyi memiliki sel tersembunyi, sebanyak jumlah langkah waktu. Dan selanjutnya, setiap sel tersembunyi terdiri dari beberapa unit tersembunyi, seperti pada diagram di bawah ini. Oleh karena itu, dimensi matriks lapisan tersembunyi di RNN adalah (jumlah langkah waktu, jumlah unit tersembunyi).
sumber
Meskipun masalah ini hampir sama dengan yang saya jawab dalam jawaban ini , saya ingin menggambarkan masalah ini, yang juga sedikit membingungkan saya hari ini dalam model seq2seq (terima kasih atas jawaban @Franck Dernoncourt), dalam grafik. Dalam diagram enkode sederhana ini:
sumber
num_units = n
pada angka iniMenurut pendapat saya, sel berarti simpul seperti sel tersembunyi yang juga disebut simpul tersembunyi, untuk model LSTM multilayer, jumlah sel dapat dihitung dengan time_steps * num_layers, dan num_units sama dengan time_steps
sumber
Unit-unit dalam Keras adalah dimensi ruang output, yang sama dengan panjang penundaan (time_step) jaringan yang berulang.
https://keras.io/layers/recurrent/
sumber