Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 57 Ad

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

Download to read offline

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

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

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

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

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

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

Advertisement
Advertisement

More Related Content

Similar to ae-3. ディープラーニングの基礎 (20)

More from kunihikokaneko1 (20)

Advertisement

Recently uploaded (20)

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

  1. 1. 3. ディープラーニングの基礎 1 金子邦彦 (ディープラーニング,Python を使用) (全15回) https://www.kkaneko.jp/cc/ae/index.html
  2. 2. アウトライン 2 番号 項目 復習 3-1 ディープラーニングの概要 3-2 ディープラーニングの仕組み 3-3 ディープラーニングの歴史,ディープニューラル ネットワークの種類 3-4 画像データ 3-5 ディープラーニングのモデル,学習済みモデル 3-6 Python の関数 各自、資料を読み返したり、課題に取り組んだりも行う
  3. 3. 機械学習 • 学習による上達の能力 • 訓練データを使用して,学習を行う 3
  4. 4. 機械学習が目標とする作業 ルール化,プログラム化が難しい作業 • 直感 • 主観 • 経験 → 人間にたやすい しかし,プログラム化は困難 4
  5. 5. ① 一般のプログラミング ② 機械学習での予測 5 ・プログラムは人間が作成し, テストし,調整する. コンピュータ プログラム データ (入力) 処理結果 コンピュータ プログラム データ (入力) 予測結果 訓練データ ・学習による上達の能力
  6. 6. 機械学習での汎化 6 入力 正解 9 500 11 500 12 1000 14 1000 訓練データ 訓練データの汎化 入力 予測結果 7 500 8 500 9 500 10 500 11 500 12 1000 13 1000 14 1000 15 1000 16 1000 • 汎化は100%成功するわけでない. • 訓練データとは別のデータ(検証データ)を 用いて検証する 汎化により,未知のデータ についても予測ができるよ うになる
  7. 7. 「汎化は,プログラミングを補うもの」と 考えられるようにも • ふつうのプログラミング: あらゆる事態を想定して,プログラムを作成 • 汎化: 未知のデータについても処理できる 7
  8. 8. ニューラルネットワークの原理 ニューラルネットワークのユニットは,数理により 動く ① 入力は複数 ② 入力を重みづけし合計をとる ③ その合計から出力値を得る 8 0.3 × 0.1 ⇒ 0.03 -0.5 × 0.8 ⇒ -0.4 0.2 × -0.5 ⇒ -0.1 合計 -0.47 合計に 応じた出力値 0.3846
  9. 9. 3-1. ディープラーニングの概要 9
  10. 10. ディープニューラルネットワーク • ディープニューラルネットワークは, 層が深い(層の数が多い)ニューラルネットワーク 10 層の数が少ない(浅い) 層の数が多い(深い)
  11. 11. ディープニューラルネットワーク 11 3 層 の ニ ュ ー ラ ル ネ ッ ト ワ ー ク 3 層 の ニ ュ ー ラ ル ネ ッ ト ワ ー ク 2 層 の ニ ュ ー ラ ル ネ ッ ト ワ ー ク 合計で8層 • 層が浅い(層の数が少ない)ニューラルネットワー クを組み合わせることもある (さまざまな組み合わせが ありえる)
  12. 12. ディープラーニング(深層学習) • ディープニューラルネットワークによる学習 12 層の数が少ない(浅い) 層の数が多い(深い)
  13. 13. 機械学習へのさまざまなアプローチ • ディープラーニング • 層の浅い(層の数が少ない) ニューラルネットワークの利用 • 決定木 • 線形回帰 • クラスタリング など多数 13 ニューラル ネットワーク それ以外 ディープラーニングは,他を性能・機能で上回る場合 があるが,ディープラーニングだけで済むというわ けではない
  14. 14. ディープラーニングへの期待 • 難問にチャレンジ ディープラーニング以外の方法では難しい問題 にチャレンジ 14
  15. 15. ディープラーニングへの期待 15 さまざまなレベルのパターン MIT Introduction to Deep Learning | 6.S191, https://www.youtube.com/watch?v=5tvmMX8r_OM の「Why Deep Learning」のページ 線や点のレベル 目,鼻,耳のレベル 顔の構造のレベル
  16. 16. ディープラーニングへの期待 16 「ディープニューラルネットワークの利用により, さまざまなレベルのパターンを抽出・認識できるようにな る」という考える場合も 「より出力に近い層では, より高次のパターンを 認識したい」という 考え方も
  17. 17. 3-2. ディープラーニングの仕組み 17
  18. 18. ニューラルネットワーク • 機械学習の能力を持つ. • コンピュータで動作. • ユニットがつながり,ニューラルネットネット ワークを構成. 18 入力データ 出力データ ユニット ユニット ユニット ユニット間 の結合 ユニット間 の結合
  19. 19. ニューラルネットワークの仕組み 19 入力層 中間層 出力層 〇 はニューロン,線は結合 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 〇 全結合のときは, 次層の全ニュー ロンと結合する 全結合のときは, 次層の全ニュー ロンと結合する • 前の層から結果を受けとって,次の層へ結果を 渡す (他の結合は書 いていない) (他の結合は書 いていない)
  20. 20. ニューラルネットワークのユニット ニューラルネットワークのユニットは,数理により 動く ① 入力は複数 ② 入力を重みづけし合計をとる ③ その合計から出力値を得る 20 入力 1 2 3 4 5 6 7 8 9 1 1 2 1 3 1 4 0 5 1 6 1 7 0 8 0 9 1 白黒の画像 (画素は 0 または 1) 重み w1 ~ w9 ユニット w1 w2 w3 w4 w5 w6 w7 w8 w9 合計 ・合計に,バイアスという値を 足し引きしたあと,活性化関数 が適用され出力値が得られる. ・活性化関数はさまざまな種類 シグモイド ReLU (2011年発表) 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0 合計は, 1 × w1 + 1 × w2 + 1 × w3 + 0 × w4 + 1 × w5 + 1 × w6 + 0 × w7 + 0 × w8 + 1 × w9
  21. 21. 21 入力 正解 1, 1 1 0, 1 0 1, 0 0 0, 0 1 訓練データ ユニット 1 1 重み ユニット 1 1 重み 活性化関数 ReLU 2.0 1.0 0 -2.0 -1.0 0.0 1.0 2.0 重み -1 2 ReLU + バイアス (バイアス は +1) 2.0 1.0 0 -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 1 2
  22. 22. 22 1, 1 1 0, 1 0 1, 0 0 0, 0 1 1 1 1 1 ReLU 2.0 1.0 0 -2.0 -1.0 0.0 1.0 2.0 2.0 1.0 0 -2.0 -1.0 0.0 1.0 2.0 -1 2 2.0 1.0 0 -2.0 -1.0 0.0 1.0 2.0 それぞれのユニットが「特定のパターンを識別して いる」と考えることもできる ユニットが 識別する パターン ユニットが 識別する パターン ユニットが 識別する パターン 1 2 ReLU + バイアス (バイアス は +1) ReLU + バイアス (バイアス は -1)
  23. 23. 学習では,結合の重みとバイアスの調整により,訓練 データのパターンをより正確に認識できるようになる 23 1 2 3 4 5 6 7 8 9 1 1 2 1 3 1 4 0 5 1 6 1 7 0 8 0 9 1 ユニット 1 1 1 0 1 1 0 0 1 合計 重み 高い活性度
  24. 24. ニューラルネットワークでの教師あり学習 24 入力 結果 正解 0.8 1 結果 正解 0.4 0 誤差 誤差が少なくなるように, 結合の重みとバイアスを調整 =ニューラルネットワークの学習
  25. 25. バックプロパゲーション 25 重みの変化のみで学習を行う (学習の途中で,ユニットの種類や数が変化するわけではない) 3層目の重み 2層目の重み 1層目の重み ① まず,3層目の重みを調整して,誤差を最小化 ② ①の次に,2層目の重みを調整して,誤差を最小化 ③ ②の次に,1層目の重みを調整して,誤差を最小化
  26. 26. ニューラルネットワークの教師あり学習 26 • 訓練データ(学習のためのデータ)を使用 • 学習は自動で行われる ① 訓練データにより,ニューラルネットから結果を出し,正 解との誤差を得る ② ユニット間の結合の重みの調整により、誤差を減らす
  27. 27. 3-3. ディープラーニングの歴史, ディープニューラルネットワー クの種類 27
  28. 28. 2011年までの常識 機械学習の難問:組み合わせが多すぎる場合 28 それほど 難しくない問題 2マスのパターン 3マスのパターン (4通り) (8通り) 難しい問題 100マスのパターン 1267650600228229401496703205376 通り (およそ1兆の1兆の126万倍) 組み合わせが多い …
  29. 29. 2011年までの常識 機械学習の難問:組み合わせが多すぎる場合 • カラー画像: サイズ 32×32 の場合 → 画素数: 32 × 32 × 3,階調 256 約 12000 … 000 通り • ステレオ音声: 10秒間,サンプリング周波数 44100Hz の場合 → 10 × 44100,階調 256 約 1000 … 000 通り 29 7397個の 0 1062033個の 0
  30. 30. 組み合わせが大きいと何が問題なのか? • 計算時間 (実はそれほど大問題ではない) • 汎化に失敗し,過学習が発生 30
  31. 31. 機械学習での汎化 31 入力 正解 9 500 11 500 12 1000 14 1000 訓練データ 訓練データの汎化 入力 予測結果 7 500 8 500 9 500 10 500 11 500 12 1000 13 1000 14 1000 15 1000 16 1000 • 汎化は100%成功するわけでない. • 訓練データとは別のデータ(検証データ)を 用いて検証する 汎化により,未知のデータ についても予測ができるよ うになる
  32. 32. 過学習 32 学習曲線 学習の繰り返しによる分類の精度(accuracy)の変化 過学習なし 精度 学習の 繰り返し回数 訓練データ 検証データ 良い 悪い 過学習あり 精度 学習の 繰り返し回数 訓練データ 検証データ 良い 悪い
  33. 33. 2011年までの常識 • 汎化の失敗,過学習が難問であり, 「ニューラルネットワークは面白いが,実用性は?」 と考えられる場合も • ニューラルネットワークでは,ユニットの数が少な いほど,汎化が成功する傾向がある • そうなると,ニューラルネットワークの層の数を増 やすことは,想定外とも 33 このページは、私の個人的な見解です
  34. 34. 2012年の進展 • 従来からある技術と,新技術の組み合わせ 【新技術の例】 • 非線形性の正規化 (rectified nonlinearity), 2009年 • 活性化関数の ReLU, 2011年 • ドロップアウト さらなる進展: He の初期化, 2015年 など • 巨大な訓練データの利用,高速に学修を行う技術 → 過学習を抑止しながら, ディープラーニングが役に立つ場合がある ことの発見 34
  35. 35. 将来のコンピュータの進展 所説あります 35 年 コンピュータで扱 えるユニット数の 規模 2010年 100,000個 2020年 2,000,000個 2030年 50,000,000個 2040年 1,000,000,000個 2050年 20,000,000,000個 • カタツムリ 11,000 • ロブスター 100,000 • アリ 250,000 • カエル 16,000,000 • ハツカネズミ 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 より 2055年ごろには、数は人間を上回る 「数があればよい」 というわけではあり ません
  36. 36. 教師なし学習のニュース (2011年) • 教師なし学習(この画像が「人の画像である」,「猫であ る」という正解がない) • 訓練データ: YouTube からランダムに選ばれた画像 1000万枚 • 1000台のマシンで,3日間の学習 • 9層のニューラルネットワークを使用 36 文献: 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. 人の顔のみに 反応するユニット 猫の顔のみに 反応するユニット 高次のパターンを認識 できる能力を獲得 特定の線や点に 反応するユニット 目や鼻や口に 反応するユニット
  37. 37. 教師あり学習のニュース (2012年) • 教師あり学習の AlexNet で画像分類を行う • 訓練データ: 画像約 100万枚以上(ImageNet データセット, 22000種類に分類済み) • ILSVRCコンペティション: 画像を 1000 種類に分類 • ディープニューラルネットワークを使用 畳み込み, max pooling, 正規化(LCN), softmax, ReLU, ドロップアウト 37 文献: ImageNet classification with deep convolutional neural networks, Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton, NIPS'12, 2012. 全 結 合 全 結 合 全 結 合 畳 み 込 み 畳 み 込 み 畳 み 込 み 畳 み 込 み max pooling max pooling max pooling 畳 み 込 み L C N L C N
  38. 38. 画像分類の精度の向上 • ディープラーニングの進展 • 画像分類は,場合によっては,AI が人間と同等の精度 とも考えら るように 画像分類の誤り率 (top 5 error) 人間: 5.1 % PReLU による画像分類: 4.9 % (2015年発表) 38 ImageNet データセット の画像分類の結果 文献: Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification arXiv:1502.01852, 2015.
  39. 39. ディープラーニング • 学習による上達の能力 • 訓練データを使用して,学習を行う • 巨大な訓練データ,深い層のニューラルネット ワークの利用により,良好な性能・機能を発揮す る場合も 39
  40. 40. 3-4 画像データ 40
  41. 41. 画像と画素 41 それぞれの格子が画素 画像
  42. 42. 画像の種類 42 カラー画像 濃淡画像 輝度と色の情報 輝度のみの情報
  43. 43. 濃淡画像でのコード化 43 画像の輝度の情報 例えば: 黒 = 0, 暗い灰色 = 1, 明るい灰色 = 2, 白 = 3 のようにコード化 画素 幅: 8 高さ: 8 輝度が4段階の場合: 0 1 2 3
  44. 44. カラー画像の成分 • R(赤)成分,G(緑)成分,B(青)成分で考え る場合 • 輝度成分,色成分で考える場合 44 R(赤)成分 G(緑)成分 B(青)成分 輝度成分 色成分
  45. 45. R(赤)成分,G(緑),B(青)成分で考える 場合 45 R(赤)成分 G(緑)成分 B(青)成分 画素ごとに 1つの数値 画素ごとに 1つの数値 画素ごとに 1つの数値 すべてあわせて,画素ごとに3つの数値
  46. 46. 輝度成分,色成分で考える場合 46 輝度成分 色成分 画素ごとに 1つの数値 画素ごとに 2つの数値 すべてあわせて,画素ごとに3つの数値
  47. 47. 3-5 ディープラーニングのモ デル,学習済みモデル 47
  48. 48. ディープラーニングのモデル ディープラーニングのモデルは,ディープニューラ ルネットワークのこと • 層が深い(層の数が多い) • たくさんの種類の層を組み合わせることが多い 48 全 結 合 全 結 合 全 結 合 C N N C N N C N N C N N max pooling max pooling max pooling C N N L C N L C N
  49. 49. ImageNet データセット • カラー画像 約140万枚(最新版) • 1000 種類に分類済み • インターネットで公開されている • 画像分類を行う AI の訓練データとして利用できる 49 文献: 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
  50. 50. ディープラーニングの学習済みモデル • 有名なデータ(ImageNet データセット)で学習済み のモデルは,インターネットで公開されていることが 多い 【転移学習の考え方】 ① 学習済みのモデルがある ImageNet データセットで学習済みの場合には, 所定の 1000種類に画像分類を行うように学習済み ② 結合の重みを凍結,などを行う ③ ①とは別の画像分類に使えるように,最終層を交換. そして,最終層の結合の重みについてのみ学習 50
  51. 51. 3-6 式の抽象化と関数 51
  52. 52. 式の抽象化 52 類似した複数の式 変数 a を使って,複数 の式を1つにまとめる (抽象化) a * 1.1 100 * 1.1 150 * 1.1 400 * 1.1
  53. 53. 関数 53 類似した複数の式 変数 a を使って,複数 の式を1つにまとめる (抽象化) a * 1.1 100 * 1.1 150 * 1.1 400 * 1.1 式「a * 1.1」を含む 関数 foo を定義 関数 foo を使用. 100, 150, 400 は引数
  54. 54. 関数 54 • この関数の本体は 「return a * 1.1」 • この関数は,式「a * 1.1」に,名前 foo を付 けたものと考えることもできる
  55. 55. 式の抽象化と関数 55 類似した複数の式 実行結果 関数の定義と使用 同じ 実行結果になる 抽象化前 抽象化後
  56. 56. 1つ目の演習 • ニューラルネットワークを,足し算,掛け算, max (2つの値のうち最大値),関数で作る 56 1, 1 1 0, 1 0 1, 0 0 0, 0 1 https://colab.research.google.com/drive/1k3YbTbQkZXlWw91DBXoHdU1_wd7LbFF3?usp=sharing
  57. 57. 2つ目の演習 • 画像分類の実行を行うプログラム • ImageNet データセットで学習済みのディープ ニューラルネットワークを使用 57 https://colab.research.google.com/drive/1TM0bbEUcAyHhsWzlgfetO-WYaf9tcnJE?usp=sharing

×