1. ホーム
  2. machine-learning

[解決済み】機械学習モデルの損失と精度の解釈の仕方【終了しました

2022-04-19 02:35:36

質問

TheanoやTensorflowでニューラルネットワークを学習させると、エポックごとに"loss"という変数が報告されます。

この変数をどのように解釈すればよいのでしょうか?損失が大きい方が良いのか悪いのか、あるいは私のニューラルネットワークの最終的な性能(精度)に対してどのような意味を持つのでしょうか?

どのように解決するのですか?

が低いほど の損失が発生します。 は、(モデルが学習データにオーバーフィットしていない限り)優れたモデルであることを意味します。損失は トレーニング バリデーション であり、その相互作用は、これらの2つのセットに対してモデルがどの程度うまくいっているかを示している。精度とは異なり、損失はパーセンテージではありません。トレーニングセットや検証セットの各例で発生した誤差の合計です。

ニューラルネットワークの場合、損失は通常 負の対数尤度 残留二乗和 は、それぞれ分類と回帰のためのものです。そうすると当然、学習モデルにおける主目的は、ニューラルネットワークにおけるバックプロパゲーションのような様々な最適化手法によってウエイトベクトルの値を変化させ、モデルのパラメータに対する損失関数の値を小さく(最小化)することである。

損失値とは、あるモデルが最適化を繰り返すたびに、その挙動がどの程度良好であるか、あるいは不良であるかを意味します。理想的には、1回または数回の反復の後、損失が減少することが期待されます。

その 精度 は通常、モデルのパラメータが学習され固定され、学習が行われなくなった後に決定される。そして、テストサンプルをモデルに与え、真のターゲットと比較した上で、モデルが犯したミス(ゼロ・ワン・ロス)の数を記録する。そして、誤判定の割合を計算する。

例えば、テストサンプルの数が1000個で、モデルがそのうちの952個を正しく分類した場合、モデルの精度は95.2%となります。

また、損失額を減らす一方で、いくつかの微妙な点があります。例えば、以下のような問題にぶつかることがあります。 オーバーフィット この場合、モデルは学習例を記憶してしまい、テストセットでは有効でなくなります。また,オーバーフィッティングは,学習用モデルを使用しない場合にも発生します. 正則化 非常に複雑なモデルを使用している場合(自由パラメータ数 W が大きい)、あるいはデータ点数 N が非常に少ない。