Jaringan saraf berulang saya (LSTM, resp. GRU) berperilaku dengan cara yang tidak bisa saya jelaskan. Pelatihan dimulai dan dilatih dengan baik (hasilnya terlihat cukup baik) ketika akurasi tiba-tiba turun (dan kehilangan meningkat dengan cepat) - baik pelatihan dan metrik pengujian. Terkadang net menjadi gila dan mengembalikan output acak dan kadang-kadang (seperti pada tiga contoh terakhir yang diberikan) ia mulai mengembalikan output yang sama ke semua input .
Apakah Anda punya penjelasan untuk perilaku ini ? Pendapat apapun diterima. Silakan, lihat deskripsi tugas dan gambar di bawah ini.
Tugas: Dari suatu kata memprediksi vektor word2vec-nya
Masukan: Kami memiliki model word2vec sendiri (dinormalisasi) dan kami memberi makan jaringan dengan kata (huruf per huruf). Kami menulis kata-kata (lihat contoh di bawah).
Contoh: Kami memiliki kata football dan kami ingin memprediksi vektor word2vec-nya yang lebar 100 dimensi. Maka inputnya adalah $football$$$$$$$$$$
.
Tiga contoh perilaku:
LSTM lapisan tunggal
model = Sequential([
LSTM(1024, input_shape=encoder.shape, return_sequences=False),
Dense(w2v_size, activation="linear")
])
model.compile(optimizer='adam', loss="mse", metrics=["accuracy"])
GRU lapisan tunggal
model = Sequential([
GRU(1024, input_shape=encoder.shape, return_sequences=False),
Dense(w2v_size, activation="linear")
])
model.compile(optimizer='adam', loss="mse", metrics=["accuracy"])
LSTM lapisan ganda
model = Sequential([
LSTM(512, input_shape=encoder.shape, return_sequences=True),
TimeDistributed(Dense(512, activation="sigmoid")),
LSTM(512, return_sequences=False),
Dense(256, activation="tanh"),
Dense(w2v_size, activation="linear")
])
model.compile(optimizer='adam', loss="mse", metrics=["accuracy"])
Kami juga pernah mengalami perilaku semacam ini di proyek lain yang sebelumnya menggunakan arsitektur yang sama tetapi tujuan dan datanya berbeda. Dengan demikian alasannya tidak boleh disembunyikan dalam data atau dalam tujuan tertentu melainkan dalam arsitektur.
nan
.
nan
parameter tidak akan menghasilkan kerugian non-nan. Dugaan saya adalah bahwa gradien Anda terjadi meledak, hal serupa terjadi pada saya di jaringan normal non-batch.
nan
muncul di salah satu perhitungan dan kemudian default ke nilai lain yang menyebabkan jaringan menjadi gila. Tapi itu hanya tebakan liar. Terima kasih atas pendapat anda