SlideShare a Scribd company logo
1 of 38
Download to read offline
機械学習のはじめかた
~手軽なフレームワークで始めてみよう~
s1240056 Fumito Haga
2
突然ですが
3
みなさん、ディープラーニングやってますか?
4
最近、どこでもディープラーニングディープラーニング...
何でもはできない
6
この流れを見ると浮かんでくるのが
7
8
じゃあやってみるか!
数式を追うか!
9
10
11
今日はこんな状態になった方
始めたいなーと漠然に考えている方へ
ディープラーニングの
優しい始め方のお話です。
Index
1. 自己紹介
2. 今回の目的
3. やってみよう(インストール編)
4. やってみよう(とりあえず動かしてみる)
5. やってみよう(自分で作ったデータで学習)
6. まとめ
12
1. 自己紹介
❏ 名前 : 芳賀 史都 (ハガ フミト)
❏ 学年 : 学部三年
❏ 主に使っている言語
❏ Python, C++
❏ 研究内容
❏ 機械学習を使用して自動車の自動運転
❏ 好きなこと
❏ 電子工作, GoogleMapを眺める
❏ 最近 Golang 始めました!
13
GitHub : hatobus
Facebook : fumitonn
Twitter : flying_hato_bus
1. 自己紹介
こんなことやりました
14
赤べこの自動化
赤べこの自動化
15
昨年シリコンバレーへと研修に行った時に作成
Raspberry piとPythonで動かす。
● 最初は反響は少なかった
○ 池澤あやかさんがツイートした
→ 900RT 1300 Fav !
1.自己紹介
16
最近あったこと
適当にしたツイートがバズった。
→ こんな伝統はない
何故か10,000 RTを達成
会津大学の名がまた広まった...?
2. 今回の目的
17
3. やってみよう(インストール編)
18
Q. そもそも何を使うの?
A. Darknet
19
Darknetとは何ぞや?
20
C/C++ で書かれたディープラーニングのフレームワーク。
YOLO という画像認識の他に、画像生成、囲碁の強化学習
などが体験できる。
3. やってみよう(インストール編)
21
使うもの
● GitHubアカウント
● PC (ゲーミングPCだととても良い)
● 最低限の英語を読む力
GPUを使って学習する際はGTX1060以上を推奨
CPUと比べて500倍くらい高速化できる
3. やってみよう(インストール編)
22
Darknet公式に倣ってインストールする
● Darknetをclone
○ git clone https://github.com/pjreddie/darknet.git
● cloneしてきたディレクトリに移動
○ cd darknet
● Makeする
○ make
お疲れ様です、インストールが終了しました。
23
ね、簡単でしょう?
24
補足
25
GPUを使いたい場合はmakeする前にMakefileの
GPU = 0 を GPU = 1 に変更する
同じように
CUDNN=0
OPENCV=0
OPENMP=0
DEBUG=0
それぞれの値を1にするとそれがDarknet上で使えるようになる。
4. やってみよう(とりあえず動かしてみる)
26
やりたいこと → 画像の中に何が写っているかを表示させる
4. やってみよう(とりあえず動かしてみる)
27
実際に学習をやってみる
→ 時間がかかる、電気代がかかる...
ノートPCのCPUだと時間がかかりまくる...
あらかじめ学習してあるものを使う
4. やってみよう(とりあえず動かしてみる)
28
あらかじめ学習されているデータをダウンロードしてくる
wget https://pjreddie.com/media/files/yolov3.weights
認識させたい画像を手元に持ってくる
darknetで認識させる
./darknet detect cfg/yolov3.cfg yolov3.weights
data/hogefuga.jpg
4. やってみよう(とりあえず動かしてみる)
29
先ほどのコマンドがきちんと動けば、何も学習してなくても
画像を投げてあげるだけで、これくらいの認識はできる
自分の作ったデータで学習
30
画像認識をする
~やりたいこと~
ファルコンランチの投稿する
画像の中にヤクルトが含まれるか?
自分の作ったデータで学習
31
データを収集する
Twitter APIを使用して、@falcon_lunch の
画像つきツイート中の画像を取得してくる
→ 300枚ほど収集できた
ここから手作業でヤクルトがある画像をまとめる
自分の作ったデータで学習
32
自分で集めてきたデータに、バウンディングボックスを
設置する。
使用したもの
BBox-Label-Tool
自分の作ったデータで学習
33
Darknetが認識できるような形でデータを配置する
(参考URL : https://timebutt.github.io/static/how-to-train-yolov2-to-detect-custom-objects/)
ざっくり解説
1. バウンディングボックスのデータをYOLOが認識できる形に変換
2. 学習に必要なtrain.txtとtest.txtを生成
3. 以下のファイルを生成
a. cfg / obj.data
b. cfg / obj.names
c. cfg / yolo-obj.cfg
自分の作ったデータで学習
34
1. obj.data
学習に使用するデータがどこに入っているかを示すファイル
2. obj.names
カテゴリを列挙するファイル、出力はこれを元に行われる
3. yolo-obj.cfg
学習に使用するネットワークを構成するファイル
(設定には色々と調べる必要がある)
自分の作ったデータで学習
35
ここまで来たら後は学習をさせるだけ
使用マシン
CPU : Corei7 - 4771
RAM : 32GB
GPU : GTX1080ti
所要時間 : 20時間と少し
自分の作ったデータで学習
36
結果
数日間に投稿された、データセットに存在しない
@falcon_lunchの画像を認識させる。
← 青色の枠で囲まれて
いるのがヤクルト。
認識の精度はそれなりに
高いことが分かった
まとめ
37
数式が多いディープラーニング、
理論を追うだけでなく、手軽に使えるフレームワークを
使うことも一つの方法。
→ 優しく始めてどんどん成長しよう!
ご静聴ありがとうございました!
38

More Related Content

Similar to 機械学習のはじめかた

集合知プログラミング勉強会キックオフMTG LT用資料
集合知プログラミング勉強会キックオフMTG LT用資料集合知プログラミング勉強会キックオフMTG LT用資料
集合知プログラミング勉強会キックオフMTG LT用資料tetsuro ito
 
TDD & Pull Request入門
TDD & Pull Request入門TDD & Pull Request入門
TDD & Pull Request入門eiji ienaga
 
Webエンジニアが初めて機械学習に触れてみた話
Webエンジニアが初めて機械学習に触れてみた話Webエンジニアが初めて機械学習に触れてみた話
Webエンジニアが初めて機械学習に触れてみた話Shohei Tai
 
Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門Yoshitaka Seo
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方Yusuke Wada
 
ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争Eric Sartre
 
第8回脆弱性診断入門
第8回脆弱性診断入門第8回脆弱性診断入門
第8回脆弱性診断入門ionis111
 
my-spirit-of-tdd
my-spirit-of-tddmy-spirit-of-tdd
my-spirit-of-tddYu Asano
 
とりあえず機械学習をやってみた
とりあえず機械学習をやってみたとりあえず機械学習をやってみた
とりあえず機械学習をやってみたsuzuki333333333
 
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」tokyorgirls
 
Meta-Learning with Memory Augmented Neural Network
Meta-Learning with Memory Augmented Neural NetworkMeta-Learning with Memory Augmented Neural Network
Meta-Learning with Memory Augmented Neural NetworkYusuke Watanabe
 
C言語講習会資料(前半)
C言語講習会資料(前半)C言語講習会資料(前半)
C言語講習会資料(前半)Yuki Sako
 
2022ふりかえりカンファレンス.pdf
2022ふりかえりカンファレンス.pdf2022ふりかえりカンファレンス.pdf
2022ふりかえりカンファレンス.pdfShigeo Konno
 
塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)
塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)
塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)natsu_bm
 
そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!Akira Kaneda
 
oTreeの概要と実験方法の展開可能性について
oTreeの概要と実験方法の展開可能性についてoTreeの概要と実験方法の展開可能性について
oTreeの概要と実験方法の展開可能性についてAkira Goto
 
フレームワーク使おうぜ!
フレームワーク使おうぜ!フレームワーク使おうぜ!
フレームワーク使おうぜ!Takuya Sato
 
Pythonで始める競技プログラミング
Pythonで始める競技プログラミングPythonで始める競技プログラミング
Pythonで始める競技プログラミングshunki fujiwara
 
困らない程度のJDK入門
困らない程度のJDK入門困らない程度のJDK入門
困らない程度のJDK入門Yohei Oda
 

Similar to 機械学習のはじめかた (20)

集合知プログラミング勉強会キックオフMTG LT用資料
集合知プログラミング勉強会キックオフMTG LT用資料集合知プログラミング勉強会キックオフMTG LT用資料
集合知プログラミング勉強会キックオフMTG LT用資料
 
TDD & Pull Request入門
TDD & Pull Request入門TDD & Pull Request入門
TDD & Pull Request入門
 
Webエンジニアが初めて機械学習に触れてみた話
Webエンジニアが初めて機械学習に触れてみた話Webエンジニアが初めて機械学習に触れてみた話
Webエンジニアが初めて機械学習に触れてみた話
 
Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争
 
第8回脆弱性診断入門
第8回脆弱性診断入門第8回脆弱性診断入門
第8回脆弱性診断入門
 
my-spirit-of-tdd
my-spirit-of-tddmy-spirit-of-tdd
my-spirit-of-tdd
 
とりあえず機械学習をやってみた
とりあえず機械学習をやってみたとりあえず機械学習をやってみた
とりあえず機械学習をやってみた
 
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
 
Meta-Learning with Memory Augmented Neural Network
Meta-Learning with Memory Augmented Neural NetworkMeta-Learning with Memory Augmented Neural Network
Meta-Learning with Memory Augmented Neural Network
 
C言語講習会資料(前半)
C言語講習会資料(前半)C言語講習会資料(前半)
C言語講習会資料(前半)
 
2022ふりかえりカンファレンス.pdf
2022ふりかえりカンファレンス.pdf2022ふりかえりカンファレンス.pdf
2022ふりかえりカンファレンス.pdf
 
塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)
塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)
塹壕戦から揚陸艇強襲上陸まで (2012/03/17 pyfes)
 
皆で考えるDevOps
皆で考えるDevOps皆で考えるDevOps
皆で考えるDevOps
 
そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!そうだ!勉強会に参加しよう!
そうだ!勉強会に参加しよう!
 
oTreeの概要と実験方法の展開可能性について
oTreeの概要と実験方法の展開可能性についてoTreeの概要と実験方法の展開可能性について
oTreeの概要と実験方法の展開可能性について
 
フレームワーク使おうぜ!
フレームワーク使おうぜ!フレームワーク使おうぜ!
フレームワーク使おうぜ!
 
Pythonで始める競技プログラミング
Pythonで始める競技プログラミングPythonで始める競技プログラミング
Pythonで始める競技プログラミング
 
困らない程度のJDK入門
困らない程度のJDK入門困らない程度のJDK入門
困らない程度のJDK入門
 

機械学習のはじめかた