「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
(Generative Adversarial Network: GAN)
特徴 †
本物データと見分けのつかない贋作データを出力する。
- 教師なし学習で使用される人工知能アルゴリズムの一種
できること †
- データの特徴を抽出して学習し、実在しないデータを生成できる(生成モデル)。
詳細 †
システム †
#ref(): File not found: "GAN.png" at page "敵対的生成ネットワーク(GAN)"
ttps://cvml-expertguide.net/wp-content/uploads/2021/09/GAN_Adversarial-Training.png
Generator(生成器) †
生成側は識別側を欺こうと学習
- 入力にランダムなノイズ・ベクトルzを受け取る。
- ランダムなノイズ・ベクトルzから贋作データを生成する。
- Discriminatorが贋作データを本物データと識別するように学習する。
- 学習が進むにつれどんどん精度の高い贋作データを生成できるようになる。
- 学習が終わるとGeneratorのみでデータ生成タスクを実行できる。
Discriminator(識別器) †
識別側はより正確に識別しようと学習
- 入力が本物データである確率を出力する。
- 本物データの場合1に近い値を返す。
- 贋作データの場合0に近い値を返す。
- データの真贋を正しく識別するように学習する。
- 学習が終わるとデータ生成タスクには不要になる。
損失関数を共有 †
唐突に価値関数 †
「D(x)」は(損失関数ではなく)価値関数中に出てくる正しくラベル付けをする確率で、
それぞれ最適化を目指して理想的な性能を有するようになった場合、「D(x)」は0.5になる。
#ref(): File not found: "1.png" at page "敵対的生成ネットワーク(GAN)"
※ 大本の評価関数のディティールが不明なので説明を見ても意味不明。
DCGAN †
(Deep Convolutional GAN)
- CNNをGANに取り入れることで画像の生成性能を上昇させたモデル。
- 数多くのGANのアーキテクチャにはDCGANが基礎として導入されている(?)。
- 以下、MINSTを使ったDCGAN実装例を用いて説明。
CNNの逆
- 100次元のランダムノイズのベクトルから32x32の画像を生成
- ConvTranspose2d(転置畳み込み)を使用し画像サイズを拡張
実装で要素を統合 †
- 手続
以下を1エポック分、繰り返す。
- ランダムノイズを生成し贋作画像の生成
- 学習データ(本物画像+贋作画像)を作成
- update_discriminator関数呼び出し
- update_generator関数呼び出し
- 平均の損失を算出
- update_discriminator関数
Discriminatorのパラメタ更新を行う。
- 本物データで順伝播、贋作データで順伝播
- 上記2つの損失を合計して逆伝播してパラメタ更新
損失関数の謎 †
- BCELoss(Binary Cross Entropy loss)を用いる。
CGAN †
(Conditional GAN)
#ref(): File not found: "CGAN.png" at page "敵対的生成ネットワーク(GAN)"
https://benrishi-ai.com/pix2pix02/
価値関数 †
下記を除いて同じ。
- D(x)→D(x|y)
- D(G(z))→D(G(z|y))
学習 †
※ 条件ベクトルyは、どんな様式のデータでも良いとなった場合、Discriminatorのケースはどうなる?
ソフトウェア、サービス †
pix2pix †
- CVPR2017で発表された論文で提案されたGANベースのスタイル変換モデル
- 画像とそれを変換した画像を学習して変換を学習する。
- 以下のようなタスクを処理する。
- 線画の着色
- グレースケール画像のRGB画像化
- 航空写真の地図画像化
- DiscriminatorではPatchGANというアイデアが取り込まれている。
- 判定で画像1枚全体を本物・偽物で識別するのではなく画像全体を複数のパッチに分割して
- パッチ単位で本物・偽物を識別し各パッチの真偽値の平均がDiscriminatorの出力とする。
- 輪郭がぴったりペアになっている教師画像を大量に使用
#ref(): File not found: "pix2pix.png" at page "敵対的生成ネットワーク(GAN)"
https://benrishi-ai.com/pix2pix02/
CycleGAN †
- GANベースのスタイル変換モデル
- 教師画像の輪郭(形状・位置)はバラバラで良い。
参考 †
YouTube? †
https://www.youtube.com/playlist?list=PLcd5jOpoEDGBDqiRMS4eqkfBwl28ixRYc