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
Web 2.0 Patterns and Technologies - Lecture 8 - Web Technologies (1019888BNR)
signer
PRO
0
3k
TeXで変える教育現場
doratex
1
13k
令和エンジニアの学習法 〜 生成AIを使って挫折を回避する 〜
moriga_yuduru
0
240
焦りと不安を、技術力に変える方法 - 新卒iOSエンジニアの失敗談と成長のフレームワーク
hypebeans
1
660
コマンドラインを見直そう(1995年からタイムリープ)
sapi_kawahara
0
670
LotusScript でエージェント情報を出力してみた
harunakano
0
130
Introduction - Lecture 1 - Advanced Topics in Big Data (4023256FNR)
signer
PRO
2
2.2k
2025-10-30 社会と情報2025 #05 CC+の代わり
mapconcierge4agu
0
110
【洋書和訳:さよならを待つふたりのために】第2章 ガン特典と実存的フリースロー
yaginumatti
0
230
国際卓越研究大学計画|Science Tokyo(東京科学大学)
sciencetokyo
PRO
0
47k
2025-12-11 nakanoshima.dev LT
takesection
0
110
Node-REDで広がるプログラミング教育の可能性
ueponx
1
270
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Cult of Friendly URLs
andyhume
79
6.8k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
190
HDC tutorial
michielstock
1
400
The Invisible Side of Design
smashingmag
302
51k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
120
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
450
Prompt Engineering for Job Search
mfonobong
0
160
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
110
Tell your own story through comics
letsgokoyo
1
810
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 ࡈ౻ ߁ؽ
(ஶ)
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ