マガジンのカバー画像

画像生成 AI

20
画像生成AI関連の記事。随時追加予定。
運営しているクリエイター

記事一覧

変分オートエンコーダ⑩VAEの実装例

前回は、デコーダによる画像生成について解説しました。今回は、VAEの実装例として、MNISTのデータセットから手書き数字の画像の特徴を学び、似たような画像をランダムに生成する実験を行います。 コードの構成は、PyTorchで作るノイズ除去オートエンコーダで使ったものと似ていますが、エンコーダが事後分布を予測したり、使われる損失関数が異なっています。また、パラメータ変換トリックを使って潜在変数の事後分布からサンプリングした値を使うところが特徴的です。 やっていることを突き詰

変分オートエンコーダ⑨デコーダによる画像生成

前回は、変分オートエンコーダ(VAE)のエンコーダが予測した事後分布に対して行うパラメータ変換トリックについて解説しました。今回はデコーダによる画像生成とその訓練について解説します。 VAE のデコーダは、与えられた特徴量をもとに画像を生成・再生します。つまり、潜在変数から画像データの空間へと変換する役割を果たします。 ただし、デコーダを画像生成器として使う場合と、デコーダの訓練を行う場合とで潜在変数の扱い方に違いがあるので、その辺りを中心に解説します。 それでは、さっ

変分オートエンコーダ⑧パラメータ変換トリック

前回は、画像から潜在変数の分布への変換の流れを解説しました。エンコーダが潜在変数の事後分布を予測し、その確率分布からサンプルした潜在変数の値をデコーダに渡すことで画像の生成・再生が可能となります。 しかし、サンプルとして得た$${\boldsymbol{z}}$$値そのままでは、誤差逆伝播を行うことができません。そこで今回は、変分オートエンコーダ(VAE)の訓練には欠かせない仕組みであるパラメータ変換トリック(再パラメータ化トリック、Reparameterization T

変分オートエンコーダ⑦画像から潜在変数分布

前回は、変分オートエンコーダ(VAE)における変分下限(ELBO)の役割と仕組みについて解説しました。 今回は、エンコーダを中心に画像から潜在変数の分布への変換の流れを見ていきます。これまで抽象的に扱ってきた確率分布の数式をより具体的な分布の式に置き換え、KLダイバージェンスを計算します。 それでは、さっそく始めましょう。

変分オートエンコーダ⑥変分下限 ELBO

前回は、ベイズの定理と変分推論について解説しました。今回は、変分オートエンコーダ(VAE)において非常に重要な変分下限(Evidence Lower Bound、ELBO)について解説します。 これまでの話を簡単にまとめると、VAEのエンコーダは入力画像の特徴量(潜在変数)の分布を学習し、デコーダは潜在変数の分布からサンプルされた値を入力として画像を生成します。しかし、問題なのはそのような学習をどのように実践するかです。なぜなら、「扱いにくい事後分布」は簡単には推定できない

変分オートエンコーダ⑤ベイズの定理と変分推論

前回は、連続潜在変数とエンコーダ・デコーダについて解説しました。変分オートエンコーダの論文の図1の各変数の意味や2つのDAGの存在などを理解しました。 今回は、変分オートエンコーダにおける確率変数の関係をさらに分析します。まずは、ベイズ定理の説明をします。そして、ベイズ定理を推論へと応用するベイズ推論の解説をします。最後に、変分推論の意味を解説することでVAEがどのように連続潜在変数のモデルを構築するのかを理解します。 では、さっそく始めましょう。

変分オートエンコーダ④連続潜在変数とは

前回は、有向確率モデルについて解説しました。 今回は、変分オートエンコーダ(以下、VAE)の有効確率モデルで扱う連続潜在変数(Continuous Latent Variables)について解説します。また、VAEがエンコーダ・デコーダを使ってどのように連続潜在変数を抽出し画像生成に役立てるのかについての大枠も説明します。 なおVAEのエンコーダ・デコーダの構造は、以前の記事で扱ったノイズ除去オートエンコーダにも似ています。ただし、ノイズ除去のオートエンコーダでは、画像を

転置畳み込み(Transposed Convolution)とは

本記事では、畳み込み(Convolution)は知っているけど、転置畳み込み(Transposed Convolution)は知らないという方のための解説をします。 画像生成と画像拡大ニューラル ネットワークを使用して画像を生成するには、通常、低解像度から高解像度への画像の拡大(Upsampling、アップサンプリング)が必要になります。 アップサンプリング操作を実行するにはさまざまな方法があります。 最近傍補間(Nearest neighbor interpolati

変分オートエンコーダ③有向確率モデルとは

前回は、変分オートエンコーダ(以下、VAE)の論文が投げかけた大きな疑問について紹介しました。今回からは、その大きな疑問を解く鍵となるVAEの仕組みをひとつずつひもといて解説していきます。 VAEは有向確率モデルであることが前回の記事で紹介されました。今回の記事では、まず基礎知識として有向非巡回グラフ(DAG)を紹介します。その後に、そもそも有向確率モデルとは何者なのかについて解説します。これらの概念は、VAEの動作原理や潜在変数の理解において重要な役割を果たします。 で

変分オートエンコーダ②大きな疑問

前回は、変分オートエンコーダ(以下、VAE)の簡単な紹介とそれを理解する意義について解説しました。今回は、VAEが解決しようとしているそもそもの問題について解説します。 VAEの論文は次の大きな疑問を投げかけるところから始まります。 この論文はこの大きな疑問に対する解決策を提供するのですが、問題自体を理解するのに、太字で示した言葉を知っている必要があります。それぞれの言葉の意味はこのシリーズの中で解説していきます。 大まかな意味としては、「十分なデータセットがあるとして

変分オートエンコーダ①紹介編

VAE(Variational AutoEncoder)は、2013年の論文「Auto-Encoding Variational Bayes」(変分ベイズ自動エンコーディング)の中で発表されたデータ生成の手法を使ったモデルの名前です。 オランダにあるアムステルダム大学のDiederik P KingmaとMax Wellingは、彼らの手法をAEVB(Auto-Encoding Variational Bayes)と呼んでおり、そのまま論文のタイトルにもなっています。 A

Stable Diffusion 2をGoogle Colabでやってみた

Stable Diffusion 2はTwitterでよく話題になっているAIモデルです。多くの人がうまく生成できた面白い画像をツイートしまくっています。 stability.aiによって開発された画像生成モデルになります。Google Brain東京のリサーチサイエンティストだったDavid Ha(Twitterのハンドルネーム@hardmaru)が最近移籍した先の会社でもあります。 今回は色々な画像を生成してみました。

Stable Diffusion 2をmacOSのCoreMLでやってみた

前回紹介した「文章から画像を生成するStable Diffusion 2」ですが、つい先日、Appleシリコン上のCore MLによる使用が可能となりました。Core MLはAppleの提供するライブラリで機械学習モデルをmacOSやiOSなどで走らせることができます。 これでNVIDIAのGPUがなくとも、AppleシリコンのマシンでStable Diffusion 2を使えるようになったわけです。 ただし結論から言うと、NVIDIAのGPUを使う方がずっと速いです。よ

AIアートは泥棒の仕業か

「優れた芸術家は模倣し、偉大な芸術家は盗む」と言ったのは芸術家のピカソでした。アップルのスティーブ・ジョブスも引用した言葉です。ここで言う「盗む」とは単なるコピーではなく自分の内面に組み入れてモノにするといった意味があると思います。 しかし、AIがアート作品を訓練で使う場合、それはデータをコピーするのとどれほど違うのか。スタイルをマネするのは単なる模倣ではないか。こういうアーティストの声が上がっても不思議ではありません。 そのような危惧が影響したようで、入力文章から画像を