Masalah vanishing gradient
Permasalahan gradien lain adalah ketika gradien menghilang, atau menjadi nol. Ini jauh lebih sulit diatasi karena tidak mudah dideteksi. Jika fungsi loss tidak membaik pada setiap langkah, apakah karena gradien menjadi nol sehingga bobot tidak diperbarui? Ataukah karena model memang tidak mampu belajar?
Masalah ini lebih sering terjadi pada model RNN ketika dibutuhkan memori yang panjang (kalimat yang panjang).
Dalam latihan ini Anda akan mengamati masalah tersebut pada data IMDB, dengan kalimat yang lebih panjang. Data dimuat ke dalam variabel X dan y, serta kelas Sequential, SimpleRNN, Dense dan matplotlib.pyplot sebagai plt. Model telah dilatih sebelumnya selama 100 epoch, bobot dan riwayatnya disimpan pada berkas model_weights.h5 dan variabel history.
Latihan ini merupakan bagian dari kursus
Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras
Instruksi latihan
- Tambahkan lapisan
SimpleRNNke model. - Muat bobot pra-latih ke dalam model menggunakan metode
.load_weights(). - Tambahkan akurasi data pelatihan yang tersedia pada atribut
'acc'ke plot. - Tampilkan plot menggunakan metode
.show().
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# Create the model
model = Sequential()
model.add(____(units=600, input_shape=(None, 1)))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='sgd', metrics=['accuracy'])
# Load pre-trained weights
model.____('model_weights.h5')
# Plot the accuracy x epoch graph
plt.plot(history.history[____])
plt.plot(history.history['val_acc'])
plt.legend(['train', 'val'], loc='upper left')
plt.____()