ae-3. ディープラーニングの基礎

711 Views

January 29, 23

スライド概要

トピックス:ディープラーニングの仕組み, ディープラーニングの歴史, ディープニューラルネットワークの種類, 画像データ, ディープラーニングのモデル, 学習済みモデル, ディープラーニング, 人工知能

ディープラーニング(スライドとプログラム例,Python を使用)(全15回)
https://www.kkaneko.jp/ai/ae/index.html

金子邦彦研究室ホームページ
https://www.kkaneko.jp/index.html

profile-image

金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

3. ディープラーニングの基礎 (ディープラーニング,Python を使用) (全15回) https://www.kkaneko.jp/cc/ae/index.html 金子邦彦 1

2.

アウトライン 番号 項目 3-1 3-2 3-3 復習 ディープラーニングの概要 ディープラーニングの仕組み ディープラーニングの歴史,ディープニューラル ネットワークの種類 3-4 画像データ 3-5 ディープラーニングのモデル,学習済みモデル 3-6 Python の関数 各自、資料を読み返したり、課題に取り組んだりも行う 2

3.

機械学習 • 学習による上達の能力 • 訓練データを使用して,学習を行う 3

4.

機械学習が目標とする作業 ルール化,プログラム化が難しい作業 • 直感 • 主観 • 経験 → 人間にたやすい しかし,プログラム化は困難 4

5.

① 一般のプログラミング データ (入力) ・プログラムは人間が作成し, テストし,調整する. プログラム 処理結果 コンピュータ ② 機械学習での予測 ・学習による上達の能力 データ (入力) プログラム 訓練データ コンピュータ 予測結果 5

6.

機械学習での汎化 訓練データ 入力 9 11 12 14 正解 500 500 1000 1000 汎化により,未知のデータ についても予測ができるよ うになる 訓練データの汎化 入力 7 8 9 10 11 12 13 14 15 16 予測結果 500 500 500 500 500 1000 1000 1000 1000 1000 • 汎化は100%成功するわけでない. • 訓練データとは別のデータ(検証データ)を 用いて検証する 6

7.

「汎化は,プログラミングを補うもの」と 考えられるようにも • ふつうのプログラミング: あらゆる事態を想定して,プログラムを作成 • 汎化: 未知のデータについても処理できる 7

8.

ニューラルネットワークの原理 ニューラルネットワークのユニットは,数理により 動く ① 入力は複数 ② 入力を重みづけし合計をとる ③ その合計から出力値を得る 0.3 × 0.1 -0.5 × 0.8 ⇒ 0.03 ⇒ -0.4 0.2 × -0.5 ⇒ -0.1 合計 -0.47 合計に 応じた出力値 0.3846 8

9.

3-1. ディープラーニングの概要 9

10.

ディープニューラルネットワーク • ディープニューラルネットワークは, 層が深い(層の数が多い)ニューラルネットワーク 層の数が少ない(浅い) 層の数が多い(深い) 10

11.

ディープニューラルネットワーク • 層が浅い(層の数が少ない)ニューラルネットワー クを組み合わせることもある ニ3 ュ層 ーの ラ ル ネ ッ ト ワ ー ク ニ3 ュ層 ーの ラ ル ネ ッ ト ワ ー ク ニ2 ュ層 ーの ラ ル ネ ッ ト ワ ー ク 合計で8層 (さまざまな組み合わせが ありえる) 11

12.

ディープラーニング(深層学習) • ディープニューラルネットワークによる学習 層の数が少ない(浅い) 層の数が多い(深い) 12

13.

機械学習へのさまざまなアプローチ ニューラル ネットワーク • ディープラーニング • 層の浅い(層の数が少ない) ニューラルネットワークの利用 それ以外 • 決定木 • 線形回帰 • クラスタリング など多数 ディープラーニングは,他を性能・機能で上回る場合 があるが,ディープラーニングだけで済むというわけ 13 ではない

14.

ディープラーニングへの期待 • 難問にチャレンジ ディープラーニング以外の方法では難しい問題 にチャレンジ 14

15.

ディープラーニングへの期待 さまざまなレベルのパターン 線や点のレベル 目,鼻,耳のレベル 顔の構造のレベル MIT Introduction to Deep Learning | 6.S191, https://www.youtube.com/watch?v=5tvmMX8r_OM の「Why Deep Learning」のページ 15

16.

ディープラーニングへの期待 「ディープニューラルネットワークの利用により, さまざまなレベルのパターンを抽出・認識できるようにな る」という考える場合も 「より出力に近い層では, より高次のパターンを 認識したい」という 考え方も 16

17.

3-2. ディープラーニングの仕組み 17

18.

ニューラルネットワーク • 機械学習の能力を持つ. • コンピュータで動作. • ユニットがつながり,ニューラルネットネット ワークを構成. ユニット ユニット ユニット ユニット間 ユニット間 の結合 の結合 入力データ 出力データ 18

19.

ニューラルネットワークの仕組み • 前の層から結果を受けとって,次の層へ結果を 渡す 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 入力層 〇 はニューロン,線は結合 〇 〇 〇 〇 〇 (他の結合は書 〇 〇 いていない) 〇 (他の結合は書 〇 〇 〇 いていない) 〇 〇 〇 全結合のときは, 〇 〇 〇 次層の全ニュー 全結合のときは, 〇 〇 ロンと結合する 次層の全ニュー 〇 〇 ロンと結合する 〇 〇 〇 〇 〇 出力層 中間層 19

20.

ニューラルネットワークのユニット ニューラルネットワークのユニットは,数理により 動く ① 入力は複数 ② 入力を重みづけし合計をとる ③ その合計から出力値を得る ・合計に,バイアスという値を 1 2 3 4 5 6 7 8 9 入力 1 2 3 4 5 6 7 8 9 1 1 1 0 1 1 0 0 1 白黒の画像 (画素は 0 または 1) 足し引きしたあと,活性化関数 が適用され出力値が得られる. ・活性化関数はさまざまな種類 重み w1 ~ w9 w1 w2 w3 w4 w5 w6 w7 w8 w9 合計 シグモイド ユニット 0.9 0.8 0.7 合計は, 0.6 1 × w1 + 1 × w2 + 1 × w3 + 0 × w4 + 1 × w5 + 1 × w6 + 0 × w7 + 0 × w8 + 1 × w9 0.3 ReLU (2011年発表) 0.5 0.4 0.2 0.1 0 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 20

21.

1 2 活性化関数 重み 1, 1 0, 1 1, 0 1 1 1 2.0 ReLU 1.0 0 0 ユニット -2.0 -1.0 0.0 1.0 -1重み 2.0 1.0 0 0 2 0, 0 入力 1 正解 2.0 -2.0 -1.0 0.0 1.0 2.0 重み ReLU + バイアス (バイアス は -1) 1 1 2.0 訓練データ ユニット 1.0 0 -2.0 -1.0 0.0 1.0 2.0 ReLU + バイアス (バイアス は +1) 21

22.

それぞれのユニットが「特定のパターンを識別して いる」と考えることもできる 1 2 1, 1 0, 1 1, 0 1 0 0 1 1 2.0 ReLU 1.0 0 ユニットが 識別する パターン -2.0 -1.0 0.0 -1 1 2.0 2.0 1.0 0 2 0, 0 1.0 1 1 ユニットが 識別する パターン -2.0 -1.0 0.0 1.0 2.0 ユニットが 識別する パターン ReLU + バイアス (バイアス は -1) 2.0 1.0 0 -2.0 -1.0 0.0 1.0 2.0 ReLU + バイアス (バイアス は +1) 22

23.

学習では,結合の重みとバイアスの調整により,訓練 データのパターンをより正確に認識できるようになる 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 1 1 0 1 1 0 0 1 重み 1 1 1 0 1 1 0 0 1 合計 ユニット 高い活性度 23

24.

ニューラルネットワークでの教師あり学習 入力 結果 0.8 正解 1 結果 0.4 正解 0 誤差 誤差が少なくなるように, 結合の重みとバイアスを調整 =ニューラルネットワークの学習 24

25.

バックプロパゲーション 1層目の重み 2層目の重み 3層目の重み ① まず,3層目の重みを調整して,誤差を最小化 ② ①の次に,2層目の重みを調整して,誤差を最小化 ③ ②の次に,1層目の重みを調整して,誤差を最小化 重みの変化のみで学習を行う (学習の途中で,ユニットの種類や数が変化するわけではない) 25

26.

ニューラルネットワークの教師あり学習 • 訓練データ(学習のためのデータ)を使用 • 学習は自動で行われる ① 訓練データにより,ニューラルネットから結果を出し, 正解との誤差を得る ② ユニット間の結合の重みの調整により、誤差を減らす 26

27.

3-3. ディープラーニングの歴史, ディープニューラルネットワー クの種類 27

28.

2011年までの常識 機械学習の難問:組み合わせが多すぎる場合 それほど 難しくない問題 難しい問題 … 2マスのパターン (4通り) 3マスのパターン (8通り) 100マスのパターン 1267650600228229401496703205376 通り (およそ1兆の1兆の126万倍) 組み合わせが多い 28

29.

2011年までの常識 機械学習の難問:組み合わせが多すぎる場合 • カラー画像: サイズ 32×32 の場合 → 画素数: 32 × 32 × 3,階調 256 約 12000 … 000 通り 7397個の 0 • ステレオ音声: 10秒間,サンプリング周波数 44100Hz の場合 → 10 × 44100,階調 256 約 1000 … 000 通り 1062033個の 0 29

30.

組み合わせが大きいと何が問題なのか? • 計算時間 (実はそれほど大問題ではない) • 汎化に失敗し,過学習が発生 30

31.

機械学習での汎化 訓練データ 入力 9 11 12 14 正解 500 500 1000 1000 汎化により,未知のデータ についても予測ができるよ うになる 訓練データの汎化 入力 7 8 9 10 11 12 13 14 15 16 予測結果 500 500 500 500 500 1000 1000 1000 1000 1000 • 汎化は100%成功するわけでない. • 訓練データとは別のデータ(検証データ)を 用いて検証する 31

32.

過学習 学習曲線 学習の繰り返しによる分類の精度(accuracy)の変化 精度 良い 訓練データ 精度 良い 訓練データ 検証データ 悪い 悪い 学習の 繰り返し回数 過学習なし 検証データ 学習の 繰り返し回数 過学習あり 32

33.

2011年までの常識 このページは、私の個人的な見解です • 汎化の失敗,過学習が難問であり, 「ニューラルネットワークは面白いが,実用性は?」 と考えられる場合も • ニューラルネットワークでは,ユニットの数が少な いほど,汎化が成功する傾向がある • そうなると,ニューラルネットワークの層の数を増 やすことは,想定外とも 33

34.

2012年の進展 • 従来からある技術と,新技術の組み合わせ 【新技術の例】 • 非線形性の正規化 (rectified nonlinearity), 2009年 • 活性化関数の ReLU, 2011年 • ドロップアウト さらなる進展: He の初期化, 2015年 など • 巨大な訓練データの利用,高速に学修を行う技術 → 過学習を抑止しながら, ディープラーニングが役に立つ場合がある ことの発見 34

35.

将来のコンピュータの進展 年 コンピュータで扱 えるユニット数の 規模 神経細胞の数(推定値) • カタツムリ 11,000 2010年 100,000個 • ロブスター 100,000 2020年 2,000,000個 • アリ 250,000 2030年 50,000,000個 2040年 1,000,000,000個 • カエル 16,000,000 2050年 20,000,000,000個 所説あります 2055年ごろには、数は人間を上回る • ハツカネズミ 71,000,000 • タコ 500,000,000 • ネコ 760,000,000 • ヒト 86,000,000,000 • アフリカゾウ 257,000,000,000 「数があればよい」 というわけではあり ません Wikipeida の記事: https://ja.wikipedia.org /wiki/%E5%8B%95%E7%89%A9%E3%81%AE% E3%83%8B%E3%83%A5%E3%83%BC%E3%83%AD%E3%83%B3%E3% 81%AE%E6%95%B0%E3%81%AE%E4%B8%80%E8%A6%A7 より 35

36.

教師なし学習のニュース (2011年) • 教師なし学習(この画像が「人の画像である」,「猫であ る」という正解がない) • 訓練データ: YouTube からランダムに選ばれた画像 1000万枚 • 1000台のマシンで,3日間の学習 • 9層のニューラルネットワークを使用 高次のパターンを認識 できる能力を獲得 人の顔のみに 反応するユニット 猫の顔のみに 反応するユニット 特定の線や点に 反応するユニット 目や鼻や口に 反応するユニット 文献: Building high-level features using large scale unsupervised learning Quoc V. Le, Marc'Aurelio Ranzato, Rajat Monga, Matthieu Devin, Kai Chen, Greg S. Corrado, Jeff Dean, Andrew Y. Ng, arXiv 1112.6209, 2011, last revised 2012. 36

37.

教師あり学習のニュース (2012年) • 教師あり学習の AlexNet で画像分類を行う • 訓練データ: 画像約 100万枚以上(ImageNet データセット, 22000種類に分類済み) • ILSVRCコンペティション: 画像を 1000 種類に分類 • ディープニューラルネットワークを使用 畳み込み, max pooling, 正規化(LCN), softmax, ReLU, ドロップアウト L C N 畳 み 込 み 畳 み 込 み 畳 み 込 み max pooling 畳 み 込 み max pooling L C N max pooling 畳 み 込 み 全 結 合 文献: ImageNet classification with deep convolutional neural networks, Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton, NIPS'12, 2012. 全 結 合 全 結 合 37

38.

画像分類の精度の向上 • ディープラーニングの進展 • 画像分類は,場合によっては,AI が人間と同等の精度 とも考えら るように ImageNet データセット の画像分類の結果 画像分類の誤り率 (top 5 error) 人間: 5.1 % PReLU による画像分類: 4.9 % (2015年発表) 文献: Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification arXiv:1502.01852, 2015. 38

39.

ディープラーニング • 学習による上達の能力 • 訓練データを使用して,学習を行う • 巨大な訓練データ,深い層のニューラルネット ワークの利用により,良好な性能・機能を発揮す る場合も 39

40.

3-4 画像データ 40

41.

画像と画素 画像 それぞれの格子が画素 41

42.

画像の種類 カラー画像 輝度と色の情報 濃淡画像 輝度のみの情報 42

43.

濃淡画像でのコード化 画像の輝度の情報 例えば: 黒 = 0, 暗い灰色 = 1, 明るい灰色 = 2, 白 = 3 のようにコード化 画素 輝度が4段階の場合: 高さ: 8 0 幅: 8 1 2 3 43

44.

カラー画像の成分 • R(赤)成分,G(緑)成分,B(青)成分で考え る場合 R(赤)成分 G(緑)成分 B(青)成分 • 輝度成分,色成分で考える場合 輝度成分 色成分 44

45.

R(赤)成分,G(緑),B(青)成分で考える 場合 R(赤)成分 画素ごとに 1つの数値 G(緑)成分 画素ごとに 1つの数値 B(青)成分 画素ごとに 1つの数値 すべてあわせて,画素ごとに3つの数値 45

46.

輝度成分,色成分で考える場合 輝度成分 画素ごとに 1つの数値 色成分 画素ごとに 2つの数値 すべてあわせて,画素ごとに3つの数値 46

47.

3-5 ディープラーニングのモ デル,学習済みモデル 47

48.

ディープラーニングのモデル ディープラーニングのモデルは,ディープニューラ ルネットワークのこと • 層が深い(層の数が多い) • たくさんの種類の層を組み合わせることが多い L C N C N N C N N C N N max pooling C N N max pooling L C N max pooling C N N 全 結 合 全 結 合 全 結 合 48

49.

ImageNet データセット • カラー画像 約140万枚(最新版) • 1000 種類に分類済み • インターネットで公開されている • 画像分類を行う AI の訓練データとして利用できる 文献: ImageNet Large Scale Visual Recognition Challenge Olga Russakovsky, Jia Deng, Hao Su, Jonathan Krause, Sanjeev Satheesh, Sean Ma, Zhiheng Huang, Andrej Karpathy, Aditya Khosla, Michael Bernstein, Alexander C. Berg, Li Fei-Fei 49

50.

ディープラーニングの学習済みモデル • 有名なデータ(ImageNet データセット)で学習済み のモデルは,インターネットで公開されていることが 多い 【転移学習の考え方】 ① 学習済みのモデルがある ImageNet データセットで学習済みの場合には, 所定の 1000種類に画像分類を行うように学習済み ② 結合の重みを凍結,などを行う ③ ①とは別の画像分類に使えるように,最終層を交換. そして,最終層の結合の重みについてのみ学習 50

51.

3-6 式の抽象化と関数 51

52.

式の抽象化 100 * 1.1 150 * 1.1 400 * 1.1 類似した複数の式 a * 1.1 変数 a を使って,複数 の式を1つにまとめる (抽象化) 52

53.

関数 100 * 1.1 a * 1.1 150 * 1.1 400 * 1.1 類似した複数の式 変数 a を使って,複数 の式を1つにまとめる (抽象化) 式「a * 1.1」を含む 関数 foo を定義 関数 foo を使用. 100, 150, 400 は引数 53

54.

関数 • この関数の本体は 「return a * 1.1」 • この関数は,式「a * 1.1」に,名前 foo を付 けたものと考えることもできる 54

55.

式の抽象化と関数 抽象化前 類似した複数の式 実行結果 抽象化後 関数の定義と使用 同じ 実行結果になる 55

56.

1つ目の演習 • ニューラルネットワークを,足し算,掛け算, max (2つの値のうち最大値),関数で作る https://colab.research.google.com/drive/1k3YbTbQkZXlWw91DBXoHdU1_wd7LbFF3?usp=sharing 1, 1 1 0, 1 0 1, 0 0 0, 0 1 56

57.

2つ目の演習 • 画像分類の実行を行うプログラム • ImageNet データセットで学習済みのディープ ニューラルネットワークを使用 https://colab.research.google.com/drive/1TM0bbEUcAyHhsWzlgfetO-WYaf9tcnJE?usp=sharing 57