web-dev-qa-db-ja.com

用語の精度と検証の精度の違いは何ですか

私は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

これらの各用語の意味を理解しようとしています。上記の値のどれが私のモデルの精度です。私は機械学習が比較的新しいので、説明があれば役立ちます。

8
Dookoto_Sea

機械学習モデルをトレーニングするとき、避けたい主なものの1つは過剰適合です。これは、モデルがトレーニングデータによく適合している場合ですが、以前は見たことのないデータを一般化して正確に予測することはできません。

モデルが過適合であるかどうかを確認するために、データサイエンティストは交差検証と呼ばれる手法を使用し、データを2つの部分(トレーニングセットと検証セット)に分割します。トレーニングセットはモデルのトレーニングに使用され、検証セットはモデルのパフォーマンスの評価にのみ使用されます。

トレーニングセットのメトリックを使用すると、トレーニングの観点からモデルの進捗状況を確認できますが、モデルの品質の測定値を取得できるのは検証セットのメトリックです。データに基づいて新しい予測を作成できるかどうかそれは前に見たことがありません。

これを念頭に置いて、損失とaccはトレーニングセットの損失と精度の尺度であり、val_lossとval_accは検証セットの損失と精度の尺度です。

現在、モデルの精度はトレーニングセットで〜86%、検証セットで〜84%です。これは、モデルが新しいデータに対して〜84%の精度で実行されることを期待できることを意味します。

エポックが23から25に変わると、accメトリックが増加し、val_accメトリックが減少します。これは、モデルがトレーニングセットにより良く適合しているが、新しいデータで予測する能力を失い、モデルがノイズに適合し始め、オーバーフィットし始めていることを示しています。

これが、検証メトリックとその解釈方法に関する簡単な説明です。

20
Primusa

RNN(LSTM)はCNNとは異なるため、さまざまな原因が考えられます。 KerasのLSTMモデルの場合、2つのLSTM引数を変更します。

  • 単位:ダウン
  • ステートフル:false

一般に、これらはニューラルネットワークのトレーニングと検証データセットの精度の違いの可能性です。インターネットから回答を集める

Sourosh

  • トレーニングセットまたは検証セットのいずれかに対する前処理(ゼロの意味、正規化など)、ただし両方ではない
  • スクラッチからのトレーニングおよび推論中に異なるパフォーマンスを実行する一部のレイヤー、モデルが誤って実装される可能性があります
  • オーバーフィット

dk14

  • 十分なデータポイントがありません、容量が多すぎます
  • ご注文
  • 機能のスケーリング/正規化なし/不正
  • 学習率が大きすぎる
0
Cloud Cho