私はKerasのLSTMを使用して、スタックオーバーフローに関する2つの質問が重複しているかどうかを検出できるモデルを構築しました。モデルを実行すると、エポックにこのようなものが表示されます。
Epoch 23/200
727722/727722 [==============================] - 67s - loss: 0.3167 - acc: 0.8557 - val_loss: 0.3473 - val_acc: 0.8418
Epoch 24/200
727722/727722 [==============================] - 67s - loss: 0.3152 - acc: 0.8573 - val_loss: 0.3497 - val_acc: 0.8404
Epoch 25/200
727722/727722 [==============================] - 67s - loss: 0.3136 - acc: 0.8581 - val_loss: 0.3518 - val_acc: 0.8391
これらの各用語の意味を理解しようとしています。上記の値のどれが私のモデルの精度です。私は機械学習が比較的新しいので、説明があれば役立ちます。
機械学習モデルをトレーニングするとき、避けたい主なものの1つは過剰適合です。これは、モデルがトレーニングデータによく適合している場合ですが、以前は見たことのないデータを一般化して正確に予測することはできません。
モデルが過適合であるかどうかを確認するために、データサイエンティストは交差検証と呼ばれる手法を使用し、データを2つの部分(トレーニングセットと検証セット)に分割します。トレーニングセットはモデルのトレーニングに使用され、検証セットはモデルのパフォーマンスの評価にのみ使用されます。
トレーニングセットのメトリックを使用すると、トレーニングの観点からモデルの進捗状況を確認できますが、モデルの品質の測定値を取得できるのは検証セットのメトリックです。データに基づいて新しい予測を作成できるかどうかそれは前に見たことがありません。
これを念頭に置いて、損失とaccはトレーニングセットの損失と精度の尺度であり、val_lossとval_accは検証セットの損失と精度の尺度です。
現在、モデルの精度はトレーニングセットで〜86%、検証セットで〜84%です。これは、モデルが新しいデータに対して〜84%の精度で実行されることを期待できることを意味します。
エポックが23から25に変わると、accメトリックが増加し、val_accメトリックが減少します。これは、モデルがトレーニングセットにより良く適合しているが、新しいデータで予測する能力を失い、モデルがノイズに適合し始め、オーバーフィットし始めていることを示しています。
これが、検証メトリックとその解釈方法に関する簡単な説明です。
RNN(LSTM)はCNNとは異なるため、さまざまな原因が考えられます。 KerasのLSTMモデルの場合、2つのLSTM引数を変更します。
一般に、これらはニューラルネットワークのトレーニングと検証データセットの精度の違いの可能性です。インターネットから回答を集める