Azure Machine Learning実践入門

Azure Machine Learning実践入門

2017年1月19日にPixivさんで開催されたCLRHで登壇した内容です

E44ca1508481e64c79ea237170b1a08d?s=128

garicchi

July 26, 2017
Tweet

Transcript

  1. Azure Machine Learning 実践入門 2016/02/20 @garicchi

  2. 自己紹介 栂井 良太 2 togai ryota 静岡大学大学院 所属 MS系コミュニティ 普段

    Twitter @garicchi Microsoft MVP for Windows Development
  3. 今日のテーマ › Azure MLとはなにか? › Azure MLとはAzureでできる機械学習である › 機械学習って何? 3

    Azure Machine Learning Azureでできる 機械学習
  4. 機械学習とは

  5. 機械学習とは何か › 東ロボくん › メールのスパムフィルタ 5 http://www.itmedia.co.jp/ news/articles/1511/16/news061.html http://hokuts.com/wp- content/uploads/2015/11/spam_graph.png

  6. 機械学習とは 6 これらに共通して言えることは 人間が行う作業を機械に行わせる もっと言うと 人間が自然に行っている学習能力と同様のことを コンピュータで実現しよう (wikiより)

  7. 人間は何をしているか › 例えばメールのスパムフィルタでは › 人間はメールの内容をみて過去の経験からスパ ムのようなメールを発見、分類している 7 http://support.zaq.ne.jp/security/spam2/03/img/img_spam.jpg うまく数値化できないけど なんか怪しい感じがする

    小学生は見分けることが できるだろうか 我々は過去の経験から スパム判定を行うことができる
  8. 機械にスパム判定を 行わせるには? 8 人間の学習と同様に大量の過去の経験が必要 過去の経験から統計的にスパムかどうかを分類する 統計学と切り離すことができない 機械学習 = 統計学を用いた分類、予測器

  9. 機械学習を学ぶ意義 9 データを使った簡単な雑務ほど将来的に機械学習を使ったAIに 置き換えられていく(かもしれない) どうやって食っていくのか → 機械学習を使う側になるしかな い 幸いにもAzure MLは数式を知らなくてもGUIで操作するだけ

    で機械学習ができる 機械学習は学んでおいて損はない(はず)
  10. Azure MLを学ぶには 10 Azure MLはAzure上で簡単に機械学習を行えるプラットフォー ムだが機械学習や統計の知識は必要 一般的に機械学習はPythonやR言語で行われることが多いが Azure MLはそれをGUIで行えるようなイメージ 今回はビジネスに用いる機械学習を例に機械学習のイメージを

    解説
  11. ビジネスではどのように 機械学習を用いるのか 11 機械学習 = 統計学を用いた分類、予測器 ビジネスにおける分類や予測 例) 売上げ予測 (人間が行う場合)

    明日の売上はだいたい ◦◦万円だな… 明日は雨で 祝日だから.. 明日の売上の 特徴
  12. ビジネスではどのように 機械学習を用いるのか 12 機械学習も同様に明日の売上の特徴データを入れる と明日の売上予測が出てくるシステムであればいい 例) 売上げ予測 (機械が行う場合) 明日の売上はだいたい ◦◦万円

    明日は雨で 祝日 入力 出力 特徴データ 予測結果 モデル
  13. モデルを学習させる 13 明日の売上はだいたい ◦◦万円 出力 結果 モデル もちろん何もしていない状態のモデルに特徴を入れても正しい 明日の売上予測を出してはくれない 特徴データと明日の売上予測の関係性をモデルに学習させなけ

    ればいけない 入力 明日は雨で 祝日 特徴データ 明日はくもりで 平日 明日は雨で 平日 明日の売上はだいたい ◦◦万円 明日の売上はだいたい ◦◦万円 関係性を学習
  14. 予測結果を出力させる 明日の売上はだいたい ◦◦万円 出力 予測結果 モデル 学習済みモデルに予測したいデータの特徴データを入力すると 予測結果が出力される モデル学習の方法によって予測結果の精度は異なる結果となる 入力

    明日は雨で 祝日 特徴データ 学習済みモデル
  15. 機械学習とは 15 人間が普段何気なく行っている学習能力を機械に行わせるもの 多くのデータが集まるビジネスの市場において機械学習の利用 価値は高い Microsoft Azure Training Web Virtual

    Machine SQL DB IoT
  16. 機械学習の流れ

  17. 機械学習を行う流れ › このような機械学習はどのような流れで行うか › 基本的にこの4ステップに分かれる 17 データの用意 アルゴリズム の決定 モデル学習

    評価 学習を行うための 特徴データのセット どのアルゴリズムで 機械学習を行うか 選出したアルゴリズム とデータを用いて学習 学習結果がどれくらい よかったのかを評価
  18. データの用意 › 予測させたいデータとその特徴データのセットを用意 › 予測させたいデータは正解を意味するので教師データ と呼ばれる 18 特徴データ 教師データ

  19. アルゴリズムの決定 › おおまかには3つに分類 › 教師ありということはもちろん教師なしもある › その他強化学習などもある › 考えている問題に教師データがあるかないか ›

    さらに、回帰か識別かを考える必要がある 19 教師あり学習 教師なし学習 強化学習 サポートベクトルマシン ニューラルネットワーク 決定木 K-means クラスタリング Q学習 教師データがあるかないかで使用する機械学習アルゴリズムが決定する 回帰 識別 or
  20. 回帰分析 › 回帰分析とは入力と出力の関係性を分析する分析手法 › Y=2Xは単純な回帰だがこれを売上データや多次元の入 力特徴で分析できるといろいろ便利 › 入力であるXを説明変数、出力Yを目的変数と呼ぶ › 入力Xに未知のデータを入れて予測に使ったりする

    20 0 10 20 X Y YとXの関係式は? Y = 2 X 20 売上と気温の関係式は? 0 10 20 気温 売上 20 Y(X) = ???
  21. 識別、分類 › データの関係性を学習させるのではなく、データの分類規則を学習 させる › 例) このメールはスパムか?スパムでないか?の分類 › 識別境界をどこに引くか ›

    True or Falseの識別だけでなく、プロモーションメール、重要メール、 SPAMメールなど、多次元分類可能 21 http://hokuts.com/wp-content/uploads/2015/11/spam_graph.png プロモーション メール? SPAM メール? 重要メール?
  22. 回帰か、識別か › データの予測を行いたいならば回帰 › データが◦◦に分類されるかどうか知りたいなら識別 › 回帰か識別かによっても使用できるアルゴリズムが決 まってくる 22 例)

    ビジネスデータ 売上予測を行いたい→回帰分析 商品を(A~Fで)ランク付けを行いたい→識別
  23. 機械学習のアルゴリズム 選出方法 › まず回帰か識別か › その後教師ありか教師なしか › それによって使用するアルゴリズムを決定する › 線形か非線形かも考慮する必要がある

    23 Start 回帰か?識別か? 教師ありか?教師なしか? ニューラル ネットワーク 分析対象は 線形か? 非線形か? いろんなアルゴリズムを試してみて、 一番精度が良かったやつを採用する 予測結果の精度は分析対象のデータに大きく依存する =必ずこれがいいというアルゴリズムはない
  24. モデルを学習をする 24 選定したアルゴリズムを実装した機械学習ツールなどを用いてモデルを学習させる 何回学習させるのか?学習時の各パラメータはどうするのか? → 学習データに大きく依存するため、正解はない いろんなパラメータを試してみて、 一番精度が良かったやつを採用する

  25. 学習したモデルを評価する 25 モデルの学習が完了して予測結果も出力された! →果たしてその予測結果はどれぐらい正確なのか? 学習したモデルの良さを評価しなければいけない 例) 平均絶対誤差 たくさんデータを入れてみて予測データと実際の値との差の平均を算出 データ全体として、そのぐらいの誤差がでるよという定量的な評価を下せ る

  26. 機械学習を行う流れ 26 データの用意 アルゴリズム の決定 モデル学習 評価 機械学習はこのような流れを経て、実用的なシステムとなる このようなシステムを構築するために1からプログラムを用意したり、 実装したライブラリ同士をつなげ合わせるのは非常に大変

    Azure Machine Learningならこれらの工程に必要なものが(すべて)そろっている
  27. Azure Machine Learning

  28. Azure MLでの 機械学習の流れ › Azure MLでの機械学習の流れは以下のとおり 28 学習用データセットの アップロード Experimentの作成

    実験、評価 Webサービス化 機械学習の学習データとなる特 徴データと教師データのリスト をアップロードする どのように処理、学習するのか を状態遷移図で作成 つくったexperimentがど れぐらいの性能を持つの か評価する 作った機械学習モデルから 予測データを取得するWeb サービスを作る
  29. データの配置方法 › 学習データをどのようにMLに配置するか › 学習データの配置方法は以下の3つ › 基本的にはSaved DataSetかReader 29 Enter

    Data Manually Saved DataSet Reader CSVやTSVの直接書き込み CSVやTSVのデータを アップロードして配置 Http、SQL、Storage など外部サービスから データを読み込み
  30. なぜデータを分割するのか › すべてのデータでモデルを学習させてしまうと未知のデータ に対応できるか評価できない › そこでデータを分割してモデル学習に用いていないデータを 作り、そのデータに対し評価を行うことで未知データへの適 応性を評価する(Open評価) 30 データセット

    分割 学習用データ 評価用データ モデル学習 モデル評価 Close評価 Open評価
  31. Azure ML 応用編 31

  32. もう少し複雑な処理を したいときは? › PythonやRのコードを実行できるモジュールが存在 › 外部ライブラリなどはデータセットとしてアップロードす ることで対応可能 › 機械学習でできることはたいていPythonかRでできるので Azure

    MLだから~ができないということはほぼない 32
  33. 統計解析をするには? › めんどくさいアルゴリズムを記述しなくても基本 的な統計データを取得できる 33

  34. Gallery › 作成したexperimentを共有できる › 限定公開も可能 › 今回のexperimentも公開しています 34

  35. 価格について › 実験をしなくてもexperimentを保持しているだけで お金がかかってくる › 価格 = 実験シート数 + Studio使用料

    + API使用料 › 私はだいたい放置してて月に1000円前後 › 10GBのFreeプランがあります 35
  36. 価格について 36

  37. どこで学べばいい? › Azure MLについて › 公式ドキュメントは正義 › Galleryに公開されているexperimentやチュートリアルをやってみる › 機械学習について

    › フリーソフトではじめる機械学習入門 › その他解説サイトなどを参考に › (数式ばかりのやつだと辛いかも) › 統計について › 数式を避けられないのでR言語とか触ってイメージをつかむ › サンプルデータ › 気象庁の過去気象データを応用すべし 37