こんにちは!テリロジーのY.Tです。
先日、Oracle Big Data Jam Sessionという、ビッグデータ系サーバレス・サービスの技術情報の勉強会に参加 しました。定期的に開催されているのですが、今回のテーマは「次世代AI「GAN」による仮想現実の生成」であり、GANを利用し、OCIのData Science上で画像を生成していくデモが紹介されていました。
勉強会は終了後でもYoutubeでアーカイブが配信されており、いつでも見ることができます。
今回は勉強会のテーマであったGANについて、簡単にご紹介します。
GANとは何か
「Generative Adversarial Networks(敵対的生成ネットワーク)」の略で、機械学習の1つです。機械学習は以下のように分類することができ、GANは教師なしの1つの手法になります。
- 機械学習(教師あり):正解が分かっているデータをもとに学習し、正解がわかっていないデータを入力し予測する
- 機械学習(教師なし):正解を与えずにデータのみ与える。特徴を分析しデータをグループ分けすることで学習する
- 強化学習:行動に対しての結果毎に報酬を設定し、学習を強化していく
GANを使ってできること
GANを使ってできることの例は以下です。
・実在しないモデルやキャラクターの生成
・画像の変換
・モノクロの絵をカラーに変換
上記の他、勉強会では以下の活用事例も紹介されていました。
・ゲームに登場する物体や背景のシェーディング画像の生成
・CT 画像、MRI画像から骨格画像を生成
GANの仕組み
勉強会ではネットワークの計算処理についても詳しく説明されていましたが、ここでは端的にGANの仕組みについて ご紹介していきます。GANは生成器(生成モデル)と識別器(識別モデル)を敵対させながら交互に学習させていく 方法です。具体的には以下のような仕組みで学習が進みます。
- 生成器がサンプルデータをもとにデータを作成する
- 識別機が本物か偽物か判別する→偽物と判断
- 生成器が本物と判別されるためにデータを作成する
2⇔3を繰り返し、本物と判断 - 識別機が本物と判断する基準を厳しくする
1へ戻り、1⇔4を繰り返していく
GANを使ってみる
実際にGANの改良版であるPGGANを使って、以下の手順でオリジナルアニメキャラクターを作ってみました。
- 訓練用の画像データ収集
- 訓練用の画像データサイズを編集
- PGGANsのソースをGitからクローン
- PGGANsの設定ファイルを編集(訓練用データの場所の指定など)
- 学習
学習開始から24時間半でだいぶ顔が出来上がってきました。
勉強会ではOCIの機械学習開発環境である「Oracle Cloud Infrastructure Data Science」が利用されていました。Scikit-Learn、TensorFlow、Keras、XGBoostなどの機械学習ライブラリが実装済みの環境で、複数ユーザーで共有することができます。
詳細は以下で紹介されています。
「Oracle Cloud Infrastructure Data Science のエッセンスをクイックレビュー」
まとめ
今回はOracle Big Data Jam Sessionのテーマをきっかけに、GANについて紹介しました。
定期的に開催されているため、次回以降も受講したいと思います。
最後までお読みいただき、ありがとうございました。🙇
- カテゴリ:
- OCIサービス紹介
- タグ:
- orajam
- GAN
- Data Science
- 機械学習