機械学習(仮)
MOBILE	CONFERENCE	2017
Room	B	14:45-15:25
森下功啓
1
⾃⼰紹介
阿蘇の雲海予報「うんかいったー」やってます
https://twitter.com/unkaitter
2
名前
⽣息地
趣味の⼀つ
SNS Facebook			https://www.facebook.com/katsuhiro.morishita
Github https://github.com/KatsuhiroMorishita
SlideShare https://www.slideshare.net/katsuhiromorishita/
⿅児島から北へ新幹線で1時間弱
森下功啓 @KatsuhiroKU
機械学習
3
https://akumamoto.jp/archives/42951
うんかいったーを阿蘇観光協会の⽅が
使ってくれているそうです(^^)/
4
LoRa通信デバイス +	センサー
最近作っているものズ
⽔中測位システム
機械学習の勉強会を⿅児島でもやってます
次回は7/8です。次回以降、↓を上から順に消化予定
1.keras を使って線形回帰問題を解く
2.主成分分析による次元圧縮
3.学習成果の確認⽅法
4.学習パラメータのグリッドサーチの⽅法
https://kagonma-larning.connpass.com/event/58369/
5
6
ーオトナのプログラミング勉強会 in	熊本市(iOS回)6/21のアンケート結果
機械学習の関⼼は⾼いんだな〜
今⽇はモバイル向けの機械学習の話
7
機械学習の利⽤例
8
病気の診断・投薬の判定
地滑りの危険性の判定
農作物の収量予測
⽯油価格の予想→先物取引
機械学習の利⽤例
9
*今は弱い⼈⼯知能ばかり
やりたいことは、
⼈間の代わりにソフトウェアに判断させたり、
対応させたり、予測したり。
ソフトならスケールし易い。
10
http://dreamoon.com/dream/wp-content/uploads/2016/05/chappie.jpg
2050年ごろには・・・11
Android上で動作するTensorFlow Lite爆誕
12
モバイルへの機械学習の実装は、
伝統的な多変量解析や3,4層ニューラルネットなら可能だが、
流⾏りの深層学習の学習済みのモデルの移植は
まだキビシイ
機械学習器を搭載したサーバーが必要
AzureやAWSでサクッと実現できないか?
13
https://aws.amazon.com/jp/machine-learning/
\(^o^)/ 14
ーMicrosoft	Azure	Machine	Learning	のアルゴリズムの選択⽅法
https://docs.microsoft.com/ja-jp/azure/machine-learning/machine-learning-algorithm-choice
(	TДT)
15
恐らく、初歩的な知識が無いままに
利⽤可能な汎⽤的な機械学習サービスは出現しない。
現時点でのAzureなどのクラウド上の機械学習サービスは、
サービス拡⼤の過渡期間での利⽤や
巨⼤なリソースを要する学習への利⽤が吉
ともあれ、機械学習の基礎知識とローカルでの試⾏錯語が必要
16
今⽇はモバイル向けの機械学習の話?
17
今⽇はモバイル向けの機械学習の話
⼀般的な機械学習の話
18
チャットボットなどは私より詳しい⼈が絶
対にこの中に居ますし。Cognitive	Serviceは
ググればきっと分かりますし。(笑)
やっと⽬次
• ⾃⼰紹介
• 導⼊
• 機械学習って何だ?
• 機械学習の始め⽅と例
ゴールは、明⽇から機械学習
ができるようになること!!
検索ワードが頭に⼊るだけで
もイイカナ?
19
機械学習って何だ?
20
機械学習とは?
21
ソフトウェアにより、⾃動的にパターンを学習するもの
ただし、線形・ガウス分布等を仮定した従来の多変量解析を除く
卒業の可能性80%
判定:要ケア
たとえば、、、
22
⼈間の意識ほど揺らいで不確かなものはない
数値に対するロジカルな判断が必要であれば、
イレギュラーでもない限り、ソフトウェアに任せよう
例1:	WWⅡの⽶艦艇の対空防御
• 射撃の⽅向を固定していた(らしい)
• 攻撃のために接近してくる航空機を⽬で追って撃
つのではなく、各銃座が担当射撃⽅向を決めて撃
てば「⾶んで⽕に⼊る夏の⾍」で⾼効率
• 射撃⽅向は統計で決めた
23
例2:	勘で投資して30万円が溶けた
• システムトレード勉強会の仲間が・・・
24
融かした本⼈
機械学習の流れ
⽬的と問題
を明確化
利⽤する
⼿法をひと
まず決める
学
習
デプロイ
25
問題の種類と解決⽅法
質問 解決方法
AかBか 識別(判別)
異常か 異常検出
どのくらいの量かまたは数か 回帰
どのような構成か クラスタリング
次に何をすべきか 強化学習
ーAzure	データ サイエンスが回答する 5	つの質問
https://docs.microsoft.com/ja-jp/azure/machine-learning/machine-learning-data-science-for-beginners-the-5-questions-data-science-answers
この他、⾃然⾔語処理(翻訳)や、画像の合成や超解像も
26
識別(判別)
代表的な機械学習アルゴリズム
• サポートベクターマシーン(SVM)
• マージン最⼤化
• ニューラルネットワーク(NN)
• ニューロンをモデル化したものを層状にしたもの
• 深層学習は主にこの拡張
• ランダムフォレスト(RF)
• 多数の決定⽊によるバギング
27
病名を当てたり、表情から感情を判定したり
*画像はCNN⼀択
異常検出
• 様々な統計⼿法が有る
• NNによる予測値とのズレを異常値とみなすなど
28
https://goo.gl/LEpspE
←詳しくは
回帰
29
代表的な機械学習アルゴリズム
• サポートベクターマシーン(SVM)
• ニューラルネットワーク(NN)
• 深層学習は主にこの拡張
• ランダムフォレスト(RF)
マンションの価格を推定したり、バスの乗降数を予測したり
クラスタリング
30
代表的な機械学習アルゴリズム
• クラスタリング(k-meansとか)
• ⾃⼰組織化マップ(SOM)
• 学習後にマップが得られるので、データ間の近さが視覚化される
⾃動的にデータを分類する
強化学習
31
代表的な機械学習アルゴリズム
• DQN
• 遺伝的アルゴリズム(GA),ここで良いのか疑問は有る
ゲームなどシミュレータで振る舞いを教育できる場合に有⽤
⾃然⾔語
32
代表的な機械学習アルゴリズム
• LSTM
• 最近は畳み込みニューラルネットワーク(CNN)を使
う⼿法もある
翻訳や⽂章⽣成など
教師あり/なしで⾒る⼿法の分類
33
教師あり学習 教師なし学習
• SVM
• NN
• RF
• LSTM
• k-means
• SOM
• DQN
• GA
教師データが必要 教師データは不要
DQNとGAには評価値が必要
教師とは?
• 分類・回帰に使うデータは特徴ベクトルともいう
• 特徴ベクトルに正解ラベルを付与したものが教師データ
• 教師が良ければ、良い学習が⾏われる
34
具体的には
35
正解ラベル特徴ベクトル
1個体分のデータ
*個体ごとの花弁とがく⽚の数値データの例
利⽤上の注意
• それぞれのアルゴリズムは、特徴ベクトルや⽬的に合わ
せて多くの種類があります
• GANとかDNCとかgcForestとか
• やりたいことに近い事をやっているQiitaの記事をよく読
んで、まずはコピペで実⾏してみましょう
• 「やってみたいことがあるけど、やり⽅が分からない」
⽅にはこの後の質疑でお答えします
36
利⽤⼿順
学習
• 教師データを作成
• カテゴリデータ(質的データ)は数値に変換
• 教師データを学習⽤と検証⽤に分ける
• 学習
• 学習成果を保存
予測
• 学習成果を読み込んで、予測する
37
機械学習のはじめ⽅と例
38
ローカルへの環境構築
1. Pythonをインストール
1. WindowsならAnacondaを推奨
1. https://www.continuum.io/downloads
2. Macならbrew	install	python3	/	pyenv install	3.6.1
2. ライブラリをインストール
1. pip	install	scikit-learn		#	Anacondaなら同梱
2. pip	install	chainer
3. pip	install	keras
4. pip	install	tensorflow
39
*NVIDIAのGPUを使うなら、cudaをインストールしておく。
なお、ライブラリ名がちょっと違ったりする
Pythonほぼ⼀択
40
Iris(あやめ)の識別をやってみる
サンプルデータと
コードのダウンロード
41
https://www.dropbox.com/s/fwnnedrkxaziym7/RandomForest.zip?dl=0
画⾯右上のダウンロードボタンをクリックして下さい
データのソース
フィッシャーのアヤメ
• データ⼊⼿:
http://home.a00.itscom.net/hatada/ml/data/iris01.html
• データの解説:
http://d.hatena.ne.jp/tsutatsutatsuta/20121206/1354737461
42
アヤメの写真
43
http://pds.exblog.jp/pds/1/200609/01/07/b0077607_17371584.jpg
アヤメの4つの特徴量
• ガク⽚の⻑さ・幅
• 花弁の⻑さ・幅
44
https://www.kamikochi-vc.or.jp/learn/dictionary/dic_plants.html
具体的には
45
正解ラベル特徴ベクトル
1個体分のデータ
*個体ごとの花弁とがく⽚の数値データの例
特徴量の散布図⾏列
花の種類毎(層別)に⾊を付けて描画してみた
46
Pythonで機械学習
• ランダムフォレスト(RF)を使う
• 必要なライブラリ
• Numpy
• Scipy
• Pandas
• scikit-learn
• import	sklearn #	installするときとimportするときで名前が違う
47
学習プログラム
48
*この下にprint()によるメッセージ出⼒が有ります
実⾏結果の例
49
• 「ランダム」フォレストなので、結果は毎回微妙に変化
• 学習済みのオブジェクトはバイナリで保存済み
• 保存したバイナリを読みだせば成果を利⽤できる
検証プログラム
50
*この下にprint()によるメッセージ出⼒が有ります
実⾏結果の例
51
• 学習に利⽤していないデータを使って識別した
• 正解率100%だった
利⽤⼿順
学習
• 教師データを作成
• カテゴリデータ(質的データ)は数値に変換
• 教師データを学習⽤と検証⽤に分ける
• 学習
• 学習成果を保存
予測
• 学習成果を読み込んで、予測する
52
53
明⽇から機械学習にトライできそうでしょうか?
トライすることは難しくありません。是⾮やって⾒ましょう。
付録
54
熊本にもおいでませ〜〜
55
https://otona.connpass.com/event/60500/
7/5 オブジェクト指向
7/19 統計(主成分分析?)
おすすめの本
56
https://goo.gl/5muoA8
機械学習全般が分かります

機械学習(仮)in Mobile conference 2017