Slide 1

Slide 1 text

χϡʔϥϧ'.Իݯ NAOMASA MATSUBAYASHI

Slide 2

Slide 2 text

'.Իݯ प೾਺มௐ '. ΛԠ༻ͯ͠ গͳ͍ύϥϝʔλͰΞίʔεςΟοΫͳָثͷԻ৭Λ࠶ݱ͢Δ ిࢠָثͷԻ৭ͷੜ੒ख๏ ιϑτ΢ΣΞͰԻָΛԋ૗͢Δ͜ͱ͕೉͔ͬͨ͠ ੈلͷ1$΍ήʔϜػʹ ͜ΕΛߦ͏ͨΊͷઐ༻ͷϋʔυ΢ΣΞ͕Α͘ࡌ͍ͬͯͨ

Slide 3

Slide 3 text

ຊ෺ͷָثͷΑ͏ͳԻΛ ࿥ԻσʔλΛϝϞϦʹ࣋ͭ͜ͱͳ͘ खଓ͖తʹੜ੒͍ͨ͠ গͳ͍ύϥϝʔλͰ ༷ʑͳָثͷԻ৭ʹରԠ͍ͨ͠ '.Իݯͷૂ͍

Slide 4

Slide 4 text

ָثͷΑ͏ͳԻͱ͸

Slide 5

Slide 5 text

$ $ $ $ ඵ ඵ ඵ ඵ ඵ ඵ ϐΞϊͷ$ͷԻͷप೾਺ղੳͷ݁Ռ $ $

Slide 6

Slide 6 text

$ $ $ $ ඵ ඵ ඵ ඵ ඵ ඵ $ $ $ͷप೾਺)[ͷ੒෼ جԻ ϐΞϊͷ$ͷԻͷप೾਺ղੳͷ݁Ռ

Slide 7

Slide 7 text

$ $ $ $ ඵ ඵ ඵ ඵ ඵ ඵ $ $ )[ͷ੔਺ഒͷ੒෼ ഒԻ ϐΞϊͷ$ͷԻͷप೾਺ղੳͷ݁Ռ

Slide 8

Slide 8 text

$ $ $ $ ඵ ඵ ඵ ඵ $ $ ؚ·Ε͍ͯΔഒԻ͕มΘΔͱ ผͷָثͷԻʹฉ͑͜Δ $ͷप೾਺)[ͷ੒෼ ϚϦϯόͷ$ͷԻͷप೾਺ղੳͷ݁Ռ

Slide 9

Slide 9 text

$ $ $ $ ඵ ඵ ඵ ඵ ඵ $ $ Ի৭ʹؚ·ΕΔഒԻ͸࣌ؒͰมԽ͢Δ େ఍ͷָث͸جԻ͔Β཭ΕͨഒԻ͕ઌʹফ͑Δ ϐΞϊͷ$ͷԻͷप೾਺ղੳͷ݁Ռ

Slide 10

Slide 10 text

ຊ෺ͷָثͷΑ͏ͳԻΛ૗ͰΔ ؔ਺ʹඞཁͳಛ௃ جԻͷप೾਺Ͱ܁Γฦ͞ΕΔपظؔ਺Ͱ͋Δ ࣌ؒͱͱ΋ʹৼ෯͕มԽ͢Δ ࣌ؒͱͱ΋ʹؚ·ΕΔഒԻ͕มԽ͢Δ ؚ·ΕΔഒԻͷप೾਺ͱେ͖͞͸ ؔ਺ͷҾ਺ͰίϯτϩʔϧͰ͖Δ

Slide 11

Slide 11 text

प೾਺มௐ '. ৴߸೾ͷ܏͖͕ ൖૹ೾ͷप೾਺ͷมԽʹม׵͞ΕΔ प೾਺͕ߴ͍ प೾਺͕௿͍ ਖ਼ͷ܏͖ ෛͷ܏͖

Slide 12

Slide 12 text

৴߸೾ͱൖૹ೾ͷप೾਺͕͍ۙͱ ৴߸೾͸ൖૹ೾Λ࿪·ͤΔಇ͖Λ͢Δ प೾਺มௐ '.

Slide 13

Slide 13 text

$$ $ $ $ ЋΛม͑ͳ͕Βप೾਺ղੳΛߦͳͬͨ݁Ռ Ћ ৴߸೾ͷৼ෯͕େ͖͍΄Ͳ೾ܗ͕࿪ΜͰഒԻ͕ग़Δ

Slide 14

Slide 14 text

ഒ ഒ ഒ ഒ ഒ ഒ $$ $ $ $ ТTΛม͑ͳ͕Βप೾਺ղੳΛߦͳͬͨ݁Ռ ТT ৴߸೾ͷप೾਺ʹΑͬͯഒԻ͕ग़ΔҐஔ͕มΘΔ

Slide 15

Slide 15 text

͜ΕΛར༻ͯ͠ ຊ෺ͷָثͷΑ͏ͳ೾ܗΛ࡞Ζ͏ͱ͍͏ͷ͕ FMԻݯ

Slide 16

Slide 16 text

ΦϖϨʔλ प೾਺มௐ Τϯϕϩʔϓ ೖྗΛप೾਺มௐͯ͠ ΤϯϕϩʔϓͰৼ෯Λ࣌ؒมԽͤͯ͞ ग़ྗ͢ΔΑ͏ͳؔ਺Λ '.ԻݯͰ͸ΦϖϨʔλͱݺͿ

Slide 17

Slide 17 text

प೾਺มௐ Τϯϕϩʔϓ प೾਺มௐ Τϯϕϩʔϓ ΦϖϨʔλͷग़ྗ͸ ผͷΦϖϨʔλͷೖྗʹͰ͖Δ ΦϖϨʔλ

Slide 18

Slide 18 text

प೾਺มௐ Τϯϕϩʔϓ प೾਺มௐ Τϯϕϩʔϓ ഒԻͷຊ਺͕ঃʑʹ ݮ͍ͬͯ͘ͷΛ ࠶ݱ͢Δ Իͷେ͖͕͞ঃʑʹ ݮ͍ͬͯ͘ͷΛ ࠶ݱ͢Δ ͭͷΤϯϕϩʔϓͰ ഒԻͷ࣌ؒมԽͱԻྔͷ࣌ؒมԽΛ දݱͰ͖Δ ΦϖϨʔλ

Slide 19

Slide 19 text

प೾਺มௐ Τϯϕϩʔϓ प೾਺มௐ Τϯϕϩʔϓ प೾਺มௐ Τϯϕϩʔϓ प೾਺มௐ Τϯϕϩʔϓ ࣮ࡍͷ'.ԻݯͰ͸͞Βʹଟ͘ͷ ΦϖϨʔλΛܨ͛Δࣄ͕ଟ͍

Slide 20

Slide 20 text

$$ $ $ $ '.Իݯ ഒԻ͕࣌ؒมԽ͢Δ ΞίʔεςΟοΫͳָثͷΑ͏ͳ Ի৭Λग़ͤΔ

Slide 21

Slide 21 text

OΦϖϨʔλͷ'.Իݯͷܭࢉࣜ OΦϖϨʔλ਺ &JΤϯϕϩʔϓ TJجԻͷप೾਺ʹର͢Δഒ཰ ЋJKΦϖϨʔλK͕ΦϖϨʔλJΛมௐ͢Δڧ͞ ЌJग़ྗʹؚ·ΕΔΦϖϨʔλJͷ৴߸ͷׂ߹

Slide 22

Slide 22 text

Ͳ͜Λ͍ͬͨ͡Β ཉָ͍͠ثͷԻ৭ʹۙ෇͘ͷ͔ ͬ͞ͺΓΘ͔ΒΜ OΦϖϨʔλͷ'.Իݯͷܭࢉࣜ

Slide 23

Slide 23 text

Ҩ఻త'.Իݯ NAOMASA MATSUBAYASHI ೥લʹൃදͨ͠ωλ

Slide 24

Slide 24 text

αϯϓϦϯάԻΛप೾਺ղੳ ϥϯμϜͳҨ఻ࢠΛੜ੒ ֤Ҩ఻ࢠΛ'.ԻݯͰԋ૗ ֤Ҩ఻ࢠͷԻΛप೾਺ղੳ Ұ༷ަ伹ͱಥવมҟͰҨ఻ࢠΛੜ੒ αϯϓϦϯάԻͱͷڑ཭Λܭࢉ ϧʔϨοτબ୒ͰݸମΛݫબ ࠷େ෼ղೳͰ ্ҐʹมԽ͕ݟΒΕͳ͍ ͸͍ ͍͍͑ ෼ղೳΛ্͛Δ͔Ͳ͏͔Λ൑அ Ҩ఻తΞϧΰϦζϜͰ ༩͑ΒΕͨԻͱ͍ۙप೾਺੒෼ΛؚΉԻ͕ग़Δ '.ԻݯͷύϥϝʔλΛ୳͢

Slide 25

Slide 25 text

$ cufind_fm_params -i ../Piano.mf.C4.aiff -o out -n 48 -m 6 -t 40 -w -8 -s 4 -c 1000 real 163m42.037s user 139m52.715s sys 23m34.418s $ ࣌ؒ෼ඵ 04 (FOUPP-JOVYY@ MJOVY ίϯύΠϥ OWDD ''5ʹ࢖༻ͨ͠ϥΠϒϥϦ $V''5 $16 *OUFM$PSFJ 4LZMBLF ()[ίΞ (16 OWJEJB(F'PSDF(59()[$6%"ίΞ ϝϞϦ IPTU(#EFWJDF(# αϯϓϦϯάσʔλͷ௕͞ ඵ L)[ ऴྃ৚݅ ੈ୅໨ΛٻΊͨΒऴྃ ໰୊఺͕͔͔࣌ؒΔ

Slide 26

Slide 26 text

ͳΔ΄Ͳ

Slide 27

Slide 27 text

'.Իݯύϥϝʔλ ΦʔσΟΦσʔλ '.ԻݯͰԋ૗ ͜ͷؔ਺͕ ཉ͍͠ '.Իݯͷٯؔ਺͕ཉ͍͠ ղੳతʹٻΊΔͷ͸೉͍͕͠ χϡʔϥϧωοτϫʔΫʹΑΔճؼͰ ٯؔ਺ͷۙࣅ͕ಘΒΕͳ͍͔

Slide 28

Slide 28 text

χϡʔϥϧωοτϫʔΫ

Slide 29

Slide 29 text

ܗࣜχϡʔϩϯ ೖྗ ೖྗ ೖྗ ॏΈX ॏΈX ॏΈX ೖྗΛෳ਺ड͚औͬͯ ॏΈΛ͔͚ͯ૯࿨ΛऔΓ ͦΕΛ׆ੑԽؔ਺ʹ௨ͨ݁͠ՌΛग़ྗ͢Δؔ਺ ׆ੑԽؔ਺

Slide 30

Slide 30 text

׆ੑԽؔ਺ ೖྗ͕͋Δᮢ஋ΑΓେ͖͍࣌ʹҎ্ͷ஋Λฦ͠ ᮢ஋ҎԼͷ৔߹ʹΛฦ͢Α͏ͳԿΒ͔ͷؔ਺

Slide 31

Slide 31 text

ೖྗ ೖྗ ೖྗ ग़ྗ ग़ྗ ग़ྗ ܗࣜχϡʔϩϯ͕͜Μͳ෩ʹ ܨ͕͍ͬͯΔؔ਺Λߟ͑Δ ֤઀ଓͷॏΈʹΑͬͯ ೖྗͱग़ྗͷؒʹ༷ʑͳؔ܎Λ࣋ͨͤΒΕΔ

Slide 32

Slide 32 text

ޡࠩٯ఻೻ Y Y Y ॏΈX ॏΈX ॏΈX ग़ྗZP 㱠ظ଴͢Δग़ྗZ ͋ΔॏΈXͷܗࣜχϡʔϩϯʹ ஋YΛ௨ͯ͠ग़͖ͯͨ஋ZP͕ग़͖ͯͯཉ͍͠஋ͱҧͬͨ࣌ ͜ͷχϡʔϩϯͷৼΔ෣͍Λظ଴͢Δ΋ͷʹ͚ۙͮΔͷ͸ YͱZΛఆ਺ͱΈͳͯ͠ ZͱZPͷڑ཭͕࠷খͱͳΔΑ͏ͳ ॏΈͷ஋Λ୳Δ໰୊ʹͳΔ

Slide 33

Slide 33 text

ޯ഑߱Լ๏ ZͱZP͕ͣΕ͍ͯΔ΄Ͳ େ͖ͳ஋ΛͱΔؔ਺& ZP Λఆٛ͢Δ &ͷΑ͏ͳؔ਺ΛΤϥʔؔ਺ͱݺͿ X & ZP ͜͜ʹߦ͖͍ͨ ͍·͜͜

Slide 34

Slide 34 text

X & ZP ͜͜ʹߦ͖͍ͨ ͍·͜͜ ࠓͷҐஔͷ܏͖ʹԊͬͯ XΛߋ৽͢Ε͹ྑ͍ͷͰ͸ ޯ഑߱Լ๏ ZͱZP͕ͣΕ͍ͯΔ΄Ͳ େ͖ͳ஋ΛͱΔؔ਺& ZP Λఆٛ͢Δ

Slide 35

Slide 35 text

ޡࠩٯ఻೻ ZP Y X X Τϥʔؔ਺ʹର͢Δ XͷӨڹ Τϥʔؔ਺ʹର͢Δ XͷӨڹ ط஌ ͜ͷ෦෼Λग़ྗଆ͔Βॱ൪ʹٻΊ͍͚ͯ͹ྑ͍ ܗࣜχϡʔϩϯ͕Կ૚΋ॏͳ͍ͬͯͯ΋ ॏΈͷमਖ਼͕Ͱ͖Δ

Slide 36

Slide 36 text

χϡʔϥϧωοτϫʔΫ ط஌ͷೖྗ ط஌ͷग़ྗ ? ະ஌ͷؔ਺͕͋ͬͯ ͦͷೖྗͱग़ྗͷ૊͕े෼ͳྔ͋Δͱ͖ʹ ະ஌ͷؔ਺Λۙࣅ͢Δؔ਺Λ ܭࢉͰٻΊΔࣄ͕Ͱ͖Δ

Slide 37

Slide 37 text

ΑΓৄ͍͠ޡࠩٯ఻೻ͷ਺ֶతͳղઆ͸ ΦϥΠϦʔ͔Βྑ͍ຊ͕ग़͍ͯΔ θϩ͔Β࡞ΔDeep Learning

Slide 38

Slide 38 text

'.Իݯύϥϝʔλ ΦʔσΟΦσʔλ '.ԻݯͰԋ૗ ͜ͷؔ਺͕ ཉ͍͠ '.Իݯͷύϥϝʔλͱ ͦͷԋ૗݁ՌͷΦʔσΟΦσʔλ͸ େྔʹ༻ҙͰ͖Δط஌ͷೖग़ྗͰ͋Δ ΦʔσΟΦσʔλ͔Β '.ԻݯύϥϝʔλΛಘΔؔ਺͸ ະ஌ͷؔ਺Ͱ͋Δ

Slide 39

Slide 39 text

ֶशσʔλͷ༻ҙ

Slide 40

Slide 40 text

͜ͷͭͷԻɺฉ͖෼͚ΒΕ·͔͢ ͦͷ Ի Ի

Slide 41

Slide 41 text

͜ͷͭͷԻɺฉ͖෼͚ΒΕ·͔͢ ͦͷ Ի Ի

Slide 42

Slide 42 text

ਓؒͷௌ֮͸ ֤प೾਺ͷ೾ͷৼ෯͚ͩΛฉ͍͍ͯͯ Ґ૬Λฉ͍͍ͯͳ͍ ྘ͷഒԻͷҐ૬͕ͣΕ͍ͯΔ͕ ͦͷࣄΛ஌֮͢Δࣄ͸ग़དྷͳ͍

Slide 43

Slide 43 text

प೾਺ ࣌ࠁ '.ԻݯΛ ΦΫλʔϒ໨ͷϥ)[Ͱ໐Β͠ ''5ʹ͔͚ͯεϖΫτϧը૾ΛಘΔ

Slide 44

Slide 44 text

΢ΣʔόʔɾϑΣώφʔͷ๏ଇ ਓؒͷޒײ͕஌֮͢Δྔ͸ ࣮ࡍͷܹࢗʹର͓ͯ͠Αͦର਺ͷؔ܎ʹ͋Δ εϖΫτϧը૾ͷ͋Δ఺ͷ஋͕ ͔͔ͩͬͨͩͬͨ͸ ͔͔ͩͬͨͩͬͨൺ΂ͯ ૬ରతʹॏཁͰ͸ແ͍

Slide 45

Slide 45 text

͜ͷը૾ͷεϖΫτϧʹ͸ ҎԼͷม׵͕͔͚ΒΕ͍ͯΔ

Slide 46

Slide 46 text

༗༻ͳԻ͕ग़Δൣғ '.Իݯύϥϝʔλͷۭؒͷ͏ͪ ΄ͱΜͲͷ෦෼͸Ի֊͕͸͖ͬΓ͠ͳ͍ ϊΠζͷΑ͏ͳԻʹͳ͍ͬͯΔ

Slide 47

Slide 47 text

χϡʔϥϧωοτϫʔΫʹૹΔԻ৭ͷੜ੒ʹ͸ ҎԼͷ੍໿Λઃ͚Δ ൪໨ͷΦϖϨʔλ͸ඞͣجԻͷप೾਺ʹ͢Δ ग़ྗஈʹܨ͕͍ͬͯΔΦϖϨʔλͷ ΤϯϕϩʔϓͷϐʔΫλΠϜΛἧ͑Δ ൪໨Ҏ֎ͷΦϖϨʔλͷप೾਺͸ جԻͷ੔਺ഒ͔Β͋·Γ֎Εͳ͍Α͏ʹ͢Δ ΦϖϨʔλ΁ͷೖྗͷ૯࿨͸Λ௒͑ͳ͍Α͏ʹ͢Δ ϑΟʔυόοΫೖྗͷৼ෯͸Λ௒͑ͳ͍Α͏ʹ͢Δ Τϯϕϩʔϓ͸ඵ͔Βඵͷؒʹճ͚ͩ࠷େ஋ͱͳΓ ͦͷޙ͸ݮগ͢Δ ൪໨ͷΦϖϨʔλͷԻ͸ඞͣग़ྗஈʹग़Δ ༗༻ͳԻ͕ग़Δൣғ

Slide 48

Slide 48 text

ೖग़ྗͷؔ܎ΛҰҙʹ͢Δ ΦϖϨʔλ ΦϖϨʔλ ΦϖϨʔλ ग़ྗ ΦϖϨʔλ ΦϖϨʔλ ΦϖϨʔλ ग़ྗ ΦϖϨʔλͷฒͼॱ͕มΘ͚ͬͨͩͰ ಉ͡ܭࢉ͕ߦΘΕΔΑ͏ͳ৔߹ ෳ਺ͷύϥϝʔλ͔Βಉ͡Ի͕ग़ͯ͘Δ ೖग़ྗͷؔ܎͕ҰҙͰͳ͍Α͏ͳσʔλ͸ ֶश͕ऩଋ͠ͳ͍ݪҼͱͳΔ

Slide 49

Slide 49 text

ಉ͡Ի͕ग़Δύϥϝʔλ͕།ҰʹͳΔΑ͏ʹ ҎԼͷ੍໿ΛՃ͑Δ ग़ྗஈʹܨ͕͍ͬͯΔΦϖϨʔλ͸ ग़ྗஈͷϛΩαʔͷԻྔͰιʔτ͢Δ ग़ྗஈʹܨ͕͍ͬͯͳ͍ΦϖϨʔλ͸ جԻʹରͯ͠Կഒͷप೾਺Ͱಈ͍͍ͯΔ͔ͱ ଞͷΦϖϨʔλ΁ೖྗϛΩαʔͷԻྔͷ૯࿨Ͱιʔτ͢Δ ϦϦʔελΠϜ͸ద౰ͳ࣌ؒʹݻఆ͢Δ ग़ྗʹର͢ΔӨڹ͕ஶ͘͠খ͍͞ΦϖϨʔλ͸θϩΫϦΞ͢Δ ೖग़ྗͷؔ܎ΛҰҙʹ͢Δ

Slide 50

Slide 50 text

ೖྗ૚͔ΒεϖΫτϧը૾ΛಥͬࠐΜͰ ͦͷԻΛग़͢ͷʹ࢖ͬͨ '.Իݯύϥϝʔλͱͷڑ཭ͰॏΈΛमਖ਼ ೖྗ૚ '.ԻݯͰ໐Βͯ͠εϖΫτϧը૾Λ࡞Δ ཚ਺Ͱ'.ԻݯύϥϝʔλΛੜ੒ ӅΕ૚ ग़ྗ૚ Τϥʔؔ਺ ָثͷԻ ָثͷԻΛ ࠶ݱ͢Δ '.Իݯ ύϥϝʔλ ֶश ධՁ χϡʔϥϧωοτϫʔΫ

Slide 51

Slide 51 text

৞ΈࠐΈ χϡʔϥϧωοτϫʔΫ

Slide 52

Slide 52 text

৞ΈࠐΈ૚ શ݁߹ ৞ΈࠐΈ ը૾ͷΑ͏ʹྡΓ߹ͬͨσʔλʹؔ࿈ੑ͕͋Δ৔߹ ۙ๣਺ϐΫηϧΛ·ͱΊͨϑΟϧλ͕ॏཁͳ໾ׂΛՌͨ͢ࣄ͕ଟ͍ શ݁߹ͷωοτϫʔΫ͔ΒֶशʹΑͬͯ ӈͷΑ͏ͳ઀ଓ͕ੜ·ΕΔͷΛ଴ͭΑΓ ࠷ॳ͔ΒӈͷΑ͏ͳݶΒΕͨཁૉ͔͠ ઀ଓ͞Ε͍ͯͳ͍૚Λ࡞Ζ͏

Slide 53

Slide 53 text

ϓʔϦϯά૚ ϓʔϦϯά ݶΒΕͨྖҬͷதͰ࠷΋େ͖ͳ஋Λฦͨ͠ χϡʔϩϯͷ஋͚ͩΛ࣍ͷ૚ʹ఻͑Δ ݶΒΕͨྖҬͷதͰ࠷΋େ͖ͳ஋Λฦͨ͠ χϡʔϩϯͷ஋͚ͩΛ࣍ͷ૚ʹ఻͑Δ

Slide 54

Slide 54 text

ਂ૚ֶश

Slide 55

Slide 55 text

Shallow vs. Deep Sum-Product Networks [Olivier Delalleau and Yoshua Bengio, 2011] https://papers.nips.cc/paper/4350-shallow-vs-deep-sum-product-networks ಉ͡χϡʔϩϯΛ૿΍͢ͳΒ ૚Λ޿͘͢ΔΑΓ૚ͷ਺Λ૿΍͢ํ͕ ΑΓෳࡶͳؔ਺ΛදݱͰ͖Δͱ͢Δ࿦จ

Slide 56

Slide 56 text

ޯ഑ফࣦ໰୊ ۃΊͯʹ͍ۙ ੵͳͷͰ͔͜͜Βઌ͕Ͳ͏ͳ͍ͬͯͯ΋ ۃΊͯʹ͍ۙޯ഑ʹͳͬͯ͠·͏ ޡࠩٯ఻೻ͷաఔͰޯ഑͕ແ͘ͳͬͯ͠·͍ ͦΕΑΓ΋্ͷ૚ͷֶश͕ਐ·ͳ͘ͳΔ໰୊ ଟ૚ͷχϡʔϥϧωοτϫʔΫͷ ֶश͸ࠔ೉ͱߟ͑ΒΕ͍ͯͨ

Slide 57

Slide 57 text

ޯ഑ফࣦ໰୊ ݹయతͳχϡʔϥϧωοτϫʔΫ͸ ඍ෼Ͱ͖Δεςοϓؔ਺ͷ୅ΘΓͱͯ͠ ׆ੑԽؔ਺ʹγάϞΠυؔ਺Λ࢖͍ͬͯͨ ͜͏͍͏ͱ͜ΖͰඍ෼͠Α͏ͱ͢Δͱ ܏͖͕ۃΊͯখ͘͞ͳΔ

Slide 58

Slide 58 text

ReLU ׆ੑԽ͍ͯ͠ΔݶΓେ͖ͳޯ഑ ׆ੑԽ͍ͯ͠Δχϡʔϩϯ͕ͭͰ΋͋Ε͹ ׆ੑԽؔ਺͕ݪҼͰޯ഑͕ࣦΘΕΔ͜ͱ͸ ແ͘ͳͬͨ Rectified linear units improve restricted boltzmann machines [Vinod Nair and Geoffrey E. Hinton, 2010] https://dl.acm.org/citation.cfm?id=3104425

Slide 59

Slide 59 text

GoogLeNet ෳ਺Օॴͷग़ྗΛΤϥʔؔ਺ʹ௨ͯ͠ ௕͍ωοτϫʔΫͷ్தͰ ޯ഑Λิڅ͢Ε͹ྑ͍ ͔͜͜Βޡࠩٯ఻೻ ͔͜͜Β΋ ͬͪ͜΋ Going Deeper with Convolutions [Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich, 2015] https://research.google.com/pubs/pub43022.html

Slide 60

Slide 60 text

ϒϩοΫΛ௨͖ͬͯͨ஋ͱ ϒϩοΫͷೖྗΛࠞͥͯग़ྗ͢Δ ResNet Deep Residual Learning for Image Recognition [Kaiming He and Xiangyu Zhang and Shaoqing Ren and Jian Sun, 2015] https://arxiv.org/abs/1512.03385

Slide 61

Slide 61 text

ResNet Deep Residual Learning for Image Recognition [Kaiming He and Xiangyu Zhang and Shaoqing Ren and Jian Sun, 2015] https://arxiv.org/abs/1512.03385 ৞ΈࠐΈY ৞ΈࠐΈY 3F-6 3F-6 Ճࢉ Yͷ৞ΈࠐΈͭΛ ϒϩοΫͱ͢Δ Լͷ৞ΈࠐΈͷޙ ׆ੑԽؔ਺ʹ௨͢લʹ ೖྗΛࠞͥΔ 3F-6͸׆ੑԽ͍ͯ͠ΔݶΓ େ͖ͳޯ഑ΛऔΔͨΊ ੺ͷϧʔτͷޯ഑͸্૚Ͱ΋େ͖͘ͳΔ

Slide 62

Slide 62 text

ωοτϫʔΫ͸௕͍ํ͕ෳࡶͳؔ਺ΛදͤΔ ResNetΛ࢖͑͹ޯ഑ফࣦ͸໰୊ʹͳΒͳ͍ 1୆ͷϚγϯʹ৐ΔൣғͰ΍͍ͬͯΔݶΓ ৳͹ͤΔͱ͜·Ͱ௕͍ResNetΛ࢖ͬͯ ௕͗͢Δͱ͍͏ࣄ͸ͳ͍Μ͡Όͳ͍͔ͳ '.Իݯ͸ଟ෼ෳࡶͳؔ਺ͳΜ͡Όͳ͍͔ͳ

Slide 63

Slide 63 text

࣮૷

Slide 64

Slide 64 text

Caffe Φʔϓϯιʔεͳ σΟʔϓϥʔχϯάϑϨʔϜϫʔΫͷ1ͭ http://caffe.berkeleyvision.org/

Slide 65

Slide 65 text

CUDAΛ࢖ͬͯGPUͰ χϡʔϥϧωοτϫʔΫͷ ֶशͱධՁΛߦ͏ࣄ͕Ͱ͖Δ Caffeͱιϑτ΢ΣΞFMԻݯΛ૊Έ߹ΘͤΔ GPUΛ࢖ͬͨ৔߹ CPUଆ͸΄΅σʔλͷసૹʹઐ೦͢ΔࣄʹͳΓ Ϛϧνϓϩηοαͷ৔߹ 1ͭΛআ͍ͯ༡ΜͰ͍Δঢ়ଶʹͳΔ ࢒ΓͷϓϩηοαʹεϖΫτϧը૾ͷੜ੒Λͤͯ͞ ग़དྷͨ෺͔ΒGPUʹ౤͛Ε͹ ࣄલʹେྔͷεϖΫτϧը૾Λ༻ҙ͢Δඞཁ͕ແ͍

Slide 66

Slide 66 text

void training_data_generator::poll() { bool active=true; constexpr size_t batch_size=15; constexpr size_t image_size=400*length; constexpr size_t config_size=config_length; const auto window=softfm::generate_window(1<<13); std::random_device seed_gen; resource_type resources(batch_size,192000,seed_gen()); generate_training_data generator; while(1) { if(active) { std::vector pixels_(image_size*batch_size,0); std::vector configs_(config_size*batch_size,0); generator(window,pixels_.data(),configs_.data(),batch_size,resources); std::lock_guard lock(guard); configs.emplace(std::move(configs_)); pixels.emplace(std::move(pixels_)); if(pixels.size()==100)active=false; if(end)break; } else { std::lock_guardlock(guard); if(pixels.size()< 100)active=true; if(end) break; } } } FMԻݯͷεϖΫτϧը૾ͱઃఆͷϖΞΛ ແݶʹ࡞ΔεϨου

Slide 67

Slide 67 text

template void FMAudio8Layer::DataLayerSetUp( const vector*>& bottom,const vector*>& top){ CHECK_GT(batch_size_*size_,0)<<"oops"; labels_.resize(batch_size_,0); auto &gen=softfm::training_data_generator::get(); data_[pos_]=std::move(gen.get_pixels()); vector label_shape(1,batch_size_); top[0]->Reshape(batch_size_,channels_,height_,width_); top[1]->Reshape(label_shape); added_data_.Reshape(batch_size_,channels_,height_,width_); added_label_.Reshape(label_shape); added_data_.cpu_data(); added_label_.cpu_data(); } template void FMAudio8Layer::Forward_cpu( const vector*>& bottom,const vector*>& top){ top[0]->Reshape(batch_size_,channels_,height_,width_); top[1]->Reshape(batch_size_,1,1,1); top[0]->set_cpu_data(data_[pos_].data()); top[1]->set_cpu_data(labels_.data()); pos_=(pos_+1)%n_; auto &gen=softfm::training_data_generator::get(); data_[pos_]=std::move(gen.get_pixels()); } ੜ੒͞ΕͨFMԻݯͷεϖΫτϧը૾Λर͏ೖྗ૚

Slide 68

Slide 68 text

layer { name: "data" type: "FMAudio8" top: "data" top: "dummy1" } layer { name: "label" type: "FMConfig8" top: "label" top: "dummy2" } layer { name: "conv_1" type: "Convolution" bottom: "data" top: "conv_1" ࣮૷ͨ͠ೖྗ૚Λ ωοτϫʔΫఆٛϑΝΠϧʹ ฒ΂Δ εϖΫτϧը૾͕ ແݶʹ༙͍ͯ͘Δ૚ '.Իݯͷઃఆ͕ ແݶʹ༙͍ͯ͘Δ૚

Slide 69

Slide 69 text

layer { name: "conv_1" type: "Convolution" bottom: "data" top: "conv_1" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 64 pad: 3 kernel_size: 7 stride: 2 #4%ϥΠηϯεͰ഑෍͞Ε͍ͯΔ3FT/FUͷఆ͕ٛ طʹ͋ΔͷͰ ໯͖ͬͯͯઌ΄Ͳͷೖྗ૚ʹ͚ͬͭ͘Δ https://github.com/jay-mahadeokar/pynetbuilder

Slide 70

Slide 70 text

layer { name: "loss/classifier_" type: "InnerProduct" bottom: "conv_1by1_1000" top: "loss/classifier_" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } inner_product_param { num_output: 104 weight_filler { type: "xavier" } ग़ྗͷ਺͕ '.Իݯύϥϝʔλͷ਺ʹ ͳΔΑ͏ʹ಺ੵΛͱͬͯ

Slide 71

Slide 71 text

࠷ޙʹ'.Իݯͷઃఆͱͷ ϢʔΫϦουڑ཭ΛٻΊΔ num_output: 104 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0 } } } layer { name: "loss/loss" type: "EuclideanLoss" bottom: "loss/classifier_" bottom: "label" top: “loss/loss" loss_weight: 1 }

Slide 72

Slide 72 text

ResNet͸૚ͷ਺Λൺֱతॊೈʹ ૿ݮͤ͞Δࣄ͕Ͱ͖Δ ݩͷ࿦จʹ͸ CIFAR-10(Ұൠ෺ମೝࣝϕϯνϚʔΫ)ʹ͓͍ͯ 152૚·Ͱ͸૚Λ૿΍͢΄Ͳ ྑ͍݁Ռ͕ಘΒΕͨ͢Δ࣮ݧ݁Ռ͕ࡌ͍ͬͯΔ ͳͥResNet-36ͳͷ͔

Slide 73

Slide 73 text

GeForce GTX1070 ࠓճ࢖ͬͨGPU

Slide 74

Slide 74 text

$ nvidia-smi Thu Nov 16 00:54:35 2017 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 384.90 Driver Version: 384.90 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 1070 Off | 00000000:01:00.0 Off | N/A | | 41% 69C P2 118W / 151W | 6557MiB / 8114MiB | 99% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 28991 C ./resume 6547MiB | +-----------------------------------------------------------------------------+ ϝϞϦ͕8GB͔͠ͳ͍ೈऑͳGPUͰ͸ ResNet-36ͷ࣍ʹখ͍͞ResNet-50͸ ϝϞϦʹ৐Βͳ͔ͬͨ(όοναΠζ15ͷ৔߹) ΋͏73".ͳ͍ ͳͥResNet-36ͳͷ͔

Slide 75

Slide 75 text

CaffeͷSolverͰֶश void run(){ caffe::SolverParameter solver_param; caffe::ReadProtoFromTextFileOrDie(FLAGS_solver, &solver_param); std::shared_ptr> solver(caffe::SolverRegistry::CreateSolver(solver_param)); if (FLAGS_snapshot.size()) { LOG(INFO) << "Resuming from " << FLAGS_snapshot; solver->Restore(FLAGS_snapshot.c_str()); } else if (FLAGS_weights.size()) { CopyLayers(solver.get(), FLAGS_weights); } const auto net = solver->net(); LOG(INFO) << "Solve start."; solver->Solve(); }

Slide 76

Slide 76 text

return; } if( FLAGS_output.empty() ) { LOG(INFO) << "Required parameter output is not set." << FLAGS_snapshot; return; } const auto net = solver->net(); float dummy = 0.f; constexpr size_t image_size = 400*400; std::vector< float > image( image_size, 0.f ); softfm::get_spectrum_image_flat( std::vector< std::pair< int, std::string > >{ { FLAGS_note, FLAGS_input } }, image.data(), FLAGS_threshold ); const auto input_layer = boost::dynamic_pointer_cast< caffe::MemoryDataLayer< float > >( net->layer_by_name("data") ); input_layer->Reset( image.data(), &dummy, 1 ); const auto result = net->Forward(); const auto data = result[ 1 ]->cpu_data(); const std::vector< float > values( data, std::next( data, result[ 1 ]->count() ) ); namespace karma = boost::spirit::karma; std::string serialized; std::ofstream out( FLAGS_output, std::ios::out|std::ios::binary ); std::ostreambuf_iterator< char > obuf( out.rdbuf() ); karma::generate( obuf, karma::float_ % ',' , values ); } ຊ෺ͷָثͷԻΛ ֶशͨ͠ωοτϫʔΫʹ௨ͯ͠ධՁ

Slide 77

Slide 77 text

ޡૢ࡞ʹΑΓ ͜ͷظؒͷΤϥʔϩά͸ࣦΘΕͨ 200epoc͋ͨΓ·Ͱ͸ٸܹʹޡ͕ࠩݮ͕ͬͨ ͔ͦ͜Β͸ඇৗʹΏͬ͘Γݮগ͍ͯͬͨ͠

Slide 78

Slide 78 text

102MBͷFMԻݯ৬ਓͷΧϯ͕஀ੜͨ͠ $ ls 8op_iter_300000.caffemodel -lhaS -rw-r--r-- 1 root root 102M 11݄ 16 17:42 8op_iter_300000.caffemodel

Slide 79

Slide 79 text

࣮ࡍͷϐΞϊͷԻ χϡʔϥϧFMԻݯ Ҩ఻తFMԻݯ ໐Γ࢝Ίʹग़͍ͯΔप೾਺͸େମ߹͍ͬͯΔ͕ ഒԻ͕શ͘ݮਰ͍ͯ͠ͳ͍ ݁Ռ ϐΞϊ

Slide 80

Slide 80 text

࣮ࡍͷϐΞϊͷԻ χϡʔϥϧFMԻݯ Ҩ఻తFMԻݯ Ҩ఻తFMԻݯʹΑΔϐΞϊ গͳ͘ͱ΋͜ͷ͘Β͍͸ग़ͤΔ͜ͱ͸Θ͔͍ͬͯΔ ϐΞϊ ݁Ռ

Slide 81

Slide 81 text

࣮ࡍͷϐΞϊͷԻ χϡʔϥϧFMԻݯ Ҩ఻తFMԻݯ ϐΞϊͬΆ͘ฉ͑͜Δ෦෼΋͋Δ͕ Ҩ఻తFMԻݯͱൺ΂Δͱ͠ΐͬͺ͍ ϐΞϊ ݁Ռ

Slide 82

Slide 82 text

࣮ࡍͷϏΦϥͷԻ χϡʔϥϧFMԻݯ ϏΦϥ ݁Ռ

Slide 83

Slide 83 text

࣮ࡍͷαοΫεͷԻ χϡʔϥϧFMԻݯ ΞϧταοΫε ݁Ռ

Slide 84

Slide 84 text

ֶशࡁΈͷϞσϧ͕͋Δঢ়ଶ͔ΒͳΒ Ҩ఻తΞϧΰϦζϜͱൺֱͯ͠ѹ౗తʹ୹࣌ؒ ܭࢉʹཁͨ࣌ؒ͠ 04 (FOUPP-JOVYY@B MJOVY (FOUPP-JOVYY@B MJOVY ίϯύΠϥ OWDD HDD ''5ʹ࢖༻ͨ͠ $V''5 ''58 ୯ਫ਼౓ɺ0QFO.1ରԠɺ"79ରԠ %//ϑϨʔϜϫʔΫ $B⒎F $16 *OUFM$PSFJ 4LZMBLF ()[ίΞ (16 OWJEJB(F'PSDF(59()[$6%"ίΞ ϝϞϦ IPTU(#EFWJDF(# σʔλͷ௕͞ ඵ L)[ ऴྃ৚݅ ੈ୅໨ΛٻΊͨΒऴྃ ॱํ޲ͷܭࢉΛճߦͬͯऴྃ ܭࢉʹཁͨ࣌ؒ͠ ࣌ؒ෼ඵ ඵ ݁Ռ

Slide 85

Slide 85 text

χϡʔϥϧωοτϫʔΫͰૉૣ͘ٻΊͨ େࡶ೺ͳղΛॳظ஋ͱͯ͠ Ҩ఻తΞϧΰϦζϜͰਖ਼֬ͳղʹ͚ۙͮΕ͹ ୹͔࣌ؒͭߴ඼࣭ͳύϥϝʔλ͕ಘΒΕΔ͔΋ ߟ࡯

Slide 86

Slide 86 text

৞ΈࠐΈχϡʔϥϧωοτϫʔΫΛ࢖ͬͯ ༩͑ΒΕͨԻ৭ʹ͍ۙԻ͕ग़Δ FMԻݯͷύϥϝʔλΛٻΊͨ Ҩ఻తΞϧΰϦζϜΛ࢖ͬͨ৔߹ͱൺֱͯ͠ ඼࣭Ͱ͸ྼΔ͕ܭࢉ࣌ؒͰ͸༗ར ྆ऀΛ૊Έ߹ΘͤΔͱྑ͍͔΋͠Εͳ͍ ·ͱΊ े෼ͳ࣮ݧΛߦΘͣʹબΜͩ ϋΠύʔύϥϝʔλ͕ଟ͍ͨΊ ΋ͬͱ඼࣭Λ্͛Δํ๏͕ӅΕ͍ͯΔ͔΋