1行定義
DCGANとは、生成器と識別器に畳み込みニューラルネットワークを使い、構造の指針を定めることで、GANによる画像生成の学習を安定させたモデルのことです。
くわしく
DCGAN(Deep Convolutional GAN)は、2015年にAlec Radfordらが発表したGANのモデルです。2014年に登場したGANは、画像を生成できる一方で、学習が不安定になりやすいことが課題でした。DCGANは、畳み込みニューラルネットワーク(CNN)を生成器と識別器の両方に使い、安定して学習できる構造の指針を示しました。
構造の指針
- プーリング層を使わない:識別器ではストライド付きの畳み込みで画像を縮め、生成器では転置畳み込みで画像を広げます。縮め方や広げ方もネットワークに学習させます。
- バッチ正規化:生成器と識別器の両方で使い、学習を安定させます。
- 全結合の隠れ層をなくす:深い構造では、畳み込み層を中心に組み立てます。
- 活性化関数:生成器は出力層だけtanh関数、それ以外の層はReLU関数を使います。識別器はすべての層でLeaky ReLU関数を使います。
わかったこと
DCGANは、寝室の写真を集めたデータセット(LSUN)などで、それまでより自然な画像を生成しました。さらに、生成器に入力する潜在ベクトルの足し引きで、画像の特徴を操作できることを示しました。たとえば「眼鏡をかけた男性」から「眼鏡のない男性」を引き、「眼鏡のない女性」を足すと、「眼鏡をかけた女性」の画像が生成されます。word2vecの単語ベクトルの足し引きと同じような性質です。
また、学習した識別器の特徴を画像分類に転用し、一定の精度が得られることも示しました。ラベルなしのデータから有用な特徴を学べる点でも注目されました。
その後への影響
DCGANの構造は、その後の多くのGANの土台になりました。Pix2PixやCycleGANも、畳み込み層を使った生成器と識別器をもちます。
覚え方
「GANにCNN(Deep Convolutional)を入れて安定させた」と覚えます。
G検定での出題
出題のされ方
GANに畳み込み層を取り入れた点、プーリング層をストライド付きの畳み込みに置き換えるなどの構造の指針、潜在ベクトルの足し引きで画像の特徴を操作できる点が問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| DCGANこのページの用語 | 生成器と識別器に畳み込みニューラルネットワークを使い、構造の指針を定めることで、GANによる画像生成の学習を安定させたモデル |
| GAN | データを作る生成器と、本物か偽物かを見分ける識別器を競わせながら学習し、本物に近いデータを生成できるようにするモデル |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
DCGANの識別器では、プーリング層の代わりにストライド付きの畳み込みを使い、画像を縮める方法もネットワークに学習させる。
答えを見る
答え ◯ 正しい
生成器では逆に、転置畳み込み(論文の表現ではfractional-strided convolution)で画像を広げます。
-
DCGANの構造の指針では、生成器と識別器のどちらも、隠れ層の活性化関数にシグモイド関数を使う。
答えを見る
答え × 誤り
生成器は出力層以外でReLU関数、出力層でtanh関数を使います。識別器はすべての層でLeaky ReLU関数を使います。
-
DCGANの生成器に入力する潜在ベクトルどうしで足し引きをすると、「眼鏡をかけている」のような画像の特徴を、狙って加えたり除いたりできることが示された。
答えを見る
答え ◯ 正しい
単語の分散表現で見られる、ベクトルの足し引きで意味の関係を表せる性質が、画像の潜在空間でも見られることを示しました。