オートエンコーダ

出典: フリー百科事典『ウィキペディア(Wikipedia)』

オートエンコーダ(自己符号化器、: autoencoder)とは、機械学習において、ニューラルネットワークを使用した次元圧縮のためのアルゴリズム2006年ジェフリー・ヒントンらが提案した[1]

概要[編集]

AutoEncoder.png

オートエンコーダは3層ニューラルネットにおいて、入力層と出力層に同じデータを用いて教師なし学習させたものである。教師データが実数値で値域がない場合、出力層の活性化関数は恒等写像、(すなわち出力層は線形変換になる)が選ばれることが多い。中間層の活性化関数も恒等写像を選ぶと結果は主成分分析とほぼ一致する。実用上では、入力と出力の差分をとることで、異常検知に利用されている。

派生[編集]

スパース・オートエンコーダ[編集]

スパース・オートエンコーダ: sparse autoencoder)とは、フィードフォワードニューラルネットワークの学習において汎化能力を高めるため、正則化項を追加したオートエンコーダのこと。ただし、ネットワークの重みではなく、中間層の値自体を0に近づける。

ディープ・オートエンコーダ[編集]

Stacked Autoencoders.png

中間層が2層以上あるニューラルネットワークをディープ・ニューラルネットワーク: deep neural network)と呼ぶ。

Stacked autoencoder[編集]

バックプロパゲーションでは通常、中間層が2層以上ある場合、極小解に収束してしまう。そこで、中間層1層だけでオートエンコーダを作って学習させる。次に、中間層を入力層と見なしてもう1層積み上げる。これを繰り返して多層化したオートエンコーダをつくる方法をstacked autoencoderと言う。

Denoising AutoEncoder[編集]

入力層のデータにノイズを加えて学習させたもの。制約付きボルツマンマシンと結果がほぼ一致する。ノイズは確率分布が既知であればそれに従ったほうが良いが、未知である場合は一様分布で良い。

Contractive AutoEncoder[編集]

Saturating AutoEncoder[編集]

Nonparametrically Guided AutoEncoder[編集]

Unfolding Recursive AutoEncoder[編集]


変分オートエンコーダー[編集]


類似技術[編集]

脚注[編集]

出典[編集]

  1. ^ Geoffrey E. Hinton; R. R. Salakhutdinov (2006-07-28). “Reducing the Dimensionality of Data with Neural Networks”. Science 313 (5786): 504-507. http://www.cs.toronto.edu/~hinton/science.pdf.