人工知性を作りたい

私が日々、挑戦したことや学んだことなどを紹介していく雑記ブログです。 (新しいAI技術HTM, 専門の音声信号処理, 趣味のアニメ等も書いてます。)

【実装 変分オートエンコーダ(VAE)】理解するための調査結果まとめ、勉強・参考サイトの紹介 #生成モデル

 

f:id:hiro-htm877:20200715223422p:plain

 

VAE(Variational Auto Encoder)を理解して使えるようになるために参考にしたサイトをまとめて紹介します。

せっかく時間かけて調べたので誰かの役に立てればと思います。

 

本記事のテーマ

【自作変分オートエンコーダを使った画像生成】

私が実装までに調査した内容のまとめ記事

 

 VAEについて詳しく分かるサイト

一番まとまってるサイト(個人的に)

tips-memo.com

 

 ・その他、参考にしたサイト

qiita.com

 

論文等で出てくる単語や統計知識

■潜在変数

変数間の関係の解釈に影響する変数

潜在変数とは - Minitab

 

■ベイズの定理

ベイズの定理、機械学習をしてると至るところで出てくるが学び直すといつも忘れている。(つまりちゃんと理解していなかった笑)

ただし、ヨビノリさんの動画を見て完璧に理解した!

www.youtube.com

 

■ベイズ統計、最尤推定、MCMCなど

Aicia Solid Projectさん

機械学習、統計、ディープラーニング、AIについてのチャンネルです。

具体例をもちいて説明してくれてるのでスゴく分かりやすいです。

 

www.youtube.com

VAEからは逸れますがベイジアンネットワークとういものが面白かったので紹介しておきます。

ベイジアンネットワーク(英: Bayesian network)は、因果関係を確率により記述するグラフィカルモデルの1つで、複雑な因果関係の推論を有向非巡回グラフ構造により表すとともに、個々の変数の関係を条件つき確率で表す確率推論のモデルである。 ネットワークとは重み付けグラフのこと。(Wikipediaより)

www.youtube.com

  

 ■ガウス積分

積分はヨビノリさん分かりやすかった。

www.youtube.com

 

www.youtube.com

 

■変分下限、KLダイバージェンス

導出過程を説明してくれます。

qiita.com

 

■ イェンセン(Jensen)の不等式

 変分下限の導出の際に、いろんなサイトで(Jensen)の不等式より、で式が変形されるのですが、

このサイトは実際のでデータとグラフを用いて説明してくれるので数学に弱い私でもタイトル通り直感的に理解できました。

qiita.com

 

■ Stochastic gradient variational bayes (SGVB)

ubnt-intrepid.hatenablog.com

 

 紹介したサイトには書かれていない論文に書かれてること

私が重要そうと思った箇所

これまでの課題

論文の日本語訳

1. 難易度:限界尤度pθ(x) = pθ(z)pθ(x|z)dzの積分が難解な場合(だからEMアルゴリズムが使えない)であり、任意の合理的な平均場VBアルゴリズムに必要な積分も難解な場合。これらの難解性は非常に一般的であり、中程度に複雑な尤度関数pθ(x|z)の場合、例えば非線形隠蔽層を持つニューラルネットワークのような場合に現れます。

 

2. 大規模なデータセット:データ量が多すぎて、バッチ最適化にはコストがかかりすぎる。

小さなミニバッチや単一のデータポイントを使用してパラメータの更新を行いたい。サンプリングベースのソリューション(モンテカルロEMなど)では、データポイントごとに高価なサンプリングループが発生するため、一般的には時間がかかりすぎます。

 

その解決策の提案(VAE)

1. パラメータθに対して効率的な近似MLまたはMAP推定を行うことができる.また,隠れたランダム過程を模倣して,実データに似た人工データを生成することもできる.

 

2. パラメータθの選択に対して観測値xが与えられた潜在変数zの効率的な近似事後推論。 これは符号化やデータ表現などの作業に有用である。

 

3. 変数xの効率的な近似余白推論。これにより、xに対する事前の推論が必要なあらゆる推論タスクを実行できる。コンピュータビジョンでの一般的なアプリケーションには、画像のノイズ除去、塗り潰し、超解像などがあります。

上記の問題を解決するために、認識モデルqφ(z|x)を導入してみましょう。

難解な真の事後処理pθ(z|x)への近似である。

 

このqφ(z|x)が本手法で追加している正規分布です

 

2.4 The reparameterization trick

qφ(z|x)に対して、このような微分可能な変換gφ(.)と補助変数ε∼p(ε)を選択することができるのでしょうか?

3つの基本的なアプローチ

1. 扱いやすい逆CDF。この場合、ε∼ U(0, I)を、gφ(ε, x)qφ(z|x)の逆CDFとする。例を示します。指数分布、コーシー分布、ロジスティック分布、レイリー分布、パレート分布、ワイブル分布、レシプロカル分布、ゴンペルツ分布、ガンベル分布、エラング分布。

 

2. ガウス分布の例と同様に,任意の "ロケーション・スケール "分布のファミリーに対して,補助変数εとして標準分布(ロケーション = 0, スケール = 1)を選択し,g(.) = ロケーション + スケール - εとすることができます.ラプラス分布,楕円分布,Student's t分布,ロジスティック分布,一様分布,三角分布,ガウス分布.

 

3. 構成です。ランダム変数を補助変数の異なる変換として表現することがよくあります。例としては、以下のようなものがあります。対数正規分布(正規分布変数の指数化)、ガンマ(指数関数的に分布する変数の和)、ディリクレ(ガンマ変量の加重和)、ベータ、カイ二乗、F分布。

3つのアプローチがすべて失敗した場合,PDFに匹敵する時間的複雑さの計算を必要とする逆CDFへの良好な近似が存在します

※CDF:累積分布関数(commulative distribution function)

逆関数法 · yuki's blog

 

論文中の略語

※i.e. =「すなわち」「言いかえれば」

※e.g. =「例えば」「例をあげると」

w.r.t.= with reference to (...に関して)

s.d. = standard deviation

 

 

私が実装したVAEモデル紹介

機械学習初心者の作成物なので温かい目でご覧いただけるとありがたいです。

 

www.hiro877.com

 

 

www.hiro877.com

 

実装コード(GitHub)

GitHub - hiro877/VAE_Anime-Character-Image