私は、13000のトレーニング画像と3000のバリデーション画像で11クラスの画像分類器を構築しようとしています。私はmxnetを使って訓練されている深いニューラルネットワークを使用しています。トレーニングの精度は向上しており、80%を超えていますが、検証の精度は54〜57%の範囲で増加していません。 ここで問題になるのは何ですか?私はイメージの数を増やすべきですか?ディープニューラルネットによる検証の精度を上げるには?
答えて
ここで問題となるのは、ネットワークがある時点で有用な一般的な機能の学習をやめ、トレーニングセットの特色に適応し始めることです。あなたは便利な機能を学習保つために、ネットワークを「強制」したいとあなたはここでいくつかのオプションがあります:
- 使用量の正則。体重を低く抑えようとすると、より一般化されることがよくあります。異なる正則化係数を試してみてください。 0.1,0.01,0.00を試してみて、精度にどのような影響があるかを見てください。
- 入力を無効にします(たとえば、一部のピクセルを黒または白でランダムに置き換えます)。これにより、入力から情報を削除し、ネットワークに重要な一般的な機能を引き継ぐよう強制します。入力のどの程度が壊れているかを決定するノイズ係数を試してみてください。研究によれば、15%〜45%の範囲のものはどれもうまく機能します。
- トレーニングセットを展開します。画像を扱っているので、あなたの既存の画像を(提案されているように)回転/拡大縮小などして拡大することができます。画像を前処理することもできます(例えば、白黒、グレースケールなどにマッピングするなど)。
- ノイズ除去基準を使用してレイヤーを事前にトレーニングします。。ネットワーク全体を細かく調整する前に、ネットワークの各レイヤーを個別に事前にトレーニングします。入力信号を再構築するのに有用な重要な一般的な特徴を拾うために、「強制」レイヤーを事前にトレーニングします。たとえば、自動エンコーダを見てください(過去に画像分類に適用されています)。
- ネットワークアーキテクチャで実験してください。ネットワークに十分な学習能力がない可能性があります。異なるニューロンのタイプ、層の数、隠れたニューロンの数を試してみてください。アーキテクチャ(入力よりもニューロンが少ない)と疎なアーキテクチャ(入力よりも多くのニューロン)を圧縮しようとしてください。
残念ながらうまく一般化訓練ネットワークのプロセスは、(あなたがこのアプローチを採用する多くの研究作品が表示されます)の実験と人間の監督のビットを持つパラメータ空間のほぼブルートフォース探査の多くが含まれます。各パラメータについて3〜5の値を試して、どこかにつながるかどうかを確認するとよいでしょう。
反復回数の関数として精度/コスト/ f1をプロットし、その動作を確認するとき。多くの場合、テストセットの精度がピークに達し、その後は連続的に低下します。したがって、優れたアーキテクチャー、正規化、破損などを除けば、最良の結果を生み出す反復の数を探していることになります。
もう1つのヒント:各トレーニングエポックで画像の順序がランダム化されていることを確認してください。
答えをありがとう。 私は体重正則化を0.0001で使用しています。今度は、開始時とは異なる値でモデルを再学習し、正規化値を変更した時代に保存されたモデルでトレーニングを再開する必要があります。 私はいくつかのパラメータ値を使って試してみるつもりです。私はトレーニングイメージを増やすつもりです。 – sau
startと異なる値を試してください。保存したモデルは使用しないでください。また、正則化係数の値を大きくすると、0.001,0.01,0.1となります。 – krychu
私は0.001で試しましたが、今はモデルが収束していません。最後の10エポックモデルのトライアングと検証精度は9〜10%です。また、私は神経回路網の中でドロップアウトを使用しています。 – sau
これはモデルが特定の値に固定されるまで妥当性検査の精度が段階的に改善されているため、モデルがトレーニングセットをオーバーフィットしているように見えます。学習率がもう少し高いと、トレーニングの精度が向上し、検証精度が低下することになります。
トレーニングセットの数を増やすことが、この問題の最適な解決方法です。また、さまざまな変換(少し大きめの画像からランダムな部分を切り抜く)を既存の画像セットに適用し、モデルがよりよく学習しているかどうかを確認することもできます。
高い学習率でトレーニングの精度も低下すると思います。私はそれを確認した。しかし、はい、私はそれぞれのイメージを自分で選んだので、それがどうして起こったのか疑問に思っています。トレーニングイメージを正確に認識できれば、同じ精度の検証イメージも認識する必要があります。トレーニングと検証の画像は非常に似ています。 – sau
トレーニングと検証のイメージが「非常に似ている」と仮定すると、物を解釈するというあいまいなアイデアです。検証のために全く同じトレーニングイメージを維持しようとするのはどうでしょうか?それは訓練と同じ精度ですか? –
- 1. 点の描画精度を上げる
- 2. MatlabのSVMトレーニングと分類の精度を上げるには?
- 3. 検証精度が
- 4. 検証精度は常にKerasのトレーニング精度よりも高い
- 5. Dyalog APLの可変精度を上げる方法は?
- 6. Python、最大精度に切り上げる方法
- 7. 数式の結果の精度をTSQLで上げる
- 8. opencvで測定の精度を上げる方法
- 9. Tensorflowの予測精度を上げる方法
- 10. Androidのジェスチャーオーバーレイの感度/精度を上げるにはどうすればよいですか?
- 11. QTableItemをQDoubleSpinBoxに変換する際の精度を上げるにはどうすればよいですか?
- 12. 精度が1の累乗に引き上げられたときの精度が失われる
- 13. Wikitude AR.RelativeLocation、ジャイロスコープ精度を上げる方法?
- 14. 畳み込みニューラルネットワークの検証精度
- 15. データベースの検索の速度を上げるために
- 16. Scikit Pythonのロジスティック回帰のモデル精度を上げる方法は?
- 17. 大きい数値のdouble型の精度を上げる方法は?
- 18. チャットの会話のCoreference解決の精度を上げるにはどうすればよいですか?
- 19. トレーニングの精度以上のテスト精度
- 20. Googleタグマネージャのフォーム送信タグの精度を上げるにはどうすればよいですか?
- 21. どのようにループ上のPythonの速度を上げるには?
- 22. pytesseract&PILによるテキスト認識の精度を向上
- 23. Keras - プロットトレーニング、検証およびテストセットの精度
- 24. スピーチからテキストへの変換の精度を上げる方法
- 25. Objective-C - 浮動小数点数の精度を上げる方法
- 26. ニューラルネットワーク:検証確度定数、トレーニング精度の低下
- 27. とにかくTwitterのマイニング速度を上げるには?
- 28. 角度チェックボックスモデルによる検証
- 29. 反復の精度を向上させるには?
- 30. スウィフトで倍精度以上の精度を実現
妥当性の確度は、54-57%に固定されるまで段階的に増加しましたか?それとも、最初からほぼ同じだったのでしょうか? –
妥当性の確度は段階的に増加していませんでしたが、54-57%に固定されました – sau
トレーニングの精度はどのように計算されましたか?あなたが訓練したバッチごとに計算しましたか?または、トレーニングセット全体について? – Chaine