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.

2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門

これから機械学習を学ぶソフトウェア開発者の皆さまに知っていただきたい内容を網羅しました。
機械学習とは何か?
Modelとは何か?
機械学習のプロジェクトの概要
Dataにまつわる話で気を付けるべき事

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門

  1. 1. プログラマーのための 機械学習 入門 畠山 大有 | Daiyu Hatakeyama | @dahatake Architect && Software Engineer && Applied Data Scientist (目指している) Microsoft Japan
  2. 2. “Hello World” MNIST https://keras.io/examples/vision/mnist_convnet/
  3. 3. 利用ライブラリーの設定
  4. 4. データセット (学習用のデータ) の読み込み # the data, split between train and test sets # Scale images to the [0, 1] range # Make sure images have shape (28, 28, 1) # convert class vectors to binary class matrices
  5. 5. Neural Network の設定
  6. 6. 学習の実行
  7. 7. 学習したモデルのテスト (評価)
  8. 8. 中核部分は この分量です
  9. 9. 1950 1960 1970 1980 1990 2000 2010
  10. 10. 2 + 3 = 5
  11. 11. 2 + 3 = 5 簡単 大変…
  12. 12. 2 + 3 = 5 簡単 大変…
  13. 13. それぞれの写真: 猫? Yes/No
  14. 14. Program = Algorithm 人が書く タスクの仕様の定義 アルゴリズムは固定 アルゴリズムは容易に説明できる ソフトウェアが書く 目的: 汎化 アルゴリズムはデータに依存 アルゴリズムは時間とともに変わる
  15. 15. Program = Algorithm 人が書く タスクの仕様の定義 アルゴリズムは固定 アルゴリズムは容易に説明できる ソフトウェアが書く 目的: 汎化 アルゴリズムはデータに依存 アルゴリズムは時間とともに変わる 実世界の全てを想定して、 プログラミングするのは、難しい…
  16. 16. 天気 気温 風 試合をしたか? 晴れ 低い ある Yes 晴れ 高い ある No 晴れ 高い なし No 曇り 低い ある Yes 曇り 高い なし Yes 曇り 低い なし Yes 雨 低い ある No 雨 低い なし Yes 晴れ 低い なし ?
  17. 17. 天気 気温 風 試合をしたか? 晴れ 低い ある Yes 晴れ 高い ある No 晴れ 高い なし No 曇り 低い ある Yes 曇り 高い なし Yes 曇り 低い なし Yes 雨 低い ある No 雨 低い なし Yes 晴れ 低い なし ? 晴れ 曇り 雨 低い 高い なし ある
  18. 18. 天気 気温 風 試合をしたか? 晴れ 低い ある Yes 晴れ 高い ある No 晴れ 高い なし No 曇り 低い ある Yes 曇り 高い なし Yes 曇り 低い なし Yes 雨 低い ある No 雨 低い なし Yes 晴れ 低い なし ?
  19. 19. 手法
  20. 20. Machine Learning 教師あり 学習 教師無し 学習 解析学習 Classification Regression Clustering Reward-based 種類 カテゴリ アルゴリズムの例 ・故障分類 ・販促効果分類 利用例 ・売上予測 ・需要予測 ・セグメンテー ション ・顧客グルーピン グ ・メール キャン ペーン ・自動運転 ・自立型ビル管理
  21. 21. Goal: 分類を予測する 教師あり学習 ゴールの例: このクレジットカードは不正 か? Class 1 Class 2 2つ以上でも良い
  22. 22. Goal: 値を予測する 教師あり学習 ゴールの例: 来月この製品は何個売れるか?
  23. 23. • 車の各種情報から車の価格を予測する • ブランド • 燃料タイプ (ガソリン, ディーゼル) • 吸気タイプ (ターボ, NA) • ドアの数 (2ドア, 4ドア) • 車体 (セダン, ワゴン, ハードトップ) • 駆動方式 (FWD, RWD, 4WD) • エンジン位置 (フロント, リア) • ホイールの大きさ • シリンダーの数 • 車体の長さ, 幅, 高さ ・・・など
  24. 24. Goal: 構造を理解する 教師無し学習 ゴールの例: 私たちの顧客セグメントは どうなっているのか? Cluster 1 Cluster 2 Cluster 3
  25. 25. • あやめの「がく片の長さ」「がく片の幅」のみの情報で データの類似性から100個のあやめを2種類に分類する • 訓練用の答えデータを必要としない教師なし学習 がく片の幅 がく片の長さ データの類似性から 2 種類に分類する
  26. 26. Model は、DLL と一緒。 -> 単なるファ イル
  27. 27. <Python> Modelの保存 出力された Model <C#>Model の読み込み <C#>Model の利用 (実行)
  28. 28. Application #1 Application #2 WinML RT API WinML Win32 API WinML Runtime Model Inference Engine DirectML API CPUDirect3D GPU Input Surface Output Surface • ONNX のみ https://docs.microsoft.com/ja-jp/windows/ai/windows-ml/
  29. 29. 万能なものは無い
  30. 30. 成果物である モデルの特徴
  31. 31. ①True Positive(真陽性) : 100%に近いほど良好 ⇒A/(A+C) ②False Positive(偽陽性) : 0%に近いほど良好 ⇒B/(B+D) ③True Negative : 100%に近いほど良好 ⇒D/(B+D) ④False Negative : 0%に近いほど良好 ⇒C/(C+D) ⑤Accuracy(正解率) : 100%に近いほど良好 ⇒「○」「×」を正しく予測できた割合 ⇒(A+D)/(A+B+C+D) : 100%に近いほど良好 ⑥Precision(適合率) : 100%に近いほど良好 ⇒A/(A+B) ⑦Recall(再現率) : 100%に近いほど良好 ⇒①に同じ ⑧F1 Score :1.0に近いほど良好 ⇒⑥、⑦の複合指標 ⇒2×(⑥×⑦)/(⑥+⑦) 検証用データ 推論で得た分類 ○ × 正解の 分類 ○ A件 C件 × B件 D件 正解が「○」 のデータ 推論で「○」と されたデータ A件C件 B件 D件 推論結果の例 主な評価指標
  32. 32. Karugamoが写っているの に、 モデルは推論できなかっ た -> モデルの見逃し あり[推 論] なし[推 論] あり[正 解] XX XX なし[正 解] XX XX
  33. 33. Karugamo でないもの に、 Karugamo と推論 ->モデルの過検知? あり[推 論] なし[推 論] あり[正 解] XX XX なし[正 解] XX XX
  34. 34. 再現率(Recall) 適合率 (Precision) ヒット数↑ ノイズ ↑ 精度↑ 漏れ↑ 再現率、適合率の最適な ブレイクポイント
  35. 35. 精度 プログラミ ング 機械学習 アプローチ 演繹的 帰納的。つまりブラックボックスは 残る 機能保証 (≒ 精度): Function Test 可能 訓練データ次第。ただ、統計の域を 出ない 性能保証: Performance Test 可能 可能 妥当性確認試験: Validation Test 可能 やってみないと、わからない https://www.slideshare.net/hironojumpei/ai-129527593
  36. 36. 劣化しやす い精度 時間 ▲ 再学習 ▲ 再学習 【連続的変化】  未学習データパターンの混入  Ex. 季節  Ex. 生産ラインでの新しい製品 【断続的変化】  データの質的変化(取得環境/内容な ど)  Ex. 新商品  学習データ量の増大  学習データ質の増大
  37. 37. 推論 デプロイメントデータの準備 モデル構築・学習 世界中の研究者の 論文とコードも 公開されている どんなデータが 準備できるか? アプリケーションの どこにモデルを 利用すべきか?
  38. 38. Data Alpha Go Zero
  39. 39. 独占 権威
  40. 40. • オープンに共有される深層学習の研究 • 論文、サンプルコード、データセット 変革の速度 競争領域
  41. 41. 引用: http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/
  42. 42. 引用: https://twitter.com/fchollet/status/1052228463300493312
  43. 43. • 何を意味しているのか? • いつ、どこで、取得したのか? • 入手漏れが無いのか? • 項目同士に関連があるのか? • 欠損や例外がどれだけ含まれているのか? ゴミデータ ゴミの結果
  44. 44. Data ML Code Configuration Data Collection Data Verification Feature Extraction Machine Resource Management Analysis Tools Process Management Tools Serving Infrastructure Monitoring “Hidden Technical Debt in Machine Learning Systems,” Google NIPS 2015
  45. 45. DeviceID OEM Name SSD (GB) CPU Clock (GHz) Region OS Install Date 1 Hewlett Packard 500 3.2 US 12/12/2016 2 HP 1000 1233 US 05/02/2017 3 Hewlett-Packard 250 -7.8 USA 05/32/2017 4 hp 217 4.2 MEA 04/10/2016 5 Hewlet Packard NA 4.1 Latam 05/15/2087 6 DELL 250 0 Japan 03/13/2017 7 dell NULL 9.2 Japan 04-17-2016 8 “” 500 3.5 China 2015.02.141 9 Hewlett pakerd 500 2.8 China 3/2 答え: No… なぜなのか見ていきましょう
  46. 46. 1. 関連性の無いデータの削 除 • これらは特に特徴的なものがない • 例: DeviceID 2. 一貫性の無さや、スペル ミス • 同じものは、一意に • 例: OEM Name 3. 欠損値の扱い • 一貫性の無い、不安定な結果になる • 多くの対応策: 削除、中央値/平均値 を設定 DeviceID OEM Name SSD (GB) … 1 Hewlett Packard 500 … 2 HP 1000 … 3 Hewlett-Packard 250 … 4 hp 217 … 5 Hewlet Packard NA … 6 DELL 250 … 7 dell NULL … 8 “” 500 … 9 Hewlett pakerd 500 … 目的: 不足値や一貫性の無い値 の是正
  47. 47. 4. 一貫性の無いデータ型や書 式 • アルゴリズムがデータ型や書式を誤解 釈しやすい • 例: OS Install Date (日付の代わりに文字 列), OS Install Date (複数の書式) 5. 間違ったデータ • 誤った結果になる • 例: CPU Clock (マイナス, 存在しない値), OS Install Date (不完全, 存在しない値) 6. 範囲 • 対象としたい範囲に絞る (*) • 例: Region == “US” … CPU Clock (GHz) Region OS Install Date … 3.2 US 12/12/2016 … 1233 US 05/02/2017 … -7.8 USA 05/32/2017 … 4.2 MEA 04/10/2016 … 4.1 Latam 05/15/2087 … 0 Japan 03/13/2016 … 9.2 Japan 04-17-2016 … 3.5 China 2015.02.141 … 2.8 China 3/2 *注意: 範囲選択を注意して行わないと、モデルの安定性に影響がある
  48. 48. 可視化の代表例 • 度数分布表 (Histogram) • パーセンタイル: 特定目的の範囲毎の 値 • 四分位数:分布を4つの等しい部分に分 割する • 中央値: (ソートされた) 分布の中央値 • 外れ値を識別するための箱ひげ図 (BoxPlot) を作成する largest value smallest value Histogram Boxplot Median Outliers 目的: データのパターンや課題をチェックする
  49. 49. Positive (right) skew データの傾きをチェック (ロングテール) Mean Median Tip: (Generally) If mean is right of median, data is right skewed. あなたのデータはどんな形状をしていますか? • よくあるパターンなのか、異なるのか? • 処理する価値があるのか? Mean (average) = 0 バイモーダル分布  = 2 m = 0 Mean (average) 凡そ Median 最頻値 (最も数が多い値) 正規分布(Gaussian or “Bell curve”)
  50. 50. • 強い因果関係と説明責任が必要 • 想定外の事態での危機管理 な ど • 因果関係が必要な予測 • 人間の予測と機械学習の予 測の両方を使う • 相関関係が分かればいいことの 予測 • 誰が正しいのか議論しても あまり意味がないもの
  51. 51. http://tylervigen.com/spurious-correlations
  52. 52. https://www.researchgate.net/publication/8258751_Momentous_sprint_at_the_2156_Olympics
  53. 53. Bias 人 作られる
  54. 54. • 例: StreetBump smartphone app • スマートフォンの GPS “Data” を使って、 道路の異常個所を収集 • 年収の低い方は? http://www.streetbump.org/
  55. 55. • 機械処理における、古典的な考え方・題材 • Poll: 誰が、どのように判断をすべきか決定すべきか? • 77% ユーザーもしくは立法に • 12% メーカー
  56. 56. https://www.microsoft.com/ja-jp/AI/our-approach-to-ai/
  57. 57. 蒸気 や 電気 ソフトウェア (+AI) AI
  58. 58. 交通渋滞 予測 ○○線 運行情報 △ △線 運行情報 イベント 開催情報 TV番組 情報 物流 車両情報 道路工事 情報 空調負荷 予測 販売計画 混雑予測 駅員・警 備計画 空調制御 計画 故障予知 集荷予測 天候情報 保守計画 売上予測 混雑予測 有機的に相互作用する社会
  59. 59. 交通渋滞 予測 ○○線 運行情報 イベント 開催情報 TV番組 情報 物流 車両情報 道路工事 情報 空調負荷 予測 販売計画 空調制御 計画 故障予知 天候情報 保守計画 売上予測 混雑予測 △ △線 運行情報 混雑予測 駅員・警 備計画 コンテキストに応じて自律的に動く 集荷予測
  60. 60. 実装 • 深層学習でないとAIでない vs. 深層学習は高コストで最終手段 • 目新しさで深層学習を使う vs. 課題解決のために役立つ技術を探 す • 優秀なエンジニアがいないとやらない vs. 自分たちでも出来る方 法を考える • 技術の完成度が上がるまで手を出さない vs. まずは試してみる • モデルの精度にこだわる vs. 精度が低くても役に立つところを探 す
  61. 61. 会員数 9,121 名 全国 6 都市で 119 回イベント開催 福岡 大阪 広島 名古屋 東京 札幌 オンライン・オフライン含めた 機械学習教育講座の全国での推進 機械学習 SI エコシステム日本最大の AI コミュニティ https://dllab.connpass.com/
  62. 62. • AI や 機械学習の最新の トレーニング • 概要・基礎・チュートリアル • 自分に適した、トレーニングコースの作成 • AI Business School • Conversational AI • AI Services • Machine Learning • Autonomous System • Responsible AI aischool.microsoft.com
  63. 63. Step-by-Step Learning Achievements スムーズな学習環境  無料  日本語対応  ブラウザーのみ。ハンズオ ン環境も含めて  ダウンロード可能なサンプ ルコード  Product/Service, 技術レベル, job role, などに応じたガイダ ンス  Videos, チュートリアル, ハン ズオン  スキルアップを促す  ユーザー プロファイ ル毎に カスタマイズ www.microsoft.com/learn
  64. 64. Azure 無償トライアル : http://aka.ms/amlfree ドキュメント : http://aka.ms/azureml-ja-docs Microsoft Learn :https://aka.ms/mslearn-aml
  65. 65. Invent with purpose.

×