ディープラーニングの基本・応用⑨

CNN(畳み込みニューラルネットワーク)の精度向上策について。

目次

AI・ディープラーニングの全体像

  • 人工知能
  • 機械学習
  • ディープラーニングの基本・応用
  • ディープラーニングの研究
  • AIプロジェクト
  • AI社会実装に伴う法律・倫理

畳み込みニューラルネットワーク(CNN)の精度向上策

代表的な精度向上策

  • 畳みの初期設定法
  • ドロップアウト(Dropout)
  • バッチ正規化(Batch Normalization)
  • データ拡張(Data Augmentation)
  • 転移学習(Transfer Learning)
  • モデルの軽量化

畳みの初期設定法

  • 初期設定が学習の収束に影響することがある
  • 先行する層のニューロンの数を考慮し、重みを初期化すべき
  • 活性化関数(シグモイド関数・Tanh関数)→「Xavierの初期値」を使うことが多い
  • 活性化関数(ReLU関数)→「Heの初期値」を使うことが多い

ドロップアウト(Dropout)

  • 一部のニューロンをランダムに無効化過学習を軽減し、汎化性能を上げるための工夫
  • 各ニューロンからの出力には、「1ー無効化割合」係数を掛ける
  • アンサンブル学習器の一種とみなすことができる
    (少しずつ異なるニューラルネットワークを多数組み合わせている)

バッチ正規化(Batch Normalization)

  • データを一定範囲に揃えること
  • 入力データの値をすべて0~1におさまるよう正規化を行う→モデルの学習効率を改善
  • 「標準化」→平均を引いて標準偏差で割ること
  • 「共変量シフト」→長いネットワークのなかで、何層も演算を繰り返すうちにデータの分布が偏ってくる現象
  • 「バッチ正規化」→ミニバッチごとに標準化処理を用い、共変量シフトを、層ごとに補正する
  • 標準化を行って、データの分布の偏りをなくし、「正規分布」に近くなるようデータを整える
    学習を早くし、過学習を防止
  • バッチ正規化→全結合層(線形変換)/活性化層(非線形変換)、畳み込み層(線形変換)/活性化層(非線形変換)

データ拡張(Data Augmentation)

  • 擬似的・人工的に学習用画像データのバリエーションを増やす技術
  • ランダムな量で行い、変化を適用した後の画像を新しい画像とみなす
  • ミニバッチごとに都度拡張する方法を用いることで、データの総量は変わらずにバリエーションのみ増やすことができる

転移学習(Transfer Learning)

  • あるタスクのために学習させたモデルを、他のタスクに適用する手法
  • 転移学習に使われる学習済モデルは、大規模データセットを用いて学習したもので、すでに優秀な特徴抽出器となっており、汎用的なパラメータを提供できる
  • 少ないデータ量で効率的に高精度を出すことができる
    (⇔ゼロから大量データを用いて長い時間をかけて学習させる)
  • 新しいタスクに特化した専用の層を、出力層に近い部分に追加す
  • 微調整や再訓練を行うのは、主にネットワークの下流のパラメータ
  • 学習済みモデルに新しいタスクのための層を追加・置換えする
  • 出力層に近い側のパラメータのみ訓練、上流のパラメータは固定する
  • 訓練済みモデルのすべてのパラメータを再訓練(「ファインチューニング」)

モデルの軽量化

  • 計算の効率化(GPU、メモリなどの計算リソースの節約)、訓練データ準備の負担軽減、推論の高速化、省エネ
  • 訓練データ準備の負担軽減→パラメータ数の現象→モデルの簡略化
    過学習のリスクが下がる
    過学習を抑えるために必要な訓練データが少なくて済む
  • 軽量化により、同じ量の訓練データを使用しても、より汎化性能高いモデルを訓練することができる
量子化パラメータをより小さいビット数で表現→軽量化を図る
ネットワークの構造を変えずにメモリ使用量と計算コストを削減できる
プルーニング
(Pruning;枝刈り)
ネットワークの一部の比較的重要度の低いニューロンを剪定する→モデルサイズと計算コストと軽減
・モデルの精度に大きな影響を及ぼすことなく、モデルを効果的に軽量化できる
・プルーニングだけでは精度が落ちるため、プルーニング後に再学習を行う
蒸留大きな複雑なモデル・アンサンブル学習器→「教師モデル」
その知識を、小さく単純なモデル(「生徒モデル」)に継承、その学習に利用する手法
・より情報量の多いソフトラベルを用い、生徒モデルを訓練する
情報量を増やしながらモデル軽量化
(⇔量子化・プルーニングでは、情報を削減する)
①大規模データセットを用い、教師モデルを訓練する
②学習済みの教師モデルを用い、新たなデータセットに対し予測する
③教師モデルの予測出力を用い、生徒モデルを教師モデルに近づくよう訓練する

この記事が気に入ったら
いいね または フォローしてね!

  • URLをコピーしました!
目次