Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kotlinで機械学習:VGG16モデルで犬猫判断
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Lukas
October 23, 2017
Technology
1.3k
0
Share
Kotlinで機械学習:VGG16モデルで犬猫判断
Using deeplearning4j to distinguish between Cats and Dogs
Lukas
October 23, 2017
More Decks by Lukas
See All by Lukas
Using Rust to Process ILDA (Laser Video) Files
lukasjapan
0
580
Help me, Obi-Wan Kenobi - A webpack tale
lukasjapan
0
180
Controlling a Laser with the Raspberry Pi
lukasjapan
0
550
Making a Template Engine for Kotlin
lukasjapan
0
770
Building a Weather Station with the RaspberryPi
lukasjapan
0
120
サーバーサイドkotlinは怖くない:Kotlin ✖︎ Spring Boot
lukasjapan
0
150
Other Decks in Technology
See All in Technology
新規サービス開発におけるReact Nativeのリアル〜技術選定の裏側と実践的OSS活用〜
grandbig
2
130
Claude Teamプランの選定と、できること/できないこと
rfdnxbro
1
1.7k
LLM とプロンプトエンジニアリング/チューターを定義する / LLMs and Prompt Engineering, and Defining Tutors
ks91
PRO
0
290
ストライクウィッチーズ2期6話のエイラの行動が許せないのでPjMの観点から何をすべきだったのかを考える
ichimichi
1
300
3つのボトルネックを解消し、リリースエンジニアリングを再定義した話
nealle
0
230
自分をひらくと次のチャレンジの敷居が下がる
sudoakiy
5
1.9k
AIドリブン開発の実践知 ― AI-DLC Unicorn Gym実施から見えた可能性と課題
mixi_engineers
PRO
0
120
マルチモーダル非構造データとの闘い
shibuiwilliam
1
290
Kubernetes基盤における開発者体験 とセキュリティの両⽴ / Balancing developer experience and security in a Kubernetes-based environment
chmikata
0
210
AI前提とはどういうことか
daisuketakeda
0
150
BIツール「Omni」の紹介 @Snowflake中部UG
sagara
0
240
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
4
13k
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
GitHub's CSS Performance
jonrohan
1032
470k
The SEO identity crisis: Don't let AI make you average
varn
0
430
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
270
Automating Front-end Workflow
addyosmani
1370
200k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
53k
Are puppies a ranking factor?
jonoalderson
1
3.2k
Chasing Engaging Ingredients in Design
codingconduct
0
160
Transcript
Kotlinで機械学習 VGG16モデルで犬猫判断 どこでもKotlin #3 2017/10/23 エムスリー株式会社 Lukas Prasuhn
自己紹介 - M3のSoftware Engineer - 日本歴12年のドイツ人 - Java経験が少ない → いきなりKotlin
- Kotlin以外の得意言語 - C++ (C++11まで) - PHP5 - Github: https://github.com/lukasjapan - Twitter: @cvguy84 - RaspberryPiをイジるのが好き - モデル1 は 1台 - モデル3 は 3台
(私にとっての)Kotlinとは - めちゃ書きやすいJava - Kotlin/Javaの関係 - KotlinはJavaの考え方より柔らかい - KotlinはJavaの資産を多く使っている -
Kotlinの目的はJavaを使いやすくするため - Javaを尊敬しながら、Kotlinの利用者が急増
ディープラーニングとは - 機械学習の一種 - ニューラルネットワーク(NN)を使用 - 手法のざっくり説明 - 答えを知っている入力データは大量ある -
NNに入力データ+それに対する答えを学習させる - 他の入力データに対して答えが出力可能になる 行列計算で答えを出 せる 学習させる時は行列 の値を調整する
VGG16のモデル(NN) - 下記の問題を解くために作られたNN - 入力データは画像 - 答えはラベル1000個に対する「自信度」 - ラベルはimage-net.orgが定義 -
金魚 - ノートパソコン - 飛行機 - ビーグル - ... - 比較的にシンプルで優秀 - 16レイヤー
ラベルから犬猫判断 - 画像は犬?猫? - image-net.orgのラベルを見たら - Egyptian_cat, Persian_cat, cougar, …
- French_bulldog, toy_terrier, … - 判断提案1 - cat, dogであるラベル(手動判断)の自信度を見る - 1000個もある - 自信度が低い場合、どうする? - 写真にヒントある? - 骨 → 犬、ネズミ → 猫、... - 判断提案2 - VGG16ラベル → 犬猫関係を学習させる!
犬猫判断できるNNを作成 - 犬猫写真+答えを大量DL(kaggle.com) - 全写真のVGG16ラベルを判定 - VGG16ラベル+答え(犬、猫)を新NNに学習させる - そして連続判定 -
写真 → VGG16 → 新NN → 犬、猫の「自信度」 VGG16の1000個ラベル の「自信度」 犬に対する「自信度」 猫に対する「自信度」
ようやくKotlin登場! - 実装は何言語? - 機械学習世界ではPythonが強い - どこでもKotlin! 機械学習分野でもKotlin! - deeplearning4j
- Javaのディープラーニングライブラリー - Skymind社がサポート(Softbankと共同) - これからPepperに入るかも - 当然だがKotlinで問題なく使える - 公式サンプルコードにも.ktファイルを目撃
deeplearning4jのモデルZOO - 有名なモデルを提供 - VGG16もある - 学習済みモデルがDL可 - 最初の実行時にモデルを裏でDL -
~490MB
ここでKotlinの一つのアピールポイント - outputはINDArray型である - deeplearning4j所属ライブラリの行列フォーマット - 扱いにくい(数学視点重視) - 答えは一行の行列で表す -
Kotlinの拡張関数でList<Double>に置き換える - Kotlinの便利機能は直感的に使える - sort, map, ...
犬猫NNの実装 - 公式サンプルコードを自分のニーズに合わせて、モデルを作成 - VGG16ラベル+答えで学習させる - 学習済みモデルを保存(Serialize) - 答えは下記のように定義 -
猫の場合:100%猫、0%犬 - 犬の場合:0%猫、100%犬 https://github.com/lukasjapan catsvsdogsgame
犬猫判断の実装 - 保存モデルをDeserialize - VGG16モデルで得たラベルを入力 - 犬猫それぞれの自信度出力
デモ(というかゲーム!) - TwitterAPIで #m3kt #catsdogs ハッシュタグを監視 - ツイートのプロフィール写真で犬猫判断を行う - 結果はAPIで呟く
@cvguy84 - おまけでVGG16モデルの判断も教える - 「自信度」が高くなるプロフィール写真が勝つ ヒント:どうしても勝ちたい場合は、プロフィール写真を犬または猫に変える https://github.com/lukasjapan catsvsdogsgame
最後に - http://www.fast.aiのディープラーニングコース - 機械学習世界で有名な「Jeremy Howard」が無料提供 - Youtube動画 - プログラマー向け
- 数学的なことももちろん教えている - Python/Keras/... - 今日の内容はLesson 1+2
#m3kt #catsdogs ぜひ呟いてみてね! https://github.com/lukasjapan catsvsdogsgame