目次
- 概要
- 用語
- 操作説明
概要
AAS(Amazing AI Studio)上で提供されているテンプレートを利用し、データ収集、前処理、学習モデル作成、訓練、検証、推論、データ生成、特徴の可視化方法について理解する
用語
-
MNIST(Modified National Institute of Standards and Technology) とは
画像処理のトレーニングとテストに使用される「手書き数字」の※大規模データベースです。
※大規模データベース:手書き数字画像{トレーニング用:60,000 枚、テスト用:10,000 枚}+対応する画像の正解ラベル(教師データ) -
GAN(Generative Adversarial Nets) とは
教師なし学習で使用される生成モデル(画像などを作れる)の一種。
【コンセプト】贋作者と鑑定士の役を演ずる学習モデル 2 つを競わせる
・贋作者:Generator ・・・鑑定士を騙せるようなデータを生成する(画像を作る)
・鑑定士:Discriminator ・・・贋作者が生成したデータを贋作だと見抜く -
ACGAN (Auxiliary Classifier Generative Adversarial Nets) とは
Discriminatorに補助のクラス分類器を付けることでクラスを指定した画像生成が可能になったGANです。
今回のMNISTを題材とした場合、0~9というクラスそれぞれの数字を指定して画像生成できます。 -
GRAD-CAM(Gradient-weighted Class Activation Mapping) とは
CNN(Convolutional Neural Network)を利用した分類を行った際、「画像のどの部分に注目して分類したのか」を可視化する手法 -
AAS(Amazing AI Studio) とは
機械学習向けのビジュアルエディタと実行環境が一緒になったオンライン版 IDE のようなサイトです。
プログラミングに関してはデータ収集、前処理、訓練、推論、データ生成、特徴の可視化全てをビジュアルブロックを利用しノンコーディングで実現できます。
また、プログラムの実行は利用ブラウザの JavaScript でなされます。機械学習に関しては tensorflow.js を介して GPU 上(CPU 内臓の GPU も可)で実行されるため計算量が少ない分にはタブレッドやスマホでも訓練・推論が実行できます。
https://amazing-ai-studio.com/index_ja/
操作説明
[1/4] MNIST
データ収集、前処理、訓練、推論の流れを確認します
-
作品集のリンクまたは画面上部のGalleriesのリンクを押します
-
ビジュアルエディタを上にスクロールして以下の点を確認します
[2/4] MNIST HANDWRTING RECOGNITION with Grad-CAM
自分で手書きした文字を推論で利用する、学習モデルの保存と読み出し、Grad-CAM利用の流れを確認します
-
[1/4]同様に作品集を開きます
-
『MNIST HANDWRTING RECOGNITION with Grad-CAM』を探して「USE THIS」ボタンを押してちょっと待つ
-
Workflows の一番下に『MNIST HANDWRTING RECOGNITION with Grad-CAM』が増えているのでそれを選択します
-
ビジュアルエディタを上にスクロールして以下の点を確認します
-
尚、PCで利用する場合はテンプレートのままではなく、訓練の対象を増やした方が精度が上がります
- MNIST の取得データを 16,250 件に変更する
- 1イテレーションでピックアップする件数を200件に変更する
-
『RUN BLOCKS』ボタンを押してプログラムを読み込みます
-
『LOAD DATA』から順番にボタンをポチポチ押していきます
-
推論した結果を『Sketch』タブで確認します
-
ブラウザ再起動後など、学習済みモデルを再利用したい場合
[3/4] Simple MNIST GAN
ランダムなベクトルを入力として数字っぽい画像を作成できることを確認します
-
今回は『Workflow』ページ内で『Workflows』ビュー左側の『New』ボタンから『Simple MNIST GAN』のテンプレートを選択する
-
ビジュアルエディタを上にスクロールして以下の点を確認します
-
『RUN BLOCKS』ボタンを押してプログラムを読み込みます
-
『LOAD DATA』、『TRAIN MODEL』と順次押します
-
訓練中の動作
[4/4] ACGAN on the MNIST Dataset
0~9というクラスそれぞれの数字を指定して画像生成できることを確認します
-
『RUN BLOCKS』ボタンを押してプログラムを読み込みます
-
『LOAD DATA』から順番にボタンをポチポチ押していきます
-
[訓練中] 生成される画像がみずらいです
-
最終的にこのような画像の生成が確認できます