CNN 最適化のトリック
開発
2023-05-18 03:09:08
訪問数: null
CNN 向けに最適化
- 1*1 に似たネットワーク構造を使用して RGB データを事前トレーニングする
- 約 128 (0.005) ~ 256 (0.01) のミニバッチ サイズを使用します。これが GPU にとって大きすぎる場合は、学習率をこのサイズまでスケールダウンします。
- 畳み込み層は FC を置き換え、グローバル平均プーリングを使用して予測します
- データセットのサイズの増加を検討する場合は、データの分散を考慮する
- 入力画像のサイズを大きくすることはできないが、後続のレイヤーでストライドを減らすことができる場合
ディープ ニューラル ネットワークをトレーニングするためのコツ
- エポックごとにシャッフルする
- 拡張されたデータセット: 小さなデータセットは過剰適合する傾向があります。
- データセット全体でトレーニングする前に、非常に小さなサブデータセットでトレーニングすることによって過学習が行われるため、ネットワークが収束できるかどうかを知ることができます。
- FC 層チャネル >256 では、ドロップアウトを適切に使用する必要があります
- 双曲線活性化関数 sigmoid または Tanh の使用を避ける
- 最大プーリングの前に relu を使用しないでください。計算を保存した後に使用してください。
- 初期化が不十分だとディスク全体が失われる可能性があるため、relu は使用しないようにしてください。PRelu使用可、左*0.1
- バッチ正規化をよく使用する
- 可能な場合は常に 1*1 CNN レイヤーを使用するようにモデルを変更します。
アルゴリズムのパフォーマンスを向上させるためのアイデア
- データのパフォーマンス向上
- アルゴリズムによりパフォーマンスが向上
- パフォーマンスを向上させるためのパラメータの調整
データのパフォーマンス向上
- より多くのデータを取得する
- さらにデータを作成する
- rescale data は、
アクティベーション関数の境界に合わせてデータを再スケールします。
- データ変換
アルゴリズムによりパフォーマンスが向上
- アルゴリズムのサンプリング
- 既存の文献を参考にする
- リサンプリング方法
パフォーマンスを向上させるためのパラメータの調整
- 診断
モデルが過剰適合しているか過小適合しているかを判断します。
- 重みの初期化
- 学習率
- 活性化関数
- ネットワーク構造を変更する
- バッチサイズとエポック
- 正則化
- オプティマイザと損失関数
- 早期停止
転載: blog.csdn.net/weixin_45074568/article/details/125416197