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
ゼロから作るディープラーニング MNIST(手書き数字)の認識を試してみる
Search
shohu
December 09, 2016
Education
0
1k
ゼロから作るディープラーニング MNIST(手書き数字)の認識を試してみる
shohu
December 09, 2016
Tweet
Share
Other Decks in Education
See All in Education
2024年度春学期 統計学 第13回 不確かな測定の不確かさを測る ― 不偏分散とt分布 (2024. 7. 4)
akiraasano
PRO
0
160
Matz に頼られたので張り切って2時間ほどドイツと日本の互いの Ruby 学習事情についてディスカッションした話
yasulab
1
370
世界のオープンソースロボットたち #1
shiba_8ro
0
130
20241004_Microsoft認定資格のFundamentals全部取ってみた
ponponmikankan
2
310
Comment aborder et contribuer sereinement à un projet open source ? (Masterclass Université Toulouse III)
pylapp
0
3.2k
本の虫になろう
kenjiro56
0
140
Requirements Analysis and Prototyping - Lecture 3 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
770
construindo uma carreira com opensource
caarlos0
0
210
Design Guidelines and Models - Lecture 5 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
660
アニメに学ぶチームの多様性とコンピテンシー
terahide
0
210
Contentless Marketing
jonoalderson
0
1.5k
認知情報科学科_キャリアデザイン_大学院の紹介
yuyakurodou
0
110
Featured
See All Featured
Building Adaptive Systems
keathley
38
2.2k
Automating Front-end Workflow
addyosmani
1365
200k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
A Modern Web Designer's Workflow
chriscoyier
692
190k
Building Better People: How to give real-time feedback that sticks.
wjessup
363
19k
Code Reviewing Like a Champion
maltzj
519
39k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.8k
Six Lessons from altMBA
skipperchong
26
3.5k
Building Your Own Lightsaber
phodgson
102
6k
Bash Introduction
62gerente
608
210k
Transcript
θϩ͔Β࡞ΔσΟʔϓϥʔχϯά MNIST(खॻ͖ࣈ)ͷೝࣝΛࢼͯ͠ΈΔ @shohu33
ΰʔϧ खॻ͖ͷࣈΛPGʹผͤ͞Δ͜ͱ
͔͞ͳຊ ࠓ̏ষʙ̐ষΛΔ
ύʔηϓτϩϯ
x1 x2 y w1 w2 x1, x2 ೖྗ৴߸ y ग़ྗ৴߸
w1, w2ॏΈ y 0 (w1x1 + w2x2 <= θ) 1 (w1x1 + w2x2 > θ) θᮢɻᮢΛ͑ΔͱൃՐ͢Δʂ ෳͷ৴߸Λೖྗͱͯ͠ड͚औΓ ͻͱͭͷ৴߸Λग़ྗ͢Δ
x1 x2 y ୈ0 s1 s2 ୈ1 ୈ2 ύʔηϓτϩϯΛΈ߹ΘͤΔͱ ίϯϐϡʔλʔͰ͖Δͱ͍͏Λલճ͠·ͨ͠
Ͱɺࠓճ͍Α͍Α χϡʔϥϧωοτϫʔΫ
χϡʔϥϧωοτϫʔΫͱ
ਓؒͷͷਆܦճ࿏ͷΈΛͨ͠Ϟσϧɻ ίϯϐϡʔλʹֶशೳྗΛ ࣋ͨͤΔ͜ͱʹΑΓɺ༷ʑͳΛղܾ͢ΔͨΊͷΞϓϩʔν
χϡʔϥϧωοτϫʔΫ ͱ ύʔηϓτϩϯ ͷओͳҧ͍
׆ੑԽؔ ͷҧ͍͚ͩ
׆ੑԽؔͱʁ
ೖྗ৴߸ͷ ૯Λग़ྗ৴߸ʹ ม͢Δؔ ৴߸2 ଛࣦؔ ৴߸1 ৴߸3 ग़ྗ
׆ੑԽؔ χϡʔϥϧωοτϫʔΫͷͲ͜Ͱ͏͔ʁ
x1 x2 ૯ ग़ྗ ׆ੑԽؔ b όΠΞε χϡʔϩϯͷൃՐ͢͠͞Λίϯτϩʔϧ y1 y2
લ(͘͠ೖྗ)͔Β Λड͚औΓ࣍ͷͷग़ྗΛߦ͏ ग़ྗ = ׆ੑԽؔ(ೖྗ৴߸ͷ૯)
ͨͩɺύʔηϓτϩϯͷ࣌׆ੑԽؔͬͯ Δɻεςοϓؔͬͯͭɻ
݁ہ ύʔηϓτϩϯ ͱ χϡʔϥϧωοτϫʔΫ ͷ׆ੑԽؔ ͷ ҧ͍ʁ
ύʔηϓτϩϯ = εςοϓؔ χϡʔϥϧωοτϫʔΫ = γάϞΠυؔ or LeRUؔ ֊ஈঢ় ᮢʹୡ͢Δͱग़ྗ͞
ΕΔ άϥϑ͕গ͠ͷಈ͖ ͰԠ͢Δ
άϥϑ͕Β͔ͩͬͨΓɺগ͠ͷͷมԽ Ͱग़ྗ͕มԽ͠ͳ͍ͱ͏·ֶ͘शͰ͖ͳ͍ɻ ֶश͢Δࡍʹɺখ͘͞ೖྗΛߋ৽ͯ͠ɺ֤χϡʔϩϯઢͷॏΈΛ ࡉ͔͘ௐ͠ͳ͚ΕͳΒͳ͍͕ εςοϓؔͩͱେࡶ͗ͯ͢ௐͣ͠Β͍ɻ ͜ͷͨΊχϡʔϥϧωοτϫʔΫͰ γάϞΠυؔLeRUؔͷΑ͏ʹҾͷΛ গ͠ Ͱม͑ΔͱԠ͢Δ͕ؔΘΕΔ
·ͨɺ࠷ޙͷग़ྗʹ͏׆ੑԽؔ ͜Ε·Ͱ͏ؔͱผͰ͢
x1 x2 b y1 y2 b ग़ྗ ग़ྗͷ׆ੑԽ ؔɺલͱछ ྨ͕ҧ͏
׆ੑԽؔ
ग़ྗͷ׆ੑԽؔҎԼ̎छྨͳͲ͕͋Δ ɾ߃ؔ ɹɹճؼͰΑ͘ΘΕΔ ɾιϑτϚοΫεؔ ɹɹྨͰΑ͘ΘΕΔ
x1 x2 b y1 y2 ߃ؔΛͦͷ··ग़ྗ͢Δ͚ͩ b ߃ؔͷ߹ ೖྗΛͦͷ··ग़ྗ ճؼͰΑ͘ΘΕΔ
͋Δೖྗσʔλ͔Β(࿈ଓతͳ)ͷ༧ଌΛߦ͏ɻ ਓͷࣸͬͨը૾͔ΒͦͷਓͷମॏΛ༧ଌ͢ΔΑ͏ͳ ߃ؔ ͦͷ··ग़ྗ
x1 x2 b y1 y2 Softmax ؔ Softmaxؔग़ྗͷ֤χϡʔϩϯ͕શͯͷೖྗ৴߸͔ΒӨڹΛड͚Δ b Softmaxؔͷ߹
y3 ྨͰΑ͘ΘΕΔ σʔλ͕ͲͷΫϥεʹଐ͢Δ͔ͱ͍͏ɻ ਓͷࣸͬͨը૾͕ɺঁͳͷ͔ɺஉͳͷ͔ʁ உͷ֬70% ঁͷ֬20% ੑผෆ໌ 10%
׆ੑԽؔͷಛ͕௫Ίͨͱ͜ΖͰ
͔͜͜Βֶश͢ΔͨΊͷ֓೦ΛֶΜͰ͍͘
ֶशΛߦ͑ΔΑ͏ʹ͢ΔͨΊʹ ଛࣦؔΛಋೖ͢Δඞཁ͕͋Δ
ଛࣦؔͱʁ
χϡʔϥϧωοτϫʔΫͷ ѱ͞Λࣔ͢͜ͱ͕Ͱ͖Δɻ (ଛࣦؔͷ͕ࣔ͢ߴ͚Εѱ͍ɺ͚Εྑ͍) ͜ͷͨΊɺ͜ͷ ଛࣦؔͷ ग़ྗ͢ΔΛ͘͢Ε χϡʔϥϧωοτϫʔΫ͕ ྑ͘ͳΔ͜ͱΛҙຯ͢Δ
ଛࣦؔΛͲ͏ͬͯ͏͔ʁ
ଛࣦؔͱ χϡʔϥϧωοτϫʔΫͷग़ྗͨ͠ͱ ਖ਼ղσʔλΛൺֱͯ͠ɺͲΕ͘Β͍͕ҟͳ͍ͬͯΔ͔Ͱग़͢ ଛࣦؔ ڭࢣσʔλ χϡʔϥϧωοτ ϫʔΫͷѱ͞ ग़ྗ͕ߴ͍΄Ͳɺѱ͍ωοτϫʔΫ ͍΄Ͳɺྑ͍ωοτϫʔΫ ൺֱͯࠩ͠ͷग़ྗ
͕ࠩ͋Ε͋Δ΄Ͳਖ਼ղͱҟͳΔɻ ͜ͷͨΊग़ྗ͕ଟ͍΄Ͳɺѱ͍ωοτϫʔΫͱ͍͏͜ͱʹͳΔ
ɾ̎ޡࠩ ɾަࠩΤϯτϩϐʔޡࠩ ଛࣦؔͷछྨ
͜͜Ͱߴߍͷ࣌ʹͳΒͬͨ ඍ ͕ొɻ ඍͱଛࣦؔΛֶͬͯश͍͖ͯ͠·͢
χϡʔϥϧωοτϫʔΫͷඍͷׂ ଛࣦ͕ؔग़ྗ͢ΔΛখ͘͢͞Δ ͨΊʹඍΛ͏
Ͳ͏͏͔ʁ
ଛࣦؔΛԾʹ Y = X**2 ͱఆٛ͢Δɻ ͜ͷଛࣦ͕ؔҰ൪͕খ͘͞ͳΔͷx=0ͷͱ͖
͜ͷ࣌ඍͷ͖Ͱ ࠷খ͕ٻΊΕΔ
Ծʹx=2ͩͱ͢Δͱ͖͕4 x=0ͩͱ͢Δͱ͖0 ͳͷͰɺ͜ͷؔͷ࠷খ 0Λग़ྗ͢Δͷ x=0ͷ࣌ͱ͍͑Δ ඍ͢Δͱ Y’ = 2X
͜ͷ͜ͱ͔Β ඍΛ͍ଛࣦؔͷ ग़ྗͷ͕Ұ൪খ͘͞ͳΔ χϡʔϥϧωοτϫʔΫͷΛٻΊΕྑ͍͜ͱʹͳΔ ग़ྗ = ଛࣦؔ(χϡʔϥϧωοτϫʔΫ, ڭࢣσʔλ)
ͨͩɺχϡʔϥϧωοτϫʔΫͰɺ͝ଘͷ௨Γม͕̍ͭͰͳͯ͘ େྔʹ͋Δɻ ม1 ม2 ม3 上記のa1を求める場合 a1 = x1*w11 +
x2*w21+x3*w31 のように 変数が⼤量にでてくる。 (wは重み)
ͦ͜Ͱɺฤඍ
ฤඍͱʁ ଟมؔ(ཁؔͷதʹزͭมΛ͍࣋ͬͯΔؔ) ʹରͯ͠ҰͭͷมͷΈʹ ʢͦΕҎ֎ͷมఆͱͯ͠ݻఆ͢Δʣ ඍ͢Δ͜ͱ by wikipedia
Λภඍ͢Δͱɾɾɾ ຊࣜͷάϥϑ x0Λภඍ͢Δͱ 2 * x0 x1 Λภඍ͢Δͱ 2 *
x1 6 x0 = 3, x1 = 2 ͷͱ͖ͷ͖ 4 x0ͷํʹ6ͷ͖ x1ͷํʹ4ͷ͖
͜ͷάϥϑͷ͖( ޯ)ΛҹͰද͢ͱ
ͷ͖ͷਤ ֤ͷҹͷࣔ͢ํɺؔͷΛ࠷ݮΒ͢ํ ͪͳΈʹɺͯ͢ͷมͷภඍΛϕΫτϧͱͯ͠·ͱΊ ͨͷΛޯ(gradient)ͱ͍͏
Ͱʮม͕ෳʯ͋ΔଛࣦؔɺͲ͏͍ͬͨΛҾͱͯ͠ ೖΕͨΒɺ͕࠷খʹͳΔ͔ΛٻΊ͍͚ͯΕΑͯ͘ ͦͷํ๏ͱͯ͠ɾɾɾ
ޯ๏Λ͏
ޯ๏ͱʁ
ݱࡏͷॴ͔ΒޯํʹҰఆͷڑ͚ͩਐΊΔ Ҡಈͨ͠ઌͰޯΛٻΊɺ·ͨޯํʹਐΉ ͜ͷΑ͏ʹޯํʹਐΉࣄΛ܁Γฦ͢͜ͱͰ ؔͷΛঃʑʹݮΒ͢ͷ͕ޯ๏
ͷ͖ͷਤ த৺(Α͏͕͍ॴ)ʹ X0, X1Λ༠ಋͰ͖Δํ๏
ߋ৽ྔΛද͠ χϡʔϥϧωοτϫʔΫͷֶशΛࣔ͢ x0͖ ֶश ֶश x1͖
lr=0.1 ͷ߹ͷΠϝʔδ ͡ΐ͡ΐʹਅΜதͷ ͬͱ͕͘ͳΔʹ ͍͍ۙͮͯ͘ ֶश͕ஸྑ͍ͩͱऩଋ͢Δ
lr=1.0 ͷ߹ͷΠϝʔδ ߋ৽ྔ͕େ͖͗͢Δ ߹͍ͬͨΓ͖ͨΓ େ͖͗͢Δͱऩଋ͠ͳ͍
lr=1e-10 ͷ߹ͷΠϝʔδ ߋ৽ྔ͕খ͗͢͞Δ ߹ɺಈ͔ͳ͍ খ͗͢͞Δͱ ΄ͱΜͲߋ৽͠ͳ͍
͜͜Ͱ͍Α͍Α χϡʔϥϧωοτϫʔΫͷޯ
̍ݸ̍ݸͷઢͷॏΈͷ͖Λௐ͍͖ͯɺదͳʹௐ͍ͯ͘͠ɻ
ҎԼ֤(w1ʙw3)ͷ֤ม(ઢ)͝ͱʹଛࣦؔΛภඍΛͯ͠ޯٻΊΔɻ ͦͯ͠ɺͦͷޯΛݩʹҰ൪ଛࣦؔͷ͕࠷খʹͳΔ ύϥϝʔλ(ॏΈ)Λݟ͚͍ͭͯ͘ w1 ภඍ ภඍ ภඍ ภඍ ภඍ ภඍ
ภඍ ภඍ ภඍ ภඍ ภඍ ภඍ ภඍ ภඍ ภඍ ภඍ w2 w3
ܗঢ়͕ 2 x 3 ͷॏΈ W ͚ͩΛ ଛࣦؔΛLͰද͢߹ɺޯҎԼͷΑ͏ʹදͤΔ ্هͷଛࣦؔͷͯ͢ͷ૿ݮ͕0ʹۙͮ͘Λ ٻΊ͍ͯ͘ࣄΑΓɺ֤ύϥϝʔλͷॏΈΛ
దͳʹௐ͍ͯ͘͠ ͨͱ͑ɺ̍ߦ̍ྻͷཁૉͰ͋Δ ɺw11Λগ͠มԽͤ͞ΔͱଛࣦؔL ͕ͲΕ͚ͩมԽ͢Δ͔ʁͱ͍͏͜ͱΛࣔ͢ɻ ࣜͰҰԠද͓ͯ͘͠ͱ
ٻΊͨޯͷΛɺೖྗͨ͠ʹֶशΛݩʹߋ৽ͯ͠ χϡʔϥϧωοτϫʔΫΛֶश͍ͤͯ͘͞
MNISTͰχϡʔϥϧωοτϫʔΫΛࢼ͢
Ͱ͜ΕΒͷཧΛͬͯ ࣮ࡍʹखॻ͖ͷจࣈΛྨͯ͠ΈΔͨΊ MNISTσʔλΛ͍ खॻ͖ͷจࣈ͕ྨͰ͖Δ͔ࢼ͢
None
3 5 7 χϡʔϥϧωοτϫʔΫΛ௨ͯ͠ɺखॻ͖ͷจࣈը૾ ͷࣈΛೝࣝͤ͞Δ
ೖྗ = ը૾ 28*28 ͷϐΫηϧσʔλ ग़ྗ = 0 ʙ 9ͷ
ࢀߟจݙ θϩ͔Β࡞ΔDEEP LEARNING ―PYTHONͰֶͿσΟʔϓϥʔχϯ άͷཧͱ࣮ ୯ߦຊʢιϑτΧόʔʣ – 2016/9/24 ࡈ౻ ߁ؽ
(ஶ)
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ