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.

初めて機械学習を勉強しました

891 views

Published on

2017年11月28日 Cloud Developers Circle #5 - 機械学習乃集い
にてお話した、初めての機械学習への取組の様子です。

Published in: Technology

初めて機械学習を勉強しました

  1. 1. 初めて機械学習を 勉強しました 日本マイクロソフト株式会社 マイクロソフトテクノロジーセンター 吉田 雄哉
  2. 2. 大きい声では言えないのですが、 機械学習って何となくしか知らないです ということで、今回は初チャレンジの様子をお届けします
  3. 3. 何からやろうかな https://azure.microsoft.com/ja-jp/overview/machine-learning/
  4. 4. https://docs.microsoft.com/ja-jp/azure/machine-learning/studio/data-science-for-beginners-the-5-questions-data-science-answers
  5. 5. 機械学習ができること •A か B か •異常か •どのくらいの量または数か •どのような構成か •次に何をすべきか
  6. 6. https://docs.microsoft.com/ja-jp/azure/machine-learning/studio/create-experiment Machine Learning のチュートリアル: Azure Machine Learning Studio で初めてのデータ サイエンス 実験を作成する
  7. 7. もうすでに、何か入ってますけど。。。
  8. 8. あれ?
  9. 9. どうやらWorkSpaceっていうのを 作ってないところではダメなようだ
  10. 10. ドラッグしてドロップ これが基本動作
  11. 11. おお、データが入ってる入ってる
  12. 12. どうやら、車のスペックと価格の表のようだ
  13. 13. まずはデータを奇麗にするのが ポイントらしい 確かに抜けてるのがあります
  14. 14. Select~をドラッグしてドロップして 上の丸から下の丸へドラッグドロップ
  15. 15. どの列をぶっこぬくかという設定
  16. 16. クリーニングするモジュールを 追加して、値が無かったら 行を削除する・・・と設定
  17. 17. 元データ
  18. 18. 別の列の データが入ってないものが 除外されている
  19. 19. ここまで何やったのか • 実験場を準備 • データを準備 • データのクリーニング • モジュールを使って列を削除 • 全列を対象にして、データが入っていない行を削除
  20. 20. 特徴のサブセットを作る • 実験するうえで必要となる列のピックアップ 予測するときに関係する列(特徴)を機械に教える作業
  21. 21. 学習アルゴリズム • データが準備できたので次はトレーニングとテスト • トレーニング:アルゴリズムの作成 • テスト:作られたものの精度を確かめる作業 • ところで、オレ今何してるんだ? • 自動車の特徴から価格を予想する • 逆に言えば、我々(教師)は自動車の特徴と価格に関係性がある ということを知っている。だから、予測できるはずだ!
  22. 22. データを分割する • 全データのうち75%のデータで学習させて、 残り25%のデータで予測を行ってみる • もちろん残り25%のデータには答えである価格がある 比較することで予測の精度を確かめられる 75%分 25%分
  23. 23. 線形回帰とトレーニングデータを トレーニングモジュールにつなげる
  24. 24. Priceを選ぶ どこの列を予測するのかを選んでいる
  25. 25. 実験(Run)
  26. 26. トレーニング結果 なんのこっちゃわからん
  27. 27. 左側が実際の値 右側が予測の値
  28. 28. モデルの評価を行う
  29. 29. 決定係数というらしい ここが1に近づくと予測精度が高いとなる
  30. 30. ということで、こちらが全体像
  31. 31. この部分はチュートリアルで 変更してなかったので・・・
  32. 32. 何となく0.001を0.01にしてみた ちびっと下がった。。。
  33. 33. 何となく0.001を0.00001にしてみた
  34. 34. [追加分] 何となく変えたものを調べた ここで何となく変えたregularization weightをちゃんと調べてみた。 この値が小さいほど正則化が強まり、過学習が解消され、汎化性能が高まるそうだ。 この線形回帰という分析手法では、特徴数(今回では元データの列の数)に対してサン プルデータの数が少なかった場合、過学習という現象が起きてしまい精度が悪くなる だ。そこで、補正値を設けてこの状況を調整できるようになっている・・・そうです。 下の図は見つけた解説ブログから引用しました。今回のチュートリアルでは初期値と して設定されていた0.001が最適な数値だったのでチューニングがいらなかったって ことですかね~。 http://aidiary.hatenablog.com/entry/20150908/1441720346
  35. 35. アルゴリズムを変更した 結果は・・・悪くなってる ということで、たぶんこんな感じでロジックを変えてみたり 数字を調整してみたりして、再計算をしたりするのだと思います。
  36. 36. このあとは? 1~4は 今回実施できた 今回のチュートリアルでは1~4のやり方が説明されていた。 上記の6つのステップは別のドキュメントから拝借してきたのだが、 あと勉強する内容としては5,6の内容がある。つまり、ここで作った予測のロジックを Webサービスに昇華させ、特徴を入力してくれたら予測するよという機能を提供できるわけだ。
  37. 37. 今回のトライをしてみての感想 • 色々な実験をやってみて、どんなことができるかを もっと掘り下げていきたい • 各種アルゴリズムがそもそもどんなのがあるのか 基礎的な勉強をする必要がある • データの処理から、モデルの学習、結果評価と必要そうなもの が一通り揃っており、ほかのチュートリアルもやってみたいと 感じました。
  38. 38. そして、もう一つの感想 • 職業柄クラウドの機能はいろいろ試すのですが、今回は本当に これまで勉強していなかった機能だったので、勉強する過程を ご紹介しました。 • ここで重要な点は、私の場合今回ご覧いただいているスライド と同じようなものを勉強するときにいつも作ってます。 つまり、過程をスライドとして残しながら、いろいろとメモを 書き入れて残しながらクラウドの勉強をしています。 • そうすると、このようにお話で使ってみたり、わからないとこ ろを人に聞くときにも役立ちます。(もちろん、うまくいかな かった過程なども残してます) • パワポのノートの機能を使えば、別にとったメモであったり、 その時考えていたことなども記録できるので便利だと思います。
  39. 39. 自己紹介 日本マイクロソフト株式会社 マイクロソフトテクノロジーセンター Azure テクニカルアーキテクト 吉田 雄哉(吉田パクえ) 2015年1月1日入社 得意分野 オープンソース系 yuyalush yuya_lush

×