Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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
おつかれさまでした