-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_Autoencoder
- 戻る(ニューラルネットワーク、画像処理とコンピュータビジョン(AI))
- 一般的なフツーのニューラルネットワーク
- 順伝播型ニューラルネットワーク(FNN)(ニューラルネットワークの該当節を参照)
- ディープニューラルネットワーク(DNN)(ニューラルネットワークの該当節を参照)
- 畳み込みニューラルネットワーク(CNN)
- 再帰型ニューラルネットワーク(RNN)
- 生成モデル(機械学習の理論の該当節を参照)系の
ニューラルネットワーク- 自己符号化器(AE:オートエンコーダ)
- テキスト生成系(Transformer系)
- 敵対的生成ネットワーク(GAN)
- 拡散モデル(Diffusion Model)
- 一般的なフツーのニューラルネットワーク
自己符号化器(AE:オートエンコーダ)、自己識別機とも呼ばれる。
- 入力データを低次元の潜在表現にエンコードし、
その後デコードして元のデータを再構築するためのモデル - データの次元削減や特徴抽出などのタスクに使用される。
- 入力データの再構築誤差を最小化することで訓練される。
- (余談だがVAEと違って、確率的生成モデルではない。)
-
元々、(入出力兼務の)可視層と隠れ層の2層のニューラルネットワーク、
展開すれば、3層のニューラルネットワークで、 -
勾配消失問題を事前学習とファイン・チューニング
(いずれも 深層学習のテクニックの該当節を参照)に
よって解決しニューラルネットワーク発展の礎となった。 -
AEのポイントは、可視層より隠れ層の次元(数)を少なくしてある(情報の圧縮)。
-
このAEを積み重ね、ディープAE、正確には、積層AEを作成(ジェフリー・ヒントン)。
層の積み重ねは、事前学習とファイン・チューニングによって達成される。-
はじめに事前学習を行い層を積み重ねていく。
-
最上部に層を足し、教師あり学習にする(?)
- ロジスティク回帰層
- 回帰問題の場合、線形回帰層
-
最後の仕上げにファイン・チューニング(全体で再学習)する。
-
-
教師なし学習
- エンコーダーで主成分分析と同じ次元削減を行う。
- 中間層の次元削減されたデータを潜在変数と呼ぶ。
- デコーダーで入力データと一致するデータを出力する。
- (データ作成の観点では)教師なしだが(、学習の観点では)、
入力データを用いた教師あり学習。 - 出力データと入力データの誤差を再構成誤差(Reconstruct Error)と呼ぶ。
-
モデルの構造
入力層、中間層、出力層の3層のAEの場合、
y = f2(W2 f1(W1x + b1) + b2)
- 入力層より中間層の方が小さいAEを不完備(undercomplete)なAEと呼ぶ。
- 出力層の活性化関数f2は恒等関数(別に分類問題ではないので)
- 入出力が一致するように各エッジの重みを調整
- 出力と入力に対して誤差を算出し、その差が小さくなるように誤差逆伝播法
(深層学習の誤差逆伝播法)を用い重みを学習する。
隠れ層の次元を小さくして情報量を小さくした特徴表現を獲得する。
(入力の情報が圧縮される。→ 学習の結果、重みとして要約される。)
-
入力したデータをEncoderで潜在空間上の特徴量(潜在変数z)に
圧縮(次元削減・特徴抽出)し、 -
潜在空間上の特徴量(潜在変数z)からDecoderで復元(再び戻して出力)する。
-
潜在空間:何かしらの分布を仮定した潜在空間を学習
※ EncoderもDecoderもニューラルネットワーク
移行メモ(正誤): 元ページの「入力の情報を圧縮される。」は
「入力の情報が圧縮される。」の誤記と判断し修正した。
様々な種類があるもよう。
様々な用途で利用されている。
言語処理(AI)の該当節を参照。
人工知能(AI):ロボティクスの該当節を参照。
AIの活用例の該当節を参照。
AIの活用例の該当節を参照。
変分AE(VAE:Variational Autoencoder)
-
画像生成、音声生成、異常検知などのタスクではAEを土台とした
変分オートエンコーダ(VAE)を使う。-
AEと異なり、確率的生成モデルの一種で、データの潜在表現を学習し、
その表現から新しいデータを生成する。 -
入力データが何らかの分布(一般的には多変量正規分布や正規分布)に
基づいて生成されていると仮定している。 -
データを低次元の潜在空間にエンコードし、その後デコードして
元のデータを再構築する。 -
生成される画像は鮮明ではなく、ぼやけた画像になる。
-
移行メモ(正誤): 元ページの「VEと異なり」は「AEと異なり」の
誤記と判断し修正した。
-
Encoder・Decoder
-
学習
損失関数(「再構築誤差」と「潜在表現の分布」)を最小化する。-
損失関数
- 一般的にKLダイバージェンス(Encoderによる誤差)や
再構築誤差(Decoderによる誤差)の展開式を損失関数として使用する。 - これらの損失関数は、再構築誤差を最小化し、
同時に潜在表現の分布が事前に定義した正規分布に近づくように学習する。
- 一般的にKLダイバージェンス(Encoderによる誤差)や
-
以下のように学習
- 入力をエンコードした潜在変数をサンプリングしたzをデコードした
出力が近くなるよう。 - エンコードの分布が平均 0、標準偏差 Iのガウス分布に近くなるよう。
- 入力をエンコードした潜在変数をサンプリングしたzをデコードした
-
潜在変数のサンプリング処理が入るため誤差逆伝播を行うことが困難となる。
- これをReparameterization Trick(再パラメタ化トリック)で解決。
- Encoderによってサンプリングに利用する変数μ,σを出力
- 新たにサンプリング変数εを導入し潜在変数zを
「z=μ+εσ (ε~N(0, I))」のように再定義 - ネットワーク全体が微分可能になり、
確率的な変数の勾配を正確に計算できるようになる。
-
-
「D KL(N(μ,σ)∣N(0,I))」を正則化項として加えると集合の中心は原点付近となる。
- KLダイバージェンスは事前分布と事後分布の情報量の差を表す。
- D KL(事前分布|事後分布)
- 事前分布:平均 μ、標準偏差 σ
- 事後分布:平均 0、標準偏差 I
-
潜在空間上の特徴量、潜在変数z
- 潜在変数zにガウス分布を仮定し、
潜在変数zを(ガウス分布と言う)構造に押し込むことが出来る。 - 潜在変数zは入力x1, x2を、異なる潜在変数の領域に正規分布に沿ってマッピング。
- 潜在変数zが連続的な分布(正規分布)になっているので
調整することで連続的に生成データが変化する。
- 潜在変数zにガウス分布を仮定し、
-
層
-
Encoder
- μ,σ^2 = encoder(x)
-
中間層
- z~N(μ, σ^2)
- ノイズ : ϵ~N(0, I)
- z = μ+σϵ
-
Decoder
- X=decoder(z)
-
移行メモ(正誤): 元ページの「構造の押し込む」は「構造に押し込む」の
誤記と判断し修正した。
x をより良く表現する p(X) のパラメタを学習するには、
周辺尤度 logp(X) の最大化を考える。
| 記号 | 説明 |
|---|---|
| X | 再構成されるデータ |
| p(X) | 再構成されるデータの確率分布 |
| z | 潜在変数z |
| p(z) | 潜在変数zの確率分布 |
| p(X|z) | 潜在変数zが与えられた時のxの確率分布(Decoder) |
| q(z|X) | データXが与えられた時のzの確率分布(Encoder) |
(元ページに記載なし)
-
深層学習についてのレポート(画像系、CNN画像認識以外)
https://www.osscons.jp/joy1y64w3-537/#_537 -
YouTube
- AI教室 AIRS-Lab(深層学習(deep learning)の該当節を参照)
- AIによる画像生成を学ぼう! 【VAE、GAN】
https://www.youtube.com/playlist?list=PLcd5jOpoEDGBDqiRMS4eqkfBwl28ixRYc
- AIによる画像生成を学ぼう! 【VAE、GAN】
- AI教室 AIRS-Lab(深層学習(deep learning)の該当節を参照)
Tags: 移行, 深層学習, オートエンコーダ, VAE, 生成モデル, 開発基盤
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。