オートエンコーダー
深層学習(DNN)のwikiのページを読むと「2006年にニューラルネットワークの代表的な研究者であるジェフリー・ヒントンらの研究チームが、制限ボルツマンマシンによるオートエンコーダ(自己符号化器)の深層化に成功[注釈 5]し、…2012年には物体の認識率を競うILSVRCにおいてジェフリー・ヒントン率いるトロント大学のチームが”AlexNetについて“で述べているAlexNetによって従来の手法(エラー率26%)に比べてエラー率17%と実に10%もの劇的な進歩を遂げたことが機械学習の研究者らに衝撃を与えた。」とある。
このジェフリーヒントンのオートエンコーダーの論文である「Reducing the Dimensionality of Data with Neural Networks」から今回は述べたいと思う。
オートエンコーダーは、入力層と出力層に同じベクトルを与えて学習させる。この時、中間層のニューロンの数を入出力層より小さくし、中間層の出力を取り出すと、データの特徴量として圧縮できるというアイデアとなる。
これは以前述べたデータ圧縮のアルゴリズムによるものと異なり、データ量が劇的に減るわけではなく、ロスも大きいが、圧縮されたベクトルは元データの重要な部分だけを含むので、パターン認識として特徴量を抽出するのに効果的なものとなる。
また特徴量の抽出手法としては主成分分析(PCA)がある。主成分分析(PCA)は、データセット内の最大の分散の方向を見つけ、各データポイントをこれらの方向に沿った座標で表したものだが、この論文ではPCAを主成分分析を非線形に拡張したものであるとして提案されている。
スタックドオートエンコーダーは、オートエンコーダーで圧縮したベクトルをさらに同様の方法で圧縮するというようなことを繰り返し、データを圧縮する手法で。圧
縮する層と展開する層をつなげて、最後に全体を学習することで効果的に多層のニューラルネットワークを学習することができるものとなる。ヒントンの論文では2000次元を1000次元に、1000次元を500次元に、500次元を30次元に圧縮している。
上記の文献では制限付きボルツマンマシンのコントラスティブ・ダイバージェンス法という学習を用いている。
オートエンコーダーの活用としては特徴量を出すだけであれば、上記のAやBのケースではOpenCV等を用いてデータを正規化する手法でも十分実用的ではないかと思う。正解の画像を学習し異常検知で用いるものが実用化されているとのこと。
pythonを使った実装はkerasのHPで紹介されており、ClojureではJavaの深層学習ライブラリであるDeepLearning4Jを使うことができる。これらの詳細は別の機会に紹介したい。
*1) Mathworks オートエンコーダーとは
コメント
[…] 次にヒントンは特徴量(へのラベル)をつける手段として、入力の全体もしくは一部を再構成したものをニューラルネットの出力とするものを検討した。これは静的なデータの場合は、深層自己符号化器 (DeepAutencode) に当たる。また動的なデータの場合は生成モデルとよばれる確率分布を用いたアルゴリズムの適応を検討した。これは当時統計物理や量子力学の世界で考えられていた無向グラフィカルモデル(あるいはマルコフランダム場)と呼ばれるモデルで、物質の磁気スピンのインジングモデルの計算としても知られているものとなる。 […]
[…] オートエンコーダーについての項で、ヒントンらの論文では先行例としてPCAを述べていた。今回はそのPCAについてもう少し具体的に述べる。 […]
[…] この時、学習するための入力/出力としては「単語を空白で区切り」「文は改行で区切る」形で整形したtexデータを用いる。このニューラルネットの形は以前紹介した「オートエンコーダー」とほぼ同様のものとなる。異なる点は前述の活性化関数を非常にシンプルにしているところと、入力層から隠れ層へのリンクが均一に行われているところにある。 […]
[…] オートエンコーダー […]
[…] オートエンコーダー DNNの草分け(次元削減) […]
[…] 1989年にLeCunらが発表したニューラルネットワークは、ネオコグニトロンと類似の構造をもっており、畳み込み計算を行う層、プーリング層、分類を行う全結合層で構成され、これらの層がもつパラメータを誤差逆伝播法(error backpropagation)で学習することで、文字認識などの画像分類問題で高い性能が得られることを示した。2012年にHintonらのグループの深い構造の畳み込みニューラルネットワークが従来の画像認識手法を大きく上回り、画像認識分野の研究に大きな影響を与えた。 […]
[…] る。これにより、単語の意味や関連性を数値表現として捉えることができる。”オートエンコーダー“で述べているWord2Vec、GloVe、FastTextや、”Huggingfaceを使った文自動生成の概要 […]
[…] クやデータに応じて最適なモデルを選択することが重要となる。Word2Vecに関しては“オートエンコーダー“、FastTextに関しては””FastTextの概要とアルゴリズム及び実装例について“、BE […]
[…] 変分自己符号化器(Variational Autoencoder, VAE)は、生成モデルとしての変分推論と、”オートエンコーダー“で述べている自己符号化器(Autoencoder)の組み合わせとなる。VAEは、高次元のデ […]
[…] 常検出などのタスクに利用されている。オートエンコーダーの詳細に関しては”オートエンコーダー“を、GANに関しては”PyTorchによる発展ディープラーニング(OpenPose, SSD, AnoGAN, E […]
[…] Transformerモデルは、”オートエンコーダー“でも述べているエンコーダとデコーダという2つの主要な部分から構成されたモデルとなっている。エンコーダは入力シーケンスを表現 […]
[…] “オートエンコーダー“でも述べているオートエンコーダーは、与えられたデータを潜在空間における低次元ベクトルにエンコードする教師なし学習を行うニューラルネットワークで、具体的な適用例としては”Word2Vec“で述べているWord2Vec等がある。 […]
[…] “オートエンコーダー“で述べているようなオートエンコーダは、 入力されたデータを潜在空間における低次元ベクトルとして表現するものだが、 “変分オートエンコーダ (Variational Autoencoder, VAE)の概要とアルゴリズム及び実装例について“でも述べている変分オートエンコーダ(Variational AutoEncoders)は、 オートエンコーダの潜在空間における表現を、低次元ベクトルという1つの点で表すのでなく、”確率的生成モデルについて“で述べているような潜在空間の確率分布として表現するモデルとなっている。 […]