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
Lukas
October 23, 2017
Technology
0
1.2k
Kotlinで機械学習:VGG16モデルで犬猫判断
Using deeplearning4j to distinguish between Cats and Dogs
Lukas
October 23, 2017
Tweet
Share
More Decks by Lukas
See All by Lukas
Using Rust to Process ILDA (Laser Video) Files
lukasjapan
0
540
Help me, Obi-Wan Kenobi - A webpack tale
lukasjapan
0
170
Controlling a Laser with the Raspberry Pi
lukasjapan
0
480
Making a Template Engine for Kotlin
lukasjapan
0
740
Building a Weather Station with the RaspberryPi
lukasjapan
0
100
サーバーサイドkotlinは怖くない:Kotlin ✖︎ Spring Boot
lukasjapan
0
130
Other Decks in Technology
See All in Technology
IBC 2025 動画技術関連レポート / IBC 2025 Report
cyberagentdevelopers
PRO
2
230
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
350
Open Table Format (OTF) が必要になった背景とその機能 (2025.10.28)
simosako
3
550
re:Inventに行くまでにやっておきたいこと
nagisa53
0
830
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
190
OPENLOGI Company Profile for engineer
hr01
1
46k
AIエージェントによる業務効率化への飽くなき挑戦-AWS上の実開発事例から学んだ効果、現実そしてギャップ-
nasuvitz
5
1.5k
【SORACOM UG Explorer 2025】さらなる10年へ ~ SORACOM MVC 発表
soracom
PRO
0
180
プロファイルとAIエージェントによる効率的なデバッグ / Effective debugging with profiler and AI assistant
ymotongpoo
1
610
AIを使ってテストを楽にする
kworkdev
PRO
0
360
.NET 10のBlazorの期待の新機能
htkym
0
160
datadog-incident-management-intro
tetsuya28
0
110
Featured
See All Featured
For a Future-Friendly Web
brad_frost
180
10k
Documentation Writing (for coders)
carmenintech
75
5.1k
Code Review Best Practice
trishagee
72
19k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
How to Think Like a Performance Engineer
csswizardry
27
2.2k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
GraphQLとの向き合い方2022年版
quramy
49
14k
Typedesign – Prime Four
hannesfritz
42
2.8k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
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