Auto Encoder(オートエンコーダー)について
-
Auto Encoder(自己符号化器)
- 入力データを圧縮し(次元削減,特徴抽出)そこから再度入力データを復元するようなニューラルネットワーク
- 重要度の高い情報を洗い出し、それ以外の部分を削ぎ落とす
-
Auto Encodeの効果
- 勾配消失を解決する
ニューラルネットワークの初期値に、オートエンコーダで学習させたものを用い事前学習を行うことで、勾配消失(層を多くすることで誤差逆伝播に必要な勾配が消える)による学習速度低下を防止する - 過学習を解決する
オートエンコーダによりデータを粗な状態にすることで、過学習を防止する
- 勾配消失を解決する
※オートエンコーダーは事前学習(Pre Training)として次元の削減に使われていたが、最近はCNN(畳み込みニューラルネットワーク)やRNN(リカレントニューラルネットワーク)のように、それぞれのアルゴリズムの中に次元削減処理が含まれているので事前学習として使われることはなくなった。
-
Auto Encodeの事前学習
- ネットワークを構築する多層構造を、複数の単層に分割
- 分割する前の構造を想定し、入力層から順に教師なし学習を行う
- 2で得た訓練用隠れ層の値を入力値として、すべての隠れ層で訓練を繰り返す
- 学習させた層で元のネットワークに戻す
-
Auto Encodeの活用事例
- 画像のノイズ除去
入力値としてノイズを混ぜた画像、正解として元の画像を与えて訓練することで、圧縮時にノイズを除去できる - 異常検知
入力値に異常がある場合、入力値と出力値の間に誤差が生じるので、これを異常発生と定義する - クラスタリング
VAE(確率分布的に潜在変数を取得する仕組み)の学習を経たオートエンコーダにデータを入力することで、入力値がどちらのグループに属するのか判別可能
- 画像のノイズ除去