top of page
執筆者の写真Kakeru Yamasaki

オートエンコーダとは何か

更新日:2020年6月4日

オートエンコーダーは日本語で自己符号化器のこと

ニューラルネットワークの一種で情報量を小さくした特徴表現を獲得するもの

ニューラルネットワーク

人間の神経回路網を数式で表現したもの

機械学習の手法の一つとして使われている

ニューラルネットワークは,入力層,出力層,隠れ層から構成され,層塗装の間にニューロン同士の繋がりの重み「W」がある.

ディープラーニングはニューラルネットワークの隠れ層が多層構造のもの

ディープラーニングで画像分類をする際は,入力層のサイズは画素数に対応させる.28×28ぴくせるの時は 28×28×1(RGBの時は3)

入力層に重みW1をかけて隠れ層,それに重みW2をかけて出力層

その出力層を教師データなどの正解に近づけていくために,重みを調整する. その他詳しくは https://www.sbbit.jp/article/cont1/33345

オートエンコーダの核は次元削減である.

入力と出力を同じデータにしたら隠れ層の各層が同じ次元であればただ単にデータをコピーすれば良い.

ただ,隠れ層の次元が低い場合,同様のデータを小さな情報量に圧縮する方法をニューラルネットワークは学習しないといけない.これがオートエンコーダーのやっていること.

例えば,顔画像を入力したとしたら,目,鼻,表情,という抽象的な概念として特徴をつかみ始めているかもしれない.

圧縮する過程をエンコーダ,復元する過程をデコーダと呼ぶ.

オートエンコーダの必要性

deeplearingはニューラルネットワークの層を深くしたものである. ではなぜそれまで多層化しなかったのか... ニューラルネットワークの初期は神経細胞を模倣した形式ニューロンというものが提案された後にパーセプトロンというモデルに発展した.以下のような形で入力ノードと出力の重みづけを学習する.



https://deepage.net/deeplearning/2016/10/09/deeplearningautoencoder.htmlより引用

これでは中間層の結合荷重が変わらないためXORなど非線形の問題は解けない.

1986年にバックプロパケージョンが提案され,中間層の総合荷重等が学習によって帰れるようになった.


https://deepage.net/deeplearning/2016/10/09/deeplearningautoencoder.htmlより引用

こうすることで3層構造を持つ入力乳ーラルネットワークを構築できるようになった. 実際には,2層が3層になっただけである.

これを4層,5層にするともっと高度な表現能力を獲得できると考えたが,性能が下がってしまった.

理由その一

勾配損失...層を増やすにつれてバックプロパゲージョンでは徐々に最初のそうに近づくにつれて情報を伝達できなくなり学習速度が遅くなった.

理由その二

過学習...訓練データは正しく予想できるが未知のデータに全く弱くなる.

ニューラルネットワークのパラメータの初期値をランダムではなく,オートエンコーダで訓練したものを入れるという案が出た.

まず教師なしデータで層のパラメータを一層一層順に調整していく.



https://deepage.net/deeplearning/2016/10/09/deeplearningautoencoder.htmlより引用

まず入力層と隠れ層1



https://deepage.net/deeplearning/2016/10/09/deeplearningautoencoder.htmlより引用

次に隠れ層2



https://deepage.net/deeplearning/2016/10/09/deeplearningautoencoder.htmlより引用

ここで得られたパラメータをニューラルネットワークの初期地に使う. このように,重みの初期値を事前に推定するのを事前学習という.

これによって勾配喪失問題が起こる可能性が低くなった.

今は,画像のノイズ除去や可視化程度でしか利用目的はないとされる.(事前学習なしでも良くなった)

一度オートエンコーダを訓練してしまえば,エンコーだとデコーダを別々に使うことができる.

音楽を創作するときに要素や原則を頭の中でまとめてそれを再現するのと同じ.

オートエンコーダは生成モデルで活用され始めた.

Variational Autoencoderはこれまでの入力を受けて出力が決定論的に決まる. AutoEncoderと違って確率的

訓練データにない人の顔を出力することができたりする.

参照元

https://deepage.net/deeplearning/2016/10/09/deeplearningautoencoder.html https://www.sbbit.jp/article/cont1/33345

閲覧数:208回0件のコメント

Comments


bottom of page