Sentiment classification दोबारा

Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

David Cecchini

Data Scientist

पिछले नतीजे

हमारे शुरुआती मॉडल के नतीजे खराब थे.

model = Sequential()
model.add(SimpleRNN(units=16, input_shape=(None, 1)))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='sgd', metrics=['accuracy'])

model.evaluate(x_test, y_test)
$[0.6991182165145874, 0.495]
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

मॉडल सुधारें

मॉडल का प्रदर्शन सुधारने के लिए आप कर सकते हैं:

  • Embedding लेयर जोड़ें
  • लेयरों की संख्या बढ़ाएँ
  • पैरामीटर ट्यून करें
  • शब्दावली का आकार बढ़ाएँ
  • लंबी वाक्यों को अधिक मेमोरी सेल्स के साथ स्वीकार करें
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

Overfitting से बचना

RNN मॉडल overfit कर सकते हैं

  • अलग-अलग batch size आज़माएँ.
  • Dropout लेयर जोड़ें.
  • RNN लेयर पर dropout और recurrent_dropout पैरामीटर जोड़ें.
# शोर जोड़ने के लिए 20% इनपुट हटाता है
model.add(Dropout(rate=0.2))

# क्रमशः 10% इनपुट और मेमोरी सेल्स हटाता है model.add(LSTM(128, dropout=0.1, recurrent_dropout=0.1))
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

अतिरिक्त: Convolution लेयर

इस दायरे में नहीं:

model.add(Embedding(vocabulary_size, wordvec_dim, ...))
model.add(Conv1D(num_filters=32, kernel_size=3, padding='same'))
model.add(MaxPooling1D(pool_size=2))
  • Convolution लेयर embedding वेक्टर पर feature selection करती है
  • कई NLP समस्याओं में state-of-the-art परिणाम देती है
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

एक उदाहरण मॉडल

model = Sequential()
model.add(Embedding(  vocabulary_size, wordvec_dim, trainable=True,
                      embeddings_initializer=Constant(glove_matrix), 
                      input_length=max_text_len, name="Embedding"))

model.add(Dense(wordvec_dim, activation='relu', name="Dense1"))
model.add(Dropout(rate=0.25)) model.add(LSTM(64, return_sequences=True, dropout=0.15, name="LSTM"))
model.add(GRU(64, return_sequences=False, dropout=0.15, name="GRU"))
model.add(Dense(64, name="Dense2")) model.add(Dropout(rate=0.25)) model.add(Dense(32, name="Dense3"))
model.add(Dense(1, activation='sigmoid', name="Output"))
Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

अभ्यास करते हैं!

Keras के साथ भाषा मॉडलिंग के लिए Recurrent Neural Networks (RNNs)

Preparing Video For Download...