①識別モデルと生成モデル
識別モデルと生成モデルは、機械学習の分野で使われる二つの異なるタイプのモデルです。
識別モデル
識別モデルは、与えられた観測データから目的変数(ラベル)を予測するようなやつですね。たとえば、写真を入力すると猫なのか犬なのかを判断するようなモデルは識別モデルです。
生成モデル
生成モデルは、新しいデータを生成するやつっすね。たとえば音楽の作曲をするようなモデルってのは生成モデルですね。
「あるデータセットから学習して、そのデータセットが持つ統計的特性やパターンを理解して、その学習を基に、まったく新しいデータポイントを生成する」みたいなことをやってるらしい。
②オートエンコーダ
VAE(変分オートエンコーダ)
VAEは、ディープラーニングを用いた生成モデルの1つ。 通常のオートエンコーダは同一の入力に対して毎度同一の潜在変数を獲得するのに対して、VAEの場合は入力に対して確率的に潜在変数が決まる。その変数をデコーダに入れるので、入力画像と似てるけど微妙に違う画像が得られる。
◆VAEの流れ
-
エンコーダが入力画像を取り込み、その画像が生成されたと推定される潜在空間の確率分布のパラメーターである平均(μ)と分散(σ)を出力する。
-
次に、この分布からサンプリングを行い、ランダムな潜在変数zを生成する。
-
デコーダがこの潜在変数zを取り込み、元の入力データに似た新しいデータを生成する。
VQ-VAE
VQ-VAEは、VAEの進化版。従来のVAEは潜在変数を連続的な正規分布として扱うが、VQ-VAEでは潜在変数を離散化し、より高品質なデータを生成できる。
エンコーダ・量子化部分・デコーダから成るモデルで、エンコーダとデコーダは畳み込み層を用いている。
③GAN
GAN
GANは、生成器 (Generator) と識別器 (Discriminator) という二つのニューラルネットワークを競わせて学習させるモデルです。
GANは、乱数を生成器に入力して偽物のデータを作り、識別器に本物か偽物かを判定させることで、生成器と識別器を同時に学習させる。生成器は識別器を騙すように、識別器は正しく判定するように、それぞれが最適化される。
学習のステップ
①Generatorのパラメータを固定した状態でDiscriminatorを学習する。
②Discriminatorのパラメータを固定した状態でGeneratorを学習する。
①と②のステップを交互に繰り返すことで、GeneratorとDiscriminatorの性能が徐々に向上していく。
Discriminator
Discriminatorは、入力データが本物であれば1を、偽物であれば0を出力するような2値分類を学習する。
Generator
Generatorは、入力されたノイズベクトルzから、本物のデータxの確率分布に近い偽データG(z)を生成できるように学習する。
GANの損失関数
DCGAN
DCGANは、生成器と識別器にCNNを用いて品質UPさせたモデルのこと。
生成器は転置畳み込み層を使って乱数を画像にアップサンプリングし、識別器は畳み込み層を使って画像から特徴量を抽出する。
特徴
・生成器と識別器にCNNを導入して品質UP。
・生成ネットワークと識別ネットワークの両方にバッチ正規化を導入し、学習の安定性UP
・生成ネットワークでは活性化関数にReLUを使用し、出力層のみTanhを使用。
・識別ネットワークでは活性化関数にLeakyReLUを全層に渡って使用。
イメージ図
https://arxiv.org/pdf/1511.06434.pdf
Conditional GAN
Conditional GANは、生成器と識別器に条件を考慮できるようにしたモデルです。条件はラベルやテキストなどのデータで、生成器は条件に沿ったデータを生成し、識別器はデータと条件が一致しているかを判定します。Conditional GANは、どのようなデータを生成するかを制御できるようになります。
(「猫の画像を生成する」とか「犬の画像を生成する」とか選べるようになった。)
参考文献