KerasでLSTMまたはGRUをトレーニングすると、突然精度が低下する
私のリカレントニューラルネットワーク(LSTM、またはGRU)は、私が説明できない方法で動作します。トレーニングが開始され、突然精度が低下する(そして、損失が急速に増加する)ときに、トレーニングとテストの両方のメトリックが適切にトレーニングされます(結果はかなり良く見えます)。時々、ネットはおかしくなり、ランダムな出力を返し、時々(与えられた3つの例の最後のように)、すべての入力に同じ出力を返し始めます。 あなたが持っています。この動作のための任意の説明を?どんな意見でも大歓迎です。以下のタスクの説明と図を参照してください。 タスク:単語からword2vecベクトルを予測する 入力:独自のword2vecモデル(正規化済み)があり、ネットワークに単語(文字で文字)を入力します。単語にパディングします(下の例を参照)。 例:フットボールという単語があり、100次元幅のword2vecベクトルを予測したいとします。次に、入力は$football$$$$$$$$$$です。 動作の3つの例: 単層LSTM model = Sequential([ LSTM(1024, input_shape=encoder.shape, return_sequences=False), Dense(w2v_size, activation="linear") ]) model.compile(optimizer='adam', loss="mse", metrics=["accuracy"]) 単層GRU model = Sequential([ GRU(1024, input_shape=encoder.shape, return_sequences=False), Dense(w2v_size, activation="linear") ]) model.compile(optimizer='adam', loss="mse", metrics=["accuracy"]) 二重層LSTM model = Sequential([ LSTM(512, input_shape=encoder.shape, return_sequences=True), TimeDistributed(Dense(512, activation="sigmoid")), LSTM(512, return_sequences=False), Dense(256, activation="tanh"), Dense(w2v_size, activation="linear") ]) model.compile(optimizer='adam', loss="mse", …