Pengenalan RNN di dalam Keras

Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

David Cecchini

Data Scientist

Apa itu keras?

  • API tingkat tinggi

  • Berjalan di atas TensorFlow 2

  • Mudah dipasang dan digunakan

$pip install tensorflow

Eksperimen cepat:

from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

keras.models

keras.models.Sequential

Menampilkan representasi makro kelas Sequential pada model keras. Setiap layer ditambahkan berurutan dari input ke output.

keras.models.Model

Menampilkan representasi makro kelas Model pada model keras. Kelas ini dapat memiliki banyak input dan banyak output, memungkinkan arsitektur yang lebih kompleks.

Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

keras.layers

  1. LSTM
  2. GRU
  3. Dense
  4. Dropout
  5. Embedding
  6. Bidirectional
Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

keras.preprocessing

keras.preprocessing.sequence.pad_sequences(texts, maxlen=3)

Contoh padding pada beberapa teks. Jika teks memiliki kata lebih sedikit dari ukuran padding, token "0" akan ditambahkan di awal teks; jika lebih banyak, kata-kata terakhir akan dihapus dari kalimat.

Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

keras.datasets

Banyak dataset siap pakai

  • Ulasan film IMDB
  • Reuters newswire

Dan lainnya!

Untuk daftar lengkap dan contoh penggunaan, lihat dokumentasi keras

Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

Membuat model

# Import required modules
from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
# Instantiate the model class
model = Sequential()
# Add the layers
model.add(Dense(64, activation='relu', input_dim=100))
model.add(Dense(1, activation='sigmoid'))
# Compile the model
model.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])
Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

Melatih model

Metode .fit() melatih model pada data latih

model.fit(X_train, y_train, epochs=10, batch_size=32)
  1. epochs menentukan berapa kali bobot diperbarui pada model
  2. batch_size ukuran data tiap langkah
Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

Evaluasi dan penggunaan model

Evaluasi model:

model.evaluate(X_test, y_test)
[0.3916562925338745, 0.89324]

Buat prediksi pada data baru:

model.predict(new_data)
array([[0.91483957],[0.47130653]], dtype=float32)
Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

Contoh lengkap: Klasifikasi Sentimen IMDB

# Build and compile the model
model = Sequential()

model.add(Embedding(10000, 128)) model.add(LSTM(128, dropout=0.2)) model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# Training
model.fit(x_train, y_train, epochs=5)
# Evaluation
score, acc = model.evaluate(x_test, y_test)
Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

Saatnya berlatih!

Recurrent Neural Networks (RNN) untuk Pemodelan Bahasa dengan Keras

Preparing Video For Download...