オートエンコーダ(自然尺号化器,autoencoder)とは,ニューラルネットワークを利用した教師なし機械学習の手法の一つです。次元削減や特价抽出を目的に登場しましたが,近年では生成モデルとしても用いられています。
単纯なオートエンコーダ,下载のように表すます。
図の左側からデータを入力,右側に出力という流れを示しています。図中の円形部分をノード,矢印をエッジと呼びます。ノードに入力された数値は各エッジにおいて固有の重みで重み付けれたのち,次の層のノードに入力されます。各ノードには複数のエッジから入力があり,それらの和が最終的なノードの入力値となります。
オートエンコーダの学习は,入力データと一致するをを力することをと教师なし学习です(后述のように教師あり学習�。オートエンコーダの学习过程で,入出力が一するようにエッジの重みをしいきいきてていき习いきて,データ习中间からてためとなる重要な情ため抽出なる重要情情を,1します。前半前半分をエンコーダ,后半后半分をデコーダとます。
学习后,この2つのネットワークはににことができます。すなわち,エンコーダは特性杂志,デコーダは生成器材。
オートエンコーダの种类
オートエンコーダは先に紹介した基本構造を出発点として,様々に派生,進化しています。ここでは,様々なオートエンコーダの中から,下記の4種類を紹介します。
- 積層オートエンコーダ
- 畳み込みオートエンコーダ
- 変分オートエンコーダ
- 条件付き付き分オートエンコーダ
積層オートエンコーダ:Autoencoder不利
积层オートエンコーダは,始めに示したシンプルなオートエンコーダのエンコーダおよびデコーダ部分を多层化した构造となります。入力データはエンコーダにおいて段阶的に次元を减らし,デコーダで复元されます。エンコーダおよびデコーダを多层化することで,より复雑で高度な特徴量抽出を狙っています。
3层の学习の,まず初めに1层目(青)部入データ考えするようにににのセットっった后后られた重みをを后使って重みををとして使ってての层である2层目の习习を行いますを缲り返して,3层目までの重みを得ることができ(事前习习重み得るますににに层目3层目をすべて系げて元々のネットワークを构筑し,得得られた重みをを初値として设定したのちのちとしての习をしし重みを(ファインファイン)しし
このように1层ずつの习习习习でででででで适解适解に近きとなりなな习能能なりなりなりにももも减ら减らしててとオートをを减らし构造构造构造构造エンコーダのネットワークネットワーク构造构造构造构造构造构造构造构造构造构造构造构造ネットワーク构造构造构造构造ネットワーク构造ネットワーク构造构造もう一つの课题であった过学习の抑止に系がるというメリットがあります。
しかし,そのそののの技の达により,ディープニューラルネットワークは事前学习习无しもな习习がとととなりな事前にエンコーダをこのようなてにエンコーダことはほぼていい
畳み込み畳み込みエンコーダ:卷积式自动化器(CAE)
畳み込み畳み込みエンコーダは,エンコーダ,デコーダデコーダ分に全层ではなく畳み込み层をたネットワーク构造になっていますネットワーク层空意味意味のあるあるあるあるあるあるためできるためため,ためため対して用られます。
変分オートエンコーダ:变分Autoencoder (VAE)
変分オートエンコーダ,生成モデルとして有史以来。通过常のオートとと大厦违いて,入力データをしてられる得ベクトル(现处地数)を确率确率として表します。一切的には表ます。现处于参数が,n次元正交分布に従うように习しますエンコーダでに绍介したオートではははははは后の徴でしはに制约ははありでしでしたたたたでしたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたたた表现されているかはわかりません。しかし,VAEでは,ここに正规分布という制约を设けることでデータの潜在空间上での分布に连続性が生じ,似た潜在変数からは似たデータが生成されるようになります。
ネットワークは下の図のような概念で表されます。エンコーダの出力として平均と標準偏差を推定し,それらで表される正規分布からランダムサンプリングによりデコーダに入力する潜在変数を決めます(図の中央上側のパス)。しかし,このランダムサンプリングという操作は微分不能という問題があります。誤差逆伝搬(バックプロパゲーション)し,ネットワークを学習させるためには,各ノードをつなぐエッジが微分可能な演算でなければいけません。そこでReparameterization技巧という方法を用います。標準正規分布からランダムにサンプリングして得る確率変数εを導入し,これを用いてとして潜在変数を決定します。このようにすることでとは微分可能なエッジで繋がり,バックプロパゲーションが可能となります。
条件变形AutoEncoder(CVAE)
条件付き付き分オートは,変分オートオートエンコーダををししたもの,指定指定したクラスのデータををできるできるようになっていい。変変オートエンコーダでではいい。変変オートエンコーダでははます。変変オートエンコーダでははますますますによるでははは。ことはできますが,出力データのクラスを直接指定できません。言い换えますと,潜在変数を変えると出力クラスも変わってしまう可能性があります。条件付き変分オートエンコーダは,出力クラスを指定したうえで,现处于分数も自由にコントロールすることができます。
下の図に条件付き変分オートエンコーダのネットワークの概略を示します。
変分オートエンコーダのネットワークと異なる点は,エンコーダ,デコーダともにラベル情報を入力していることです。ラベル情報の入力にはいくつかやり方があります。例えば,デコーダの場合1次元の潜在変数ベクトルに結合する方法や,足し合わせる方法などです。このようにラベル情報を学習に含めることで,学習後,指定したラベルのデータを生成することができるようになります。
オートエンコーダの利用例
最后にオートエンコーダの実际利用例を见ていき。
データ生成
分公司オートエンコーダよう生成モデルを用手て,现处于数量をコントロールて,学校ささせたデータのどれでないデータデータ生データことができことができことができことができことができことができことができ
下面にに示す図,cvaeで生成した1-9のの书道文章画像画像ですです。各行は共のたため,クラスによらずによらずのや丸み,クラスによらずによらずのや丸み,倾きなどが似や丸み丸み生成さています。
クラスタリング·分享
ます。クラスタリングのの分は,ニューラルネットを用作てもよいし,k-means法机械学习手法を用力ても実现可実现です可です。
また,积层オートエンコーダによる事前习を使ったディープニューラルによるによるますのますます示し示し示し示し示し示し示し示し示し示し示し示し示し示し速ます示し示しを层层层层层层ののニューラルネットワークで习ささせさせせせせせ分别し例ではは例。
異常検知
オートエンコーダは異常検知に用いることできます入出入出习すると,正负すると,正文データにれるれるを习します。学习习结果ます。なります。
このオートエンコーダに異常データを入力するとどのような出力となるでしょうか。理想的には,ネットワークは正常データに含まれる特徴をうまく拾い上げ,それらから元のデータを復元するものになっているため,異常データの特徴をうまく抽出することはできません。同様に,出力データにも異常データの特徴は反映されません。したがって,入出力データを比較し,大きな違いがあればその入力は異常データであると言えます。この方法では,入出力の差が大きい箇所も特定できるため,異常個所の特定まで可能です。
下の図,正常なecg波形波形を使っ习したオートエンコーダを使ってをな波形と异常な波形をそれぞれ入ししたたのの出出と比较比较比较比较それぞれな波形は力力比较のそれぞれ波形は力重将ほぼほぼしてのに対して,异常异常な波形はははてがきくきく异ておりできできできできできできできできできできできできできできできできでき
このように教師なし学習によって異常検知を行うことが可能ですが,少数の異常データをラベル付きで学習させるといった半教師あり学習を用いることによって,さらに精度を高めるといったことも可能です。
同様の異常検知を画像に対して実行することも可能です。この場合は,畳み込みオートエンコーダを用います。次の図は,畳み込みオートエンコーダを使って実施した異常検知の一例です。この例では,正常なナットを学習,復元するCAEを構築しました。このCAEに異常を含むナット画像を通すと,図に示す通り,異常個所を特定することができます。なお,この例ではネットワークにSegNetというセマンティックセグメンテーション用来ののをました。
ノイズ除去(デノイジングオートエンコーダ)
デノイジングオートエンコーダの学習では,人為的にノイズを加えたデータを入力として,ノイズ追加前のオリジナルのデータを出力するよう学習します。このような学習を経ると,オートエンコーダはノイズが含まれたデータの中から,オリジナルデータを表す主要な特徴だけを取り出すことができるようになります。この特徴量をデコーダに通すことで,クリーンなデータを復元することができます。
下面のは,十字状のノイズが含また画像に対しての,オートのを使っ使っデノイズ例例例の画像として书架数码文件,ノイズとしてランダムに十字状欠损を与えたを入入として,オリジナル画像をを力する习ししして,十字欠损が习画像てをにデノイズが入っエンコーダ画像を适切デノイズするオートオートエンコーダエンコーダを
MATLABを使用したオートエンコーダ
積層オートエンコーダのような段階的な学習を実装するのは,比較的手間がかかります。马铃薯®のオプション制品である深度学习工具箱™ににオートエンコーダネットワーク生成,それらそれらスタッキング(积层化)などなど机械与关键备份としてとしてとしてとして,素早く,手軽にエンコーダを试すますますます。さらに,matlabは画像のみならず时系列信号のディープラーニングにも使うことができ,LSTMレイヤも关联一つ呼び出す呼び出すことができので,lstmオートエンコーダの构筑も可口。
また,比較的新しいVAEといった方法では,エンコーダとデコーダの間にランダムサンプリングが必要となるなど,より柔軟な処理が必要となります。深度学习工具箱には,カスタマイズ可能な学習ループを回す仕組みがありますので,目的に合ったネットワークや学習手順を構築できます。
MATLABは产业界広く使われてきたと歴史から,最终成果サポートのてい。作用しをネットワークてい。(CUDA GPUコードコード)自動生成那アプリ化までを含む,ワークフロー全体をMATLABがワンストップでカバーします。