SlideShare a Scribd company logo
1 of 36
機械学習入門
機械学習って大体こんな感じやで
目次
1. 勉強会の目標
2. 機械が学習するとは?
3. 機械学習実践~手書き文字の認識~
4. まとめ
目次
1. 勉強会の目標
2. 機械が学習するとは?
3. 機械学習実践~手書き文字の認識~
4. まとめ
勉強会の目標
 AIに興味を持ってもらい、何か行動を起こして
もらうこと。(読書、調べもの等…)
 機械学習の大まかなイメージを伝えることに主
眼を置くため、細かい部分まで説明しません。
難しい部分も噛み砕いて説明するので、厳密に
いうと事実と若干異なる部分もあります。ご了
承ください。
お前、何様やねん
 約2年前、最初は「AIに為替相場を予想させた
ら金持ちになれるのでは?」という邪な気持ち
でAIの勉強を始めた。
 その後、AIの奥深さにはまり「kaggle」という
人工知能コンペティションサイトに参加し始め
る。
Kaggle(カグル)とは
AI課題を抱えた企業
・課題内容
・データセット
・賞金
Kaggle参加者
通称kaggler
全世界で約9万人
・解決モデルの提供
Kaggle
Kaggle参加事例( Home Credit Default Risk)
金融機関 ローン組ませて!
年収
家族構成などなど…
Yes?No?
→AIで判断する課題
目次
1. 勉強会の目標
2. 機械が学習するとは?
3. 機械学習実践~手書き文字の認識~
4. まとめ
 いろいろ難しい理論やらアルゴリズムやらの話
はあるんだけど、結局突き詰めていくと機械学
習とは「〇〇〇」である。by ワイ
※漢字3文字
※ヒント:〇〇化
機械学習って結局…
最適化
ここから先3枚のスライドが、
機械学習の直感的な理解を得る上で非常に重要です。
最適化の例(住宅価格の分布)
価格y
面積x最も住宅価格の分布を説明している直線は?
モデル:
y=ax + b
当てはまりの悪さを数値化するには?
価格y
面積x
直線と全てのデータとの距離の和を指標にする。
→距離の和を最小化するようにaとbを調整すれ
ば、最適な直線に近づく。(最適化)
モデル:
y=ax + b
学習
学習の正体
 学習とは突き詰めると目標を最適化するように
パラメータを調整していく行為
(住宅価格の例:y=ax + bのa,b)
 どんなに課題が複雑で難しくなっても、本質的
には同じ
 人間が可視化できない課題を学習することに機
械学習の意義がある。
目次
1. 勉強会の目標
2. 機械が学習するとは?
3. 機械学習実践~手書き文字の認識~
4. まとめ
今回の課題「手書き文字」
以下のような、0~9の手書き文字の画像(28×28ピクセル)に何の数
字が書いてあるのかを機械に判断させる。
※今回は「MNIST(エムニスト)」と呼ばれるデータセットを使用する。
MNISTは60000枚
の画像データがある
課題解決に必要なもの
 データ
 モデル(y=ax+bに当たるもの)
 損失関数(どんだけミスってるか指標)
 住宅価格の例でいうところの、直線と全ての
データとの距離の和
課題解決に必要なもの
 データ
 モデル(y=ax+bに当たるもの)
 損失関数(どんだけミスってるか指標)
 住宅価格の例でいうところの、直線と全ての
データとの距離の和
データ
 機械学習には以下のデータが必要
 教師データ
 テストデータ
 検証データ(※今回は省略)
教師
データ
テスト
データ
教師データとテストデータ
モデル
教師
データ
学習
適切なパラメータを模索
学習済モデル
テスト
データ
正答率
95%やで!
機械学習では汎用的に使えるものを目指すため、
学習したモデルに対してテストデータを用いて性能を評価する。
※今回は教師データを20000件、テストデータを10000件使用。
課題解決に必要なもの
 データ
 モデル(y=ax+bに当たるもの)
 損失関数(どんだけミスってるか指標)
 住宅価格の例でいうところの、直線と全ての
データとの距離の和
モデル(y=ax+bに当たるもの)
 手書き画像は28×28=784個の情報を持つ。
 先ほどの例のような直線では表現しきれない。
 そのため、より複雑な表現が可能なモデルが必
要となる。
 ニューラルネットワークの活用
ニューラルネットワーク
 ニューラルワットワークは簡単に言えば「人間
の脳の構造」を模したアルゴリズム
 人間の脳は「ニューロン」と言われる神経細胞
が何層にも重なってできている。
ニューラルネットワークの例①
住宅価格の場合
x:面積
b:バイアス
w:重み
y:価格
入力層 出力層
ニューラルネットワークは以下のように示される。オレンジの丸をノード
と呼び、ノード間には重み(y=ax+bのa)とバイアス(y=ax+bのb)がパ
ラメータとして存在する。
例)w = 40 ,b=200
面積100㎡ の家は
100*40+200=4200(万円)
ニューラルネットワークの例②
その人に一目惚れするかどうか
X1:目の大きさ
X2:顔の小ささ
X3:肌の綺麗さ
バイアス
惚れる
惚れない
入力層 中間層 出力層
では、MNISTを解決するには
どんなモデルが必要?
分類の問題で
は分類したい
数だけ出口を
用意する。
重み:10個,バイアス:4個
MNISTの課題に必要なニューラルネットワークの構成
入力層 出力層中間層
784個 200個
10個
全てのノード間で重みとバイアスが存在する。
重み:235600個,バイアス:610個
画像の情報は入力層から入り、中間層を経て
出力層へ0~9の予想確率として出力される。
入力層 出力層中間層
0.01
0.05
0.01
0.10
0.01
0.78
0.01
0.01
0.01
0.01
0の確率
1の確率
2の確率
3の確率
4の確率
5の確率
6の確率
7の確率
8の確率
9の確率
課題解決に必要なもの
 データ
 モデル(y=ax+bに当たるもの)
 損失関数(どんだけミスってるか指標)
 住宅価格の例でいうところの、直線と全ての
データとの距離の和
損失関数(予測がどれだけミスってるか)
交差エントロピー誤差・・・予測が正解と離れているほど大きな値を返す。
※学習ではこの損失関数を最小化するようにパラメータを最適化する。
ラベル
AI予測結果
予測パターン① 予測パターン②
0 0 0
1 0 0
2 0 0
3 0 0
4 0.7 0
5 0 0.9
6 0.1 0.1
7 0.1 0
8 0.1 0
9 0 0
交差エント
ロピー誤差
16.11 0.1
右の図は、5が正解の画像に対す
るAI予想結果。
そして、一番下の行が予想結果に
対する交差エントロピー誤差の値。
式はΣとかlogとか出てきて、僕も
説明するの面倒なので載せません。
※式の意味とか知らなくてもフ
レームワーク使えば実装できる。
学習のプロセス①
【予測】
0の可能性0.1,
1の可能性0.2,
….
教師データ
20000件
※今回は教師データを50周ループさせる。
学習
ニューラルネットワーク
重み:235600個,バイアス:610個
交差エントロピー誤差
=例) 1.76
交差エントロピー誤差の値を減らす
ように
パラメータ(重み、バイアス)
を少しずつ変える。(誤差逆伝搬法)
学習のプロセス②
学習済モデルテストデータ
10000件
学習結果を評価
評価
実装方法
 言語はPythonが主に用いられることが多い。
 機械学習用のライブラリが豊富なため。
 ニューラルネットワークの実装はフレームワーク
を使用すると便利
 プログラム50行くらいしか書いてません
 今回はKerasというフレームワークを使用
 他、TensorFlow,Chainer等
損
失
関
数
学習結果
【評価結果】
テストデータ(10000件)を
用いた正答率97%
目次
1. 勉強会の目標
2. 機械が学習するとは?
3. 機械学習実践~手書き文字の認識~
4. まとめ
まとめ
 機械学習によってデータから手書き文字認識の
アルゴリズムを取得することができた。
 ニューラルネットワークは画像認識だけではな
く自然言語処理など様々な課題に対応可能
 データさえあれば様々な学習が実現できる。
※裏を返せば、機械学習はデータが命。
勉強法おすすめ①
 Coursera「Machine Learning」
 スタンフォード大学教授による授業
 Andrew Ng先生 ←神としか言いようがない
 https://www.coursera.org/learn/machine-
learning
勉強法おすすめ②
ゼロから作るDeepLearning
~Pythonで学ぶディープ
ラーニングの理論と実装~
オライリージャパン

More Related Content

Similar to Machine learning

Similar to Machine learning (12)

Webサービスを分類してみた
Webサービスを分類してみたWebサービスを分類してみた
Webサービスを分類してみた
 
Webサービスを分類してみた
Webサービスを分類してみたWebサービスを分類してみた
Webサービスを分類してみた
 
Javado2
Javado2Javado2
Javado2
 
機械学習導入1
機械学習導入1機械学習導入1
機械学習導入1
 
機械学習を始めるための第一歩
機械学習を始めるための第一歩機械学習を始めるための第一歩
機械学習を始めるための第一歩
 
Azure MLで機械学習をやってみよう
Azure MLで機械学習をやってみようAzure MLで機械学習をやってみよう
Azure MLで機械学習をやってみよう
 
【Tech Trend Talk vol.1】社外向け勉強会「機械学習の概要 -(GIG)」
【Tech Trend Talk vol.1】社外向け勉強会「機械学習の概要 -(GIG)」【Tech Trend Talk vol.1】社外向け勉強会「機械学習の概要 -(GIG)」
【Tech Trend Talk vol.1】社外向け勉強会「機械学習の概要 -(GIG)」
 
人工知能についての基礎知識
人工知能についての基礎知識人工知能についての基礎知識
人工知能についての基礎知識
 
ゆるふわぱいそん
ゆるふわぱいそんゆるふわぱいそん
ゆるふわぱいそん
 
知識0からなんとか動くボットを作った話
知識0からなんとか動くボットを作った話知識0からなんとか動くボットを作った話
知識0からなんとか動くボットを作った話
 
ソフトウェア工学におけるAIの学習方法
ソフトウェア工学におけるAIの学習方法ソフトウェア工学におけるAIの学習方法
ソフトウェア工学におけるAIの学習方法
 
R & Machine Leaning
R & Machine LeaningR & Machine Leaning
R & Machine Leaning
 

Machine learning