Slide 1

Slide 1 text

機械学習を学び始める人のための
 最初の一歩
 NaITE #32

Slide 2

Slide 2 text

アジェンダ
 1. なぜ、機械学習を学ぶのか?
 2. 学習の仕組みを知る
 3. 機械学習プログラムの仕組みを知る
 4. 機械学習の仕組みを知る


Slide 3

Slide 3 text

アジェンダ
 1. なぜ、機械学習を学ぶのか?
 2. 学習の仕組みを知る
 3. 機械学習プログラムの仕組みを知る
 4. 機械学習の仕組みを知る


Slide 4

Slide 4 text

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


Slide 5

Slide 5 text

最初の1分:個人ワーク
 次の2分:隣の人に対して発表(各1分)
 ワーク:3分間 〜あなたが今日ここに来た理由〜


Slide 6

Slide 6 text

➢ 漠然とした不安
 ➢ 数学アレルギー
 私の場合


Slide 7

Slide 7 text

正体がわからないものは
 恐ろしい


Slide 8

Slide 8 text

この勉強会が、不安と向き合う
 最初の一歩になれば幸いです


Slide 9

Slide 9 text

機械学習のプログラムが
 何をしているのかざっくり知りたい人
 このセッションの対象者


Slide 10

Slide 10 text

機械学習の概要は知っているが、
 プログラムを書く手順がわからない人
 このセッションの対象者


Slide 11

Slide 11 text

藤原 考功(Takanori Fujiwara)
 ニックネーム:Culvert(暗渠)
 推しメン:西住みほ(GuP)
 座右の銘:諦めない
 特技:ブラックボックステスト
 探索的テスト
 


Slide 12

Slide 12 text

アジェンダ
 1. なぜ、機械学習を学ぶのか?
 2. 学習の仕組みを知る
 3. 機械学習プログラムの仕組みを知る
 4. 機械学習の仕組みを知る


Slide 13

Slide 13 text

そもそも、
 学習とは?


Slide 14

Slide 14 text

辞書の定義(大辞林)
 1. まなびおさめること。勉強すること。
 2. 生後の反復した経験によって、個々の個体の行動に環境に対 して適応した変化が現れる過程。
 3. 過去の経験によって行動の仕方がある程度永続的に変容す ること。新しい習慣が形成されること。
 4. 新しい知識の獲得、感情の深化、よき習慣の形成などの目標 に向かって努力を伴って展開される意識的行動。


Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

眠くなってしまうので
 実際にやってみましょう


Slide 17

Slide 17 text

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


Slide 18

Slide 18 text

ワーク:3分間 ペンギンの分類
 イワトビペンギン
 イワトビペンギン
 コウテイペンギン
 コウテイペンギン
 ケープペンギン
 ケープペンギン  
 ケープペンギン
 イワトビペンギン


Slide 19

Slide 19 text

覚えられましたか?


Slide 20

Slide 20 text

ではここでクイズです!


Slide 21

Slide 21 text

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


Slide 22

Slide 22 text

クイズ:コウテイペンギンはどれ?
 ケープペンギン
 コウテイペンギン
 コガタペンギン
 アデリーペンギン
 ???


Slide 23

Slide 23 text

???


Slide 24

Slide 24 text

実は、もうひとつ
 コウテイペンギンの画像がありました


Slide 25

Slide 25 text

コウテイペンギン
 (赤ちゃん)


Slide 26

Slide 26 text

クイズ:コウテイペンギンはどれ?
 コウテイペンギン
 (赤ちゃん)
 ケープペンギン
 コウテイペンギン
 コガタペンギン
 アデリーペンギン


Slide 27

Slide 27 text

ペンギンを識別できるようになるためのプロセス
 1. ペンギンの画像を見る
 2. 種別ごとの特徴を画像から判断する
 3. 判断した結果を記憶する
 4. 新しく、ペンギンの画像を見る
 ※ただし、学習していないことは判断できない


Slide 28

Slide 28 text

あらためて、
 「学習」の定義を
 見てみましょう


Slide 29

Slide 29 text

辞書の定義(大辞林)
 1. まなびおさめること。勉強すること。
 2. 生後の反復した経験によって、個々の個体の行動に環境に対 して適応した変化が現れる過程。
 3. 過去の経験によって行動の仕方がある程度永続的に変容す ること。新しい習慣が形成されること。
 4. 新しい知識の獲得、感情の深化、よき習慣の形成などの目標 に向かって努力を伴って展開される意識的行動。


Slide 30

Slide 30 text

いま体験した「学習」は、
 データを見て法則を見出すこと


Slide 31

Slide 31 text

[まとめ]学習のプロセス
 
1. 複数のデータを得る
 2. データに対して、暗黙的に特徴を見出す
 3. 特徴を記憶する
 4. 新しく得たデータに対して、記憶をもとに判断する


Slide 32

Slide 32 text

機械学習のプログラムも考え方は全く同じ
 1. 複数のデータを与える
 2. プログラムが、データの特徴を自動的に判断する
 3. 判断した結果を記憶する(=学習結果)
 4. 新しく得たデータに対して、学習結果をもとに判断する


Slide 33

Slide 33 text

次!


Slide 34

Slide 34 text

アジェンダ
 1. なぜ、機械学習を学ぶのか?
 2. 学習の仕組みを知る
 3. 機械学習プログラムの仕組みを知る
 4. 機械学習の仕組みを知る


Slide 35

Slide 35 text

機械学習のプログラムを
 実際に書いてみました


Slide 36

Slide 36 text

参考書籍
 
 
 すぐに使える! 業務で実践できる! 
 Pythonによる AI・機械学習・
 深層学習アプリのつくり方
 


Slide 37

Slide 37 text

機械学習のプログラムを作成するまでの手順
 1. 環境を構築する
 2. 写経する
 3. 実行する
 ※まずは動けばよかろうなのだ!


Slide 38

Slide 38 text

1. 環境を構築する
 1) Windowsの場合
 2) Macの場合
 いずれも、書籍に従ってツールをインストールする


Slide 39

Slide 39 text

1. 環境を構築する
 今回使ったツール
 ➢ Jupyter Notebook
 ○ Pythonのエディタと実行環境のセット
 ○ ブラウザを起動するだけで使えるのでとても楽


Slide 40

Slide 40 text

1. 環境を構築する(つまづいたポイント)
 1) Windowsの場合
 特になし
 2) Macの場合
 Dockerイメージが起動できない (未解決)


Slide 41

Slide 41 text

2. 写経する
 本のとおりにコードを書くだけの簡単なお仕事
 (10〜20行程度)


Slide 42

Slide 42 text

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


Slide 43

Slide 43 text

3. 実行する(つまづいたポイント)
 ➢ 動かない
 ○ 単純な構文ミス(エラーメッセージがわかりづらい)
 ○ 正しく写経しているのに動かない→環境の再起動
 ※つまり、大きな挫折ポイントなし


Slide 44

Slide 44 text

実際にやってみてわかったこと
 ➢ 簡単なプログラムを作成するだけなら、ハードルは低い
 ○ 環境構築が楽
 ○ コードの行数が少ない
 ○ 仕組みを理解しなくても、動くものは作れる


Slide 45

Slide 45 text

書籍を見て実際に書いてみたプログラム
 1. AND演算 と XOR演算 をする
 2. アヤメの品種を識別する
 3. ワインの品質を分類する
 4. 過去のデータから天気を予測する


Slide 46

Slide 46 text

続いて


Slide 47

Slide 47 text

プログラムの構成


Slide 48

Slide 48 text

処理の流れ(プログラムに関わらず共通)
 1. データを準備し、読み込む
 2. 読み込んだデータを学習用とテスト用に分ける
 3. アルゴリズムを指定して、学習用データを学習させる
 (=識別器を作る)
 4. テストデータを与えて、結果を得る


Slide 49

Slide 49 text

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


Slide 50

Slide 50 text

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


Slide 51

Slide 51 text

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


Slide 52

Slide 52 text

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


Slide 53

Slide 53 text

[まとめ]構成は驚くほどシンプル
 1. データを集めて、分けて、プログラムに与えるだけ
 2. アルゴリズムは、用意されているものから選択する
 3. 与えるデータによって結果は変わる


Slide 54

Slide 54 text

アルゴリズムは、用意されているものから選択する
 1. (識別器を作るだけが目的なのであれば)
 既に存在するアルゴリズムから
 精度が出るものを選択するだけ
 2. 選択したアルゴリズムによって結果(精度)は変わる


Slide 55

Slide 55 text

与えるデータによって結果は変わる
 1. データを与えなければ学習できない
 2. データの数と質が大事


Slide 56

Slide 56 text

さいごに


Slide 57

Slide 57 text

アジェンダ
 1. なぜ、機械学習を学ぶのか?
 2. 学習の仕組みを知る
 3. 機械学習プログラムの仕組みを知る
 4. 機械学習の仕組みを知る


Slide 58

Slide 58 text

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


Slide 59

Slide 59 text

[まとめ]学習機能をソフトウェアに持たせること
 1. 学習機能を持ったプログラム(識別器)を作成する
 2. 識別器にデータを与え、学習させる
 3. 識別器にデータを与え、結果を得る


Slide 60

Slide 60 text

従来型のプログラムは、演繹的アプローチ
 1. ロジックが先、データが後
 2. まず現実世界をモデル化し、ルールを決める
 3. ルールに従ってデータが処理される


Slide 61

Slide 61 text

機械学習プログラムは、帰納的アプローチ
 1. データが先、ロジックが後
 2. 与えたデータをもとに識別器が学習する
 3. 識別器が学習した結果に従ってデータが処理される


Slide 62

Slide 62 text

機械学習ができること(代表例)
 1. 分類:データを分類する
 例:ペンギンの分類
 2. 回帰:過去のデータから、未来の値を予測する
 例:天気予報
 3. 推薦:あるデータに関連する情報を導き出す
 例:あなたへのおすすめ


Slide 63

Slide 63 text

機械学習を使うには、目的を決めることが大事
 データを分類したい?
 未来の値を予測したい?
 関連する情報を導き出したい?


Slide 64

Slide 64 text

機械学習の分類
 1. 教師あり学習:データとともに正解を教える
 ※正解は教えるがロジックは教えない
 2. 教師なし学習:データは与えるが正解は教えない
 3. 強化学習:行動した結果に対して正解を与える
 例:どんな形でもゴールに辿り着けば正解とする
   →プログラムは、最適なルートを自ら導き出す


Slide 65

Slide 65 text

機械学習プログラムの構築プロセス
 1. 目的を決める
 2. 識別器(モデル)を作成する
 3. データを集め、整形・加工・分割する
 4. データを学習させる
 5. 結果に応じてデータやアルゴリズムを調整する


Slide 66

Slide 66 text

素朴な疑問


Slide 67

Slide 67 text

機械学習プログラムを
 テストすることはできる?


Slide 68

Slide 68 text

従来型のプログラムは、演繹的アプローチ
 1. ロジックが先、データが後
 2. まず現実世界をモデル化し、ルールを決める
 3. ルールに従ってデータが処理される
 4. 上記3.が保証されていることをテストすれば良い


Slide 69

Slide 69 text

機械学習プログラムは、帰納的アプローチ
 1. データが先、ロジックが後
 2. 与えたデータをもとに識別器が学習する
 3. 識別器が学習した結果に従ってデータが処理される
 4. 結果は確率的であり、ロジックはテストできない


Slide 70

Slide 70 text

とを見分けるために
 1. 赤色は、オレンジ色はと人間が定義するのが
 従来型のプログラム
 2. 複数のデータをもとに
 はリンゴ、はオレンジとプログラムが判断するのが
 機械学習のプログラム


Slide 71

Slide 71 text

機械学習プログラムの評価ポイント
 1. 目的を決める
 2. 識別器(モデル)を作成する
 3. データを集め、整形・加工・分割する
 4. データを学習させる
 5. 結果に応じてデータやアルゴリズムを調整する


Slide 72

Slide 72 text

機械学習はデータが命
 1. データを与えなければ学習できない
 2. データの数と質が大事
 3. 識別器(モデル)だけではなく、
 データも評価しなければならない


Slide 73

Slide 73 text

識別器(モデル)を評価する
 1. 選択したアルゴリズムによって精度は変わる
 2. 目的に応じてデータを加工する必要もある
 3. アルゴリズムとデータを適切に選んで、
 初めて有効な識別器となる


Slide 74

Slide 74 text

機械学習プログラムを評価する際の注意点
 1. どのような学習結果を得たかは、厳密にはわからない
 2. データを変えれば結果も変わる
 3. 識別器(モデル)を一部変えれば全てが変わる


Slide 75

Slide 75 text

全体のまとめ


Slide 76

Slide 76 text

このセッションでお伝えしたこと
 1. 学習の仕組みを知る
 2. 機械学習プログラムの仕組みを知る
 3. 機械学習の仕組みを知る


Slide 77

Slide 77 text

機械学習、最初の一歩(※)
 1. 人は、経験によって学習する
 2. 機械学習とは、学習機能を持つプログラムを作ること
 3. 簡単なプログラムであれば、作成自体は容易
 4. 識別器(モデル)とデータを評価する必要がある
 ※あくまで最初の一歩です。学習が進むと例外も出てくるでしょう。


Slide 78

Slide 78 text

ここまで理解すれば、
 最初の一歩はクリアです!


Slide 79

Slide 79 text

本セッションが、みなさまの
 一助となりましたら幸いです☺


Slide 80

Slide 80 text

おつかれさまでした