CNN 最適化のトリック

CNN 向けに最適化

  • 1*1 に似たネットワーク構造を使用して RGB データを事前トレーニングする
  • 約 128 (0.005) ~ 256 (0.01) のミニバッチ サイズを使用します。これが GPU にとって大きすぎる場合は、学習率をこのサイズまでスケールダウンします。
  • 畳み込み層は FC を置き換え、グローバル平均プーリングを使用して予測します
  • データセットのサイズの増加を検討する場合は、データの分散を考慮する
  • 入力画像のサイズを大きくすることはできないが、後続のレイヤーでストライドを減らすことができる場合

ディープ ニューラル ネットワークをトレーニングするためのコツ

  • エポックごとにシャッフルする
  • 拡張されたデータセット: 小さなデータセットは過剰適合する傾向があります。
  • データセット全体でトレーニングする前に、非常に小さなサブデータセットでトレーニングすることによって過学習が行われるため、ネットワークが収束できるかどうかを知ることができます。
  • FC 層チャネル >256 では、ドロップアウトを適切に使用する必要があります
  • 双曲線活性化関数 sigmoid または Tanh の使用を避ける
  • 最大プーリングの前に relu を使用しないでください。計算を保存した後に使用してください。
  • 初期化が不十分だとディスク全体が失われる可能性があるため、relu は使用しないようにしてください。PRelu使用可、左*0.1
  • バッチ正規化をよく使用する
  • 可能な場合は常に 1*1 CNN レイヤーを使用するようにモデルを変更します。

アルゴリズムのパフォーマンスを向上させるためのアイデア

  • データのパフォーマンス向上
  • アルゴリズムによりパフォーマンスが向上
  • パフォーマンスを向上させるためのパラメータの調整
データのパフォーマンス向上
  1. より多くのデータを取得する
  2. さらにデータを作成する
  3. rescale data は、
    アクティベーション関数の境界に合わせてデータを再スケールします。
  4. データ変換
アルゴリズムによりパフォーマンスが向上
  1. アルゴリズムのサンプリング
  2. 既存の文献を参考にする
  3. リサンプリング方法
パフォーマンスを向上させるためのパラメータの調整
  1. 診断
    モデルが過剰適合しているか過小適合しているかを判断します。
  2. 重みの初期化
  3. 学習率
  4. 活性化関数
  5. ネットワーク構造を変更する
  6. バッチサイズとエポック
  7. 正則化
  8. オプティマイザと損失関数
  9. 早期停止

おすすめ

転載: blog.csdn.net/weixin_45074568/article/details/125416197