
このコース全体の概要をまとめています。cDCGAN とはどんなものなのか、前半は説明をみて、後半はコーディングで体験していきましょう。
対象となる受講生について解説しています。基本的にディープラーニングや敵対的生成ネットワークを勉強している方を前提に話を進めますが、AI入門者でも楽しめます。
生成モデルにはGANの他にもオートエンコーダーやVAEがあります。このセッションでは、それらを比較しながらの概要をみていきます。
AI入門者の方で、深層学習と聞けば一般的に思い浮かべるのが画像認識です。ここでは、識別モデルと生成モデルの違いを学びます。
生成モデルの元祖と言えるのがオートエンコーダーです。生成モデル初心者の方は、もっとも簡単なこのモデルをみていきましょう。
オートエンコーダーを改良したようなこのモデルは、突然難しい構造となり理解に苦しみます。変分オートエンコーダーと言われるこのモデルは数学未経験者にとっては少し抵抗があるかもしれませんが、図をみながら流していきましょう。
VAEによる潜在変数の学習推移を2次元にマッピングしたものです。徐々に数字別に分類されていく様子が分かります。
このコースの基本となるGANの概要を解説します。GANについての知識がある方には、おさらいとなります。
GANは今後とも、様々な方向へ発展していく可能性をもった生成モデルです。ここでは最低限のGANの歴史をたどりために図(絵)をみながら、コーヒー・ブレイクの気分で、コース後半に待ち構えるコーディングに備えていきましょう。
ここでもう一度GANの再考です。違った切り口で、元祖GANをみていき理解を深めます。
GANの特徴といえば画像生成です。画像のネットワークに強いのが畳み込み処理です。ディープラーニングの真髄をGANに取り入れている様子を簡単にみていきましょう。
無作為に生成される生成モデルに、条件(クラス)をつけて生成させることができます。
畳み込みと条件をを組み合わせたGANです。これがわかればGANの基本はマスターできたと言えます。コース後半に備えて少し慎重に、しかしリラックスして絵本読む感覚で見ていきましょう。
このコースの教材を誰でも簡単に実行させるための環境を Googleドライブ上に用意します。Google アカウントをお持ちでない方は取得しておいてください。
GANの基本を知るために、コーディングは少し長いものになります。全体像を俯瞰的に見て整理しておきましょう。
練習用コードをダウンロードできます。
ハードコーディングが大変だと思われる方は、練習用のコードをダウンロードして、変数やメソッドを穴埋めしてコードを書いていきましょう。コード全体を見て、今どこを作っているのか確認しておくと分かりやすいと思います。
GANを動かすための最低限のライブラリー(便利プログラム)とPyTorchフレームワーク(ニューラルネットワークのための自動計算器)を読み込みます。
機械学習では定番のMNISTと呼ばれる、米国郵便データによる手書き数字画像を読み込みます。その際、訓練用にデータに調整を加えます。
MNISTが正しく読み込まれているか、コードを書いてブラウザ上に表示させてみます。AI入門者にとっては月に足を降ろしたような新鮮な第一歩です。
生成器に与える潜在変数を正規分布の乱数ノイズで作る必要があります。ここではその関数を定義していきましょう。
どの数字を生成したいのか指定するために、ベクトルや行列を用いて条件を作成します。コードは複雑ですが、動画を見れば何をしているのか理解できます。
生成器となるGeneratorクラスを定義していきます。重要なネットワークの半分をここで作ります。(パラメータの定義)
生成器となるGeneratorクラスを定義していきます。重要なネットワークの半分をここで作ります。(生成処理、他)
識別器にあたるDiscriminatorクラスを作成します。(パラメータの定義)
識別器にあたるDiscriminatorクラスを作成します。(推論処理、他)
フレームワークによるパラメータの初期値を変更して学習をより安定させます。
作成したネットワークのクラス(設計図)や、読み込んだライブラリーを実際に使えるようにします。
ネットワークを組み合わせて、学習ループの中身を記述していきます。
ネットワークを組み合わせて、学習ループの中身を記述していきます。
ネットワークを組み合わせて、学習ループの中身を記述していきます。
学習結果をブラウザ上で確認できるように、テストコードを作ります。
作成したテストコードを実行させて、表示させて完了です。
完成コードをダウンロードできます。練習コードが動かない方は、こちらをダウンロードして比較してみてください。
生成モデルの今後を知るうえで重要なポイントを紹介します。特に敵対的生成ネットワーク(GAN)は益々発展していきますので、ここでGANの派生を勉強しておきましょう。当コースではPyTorchというフレームワークで実装していきます。画像認識の次を目指してみたい方、結果を残したい方をはじめ、データサイエンス・AI入門者にもお勧めのコースです。
AI初心者の方にも楽しめるように、ソースコードのひな型を用意し、重要語句を穴埋めしながら講義をすすめていきます。お手元のパソコン上ですぐに動かせる完成ソースコードもダウンロードできます。チャレンジしてみてください。
尚このコースはこれから公開中のCycleGANコースや、StyleGANコース のためのプレコースとして作成しています。CycleGAN、StyleGANを受講したい方はこのコースを受講しておくことをおすすめします。
PythonコードとPyTorchフレームワークで解説していきます。(コードの教材付)