Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
20180210_Cookpad_TechConf2018_YoheiKIKUTA
yoppe
February 10, 2018
Technology
5
1k
20180210_Cookpad_TechConf2018_YoheiKIKUTA
Talk at Cookpad TechConf 2018 (
https://techconf.cookpad.com/2018/
).
yoppe
February 10, 2018
Tweet
Share
More Decks by yoppe
See All by yoppe
diracdiego
0
100
diracdiego
1
800
diracdiego
2
1.1k
diracdiego
2
640
diracdiego
3
700
diracdiego
0
620
diracdiego
4
5.5k
diracdiego
0
170
diracdiego
3
5.7k
Other Decks in Technology
See All in Technology
recruitengineers
0
250
finengine
0
330
tsuyo
0
490
ayatokura
1
170
ocise
0
120
junendo
0
170
hacker2202
0
100
chipstar_light
0
480
hmatsu47
1
170
lmt_swallow
0
200
harshbothra
0
230
brtriver
1
490
Featured
See All Featured
schacon
147
6.7k
chriscoyier
779
240k
holman
462
280k
chriscoyier
146
20k
trallard
15
820
mongodb
23
3.9k
swwweet
206
6.9k
philnash
10
670
sferik
613
55k
dougneiner
56
5.4k
keathley
20
760
yeseniaperezcruz
302
31k
Transcript
٠ా ངฏ ݚڀ։ൃ෦ Solve “unsolved” image recognition problems in service
applications Cookpad Inc. Feb 10th, 2018
ࣗݾհ → https://github.com/yoheikikuta/resume ɾ໊લɿ٠ా ངฏ @yohei_kikuta ɾॴଐɿݚڀ։ൃ෦ ɾݞॻɿϦαʔνΤϯδχΞ ɹɹɹɹത࢜ʢཧֶʣ ɾઐɿը૾ੳ
ɾɿম͖ᰤࢠɺण࢘ɺDr Pepper 2
࣍ 3 ɾݚڀ։ൃ෦ͷհ ɾ࣮ۀʹ͓͚Δը૾ੳͷࠔ ɾΫοΫύουͰ۩ମతʹը૾ੳʹऔΓΜͰ͍Δࣄྫͷհ - ྉཧ͖Ζ͘ɿҙͷը૾ͷྉཧ/ඇྉཧྨ - Ϩγϐྨɿྉཧը૾ͷϨγϐΧςΰϦྨ -
ϞόΠϧ࣮ɿϞόΠϧͰಈ͘ྉཧը૾ྨͷϞσϧߏங ɾ·ͱΊ
ݚڀ։ൃ෦ͷϝϯόʔ 4 ৽نٕज़Λ׆༻ͨ͠αʔϏεͷ։ൃɾվળ [ରྖҬ] σʔλ࡞ɺը૾ੳɺࣗવݴޠॲཧ ରɺ৯จԽɺIoTσόΠεɺ։ൃج൫උ
ݚڀ։ൃ෦ͷऔΓΈ 5
ݚڀ։ൃ෦ͷऔΓΈɿը૾ੳ 6 ྉཧ/ඇྉཧఆ http://techlife.cookpad.com/entry/2017/09/14/161756 http://techlife.cookpad.com/entry/2017/11/08/132538 ྉཧ/ඇྉཧྨɺϨγϐྨɺղ૾ɺϑΟϧλ࡞ɺͳͲ
ݚڀ։ൃ෦ͷऔΓΈɿࣗવݴޠॲཧ 7 http://techlife.cookpad.com/entry/2015/09/30/170015 http://techlife.cookpad.com/entry/2017/10/30/080102 MYϑΥϧμͷࣗಈཧɺࡐྉදهͷਖ਼نԽɺͳͲ
ݚڀ։ൃ෦ͷऔΓΈɿAmazon Echo ͚ͷΫοΫύουεΩϧ http://techlife.cookpad.com/entry/2017/11/21/181206 http://techlife.cookpad.com/entry/2017/11/22/alexa-skilldesign
ݚڀ։ൃ෦ͷऔΓΈɿΠϯϑϥڥͱαʔϏεͷܨ͗ࠐΈ 9 https://youtu.be/Jw9CpQkCvpM
ݚڀ։ൃ෦ͷऔΓΈɿ৯จԽݚڀ 10 https://cookpad.com/kitchen/14604664 https://info.cookpad.com/pr/news/press_2016_1208
ݚڀ։ൃ෦ͷऔΓΈɿֶज़ํ໘ͷߩݙ 11 ɾ֤छֶձͷจߘεϙϯαʔ ɹ IJCAI, SIGIR, JSAI, ALNP, IPSJ, CEA,
XSIG2017, … ɾݚڀ༻ʹσʔληοτΛఏڙ ɹ https://www.nii.ac.jp/dsc/idr/cookpad/cookpad.html ɾίϯϖςΟγϣϯ༻ʹઃఆͱσʔληοτΛఏڙ ɹ- ਓೳٕज़ઓུձٞओ࠵ ୈ1ճAIνϟϨϯδίϯςετ ɹ https://deepanalytics.jp/compe/31 20170331ऴྃ ɹ- JSAI Cup 2018 ਓೳֶձσʔλղੳίϯϖςΟγϣϯ ɹ https://deepanalytics.jp/compe/59 20180329క
ࠓը૾ੳͷΛ͠·͢
࣮ۀʹ͓͚Δը૾ੳͷࠔɿͦͦղ͚͍ͯΔͰʁ 13 ྨʮղ͚ͨʯ 0 7.5 15 22.5 30 2010 2011
2012 2013 2014 2015 2016 2017 2.25 2.99 3.57 7.41 11.2 15.3 25.8 28.2 Classification error [%] Deep Learning !! human ability
࣮ۀʹ͓͚Δը૾ੳͷࠔɿͦͦղ͚͍ͯΔͰʁ 14 ྨʮղ͚ͨʯ※ཧతͳঢ়گԼͰ ɾదͳϥϕϧͷ༩ ɹ ҰఆҎ্ͷ࣭Ͱ֤ը૾ʹϥϕϧ͕༩͞Ε͍ͯΔ ɾదͳΧςΰϦͷઃܭ ɹ ࢹ֮తʹྨͰ͖ΔΑ͏ͳΧςΰϦʹ͚ΒΕ͍ͯΔ ɾclosed
set ɹ ֶशσʔλͷͱςετσʔλͷ͕͍͠
࣮ۀʹ͓͚Δը૾ੳͷࠔɿͦͦղ͚͍ͯΔͰʁ 15 ཧ ≠ ݱ࣮ ɾదͳϥϕϧͷ༩ɿ˚ ͋ΔఔσʔλྔͰΧόʔՄೳ ɾదͳΧςΰϦͷઃܭɿ☓ {ϥʔϝϯ, ύελ,
ΧϧϘφʔϥ} ͳͲ ɾclosed setɿ☓ ςετσʔλଟ༷Ͱ͔ͭಈత ࣮ͦͦαʔϏεͰղ͖͘ଟ͘ͷ߹ ”ؒҧ͍ͬͯΔ” → trial & error Ͱղ͖͕͘Կ͔Λ໌Β͔ʹ͍ͯ͘͠ͷ͕ओ
զʑ͕ͲͷΑ͏ʹͦΕΒͷʹऔΓΜͰ͍Δ͔ʁ ɾྉཧ͖Ζ͘Ͱͷػೳ ɹ Ϣʔβͷ࣋ͭը૾Λྉཧ/ඇྉཧྨ ɾϨγϐྨͰͷػೳ ɹ ྉཧࣸਅΛదͳϨγϐʹྨ ɾྉཧ/ඇྉཧྨϞσϧͷϞόΠϧ࣮ ɹ ϞσϧΛϞόΠϧʹҠ২ͯ͠ϓϥΠόγʔͷͳͲΛղܾ
16 ۩ମతͳࣄྫͷհ
۩ମతͳࣄྫɿྉཧ͖Ζ͘Ͱͷྉཧ/ඇྉཧྨ ɾTechConf2017 Ͱհ ɾྉཧͷࣸਅΛࣗಈతʹྨͯ͠දࣔɹ ɹ- CNNʹΑΔྨͰྉཧը૾Λநग़ ɹ- ৯ࣄͷৼΓฦΓͭ͘ΕΆͷଅਐ ɾ20180206࣌Ͱ ɹ-
Ϣʔβɿ19ສਓҎ্ ɹ- ྦྷੵྉཧຕɿ1900ສຕҎ্ 17 ྉཧ͖Ζ͘ͷਐԽͱݱࡏ https://speakerdeck.com/ayemos/real-world-machine-learning
۩ମతͳࣄྫɿྉཧ͖Ζ͘Ͱͷྉཧ/ඇྉཧྨ 18 ػցֶशͷ؍͔Βॏཁͳ ɾΫΠοΫελʔτ ɹը૾ੳͷݟ͕ෆेͳͱ͖͔Β CaffeNet Ͱૉૣ࣮͘ ɾϞσϧͷվળͱۤखͳΧςΰϦͷߟྀ ɹ Inception
V3 ͷ༻ multi-class Ϟσϧͷ༻ ɾςετσʔλͷ֦ॆ ɹࣾһ͔ΒσʔλΛूΊ࣮ͯڥʹ͍ۙঢ়گͰݕূ ɾہॴੑΛऔΓࠐΉͨΊͷύονԽ ɹࣸਅͷҰ෦ʹྉཧ͕͍ࣸͬͯΔঢ়گʹదԠ http://techlife.cookpad.com/entry/2017/09/14/161756 http://techlife.cookpad.com/entry/2017/11/08/132538
۩ମతͳࣄྫɿྉཧ͖Ζ͘Ͱͷྉཧ/ඇྉཧྨ 19 ɾہॴੑΛऔΓࠐΉͨΊͷύονԽ ɹ- ෦తͳྉཧը૾Λर͍͍ͨʢsegmentation ·Ͱ͍Βͳ͍ʣ ɹ- ը૾Λύονʹ͚ͯͦΕͧΕͰྨ͢ΔϞσϧΛߏங
۩ମతͳࣄྫɿྉཧࣸਅͷϨγϐΧςΰϦྨ ɾྉཧࣸਅΛదͳϨγϐΧςΰϦʹྨ ɾ୯७ͳྨʹݟ࣮͑ͯඇৗʹ͍͠ ɹ- open set ʹ͓͚Δ༧ଌ ɹ- ༧ଌରͷΧςΰϦͷઃܭ ɹ-
ྨࣅΧςΰϦͷଘࡏ ɾ༷ʑͳ࣮ݧΛܦͯϞσϧΛ࡞ ɹ- ྨࣅΧςΰϦͷྨͱ precision ʹྗ 20 ྉཧ͖Ζ͘ͷͦͷઌ
۩ମతͳࣄྫɿྉཧࣸਅͷϨγϐΧςΰϦྨ 21 ػցֶशͷ؍͔Βॏཁͳ ɾྨͷରͱͳΔΧςΰϦͷઃܭ ɹαʔϏεͱ݉Ͷ߹͍ΛਤΓͭͭ༧ଌରΧςΰϦΛબఆ ɾྨࣅΧςΰϦʹର͢Δྨ ɹ ΧςΰϦؒͷྨࣅ͕େ͖͘ҟͳΔͷͰఆྔతͳධՁ๏ΛߟҊ ɾopen set
ͳྨʹ͓͚Δ precision ͷ֬อ ɹOne vs. Rest ྨثΛΈ߹Θͤͯ precision ΛߴΊΔΑ͏ௐ ɾධՁํ๏ͷઃܭ ɹΦϯϥΠϯͰϑΟʔυόοΫɺΦϑϥΠϯͰσʔλ࡞ จ : https://arxiv.org/abs/1802.01267
۩ମతͳࣄྫɿྉཧࣸਅͷϨγϐΧςΰϦྨ 22 ɾΧςΰϦߏͱΧςΰϦؒྨࣅͷఆࣜԽ ɹ- ੜϞσϧͷ؍ɺϥϕϧ͚ͷ֬ੑɺ༧ଌϥϕϧͱͷؔ ɹ- ֶशϞσϧͷ ”ޡྨ” ͔ΒΧςΰϦؒྨࣅΛఆٛ
۩ମతͳࣄྫɿྉཧࣸਅͷϨγϐΧςΰϦྨ 23 ɾ࣮ࡍͷΧςΰϦઃܭͷεςοϓ ɹ- ϝλσʔλ͔ΒશΧςΰϦΛநग़ʢશ෦Ͱ1,000ΧςΰϦఔʣ ↓ ɹ- ࢹ֮తͰͳ͍ͷ͕গͳ͍ͷΛআ֎ʢେࡼྉཧͳͲʣ ↓ ɹ-
αʔϏεʹ͓͍ͯ༗༻ͦ͏ͳͷΛਓྗͰநग़ʢ͜͜ॏཁʣ ↓ ɹ- ޡྨʹجͮ͘ྨࣅͰ౷ഇ߹ʢ࠷ऴతʹ50ΧςΰϦఔʣ ྫʣ͖ͦͱϏʔϑϯΛಉ͡ΧςΰϦͱͯ͠౷߹
۩ମతͳࣄྫɿྉཧࣸਅͷϨγϐΧςΰϦྨ 24 ɾprecision ΛߴΊΔͨΊʹ One vs. Rest ྨثʹΑΔϞσϧΛߏங ɹ- རɿݸʑͷΧςΰϦʹ߹Θͤͨॊೈͳઃܭ͕Մೳ
ɹ- ܽɿॱ൪ᮢͳͲ hand crafted ͳ෦গͳ͘ͳ͍ feature extractor for c in {αϥμ, ύελ, …} 0 1 ྉཧը૾Ͱ pre-train ͨ͠ Inception V3 1 0 αϥμ next next f2 ྨࣅ͕ߴ͍ΧςΰϦ ͚ͩΛूΊֶͯशͨ͠ One vs. Rest ྨث
۩ମతͳࣄྫɿը૾ྨϞσϧͷϞόΠϧͷҠ২ ɾղܾ͍ͨ͠·ͩ·ͩ͋Δ ɹ- ଈ࣌ੑɿࡱͬͨࣸਅ͕Ͱ͖Δ͚ͩૣ͘ө͞Εͯཉ͍͠ ɹ- ػີੑɿϢʔβͷࣸਅݟ͍ͯͳ͍͕৺ཧత߅Δ ɹ- ֦େੑɿܭࢉࢿݯΛ؆୯ʹεέʔϧ͍ͤͨ͞ ɹ- Ԡ༻ੑɿΞϓϦͰྨ༷ͯ͠ʑͳαʔϏεʹԠ༻͍ͨ͠
ɾϞόΠϧ࣮ͷػӡ ɹ - ܰྔͰߴੑೳͳϞσϧ͕֤छଘࡏ ʢSqueezeNet MobileNetʣ ɹ - ֤छϥΠϒϥϦͷॆ࣮ʢCore ML TensorFlow Liteʣ 25 ϞόΠϧͷҠߦ
۩ମతͳࣄྫɿը૾ྨϞσϧͷϞόΠϧͷҠ২ 26 ػցֶशͷ؍͔Βॏཁͳ ɾਫ਼Λग़དྷΔݶΓམͱͣܰ͞ྔͳϞσϧΛ࡞Δ ɹܰྔԽΛతͱͨ͠ߏྔࢠԽͳͲͷཧղ ɾϞόΠϧଆͱͷ࿈ܞ ɹ iOS Android
ଆͷݟ͕ෆՄܽ ɾใ͕গͳ͍தͰͷϓϩδΣΫτਪਐ ɹ ػցֶशͱϞόΠϧͷͦΕͧΕͷྖҬͰਂ͍ཧղ͕ॏཁ ɾϥΠϒϥϦͷόʔδϣϯґଘੑͳͲΛదʹѻ͏ ɹྫʣcoremltools 201802 ·Ͱ python 2.7 ܥͰͷΈར༻Մ
۩ମతͳࣄྫɿը૾ྨϞσϧͷϞόΠϧͷҠ২ 27 ɾྉཧ/ඇྉཧྨϞσϧΛϞόΠϧʹҠ২ ɹ- MobileNet ͱہॴԽͷͨΊͷύονԽΛ߹Θͤͨߏ ɹ- αʔό্ͷ࣮ݧʢը૾20,000ຕఔʣͰ 1% ఔͷਖ਼ͷࠩ
ɹ- iOS, Android ڞʹ࣮ػͰݕূ͓ͯ͠Γಉఔͷੑೳ ɾBristol ΦϑΟεͷग़ு࣌ʹਐΊͨϓϩδΣΫτ ɹ- iOS, Android ΤϯδχΞʹڠྗͯ͠Β͍ҰؾʹਐΜͩ ɹ- ࠃ֎ͰਐΊ͍͚ͯͦ͏ͳτϐοΫ
۩ମతͳࣄྫɿը૾ྨϞσϧͷϞόΠϧͷҠ২ 28 ɾAndroid (Pixel 2 at Bristol) Ͱͷ࣮ݧ݁Ռ Original Quantized
Model Size 12 [MB] 3.3 [MB] Accuracy 0.97 0.97 Precision 0.98 0.98 Recall 0.96 0.96 CPU Usage 40-60 [%] 40-60 [%] Memory Usage 120 [MB] 90 [MB] FPS 7.54 [FPS] 7.72 [FPS] DEMO
ը૾ੳͷίϯϖͬͯ·͢ʂ JSAI Cup 2018 క : 20180329 https://deepanalytics.jp/compe/59
·ͱΊ 30 Λఆٛ͠ɺͦΕΛਵ࣌ߋ৽ͯ͠ղ͍͍ͯ͘ ɾ࣮ۀͰͷը૾ੳͷ·ͩ·ͩ “ղ͚ͯͳ͍“ ɹ ਖ਼֬ʹղ͖͕͘໌֬ʹఆٛͰ͖͍ͯΔ͜ͱ͕গͳ͍ ɾࢼߦࡨޡͷʹͦΕΛݱঢ়ͷٕज़Ͱղ͚Δʹམͱ͠ࠐΉ ɹ ը૾ੳͷཁૉٕज़ख़͖͍ͯͯͯ͜͠Ε͕ॏཁͳϑΣʔζ
ɹ ΫοΫύουͰྉཧ͖Ζ͘Ϩγϐྨʹը૾ੳΛಋೖ ɾϞόΠϧͷҠ২ಈըͳͲ͕ը૾ੳͷ࣍ͷ໘നͦ͏ͳྖҬ
࠷ޙʹɿΫοΫύουʢগͳ͘ͱࣗʹͱͬͯʣಇ͖͍͢ 31 ݚڀ։ൃ෦Ͱಇ͘͜ͱ = ྑήʔ ɾྑετʔϦʔ ɹʮຖͷྉཧΛָ͠Έʹ͢Δʯͱ͍͏ϛογϣϯͷԼͰڠಇ ɾߴࣗ༝ ɹ৽͍͠ઓʹॏ͖Λஔ͍͍ͯͯ trial
& error Λਪ ɾָγεςϜ ɹैۀһ͕ಇ͖͘͢ύϑΥʔϚϯεΛग़͍͢͠ڥ
[એ] ਓೳֶձओ࠵ͷNIPS2018ใࠂձͰൃද͠·͢ 32 https://www.ai-gakkai.or.jp/no74_jsai_seminar/