Bluemo's Brain

Search

Search IconIcon to open search

ディープラーニングのチューニングTips

Last updated Unknown Edit Source

    情報α課題2: CIFAR10でCNNを訓練で思ったこと

    • 「①モデルを調整して精度を高める」と「②汎化性能を高める」の両輪を回していく、みたいな感じのプロセスだな〜と思った
      • accuracyとvalidation_accuracyのグラフをみて二輪の内進めるべき方を進める、という作業の繰り返しだった
      • 正しいやり方なのかは分からんけど

    from 東大1S情報α ディープラーニングのテクニック

    • パラメータ初期値の決め方
      • どういう初期値が良い?
        • 学習後は0を中心に分布するので、元から0を中心にすると良い
        • あと、次元が多いほどばらつきは小さい
        • あとは、いい感じの正規分布でバラつけとけば良い
    • 勾配クリッピング
      • 勾配の上限を定めておこう、というやつ
    • 過学習防ぐ
      • 正則化
        • 大きいパラメータθを避けるため
      • ドロップアウト(深層学習)
        • ランダムに枝を消すこと
        • 最近あんまり使わないらしい
      • 早期終了
        • なんかもう普通に過学習する前に止めちゃおう、というやつ
      • バッチ正規化
        • ミニバッチごとのデータのばらつきを補正
        • バッチデータの平均値・分散を全体データを同じにする、という感じかな?
          • ミクロなばらつきによって確率的勾配降下法ができると同時に、マクロ的には全体集合と同じ感じになって嬉しい
        • なんでうまくいってるかは分からん
          • なんなら本来の目的(全体データとのずれを減らす)はあんまり意味がない
          • けど、なんでか分からないけど損失関数のでこぼこがなだらかになるから使う、みたいな感じらしい
            • 魔法〜〜blu3mo.icon
    • これらのテクニックは色々あるけど、
      • ベストな方法が分からないので、付け合わせのテクニックの組み合わせで実用上対処する感じ
      • どれを使えば良いのかはまあトライアンドエラー
      • とりあえずバッチ正規化が特に強いらしいので覚えておきたい