芸大 - 人工知能と創作 2024
人工知能、機械学習、深層学習、生成AIについて Teachable Machineで機械学習体験
本日の講義では、まず前回の課題で取り上げた人工知能(AI)、機械学習(ML)、深層学習(DL)、および生成AI(GenAI)の定義とそれぞれの特徴について解説します。その後、Teachable Machineを使った機械学習の基本的な体験を通じて、実際にモデルを訓練し、画像分類を行う流れを体感してもらいます。特に転移学習の仕組みと少数のデータで高精度な判別が可能となる理由についても触れます。最後に、生成AIの本質であるTransformerモデルに焦点を当て、次回へとつなげます。
本日の内容
- 前回の課題の解説
- 人工知能、機械学習、深層学習、生成AI、それぞれの定義と意味
- GPTとは?
- 機械学習について理解する
- Teachable Machineで機械学習体験!
- 生成AIの本質に迫る: Transformerについて
- ニューラルコンピューティングからGPTへと至る30年の歴史
時事ネタ
今年のノーベル賞で、AI関係の研究者が2部門で受賞
- ノーベル物理学賞
- ジェフリー・ヒントン (Geoffrey Hinton)
- ノーベル化学賞
- デミス・ハサビス (Demis Hassabis)
ジェフリー・ヒントン (Geoffrey Hinton)
現代の人工知能(AI)研究の礎を築いた著名な計算神経科学者・コンピュータ科学者であり、特にディープラーニングの分野において重要な貢献を果たした
- 逆伝播法(バックプロパゲーション)の普及
- 制限ボルツマンマシン(Restricted Boltzmann Machines, RBM)モデルの開発
デミス・ハサビス (Demis Hassabis)
彼は、ディープラーニング技術を応用したAI企業「DeepMind」の共同創設者兼CEOとして知られており、DeepMindの革新的な研究成果
- AlphaGoの開発
- AlphaFoldによるタンパク質構造予測 など
デミス・ハザビス氏のドキュメンタリー映画「The Thinking Game」公開予定!
前回の課題の解説
- 課題1: 4つの用語の定義
- 人工知能 (Artificial Intelligence, AI)
- 機械学習 (Machine Learnig, ML)
- 深層学習 (Deep Learning, DL)
- 生成AI (Generative AI, GenAI)
- 課題2: GPTについて
- GPTとは?
- 「G」「T」「P」の意味
「人工知能」「機械学習」「深層学習」「生成AI」それぞれの定義と意味
映像を視聴
ポイント:
- AI、ML、DL、Gen AIの定義
- 学習について (教師あり学習、教師なし学習)
- 深層学習、ディープニューラルネットワークについて
- 生成AIは深層学習の一部
- 生成モデルと識別モデル
- 大規模言語モデル: PaLM、LaMDAなど
- Transformerモデルの重要性
- Text-to-Text、Text-to-Image、Text-to-Videoなどの様々な生成AIモデル
Teachable Machineで機械学習体験
- Googleの提供するTeachable Machineにアクセス
- 本格的な生成AIについて考えていく前段階として、機械学習の基本を学ぶ
- 教師あり学習 (転移学習) の基本の流れを体験
- 画像読み込み → ラベル付け → 学習 → クラス分け (判別)
- 様々な画像で試しながら実感してみる!
実習 1: Teachable Machineで機械学習
まずは学習を試してみる
- Teachable Machineで新規のImageプロジェクトを作成
- 数種類 (クラス) の画像セットをWebカメラで撮影
- 「Train Model」ボタンで学習開始
- Previewで確認、いまいちな場合は画像の撮影からやり直し
最初は「Image Project」が簡単なのでおすすめです。どのような画像のセットを学習させると面白いか考えながらいろいろ試してみましょう!
学習モデルを書き出す
Teachable Machineでは学習させたモデルを書き出してプログラムで利用することが可能です。様々な開発環境に対応して、サンプルのソースコードの生成まで簡単に行うことが可能です。
対応している環境
- Tensorflow
- Tensorflow Lite
- Tensorflow.js
- p5.js + ml5.js ← 今回はこちらを使用
学習モデルの書き出し手順
- Teachable Machineで新規のImageプロジェクトを作成
- 数種類 (クラス) の画像セットをWebカメラで撮影
- 「Train Model」ボタンで学習開始
- Previewで確認、いまいちな場合は画像の撮影からやり直し
- 問題無ければ「Export Model」ボタンを押す
- Tensorflow.js > Upload (shareable linke) > p5.jsを選択して「Upload my model」ボタンを押す
書き出し設定
学習させたモデルをp5.jsに読み込む
- p5.js Editorにログイン
- p5.jsのサンプルプロジェクトを開く
- ファイルを複製して自分のプロジェクトに
- モデルのURLを自分で学習したものに差し替えてみる
... (前略) ...
// 学習してアップロードしたモデルのURL
// !!ここに自分のモデルのURLを入力!!
let imageModelURL = 'https://teachablemachine.withgoogle.com/models/8dyZwOgL4/';
... (後略)...
実行結果
ポイント! サンプルコードのどこで分類を行っているのかを読み解く
重要なのは、下記の関数
// 現在のビデオフレームを分類する
function classifyVideo() {
classifier.classify(flippedVideo, gotResult);
}
// 結果が得られたとき
function gotResult(results) {
// 結果は信頼度順に配列に格納される
// console.log(results[0]);
label = results[0].label;
}
重要なのは、results[]
配列
- 画像を解析してその確度 (そのクラスである確率) が高い順番に配列に格納されている
- ラベル名 (label) と確度 (confidence) が取得できる
例えば一番確度の高い結果のラベルとその確度を取得するには
let label = result[0].label; //ラベル
let confidence = result[0].confidence; //確度
分類結果のラベル (文字列) と信頼度 (0.0 – 1.0 の値)の一覧を表示
分類結果のラベル (文字列) と信頼度 (0.0 – 1.0 の値)の一覧を表示するサンプル
実行結果
Emoji Cam
ちょっと工夫してみる。表情によって絵文字を表示するカメラのサンプル。この例では、普通の顔 (normal)、笑顔 (smile) 、悲しい顔 (sad) の3種類を学習してみました。
実行結果
なぜ少数の画像で判別できるのか?
- 画像のクラス分け (Image classification)
- 本来であれば膨大な学習データが必要
- 画像 + ラベルのセット
大規模な画像データベースの例: ImageNet
- 物体認識の研究で用いるために設計された大規模な画像データベース
- 2024年10月現在、14,197,122個の画像を学習
転移学習 Transfer Learning
- Teachable Machineが少数の画像で学習できる原理
- あるタスクで学習したモデルを、関連する新しいタスクに適用させる手法
- ゼロからネットワークを学習させるよりも高速で簡単
- 学習にかかる時間を短縮できる
- 学習対象となるサンプルデータの不足を補うことができる
転移学習はどのように動作しているのか
実習: Image Projectで遊んでみる!
- Teachable MachineのImage Projectで遊んでみましょう
- どのような判別をさせてみたら面白いことができそうか?
- 画像を学習させてみる
- イラストを描いて判別させてみる
- ジェスチャーを学習させてみる
..etc.
次回予告 – 生成AIの本質に迫る
GPTとは? GPTに至る歴史
次回はいよいよGPTについて迫っていきます! 事前に予習したい方は以下のビデオを視聴してみてください。
アンケート
講義に参加した方は、本日のアンケートに回答してください。