Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

より身近になった機械学習

672 views

Published on

オープンセミナー2016@香川で行った発表の資料です。

最後に呼びかけた、GCPUGについてですが、
GCPUG Tokushima を立ち上げましたので是非ご参加ください。

https://www.facebook.com/groups/1057544691004798/

Published in: Technology
  • Be the first to comment

より身近になった機械学習

  1. 1. より身近になった機械学習 オープンセミナー2016@香川 平岡大樹
  2. 2. 自己紹介 ● 徳島大学 大学院2年 ● 株式会社赤船 バイトエンジニア ● 徳島IT開発勉強会メンバー ● GDG Shikoku お手伝い Twitter: @DemoSert Facebook: daiki.hiraoka.sert http://www.slideshare.net/DaikiHiraoka1 2
  3. 3. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
  4. 4. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem is 何?
  5. 5. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem Google Developer Groups
  6. 6. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem Google のプロダクトや テクノロジーが大好きな デベロッパーのグループです。
  7. 7. Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem フォローしてな! @gdgshikoku gdgshikoku.connpass.com
  8. 8. 機械学習 8
  9. 9. 機械学習 9 機械に勉強させること、いわゆる人工知能
  10. 10. 機械学習 10 AlphaGo ● Google DeepMindが開発 ● コンピュータ囲碁プログラム https://deepmind.com/css/images/opengraph/alphago-logo.png
  11. 11. 機械学習 11 ● サポートベクターマシーン(SVM)
  12. 12. 機械学習 12 ● サポートベクターマシーン(SVM) 2クラスのパターン分類器 特に優れた学習モデルの一つ
  13. 13. 機械学習 13 ● ニューラルネットワーク
  14. 14. 機械学習 14 ● ニューラルネットワーク 生物の脳を模したもの
  15. 15. 機械学習 15 ● ニューラルネットワーク 生物の脳を模したもの 人工ニューラルネットワークとも呼ばれる
  16. 16. 機械学習 16 ● ニューラルネットワーク ○ 畳み込みニューラルネットワーク(CNN)
  17. 17. 機械学習 17 ● ニューラルネットワーク ○ 畳み込みニューラルネットワーク(CNN) 生物の視覚野をモデル化
  18. 18. 機械学習 18 ● ニューラルネットワーク ○ 畳み込みニューラルネットワーク(CNN) 生物の視覚野をモデル化 画像処理に有効
  19. 19. 機械学習 19 ● ニューラルネットワーク ○ 畳み込みニューラルネットワーク(CNN) 生物の視覚野をモデル化 画像処理に有効 コンテストで人間超えの精度!!
  20. 20. 機械学習 20 ● 畳み込みニューラルネットワーク(CNN)
  21. 21. 機械学習 21 ● 畳み込みニューラルネットワーク(CNN) 畳み込み層 入力にフィルタを畳み込むことで局所特徴を抽出
  22. 22. 機械学習 22 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1
  23. 23. 機械学習 23 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1
  24. 24. 機械学習 24 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 5
  25. 25. 機械学習 25 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0
  26. 26. 機械学習 26 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 10 0 0 0 0 0 0 0 0 0 0 0 0 0
  27. 27. 機械学習 27 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0
  28. 28. 機械学習 28 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 10 10 5 0 0 0 0 0 0 0 0 0 0 0 0 0
  29. 29. 機械学習 29 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 10 10 5 0 0 2 0 0 0 0 0 0 0 0 0 0 0
  30. 30. 機械学習 30 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 10 10 5 0 0 2 6 0 0 0 0 0 0 0 0 0 0 0
  31. 31. 機械学習 31 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 10 10 5 0 0 2 6 6 0 0 0 0 0 0 0 0 0 0 0
  32. 32. 機械学習 32 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 10 10 5 0 0 2 6 6 2 0 0 0 0 0 0 0 0 0 0 0
  33. 33. 機械学習 33 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 10 10 5 0 0 2 6 6 2 0 0 -2 0 0 0 0 0 0 0 0 0
  34. 34. 機械学習 34 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 10 10 5 0 0 2 6 6 2 0 0 -2 -6 0 0 0 0 0 0 0 0 0
  35. 35. 機械学習 35 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 10 10 5 0 0 2 6 6 2 0 0 -2 -6 -6 0 0 0 0 0 0 0 0 0
  36. 36. 機械学習 36 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 10 10 5 0 0 2 6 6 2 0 0 -2 -6 -6 -2 0 0 0 0 0 0 0 0 0
  37. 37. 機械学習 37 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 10 10 5 0 0 2 6 6 2 0 0 -2 -6 -6 -2 0 0 -5 0 0 0 0 0 0 0
  38. 38. 機械学習 38 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 10 10 5 0 0 2 6 6 2 0 0 -2 -6 -6 -2 0 0 -5 -10 0 0 0 0 0 0 0
  39. 39. 機械学習 39 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 10 10 5 0 0 2 6 6 2 0 0 -2 -6 -6 -2 0 0 -5 -10 -10 0 0 0 0 0 0 0
  40. 40. 機械学習 40 ● 畳み込みニューラルネットワーク(CNN) 畳み込み演算 入力 -1 -2 -1 0 0 0 1 2 1 フィルター 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 出力 0 0 0 0 0 0 0 5 10 10 5 0 0 2 6 6 2 0 0 -2 -6 -6 -2 0 0 -5 -10 -10 -5 0 0 0 0 0 0 0
  41. 41. 機械学習 41 ● 畳み込みニューラルネットワーク(CNN) プーリング層 次元削減により多少の位置ずれ等を修正
  42. 42. 機械学習 42 ● 畳み込みニューラルネットワーク(CNN) Maxプーリング 入力 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1
  43. 43. 機械学習 43 ● 畳み込みニューラルネットワーク(CNN) Maxプーリング 入力 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1
  44. 44. 機械学習 44 ● 畳み込みニューラルネットワーク(CNN) Maxプーリング 入力 1 1 1 1 1 1 1 2 2 2 2 1 1 2 4 4 2 1 1 2 4 4 2 1 1 2 2 2 2 1 1 1 1 1 1 1 各領域から 最大値を取り出す 2 2 2 2 4 2 2 2 2 出力
  45. 45. 機械学習 45 ● 畳み込みニューラルネットワーク(CNN) Maxプーリング 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 元データ 位置ずれ データ
  46. 46. 機械学習 46 ● 畳み込みニューラルネットワーク(CNN) Maxプーリング 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 元データ 位置ずれ データ
  47. 47. 機械学習 47 ● 畳み込みニューラルネットワーク(CNN) Maxプーリング 1 0 0 0 1 0 0 0 元データ 位置ずれ データ
  48. 48. 機械学習 48 ● 畳み込みニューラルネットワーク(CNN) Maxプーリング 1 0 0 0 1 0 0 0 元データ 位置ずれ データ
  49. 49. 機械学習 49 ● 畳み込みニューラルネットワーク(CNN)
  50. 50. TensorFlow https://www.tensorflow.org/images/tf_logo_transp.png 50
  51. 51. TensorFlow 51 Googleの機械学習系オープンソースライブラリ
  52. 52. TensorFlow 52 Googleの機械学習系オープンソースライブラリ ● 強力な並列処理+GPUサポート ● 記述の容易さ ● 学習過程の可視化
  53. 53. TensorFlow 53 ● 強力な並列処理+GPUサポート
  54. 54. TensorFlow 54 ● 強力な並列処理+GPUサポート
  55. 55. TensorFlow 55 ● 強力な並列処理+GPUサポート 9スレッド!
  56. 56. TensorFlow 56 ● 強力な並列処理+GPUサポート 同一コードがCPU・GPU両方で実行可能!
  57. 57. TensorFlow 57 ● 強力な並列処理+GPUサポート 同一コードがCPU・GPU両方で実行可能! CPU GPU (GTX 660)
  58. 58. TensorFlow 58 ● 強力な並列処理+GPUサポート 同一コードがCPU・GPU両方で実行可能! CPU GPU (GTX 660) 約10倍!!
  59. 59. TensorFlow 59 ● 記述の容易さ C++ ● 約4000行 ● 複雑
  60. 60. TensorFlow 60 ● 記述の容易さ C++ ● 約4000行 ● 複雑 TensorFlow ● 約300行 ● 直感的
  61. 61. TensorFlow 61 ● 学習過程の可視化 TensorBoard
  62. 62. TensorFlow 62 ● 学習過程の可視化 TensorBoard
  63. 63. TensorFlow 63 ● 学習過程の可視化 TensorBoard
  64. 64. 機械学習を用いたアプリケーション 64
  65. 65. 機械学習を用いたアプリケーション ● Cloud Vision API 65 https://cloudplatform.googleblog.com/2016/02/Google-Cloud-Vision-API-enters-beta-open-to-all-to-try.html
  66. 66. 機械学習を用いたアプリケーション ● Cloud Vision API ● AlphaGo 66 https://deepmind.com/css/images/opengraph/alphago-logo.png
  67. 67. 機械学習を用いたアプリケーション ● Cloud Vision API ● AlphaGo ● 自動彩色 ○ 白黒画像をカラー化 67 http://richzhang.github.io/colorization/
  68. 68. CNNの学習データ例 68
  69. 69. CNNの学習データ例 69 画像
  70. 70. CNNの学習データ例 70 画像 ● 人と人以外
  71. 71. CNNの学習データ例 71 画像 ● 人と人以外 ● 良品と不良品
  72. 72. CNNの学習データ例 72 画像 ● 人と人以外 ● 良品と不良品 ● 猫の分類
  73. 73. CNNの学習データ例 73 画像 ● 人と人以外 ● 良品と不良品 ● 猫の分類 特定分類のスペシャリスト
  74. 74. CNNの学習データ例 74 画像 ● 人と人以外 ● 良品と不良品 ● 猫の分類 ● うどんの分類 特定分類のスペシャリスト
  75. 75. CNNの学習データ例 75 画像以外
  76. 76. CNNの学習データ例 76 画像以外 ● 3軸加速度データ 着席 立ち上がり 歩行
  77. 77. CNNの学習データ例 77 画像以外 ● 3軸加速度データ ● 気温、湿度、照度
  78. 78. CNNの学習データ例 78 画像以外 ● 3軸加速度データ ● 気温、湿度、照度 ● ショッピングページの遷移の仕方 ○ 商品ジャンルに番号を振る ○ 閲覧した商品ジャンルを時系列でグラフ化
  79. 79. CNNの精度向上テクニック例 79
  80. 80. CNNの精度向上テクニック例 80 ● 層・特徴マップを増やす
  81. 81. CNNの精度向上テクニック例 81 ● 層・特徴マップを増やす
  82. 82. CNNの精度向上テクニック例 82 ● 層・特徴マップを増やす 発散しやすい ● 学習するパラメタが多すぎて学習できない
  83. 83. CNNの精度向上テクニック例 83 ● 層・特徴マップを増やす ○ 残差学習(Short cut)
  84. 84. CNNの精度向上テクニック例 84 ● 層・特徴マップを増やす ○ 残差学習(Short cut) 畳み込み層 特徴マップ 4 畳み込み層 特徴マップ 4 畳み込み層 特徴マップ 4
  85. 85. CNNの精度向上テクニック例 85 ● 出力部分を別の機械学習に置き換える
  86. 86. CNNの精度向上テクニック例 86 ● 出力部分を別の機械学習に置き換える SVM
  87. 87. CNNの精度向上テクニック例 87 ● 出力部分を別の機械学習に置き換える SVM 10%程度 精度が向上
  88. 88. 最後に... 88
  89. 89. 最後に... 89 ● TensorFlow (機械学習) の勉強会とかやりたい...
  90. 90. 最後に... 90 ● TensorFlow (機械学習) の勉強会とかやりたい... GCPUG Shikoku (Google Cloud Platform User Group) 立ち上げましょう!! ご協力をお願いします!
  91. 91. 最後に... 91 ● TensorFlow (機械学習) の勉強会とかやりたい... GCPUG Shikoku (Google Cloud Platform User Group) 立ち上げましょう!! ご協力をお願いします! ※追記 発足しました! https://www.facebook.com/groups/1057544691004798/

×