keras simpleRNN レイヤーを使用して、この壁にぶつかっています。他に 2 つのモデルがあります。1 つは完全に接続された Dense レイヤーのみで、もう 1 つは期待どおりに動作する LSTM を使用しているため、問題はデータ処理ではないと思います。
コンテキストとして、トークン化された tf.keras reuters データセットを使用しています。出力データは、分類した 46 個の可能なタグで構成されています。
以下はモデルコードです。
modelRNN = Sequential()
modelRNN.add(Embedding(input_dim=maxFeatures, output_dim=256,input_shape=(maxWords,)))
modelRNN.add(SimpleRNN(1024))
#modelRNN.add(Activation("sigmoid"))
modelRNN.add(Dropout(0.8))
modelRNN.add(Dense(128))
modelRNN.add(Dense(46, activation="softmax"))
modelRNN.compile(
optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'],
)
そして、私は次のパラメータを使用してフィッティングしています
historyRNN = modelRNN.fit(x_train, y_train,
epochs=100,
batch_size=512,
shuffle=True,
validation_data = (x_test,y_test)
)
このモデルに当てはめると、一貫して val_accuracy が 0.3762、val_loss が ~3.4 になります。この「天井」は、グラフではっきりと見ることができます。
私が試したこと:スーパーパラメーターの変更、入力データ形状の変更、さまざまなオプティマイザーの試行。
どんなヒントでも大歓迎です、ありがとう。そして、私の投稿をよりわかりやすく編集するのを手伝ってくれた人々に感謝します:)
同じデータで動作する他の 2 つのモデルのグラフ:
高密度レイヤーのみ
LSTM