Kehilangan latihan saya turun dan naik lagi. Sangat aneh. Kehilangan validasi silang melacak kehilangan pelatihan. Apa yang sedang terjadi?
Saya memiliki dua LSTMS yang ditumpuk sebagai berikut (pada Keras):
model = Sequential()
model.add(LSTM(512, return_sequences=True, input_shape=(len(X[0]), len(nd.char_indices))))
model.add(Dropout(0.2))
model.add(LSTM(512, return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(len(nd.categories)))
model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adadelta')
Saya latih untuk 100 Zaman:
model.fit(X_train, np.array(y_train), batch_size=1024, nb_epoch=100, validation_split=0.2)
Melatih 127803 sampel, validasi pada 31951 sampel
machine-learning
neural-networks
loss-functions
lstm
patapouf_ai
sumber
sumber
Jawaban:
Tingkat belajar Anda bisa menjadi besar setelah zaman ke-25. Masalah ini mudah diidentifikasi. Anda hanya perlu menetapkan nilai yang lebih kecil untuk tingkat pembelajaran Anda. Jika masalah yang terkait dengan tingkat belajar Anda dari NN harus mencapai kesalahan yang lebih rendah meskipun itu akan naik lagi setelah beberapa saat. Poin utama adalah bahwa tingkat kesalahan akan lebih rendah di beberapa titik waktu.
Jika Anda mengamati perilaku ini, Anda bisa menggunakan dua solusi sederhana. Yang pertama adalah yang paling sederhana. Atur langkah yang sangat kecil dan latihlah. Yang kedua adalah mengurangi tingkat belajar Anda secara monoton. Berikut ini rumus sederhana:
sumber