Upgrade to Pro — share decks privately, control downloads, hide ads and more …

NaITE__32_First_ML.pdf

Culvert
June 29, 2019
280

 NaITE__32_First_ML.pdf

Culvert

June 29, 2019
Tweet

Transcript

  1. 機械学習を学び始める人のための

    最初の一歩

    NaITE #32

    View full-size slide

  2. アジェンダ

    1. なぜ、機械学習を学ぶのか?

    2. 学習の仕組みを知る

    3. 機械学習プログラムの仕組みを知る

    4. 機械学習の仕組みを知る


    View full-size slide

  3. アジェンダ

    1. なぜ、機械学習を学ぶのか?

    2. 学習の仕組みを知る

    3. 機械学習プログラムの仕組みを知る

    4. 機械学習の仕組みを知る


    View full-size slide

  4. なぜ、機械学習を学ぶのか?


    View full-size slide

  5. 最初の1分:個人ワーク

    次の2分:隣の人に対して発表(各1分)

    ワーク:3分間 〜あなたが今日ここに来た理由〜


    View full-size slide

  6. ➢ 漠然とした不安

    ➢ 数学アレルギー

    私の場合


    View full-size slide

  7. 正体がわからないものは

    恐ろしい


    View full-size slide

  8. この勉強会が、不安と向き合う

    最初の一歩になれば幸いです


    View full-size slide

  9. 機械学習のプログラムが

    何をしているのかざっくり知りたい人

    このセッションの対象者


    View full-size slide

  10. 機械学習の概要は知っているが、

    プログラムを書く手順がわからない人

    このセッションの対象者


    View full-size slide

  11. 藤原 考功(Takanori Fujiwara)

    ニックネーム:Culvert(暗渠)

    推しメン:西住みほ(GuP)

    座右の銘:諦めない

    特技:ブラックボックステスト

    探索的テスト


    View full-size slide

  12. アジェンダ

    1. なぜ、機械学習を学ぶのか?

    2. 学習の仕組みを知る

    3. 機械学習プログラムの仕組みを知る

    4. 機械学習の仕組みを知る


    View full-size slide

  13. そもそも、

    学習とは?


    View full-size slide

  14. 辞書の定義(大辞林)

    1. まなびおさめること。勉強すること。

    2. 生後の反復した経験によって、個々の個体の行動に環境に対
    して適応した変化が現れる過程。

    3. 過去の経験によって行動の仕方がある程度永続的に変容す
    ること。新しい習慣が形成されること。

    4. 新しい知識の獲得、感情の深化、よき習慣の形成などの目標
    に向かって努力を伴って展開される意識的行動。


    View full-size slide

  15. 眠くなってしまうので

    実際にやってみましょう


    View full-size slide

  16. ワーク:3分間 ペンギンの分類


    View full-size slide

  17. ワーク:3分間 ペンギンの分類

    イワトビペンギン

    イワトビペンギン

    コウテイペンギン

    コウテイペンギン

    ケープペンギン

    ケープペンギン  
 ケープペンギン

    イワトビペンギン


    View full-size slide

  18. 覚えられましたか?


    View full-size slide

  19. ではここでクイズです!


    View full-size slide

  20. クイズ:コウテイペンギンはどれ?


    View full-size slide

  21. クイズ:コウテイペンギンはどれ?

    ケープペンギン

    コウテイペンギン

    コガタペンギン

    アデリーペンギン

    ???


    View full-size slide

  22. ???


    View full-size slide

  23. 実は、もうひとつ

    コウテイペンギンの画像がありました


    View full-size slide

  24. コウテイペンギン

    (赤ちゃん)


    View full-size slide

  25. クイズ:コウテイペンギンはどれ?

    コウテイペンギン

    (赤ちゃん)

    ケープペンギン

    コウテイペンギン

    コガタペンギン

    アデリーペンギン


    View full-size slide

  26. ペンギンを識別できるようになるためのプロセス

    1. ペンギンの画像を見る

    2. 種別ごとの特徴を画像から判断する

    3. 判断した結果を記憶する

    4. 新しく、ペンギンの画像を見る

    ※ただし、学習していないことは判断できない


    View full-size slide

  27. あらためて、

    「学習」の定義を

    見てみましょう


    View full-size slide

  28. 辞書の定義(大辞林)

    1. まなびおさめること。勉強すること。

    2. 生後の反復した経験によって、個々の個体の行動に環境に対
    して適応した変化が現れる過程。

    3. 過去の経験によって行動の仕方がある程度永続的に変容す
    ること。新しい習慣が形成されること。

    4. 新しい知識の獲得、感情の深化、よき習慣の形成などの目標
    に向かって努力を伴って展開される意識的行動。


    View full-size slide

  29. いま体験した「学習」は、

    データを見て法則を見出すこと


    View full-size slide

  30. [まとめ]学習のプロセス

    
1. 複数のデータを得る

    2. データに対して、暗黙的に特徴を見出す

    3. 特徴を記憶する

    4. 新しく得たデータに対して、記憶をもとに判断する


    View full-size slide

  31. 機械学習のプログラムも考え方は全く同じ

    1. 複数のデータを与える

    2. プログラムが、データの特徴を自動的に判断する

    3. 判断した結果を記憶する(=学習結果)

    4. 新しく得たデータに対して、学習結果をもとに判断する


    View full-size slide

  32. アジェンダ

    1. なぜ、機械学習を学ぶのか?

    2. 学習の仕組みを知る

    3. 機械学習プログラムの仕組みを知る

    4. 機械学習の仕組みを知る


    View full-size slide

  33. 機械学習のプログラムを

    実際に書いてみました


    View full-size slide

  34. 参考書籍



    すぐに使える! 業務で実践できる! 

    Pythonによる AI・機械学習・

    深層学習アプリのつくり方


    View full-size slide

  35. 機械学習のプログラムを作成するまでの手順

    1. 環境を構築する

    2. 写経する

    3. 実行する

    ※まずは動けばよかろうなのだ!


    View full-size slide

  36. 1. 環境を構築する

    1) Windowsの場合

    2) Macの場合

    いずれも、書籍に従ってツールをインストールする


    View full-size slide

  37. 1. 環境を構築する

    今回使ったツール

    ➢ Jupyter Notebook

    ○ Pythonのエディタと実行環境のセット

    ○ ブラウザを起動するだけで使えるのでとても楽


    View full-size slide

  38. 1. 環境を構築する(つまづいたポイント)

    1) Windowsの場合

    特になし

    2) Macの場合

    Dockerイメージが起動できない (未解決)


    View full-size slide

  39. 2. 写経する

    本のとおりにコードを書くだけの簡単なお仕事

    (10〜20行程度)


    View full-size slide

  40. 3. 実行する

    実行ボタンを押すだけの簡単なお仕事


    View full-size slide

  41. 3. 実行する(つまづいたポイント)

    ➢ 動かない

    ○ 単純な構文ミス(エラーメッセージがわかりづらい)

    ○ 正しく写経しているのに動かない→環境の再起動

    ※つまり、大きな挫折ポイントなし


    View full-size slide

  42. 実際にやってみてわかったこと

    ➢ 簡単なプログラムを作成するだけなら、ハードルは低い

    ○ 環境構築が楽

    ○ コードの行数が少ない

    ○ 仕組みを理解しなくても、動くものは作れる


    View full-size slide

  43. 書籍を見て実際に書いてみたプログラム

    1. AND演算 と XOR演算 をする

    2. アヤメの品種を識別する

    3. ワインの品質を分類する

    4. 過去のデータから天気を予測する


    View full-size slide

  44. 続いて


    View full-size slide

  45. プログラムの構成


    View full-size slide

  46. 処理の流れ(プログラムに関わらず共通)

    1. データを準備し、読み込む

    2. 読み込んだデータを学習用とテスト用に分ける

    3. アルゴリズムを指定して、学習用データを学習させる

    (=識別器を作る)

    4. テストデータを与えて、結果を得る


    View full-size slide

  47. 1. データを準備し、読み込む


    View full-size slide

  48. 2. 読み込んだデータを学習用とテスト用に分ける

    学習用
 テスト用

    学習用


    View full-size slide

  49. 3. アルゴリズムを指定して、学習用データを学習させる

    学習用
 テスト用


    View full-size slide

  50. 4. テストデータを与えて、結果を得る

    学習用
 テスト用


    View full-size slide

  51. [まとめ]構成は驚くほどシンプル

    1. データを集めて、分けて、プログラムに与えるだけ

    2. アルゴリズムは、用意されているものから選択する

    3. 与えるデータによって結果は変わる


    View full-size slide

  52. アルゴリズムは、用意されているものから選択する

    1. (識別器を作るだけが目的なのであれば)

    既に存在するアルゴリズムから

    精度が出るものを選択するだけ

    2. 選択したアルゴリズムによって結果(精度)は変わる


    View full-size slide

  53. 与えるデータによって結果は変わる

    1. データを与えなければ学習できない

    2. データの数と質が大事


    View full-size slide

  54. さいごに


    View full-size slide

  55. アジェンダ

    1. なぜ、機械学習を学ぶのか?

    2. 学習の仕組みを知る

    3. 機械学習プログラムの仕組みを知る

    4. 機械学習の仕組みを知る


    View full-size slide

  56. あらためて、機械学習とは?


    View full-size slide

  57. [まとめ]学習機能をソフトウェアに持たせること

    1. 学習機能を持ったプログラム(識別器)を作成する

    2. 識別器にデータを与え、学習させる

    3. 識別器にデータを与え、結果を得る


    View full-size slide

  58. 従来型のプログラムは、演繹的アプローチ

    1. ロジックが先、データが後

    2. まず現実世界をモデル化し、ルールを決める

    3. ルールに従ってデータが処理される


    View full-size slide

  59. 機械学習プログラムは、帰納的アプローチ

    1. データが先、ロジックが後

    2. 与えたデータをもとに識別器が学習する

    3. 識別器が学習した結果に従ってデータが処理される


    View full-size slide

  60. 機械学習ができること(代表例)

    1. 分類:データを分類する

    例:ペンギンの分類

    2. 回帰:過去のデータから、未来の値を予測する

    例:天気予報

    3. 推薦:あるデータに関連する情報を導き出す

    例:あなたへのおすすめ


    View full-size slide

  61. 機械学習を使うには、目的を決めることが大事

    データを分類したい?

    未来の値を予測したい?

    関連する情報を導き出したい?


    View full-size slide

  62. 機械学習の分類

    1. 教師あり学習:データとともに正解を教える

    ※正解は教えるがロジックは教えない

    2. 教師なし学習:データは与えるが正解は教えない

    3. 強化学習:行動した結果に対して正解を与える

    例:どんな形でもゴールに辿り着けば正解とする

      →プログラムは、最適なルートを自ら導き出す


    View full-size slide

  63. 機械学習プログラムの構築プロセス

    1. 目的を決める

    2. 識別器(モデル)を作成する

    3. データを集め、整形・加工・分割する

    4. データを学習させる

    5. 結果に応じてデータやアルゴリズムを調整する


    View full-size slide

  64. 素朴な疑問


    View full-size slide

  65. 機械学習プログラムを

    テストすることはできる?


    View full-size slide

  66. 従来型のプログラムは、演繹的アプローチ

    1. ロジックが先、データが後

    2. まず現実世界をモデル化し、ルールを決める

    3. ルールに従ってデータが処理される

    4. 上記3.が保証されていることをテストすれば良い


    View full-size slide

  67. 機械学習プログラムは、帰納的アプローチ

    1. データが先、ロジックが後

    2. 与えたデータをもとに識別器が学習する

    3. 識別器が学習した結果に従ってデータが処理される

    4. 結果は確率的であり、ロジックはテストできない


    View full-size slide

  68. とを見分けるために

    1. 赤色は、オレンジ色はと人間が定義するのが

    従来型のプログラム

    2. 複数のデータをもとに

    はリンゴ、はオレンジとプログラムが判断するのが

    機械学習のプログラム


    View full-size slide

  69. 機械学習プログラムの評価ポイント

    1. 目的を決める

    2. 識別器(モデル)を作成する

    3. データを集め、整形・加工・分割する

    4. データを学習させる

    5. 結果に応じてデータやアルゴリズムを調整する


    View full-size slide

  70. 機械学習はデータが命

    1. データを与えなければ学習できない

    2. データの数と質が大事

    3. 識別器(モデル)だけではなく、

    データも評価しなければならない


    View full-size slide

  71. 識別器(モデル)を評価する

    1. 選択したアルゴリズムによって精度は変わる

    2. 目的に応じてデータを加工する必要もある

    3. アルゴリズムとデータを適切に選んで、

    初めて有効な識別器となる


    View full-size slide

  72. 機械学習プログラムを評価する際の注意点

    1. どのような学習結果を得たかは、厳密にはわからない

    2. データを変えれば結果も変わる

    3. 識別器(モデル)を一部変えれば全てが変わる


    View full-size slide

  73. 全体のまとめ


    View full-size slide

  74. このセッションでお伝えしたこと

    1. 学習の仕組みを知る

    2. 機械学習プログラムの仕組みを知る

    3. 機械学習の仕組みを知る


    View full-size slide

  75. 機械学習、最初の一歩(※)

    1. 人は、経験によって学習する

    2. 機械学習とは、学習機能を持つプログラムを作ること

    3. 簡単なプログラムであれば、作成自体は容易

    4. 識別器(モデル)とデータを評価する必要がある

    ※あくまで最初の一歩です。学習が進むと例外も出てくるでしょう。


    View full-size slide

  76. ここまで理解すれば、

    最初の一歩はクリアです!


    View full-size slide

  77. 本セッションが、みなさまの

    一助となりましたら幸いです☺


    View full-size slide

  78. おつかれさまでした


    View full-size slide