こんにちは!テリロジーのY.Tです。
先日、Oracle Big Data Jam Sessionという、ビッグデータ系サーバレス・サービスの技術情報の勉強会に参加
しました。定期的に開催されているのですが、今回のテーマは「次世代AI「GAN」による仮想現実の生成」であり、GANを利用し、OCIのData Science上で画像を生成していくデモが紹介されていました。
勉強会は終了後でもYoutubeでアーカイブが配信されており、いつでも見ることができます。
今回は勉強会のテーマであったGANについて、簡単にご紹介します。
目次
1.GANとは何か
2.GANを使ってできること
3.GANの仕組み
4.GANを使ってみる
1.GANとは何か
「Generative Adversarial Networks(敵対的生成ネットワーク)」の略で、機械学習の1つです。
機械学習は以下のように分類することができ、GANは教師なしの1つの手法になります。

・機械学習(教師あり):正解が分かっているデータをもとに学習し、正解がわかっていないデータを入力し予測する
・機械学習(教師なし):正解を与えずにデータのみ与える。特徴を分析しデータをグループ分けすることで学習する
・強化学習:行動に対しての結果毎に報酬を設定し、学習を強化していく
2.GANを使ってできること
GANを使ってできることの例は以下です。
・実在しないモデルやキャラクターの生成

・画像の変換

・モノクロの絵をカラーに変換

上記の他、勉強会では以下の活用事例も紹介されていました。
・ゲームに登場する物体や背景のシェーディング画像の生成
・CT 画像、MRI画像から骨格画像を生成
3.GANの仕組み
勉強会ではネットワークの計算処理についても詳しく説明されていましたが、ここでは端的にGANの仕組みについて
ご紹介していきます。GANは生成器(生成モデル)と識別器(識別モデル)を敵対させながら交互に学習させていく
方法です。具体的には以下のような仕組みで学習が進みます。
1.生成器がサンプルデータをもとにデータを作成する
2.識別機が本物か偽物か判別する→偽物と判断
3.生成器が本物と判別されるためにデータを作成する
2⇔3を繰り返し、本物と判断
4.識別機が本物と判断する基準を厳しくする
1へ戻り、1⇔4を繰り返していく
4.GANを使ってみる
実際にGANの改良版であるPGGANを使って、以下の手順でオリジナルアニメキャラクターを作ってみました。
1.訓練用の画像データ収集
2.訓練用の画像データサイズを編集
3.PGGANsのソースをGitからクローン
4.PGGANsの設定ファイルを編集(訓練用データの場所の指定など)
5.学習
学習開始から24時間半でだいぶ顔が出来上がってきました。

勉強会ではOCIの機械学習開発環境である「Oracle Cloud Infrastructure Data Science」が利用されていました。Scikit-Learn、TensorFlow、Keras、XGBoostなどの機械学習ライブラリが実装済みの環境で、複数ユーザーで共有することができます。
詳細は以下で紹介されています。
まとめ
今回はOracle Big Data Jam Sessionのテーマをきっかけに、GANについて紹介しました。
定期的に開催されているため、次回以降も受講したいと思います。
最後までお読みいただき、ありがとうございました。🙇