第5回バイオメトリクスと認識・認証シンポジウム
2015年11月12日～13日（東京大学 本郷キャンパス武田先端知ビル）

Deep Convolutional Neural Network ʹΑΔΫϥ΢υ‫إܕ‬র߹ͷ෼ࢄॲཧʹ͓͚Δෛՙ‫ূݕ‬A Study on Eﬃciency of Distributed Processing for Cloud-based Face Verification
by Deep Convolutional Neural NetworkՃ౻༏ †෱Ҫ޺ †ࢁԼོٛ †த෦େֶ †ࢁ಺༔࢚ †౻٢߂࿱ †Yuu KATO†
Hiroshi FUKUI†
Takayoshi YAMASHITA†
Yuji YAMAUCHI†
Hironobu FUJIYOSHI††Chubu UniversityΞϒετϥΫτ

Deep Convolutional Neural Network(DCNN) ͸ߴਫ਼౓ͳࣝผ͕ՄೳͰ͋ΔҰํɼͦͷࣝ

2.2Ϋϥ΢υ‫إܕ‬র߹γεςϜఏҊ͢ΔγεςϜ͸ɼਤ 1 ͷΑ͏ʹ DCNN ͷ৞ΈࠐΈผ‫ࢉܭ‬ίετ͕ߴ͍ͱ͍͏໰୊͕͋ΔɽεϚʔτϑΥϯɼ ૚ΛΫϥΠΞϯτͱΫϥ΢υʹ෼ׂ͢ΔɽΫϥΠΞϯτ‫ࢹ؂‬ΧϝϥɼϨίʔμͳͲͷ‫ʹثػ‬౥ࡌ͞Ε͍ͯΔ CPUͰ͸ɼࢦఆͨ͠৞ΈࠐΈ૚ͷಛ௃ϚοϓΛΫϥ΢υ΁ૹ৴ͷεϖοΫ͸௿͘ɼDCNN ͷશॲཧΛ͜ΕΒͷ‫ߦͰثػ‬͢ΔɽΫϥ΢υͰ͸ɼड৴ͨ͠ಛ௃ϚοϓΛ࠶౓ DCNN͏͜ͱ͸ࠔ೉Ͱ͋ΔɽDCNN ͷॲཧ͸ɼ৞ΈࠐΈ૚ͱϓʔ΁ೖྗ͠ɼ৞ΈࠐΈͱϓʔϦϯάͷଓ͖Λߦ͏ɽDCNNϦϯά૚ɼશ݁߹૚Λ֊૚తʹ഑ஔ͍ͯ͠ΔͨΊɼॲཧΛͷߏ଄Λ෼ׂ͢Δ͜ͱͰɼΫϥΠΞϯτͷ‫ࢉܭ‬ίετΛΫϥΠΞϯτଆͱΫϥ΢υଆʹ෼ׂͤ͞Δ͜ͱ͕ՄೳͰ௿‫ͤ͞ݮ‬Δ͜ͱ͕Ͱ͖Δɽর߹ॲཧ͸ɼDCNN ͷࣝผ૚

͋Δɽͦ͜Ͱɼզʑ͸ DCNN ͷॲཧͷԼҐ૚ΛΫϥΠΞͰߦΘͣʹશ݁߹૚લͷಛ௃ϚοϓΛಛ௃ϕΫτϧԽ͠ϯτଆɼ্Ґ૚ΛΫϥ΢υଆͰߦ͏Ϋϥ΢υ‫إܕ‬র߹ʹͯར༻͢Δɽಛ௃ϕΫτϧͱΫϥ΢υʹอଘ͞Ε͍ͯΔ

͓͚Δ෼ࢄॲཧΛఏҊ͢ΔɽΫϥ΢υ‫إܕ‬র߹͸ɼॲཧͷొ࿥ը૾ͷಛ௃ϕΫτϧͷϢʔΫϦου‫཭ڑ‬Λࢉग़͠ɼ͠෼ׂ͕Ͱ͖Δ͚ͩͰͳ͘ɼΫϥ΢υଆʹը૾Λૹ৴͢Δඞ͖͍஋ॲཧʹΑΓຊਓ͔Ͳ͏͔൑ఆ͢Δɽཁ͕ͳ͍ͨΊɼϓϥΠόγʔ໘Ͱ҆શੑͷߴ͍γεςϜຊγεςϜͰ͸ɼΫϥΠΞϯτଆͷ DCNN Ͱࢉग़ͨ͠

ͱͳΔɽຊߘͰ͸ɼΫϥ΢υ‫إܕ‬র߹ʹ͓͍ͯɼDCNNಛ௃ϚοϓͷΈΛૹ৴͠ɼΫϥ΢υଆʹ‫إ‬ը૾Λอଘ͠ΛͲͷΑ͏ʹ෼ׂ͢Ε͹࠷దͱͳΔ͔ͷෛՙ‫ূݕ‬Λߦ͏ɽ ͳ͍ͨΊɼϓϥΠόγʔΛ഑ྀͨ͠γεςϜͱͳΔɽ·1͸͡Ίʹը૾ೝࣝ෼໺ʹ͓͍ͯɼDeep Convolutional NeuralNetwork(DCNN) ͕༷ʑͳϕϯνϚʔΫͰߴਫ਼౓ͳࣝผΛ࣮‫͍ͯ͠ݱ‬Δ [1][2]ɽDCNN ͸ɼ৞ΈࠐΈ૚΍શ݁߹૚ͷ֤૚Ͱ৐ࢉॲཧΛԿ౓΋ߦ͏ͨΊɼ‫ࢉܭ‬ίετ͕๲େʹͳΔɽͦ͜ͰɼΫϥΠΞϯτଆͰશͯͷԋࢉॲཧΛߦΘͣʹɼԋࢉͷ్த݁ՌΛΫϥ΢υʹૹ৴ͯ͠Ϋϥ΢υଆͰ DCNN ͷ࢒ΓͷॲཧΛߦ͏ɽຊߘͰ͸ɼ‫إ‬র߹Λର৅
ͱ͠ɼDCNN ΛͲͷΑ͏ʹ෼ׂ͢Ε͹‫ࢉܭ‬ɾ௨৴Ϧιʔε͕࠷దԽͱͳΔ͔ͷෛՙ‫ূݕ‬Λߦ͏ɽ

2 DCNN ʹΑΔΫϥ΢υ‫إ‬র߹
2.1 Deep Convolutional Neural Network
DCNN ͸ɼ৞ΈࠐΈͱϓʔϦϯάΛෳ਺ճ‫܁‬Γฦ͠ߦ͏͜ͱͰɼΤοδޯ഑΍৭ͷάϥσʔγϣϯɼ·ͨ͸ͦΕͨɼDCNN ͷ৞ΈࠐΈ૚ʹ͓͚Δಛ௃Ϛοϓ͸ɼϑΟϧλͷ܎਺͕‫ط‬஌Ͱͳ͍৔߹ɼ‫ݩ‬ը૾Λ෮‫͢ݩ‬Δ͜ͱ͸ෆՄೳͰ͋Γɼ҆શੑͷߴ͍γεςϜͱͳΔɽ

3ෛՙ‫ݧ࣮ূݕ‬DCNN ͷ෼ׂʹ͓͚Δ௨৴ྔɼ‫ྔࢉܭ‬ͷ‫͔఺؍‬Β‫ূݕ‬Λߦ͏ɽ·ͣɼ‫إ‬র߹ʹඞཁͱͳΔ DCNN ͷ৞ΈࠐΈ૚ͷ૚਺Λௐࠪ͢Δɽ࣍ʹɼDCNN ͷୈԿ૚໨͔Β੾Γ཭ͨ͠৔߹͕ɼ࠷΋ΫϥΠΞϯτɾΫϥ΢υʹෛՙ͕গͳ
͍͔Λ‫͢ূݕ‬Δɽ
ΫϥΠΞϯτͷεϖοΫ͸ OS : OSX EI CapitanɼCPU: Intel(R) Corei7-3520ɼϝϞϦ : 8GB Ͱ͋ΔɽΫϥ΢υͷεϖοΫ͸ OS : Ubuntu14.04.3 LTSɼCPU : Intel(R)Corei7-4790ɼGPU : NVIDIA(R) GeForce GTX 980ɼϝΒΛ૊Έ߹ΘͤͨෳࡶͳॏΈϑΟϧλΛࣗಈͰऔಘ͢Δɽ ϞϦ : 8GB Ͱ͋Δɽ‫Ͱݧ࣮ূݕ‬͸ɼ৞ΈࠐΈ૚Λ 1 ૚͔͜ΕΒͷϑΟϧλ͸ɼ‫఻ٯࠩޡ‬೻๏Λ༻͍ͨޯ഑߱Լ๏ Β 9 ૚·Ͱ૿΍͠ɼ֤ߏ੒Ͱͷর߹཰Λൺֱ͢Δɽ‫׆‬ੑԽؔ਺ʹ͸ Maxout Λ࢖༻͠ɼϓʔϦϯά૚͸৞ΈࠐΈʹΑΔֶशʹΑΓܾఆ͞ΕΔɽ
-	 9	 -

クラウド

クライアント

距離算出
特徴マップ送信

距離算出
Pool 4
Pool 3

入力画像

Pool 2
Conv 3Pool 1

Conv 5

Conv 7

Conv 8Conv 6

特徴ベクトル・・・・・・

距離算出
ユークリッド距離比較

Conv 4

データベースConv 1

Conv 2ਤ 1: DCNN ʹΑΔΫϥ΢υ‫إܕ‬র߹ͷશମਤ૚ͷ 2 ૚໨ɼ4 ૚໨ɼ6 ૚໨‫ ͼٴ‬8 ૚໨ʹ഑ஔ͢Δɽ·ͨɼ 3.2

ΫϥΠΞϯτͷ৘ใૹ৴ྔͱॲཧ࣌ؒਤ 3 ʹɼΫϥΠΞϯτଆͰ‫͢ࢉܭ‬Δ৞ΈࠐΈ૚ΛมԽຕɼ5ɼ6 ૚໨͕ 64 ຕɼ7ɼ8 ૚໨͕ 128 ຕɼ9 ૚໨͕ 256

ͤͨ࣌͞ͷॲཧ࣌ؒͱΫϥ΢υ΁ͷ৘ใ఻ૹྔΛࣔ͢ɽΫ

ຕͰ͋ΔɽDCNN ͷֶशαϯϓϧɼධՁαϯϓϧ͸ͦΕϥΠΞϯτͰॲཧ͢Δ૚͕ଟ͍৔߹ɼΫϥ΢υͱൺ΂ॲͧΕ 4,031 ຕɼ143 ຕͰ͋Δɽ

ཧ଎౓͕஗͍ͨΊɼ૯ॲཧ࣌ؒ͸௕͘ͳΔɽ͔͠͠ɼ੾

㆑ู⋡[%]

֤૚ͷϑΟϧλຕ਺͸ 1ɼ2 ૚໨͕ 16 ຕɼ3ɼ4 ૚໨͕ 32100

Γ཭͢૚͕ઙ͍৔߹ɼ৘ใૹ৴ྔ͕๲େͱͳΓɼ௨৴࣌

80͕ؒେ͖͘ͳͬͯ͠·͏ɽਤ 3 ΑΓɼ2 ૚໨ͷ৞ΈࠐΈ૚

60(Conv2 + Pool1) Ͱ੾Γ཭ͨ͠৔߹ɼΫϥΠΞϯτଆͰͷॲཧ͕࣌ؒ୹͘ɼ͔ͭσʔλૹ৴ྔ͕গͳ͘ͳΔ͜ͱ

40

͕Θ͔Δɽ

20
conv1 conv2 conv3 conv4 conv5 conv6 conv7 conv8 conv9
␚䜏㎸䜏ᒙᩘ

3.3

ਤ 2: ৞ΈࠐΈ૚਺ΛมԽͨ͠ࡍͷਫ਼౓䝕䞊䝍㔞[KB]350

ਤ 4 ͸ɼ੾Γ཭͢৞ΈࠐΈ૚ͷมԽʹΑΔ૯ॲཧ࣌ؒΛࣔ͢ɽ૯ॲཧ࣌ؒ͸ɼΫϥΠΞϯτɾΫϥ΢υͷ DCNN

conv1ͷॲཧ࣌ؒʹΫϥ΢υͷ‫إ‬র߹࣌ؒͱ௨৴࣌ؒΛՃࢉ͠

300250ͨ΋ͷͰ͋Δɽ‫إ‬র߹࣌ؒ͸ 100 ਓ෼ͷ‫إ‬র߹ʹ͔͔Δ200
conv3150஋Ͱ͋Γɼ௨৴࣌ؒ͸௨৴଎౓Λ 100Mbps(12.5KB/ms)

conv2+pool1

100

conv4 conv5+pool2

50
0

0

5

10

15

20

25

conv6 conv7 conv8+pool4+pool33035ͱԾఆͨ͠ࡍͷ஋Ͱ͋Δɽ
ਤ 4 ΑΓɼલઅͰ૝ఆͨ͠ 2 ૚໨ͷ৞ΈࠐΈ૚Ͱ੾Γ40䜽䝷䜲䜰䞁䝖䛻䛚䛡䜛ฎ⌮᫬㛫཭ͨ͠ߏ੒ͷ૯ॲཧ͕࣌ؒ࠷΋୹͍ɽΫϥ΢υଆͰߦ͏ਤ 3: ΫϥΠΞϯτͷ৘ใૹ৴ྔͱॲཧ࣌ؒ
䜽䝷䜲䜰䞁䝖䛷ฎ⌮䛩䜛␚䜏㎸䜏ᯛᩘ૯ॲཧ࣌ؒ‫إ‬র߹࣌ؒ͸Ͳͷ૚Ͱ෼ׂͯ͠΋େ͖͘มΘΒͳ͍ͨΊɼ૯ॲཧ࣌ؒ͸ɼΫϥΠΞϯτͷॲཧ࣌ؒͱ௨৴͕࣌ؒେ

7䜽䝷䜲䜰䞁䝖DCNNฎ⌮᫬㛫͖͘Ө‫͍ͯ͠ڹ‬Δ͜ͱ͕֬ೝͰ͖Δɽ

㏻ಙ᫬㛫6䜽䝷䜴䝗 DCNN ฎ⌮᫬㛫54㢦↷ྜ᫬㛫4͓ΘΓʹ3ຊߘͰ͸ɼDCNN ʹΑΔΫϥ΢υ‫إܕ‬র߹ͷ෼ࢄॲཧ

2ʹ͓͚Δෛՙ‫ূݕ‬ΛߦͬͨɽΫϥ΢υ‫͢ʹܕ‬Δ͜ͱͰɼ҆શͳ௨৴Λߦ͍ɼΫϥΠΞϯτଆͷΈͰॲཧ͢ΔΑΓ΋

1020406080100120140ߴ଎ʹॲཧ͢Δ͜ͱ͕Մೳͱͳͬͨɽࠓ‫ޙ‬͸ɼΫϥ΢υ⥲ฎ⌮᫬㛫[ms]ਤ 4: ੾Γ཭͢৞ΈࠐΈ૚ͷมԽʹΑΔ૯ॲཧ࣌ؒͷมԽ ‫إܕ‬র߹ͷ͞ΒͳΔߴਫ਼౓ԽΛߦ͏ɽࢀߟจ‫ݙ‬
3.1 ‫إ‬র߹ DCNN ͷߏ੒ཁૉ[1] Y.Taigman, et al.,ʠ DeepFace: Closing the Gapਤ 2 ʹ DCNN ͷ৞ΈࠐΈ૚਺ΛมԽͤͨ࣌͞ͷࣝผ཰
to Human-Level Performance in Face Verification”,
Λࣔ͢ɽ৞ΈࠐΈ૚਺Λ૿΍͍ͯ͘͠ͱর߹ਫ਼౓͕޲্
͓ͯ͠Γɼ৞ΈࠐΈ૚Λ 8 ૚ͱͨ͠৔߹ͷਫ਼౓͕࠷΋ߴ͍ɽຊߘͰ͸ɼ৞ΈࠐΈ૚͕ 8 ૚ͷ DCNN Λ༻͍ͨΫϥ

CVPR,2014.
[2] A.Krizhevsky, et al.,ʠ ImageNet Classification with
Deep Convolutional Neural Networks”, NIPS, 2012.

΢υ‫إܕ‬র߹ͷ෼ࢄॲཧΛର৅ͱ͢Δɽ-	 10	 -