「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
自己符号化器(AE:オートエンコーダ)、自己識別機とも呼ばれる。
歴史 †
- AEのポイントは、可視層より隠れ層の次元(数)を少なくしてある(情報の圧縮)。
- このAEを積み重ね、ディープAE、正確には、積層AEを作成(ジェフリー・ヒントン)。
層の積み重ねは、事前学習とファイン・チューニングによって達成される。
- はじめに事前学習を行い層を積み重ねていく。
- 最上部に層を足し、教師あり学習にする(?)
特徴 †
教師あり、なし †
- 入力データと一致するデータを出力することを目的とする教師なし学習
- データとしては教師なしだが(、学習としては)、入力データを用いた教師あり学習。
入出力を一致させる。 †
- 入出力が一致するように各エッジの重みを調整
- 出力と入力に対して誤差を算出し、その差が小さくなるように誤差逆伝播法を用い重みを学習する。
特徴表現の獲得 †
隠れ層の次元を小さくして情報量を小さくした特徴表現を獲得する。
(入力の情報を圧縮される。→ 学習の結果、重みとして要約される。)
- 入力したデータをエンコーダで潜在変数に圧縮(次元削減・特徴抽出)し、
- 潜在変数からデコーダで復元(再び戻して出力)する。
- エンコーダもデコーダもニューラルネットワーク
種類 †
様々な種類があるもよう。
できること †
様々な用途で利用されている。
詳細 †
変分オートエンコーダ(VAE) †
- 画像生成では変分オートエンコーダ(VAE)を使う。
- AEを活用、学習データが何らかの分布に基づいて生成されていると仮定
- エンコーダ:入力を潜在空間上の特徴量で表す
- デコーダ:潜在空間から元の次元に戻す
- 潜在空間:何かしらの分布を仮定した潜在空間を学習
エンコーダとデコーダの仕組み †
- エンコーダ
- 入力データが多次元ガウス分布として符号化され、その分布から潜在変数をサンプリング。
- つまり、多次元ガウス分布を記述する平均 μ と分散 σ^2 を返すようにエンコーダを学習。
- デコーダ
- サンプリングされた潜在変数から、元々の入力データを再構成したものを出力。
潜在変数z †
- z~N(μ, σ^2)
- ノイズ ϵ~N(0, I)
- z = μ+σϵ
KLダイバージェンス(正規化項) †
損失関数 †
復元誤差とKLダイバージェンスの展開式を損失関数として利用することでVAEを最適化出来る
最適化 †
x をより良く表現する p(X) のパラメータを学習するには、周辺尤度 logp(X) の最大化を考える。
記号 | 説明 |
X | 再構成されるデータ |
p(X) | 再構成されるデータの確率分布 |
z | 潜在変数 |
p(z) | 潜在変数の確率分布 |
p(X|z) | 潜在変数zが与えられた時のxの確率分布(デンコーダ) |
q(z|X) | データXが与えられた時のzの確率分布(エンコーダ) |
復元誤差 †
デコーダによる誤差
KLダイバージェンス †
エンコーダによる誤差
損失関数 †
復元誤差とKLダイバージェンスの展開式を損失関数として利用することでVAEを最適化出来る
参考 †