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
機械学習勉強会08 2次元入力3クラス分類/MLStudy08
Search
hachiilcane
March 03, 2022
Technology
73
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
機械学習勉強会08 2次元入力3クラス分類/MLStudy08
機械学習勉強会08 2次元入力3クラス分類
hachiilcane
March 03, 2022
More Decks by hachiilcane
See All by hachiilcane
機械学習勉強会01 1次関数での回帰分析/MLStudy01
hachiilcane
0
65
機械学習勉強会02 多項式近似と最小二乗法による推定/MLStudy02
hachiilcane
0
94
機械学習勉強会03 最急降下法/MLStudy03
hachiilcane
0
39
機械学習勉強会04 偏微分と連鎖律/MLStudy04
hachiilcane
0
43
機械学習勉強会05 パーセプトロン/MLStudy05
hachiilcane
0
44
機械学習勉強会06 ロジスティック回帰/MLStudy06
hachiilcane
0
58
機械学習勉強会07 ROC曲線/MLStudy07
hachiilcane
0
43
機械学習勉強会09 2層フィードフォワードニューラルネット/MLStudy09
hachiilcane
0
72
WPF勉強会 第1回 動的レイアウト/WPFStudy1
hachiilcane
0
200
Other Decks in Technology
See All in Technology
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
260
関数型の考えを TypeScript に持ち込んで、テストしやすい純粋関数を増やす / Pure at the Core, Effects at the Edge: Bringing Functional Thinking into TypeScript
kaminashi
2
130
脱金融のフューチャー・デザイン / Future Design Beyond Finance
ks91
PRO
0
160
“それは自分の仕事じゃない"を越えて行け
yuukiyo
1
470
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
14
2.1k
【Claude Code】鹿野さんに聞く 私の推しの並行開発環境 大公開 / claude-code-parallel-2026-07-15
tonkotsuboy_com
12
8.6k
アップデートで何が変わった?デモで学んで使いこなすIBM Bob2.0
muehara
0
110
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
230
シンガポールで登壇してきます
yama3133
0
240
Control Planeで育てるBtoB SaaSの認証基盤 - SRE NEXT 2026
pokohide
1
2.6k
見守りエージェントを作ってみた(ローカルLLM + Hermes Agent)
happysamurai294
0
110
Genie Ontologyは銀の弾丸かを考える / Is Genie Ontology a Silver Bullet?
nttcom
0
390
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Music & Morning Musume
bryan
47
7.3k
Being A Developer After 40
akosma
91
590k
A better future with KSS
kneath
240
18k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Speed Design
sergeychernyshev
33
1.9k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
490
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Transcript
2࣍ݩೖྗ3Ϋϥε ྨ χϡʔϥϧωοτϫʔΫ·Ͱ͋ͱҰา @hachiilcane
͜Ε·Ͱݟ͖ͯͨྨ 2࣍ݩೖྗ2ΫϥεྨΛઢͰ͚Δ ͷ͕ύʔηϓτϩϯ 2࣍ݩೖྗ2ΫϥεྨΛʢ͋Δҙຯʣ ֬తͳ෯Λ࣋ͭઢͰ͚Δͷ͕ϩ δεςΟοΫճؼ
ࠓճ ྨͰ͖ΔΛ1ͭ૿ͯ͠ɺ2࣍ݩೖྗ3Ϋϥε ྨΛϩδεςΟοΫճؼͰղ͘ t͕0·ͨ1ͩͱ̎ʹͳͬͪΌ͏͔ΒɺͦΕ ΛଟΫϥεʹ֦ு͢Δͱ͖ʹιϑτϚοΫεؔ Λ͏͚ͬͯͩͰͦΜͳ͍͠͡Όͳ͍ αΫοͱֶΜͰɺ࣍ʹֶͿϑΟʔυϑΥϫʔυ χϡʔϥϧωοτͷ͕͔Γʹ͠Α͏
೦ͷͨΊͷ֬ೝͰɺ3Ϋ ϥεͬͯʁ ͜Ε·Ͱྨͱͯ͠ʮපؾͰ͋ΔʯʮපؾͰͳ ͍ʯͷ2छྨʹ͚͍ͯͨʢˡ2Ϋϥεʣ ࠓʮʢපؾͷʣεςʔδ1ʯʮεςʔδ2ʯ ʮεςʔδ3ʯʹྨ͍ͨ͠ͱ͔ɺͦ͏͍͏ײ͡ ʢˡ3Ϋϥεʣ ྉཧΛʮ༸৯ʯʮ৯ʯʮத՚ʯͷͲΕ͔ʹ ͚͍ͨͱ͔ ΫϥεɺଞʹΧςΰϦʔɺϥϕϧͱ͔ݴͬͨΓ
͢Δ ྨʹ͓͚ΔతมtͷऔΓ͏Δͷ͕3ͭ͋ Δɺͱݴ͑Δ
(x,y)ฏ໘্ͷσʔλΛྨ͢ΔઢΛࣜͰදݱ͢Δ ͜ͷ࣌ɺ(x,y)ฏ໘Λׂ͢Δઢ࣍ࣜͰද͞ΕΔ ͜ΕΛγάϞΠυؔМͰแΈɺ (x,y)ͰಘΒΕͨσʔλͷ ଐੑ͕t=1Ͱ͋Δ֬࣍ࣜͰද͞ΕΔ ରʹɺt=0Ͱ͋Δ֬࣍ࣜʹͳΔ 2࣍ݩೖྗ2Ϋϥεྨϩ δεςΟοΫճؼͷ෮श f(x, y)
= w0 + w1 x + w2 y f(x, y) = 0 P(x, y) = σ(w0 + w1 x + w2 y) 1 − P(x, y)
χϡʔϥϧωοτϫʔΫ ෩ͷදݱʹͯ͠࠶ཧ x y ॏΈw1 ॏΈw2 f ग़ྗ ೖྗ ೖྗ
1 ͍ͭ1ͷ μϛʔೖྗ ॏΈw0 f(x, y) = w0 + w1 x + w2 y { P(x, y) = σ( f ) ⟶ t = 1 1 − P(x, y) ⟶ t = 0 ೖྗ૯
ࠓޙΛߟ͑ɺଟೖྗଟΫϥεΛѻ ͑ΔΑ͏ʹࣜͷදݱΛม͑Δ x1 x2 ॏΈw1 ॏΈw2 a ग़ྗ ೖྗ ೖྗ
x0 ͍ͭ1ͷ μϛʔೖྗ ॏΈw0 a = w0 x0 + w1 x1 + w2 x2 { y = σ(a) ⟶ P(t = 1|x) 1 − y ⟶ P(t = 0|x) ೖྗ૯ ͖݅֬ͷදݱ ʢx͕ϕΫτϧදهͳͷ ೖྗ͕ଟ࣍ݩͰ͋Δ ͜ͱʹ߹Θ͍ͤͯΔʣ ग़ྗΛyͱ͢Δ ೖྗ૯Λaͱ͢Δ ೖྗΛxͷఴࣈ Ͱදݱ͢Δ
2Ϋϥεͱ3Ϋϥεͷҧ͍ ͷ֓ཁ 2ΫϥεྨϩδεςΟοΫճؼɺग़ྗ ͕ҰͭͰɺγάϞΠυؔΛ௨͢ɻग़ྗͷ େখ͕2ΫϥεΛද͢ 3ΫϥεྨϩδεςΟοΫճؼɺग़ྗ ͕3ͭͰɺιϑτϚοΫεؔΛ௨͢ɻग़ྗ ͷͦΕͧΕͷ͕ͦΕͧΕͷΫϥεͷ֬ Λࣔ͢
3Ϋϥεྨʹ֦ு͢Δ ͱ͜͏ͳΔ x1 x2 a0 ग़ྗ ೖྗ ೖྗ x0 ͍ͭ1ͷ
μϛʔೖྗ w00 ೖྗ૯ ग़ྗΛ3ͭʹ͢Δͷʹ߹Θͤͯɺ ೖྗ૯Λ3ͭʹ͠ɺॏΈ߹Θ ͤͯ૿͑Δ ॏΈͷఴࣈͷ͚ͭํ͕ٯ ͡Όͳ͍͔ͱࢥ͏͔͠Ε ͳ͍͕ɺ͜ͷํ͕৭ʑศར a1 a2 w01 w02 w20 w21 w22 y0 = exp(a0 ) ∑K−1 k=0 exp(ak ) → P(t = 0|x) y1 = exp(a1 ) ∑K−1 k=0 exp(ak ) → P(t = 1|x) y2 = exp(a2 ) ∑K−1 k=0 exp(ak ) → P(t = 2|x) Ҏ߱Ͱࡉ͔͘ݟ͍ͯ͘ ೖྗ૯ʹιϑτϚοΫεؔΛ௨ ͍ͯ͠ΔʢͦͷҙຯͰͦΕͧΕͷग़ ྗؔ͠߹͍ͬͯΔʣ a0 = ∑2 i=0 w0i xi
ೖྗxͱతมt n ೖྗ ೖྗ ਖ਼ղσʔλ ʢΫϥεʣ 0 5.604765 -0.837603 0
1 5.093028 -1.098183 1 2 -2.595448 1.348614 1 3 -0.662749 -5.056531 0 4 15.573566 10.073330 2 5 7.084038 2.165339 2 6 6.204333 -2.945187 1 7 13.349965 12.577250 0 8 16.487809 6.629031 0 9 0.060047 -2.900301 2 x1 x2 t 1-of-Kූ߸Խ ʢone-hotදݱʣ [[1 0 0] [0 1 0] [0 1 0] [1 0 0] [0 0 1] [0 0 1] [0 1 0] [1 0 0] [1 0 0] [0 0 1]] NݸͷσʔλશମͰେจࣈͷX ೖྗ1ͭͰখจࣈͷϕΫτϧදهx = x0 x1 x2 NݸͷσʔλશମͰT x0ৗʹ1ͷ μϛʔೖྗ
ॏΈwɺೖྗ૯aɺग़ ྗy ࠓ3ΫϥεྨͳͷͰɺೖྗ૯3ͭ͋ΔʢDೖྗ࣍ݩ ʣ Ϟσϧͷύϥϝʔλ·ͱΊͯߦྻͰද͢ͱ͜͏ͳΔ ೖྗ૯ΛιϑτϚοΫεؔʹೖྗͨ͠ͷΛग़ྗyͱ͢ΔʢK ྨ͢ΔΫϥεʣ ak = wk0
x0 + wk1 x1 + wk2 x2 = D ∑ i=0 wki xi (k = 0,1,2) yk = exp(ak ) ∑K−1 k=0 exp(ak ) (k = 0,1,2) w = w00 w01 w02 w10 w11 w12 w20 w21 w22
ιϑτϚοΫεؔ ෳͷ͕͋ͬͨͱ͖ɺͦΕΛιϑτϚοΫεؔʹೖྗ͢Δͱɺ ͦΕͧΕͷͷେখؔΛอͬͨ··ɺҎԼͷ݅Λຬͨ͢ʹ ม͞ΕΔ 0͔Β̍·Ͱͷ શͯΛͨ͠Β1 ͢ͳΘͪɺೖྗ͢ΔΛ֬Λද͢ʹม͢Δ͜ͱ͕Ͱ͖Δ ؔ ྨ͢Δχϡʔϥϧωοτͩͱग़ྗʹ͔·͢͜ͱ͕ଟ͍ͷͰ֮͑ ͓ͯ͘ͱྑ͍
yk = exp(ak ) ∑K−1 k=0 exp(ak )
ࠓճͷ3Ϋϥεྨ ιϑτϚοΫεؔʹΑͬͯɺy0+y1+y2=1Ͱ͋Δ͜ͱ͕อূ͞Ε Δɻ͜ͷϞσϧͷग़ྗy0,y1,y2Λɺ֤Ϋϥεʹଐ͢Δ֬Λද͢Α͏ ʹֶश͢Δͷ͕ࠓճΓ͍ͨ͜ͱ ͪΖΜֶशͱ͍͍ײ͡ͷύϥϝʔλwΛݟ͚ͭΔ͜ͱͰ͋Δ x1 x2 a0 ग़ྗ x0
w00 ೖྗ૯ a1 a2 w01 w02 w20 w21 w22 y0 = softmax(a0 ) y1 = softmax(a1 ) y2 = softmax(a2 ) 5.6 -0.8 1 0.85 0.11 0.04 y1͕Ұ൪େ͖͍͔ΒΫϥε1ͬΆ͍ͳ
తؔΛఆٛ͢ΔͨΊ ʹɺ·ͣؔ ɺશೖྗσʔλXʹରͯ͠શΫϥεσʔλT͕ੜ͞Εͨ֬ 1ͭͷೖྗσʔλxʹணͯ͠ɺͦͷΫϥε͕T=[1,0,0]ʢ͢ͳΘͪΫϥε0ʣ Ͱ͋ͬͨΒɺͦͷΫϥε͕ੜ͞Εͨ֬ Ϋϥε1Ͱ2Ͱಉ͡Α͏ʹදͤΔΑ͏ʹ͢Δͱ Nݸͷσʔλ͕ੜ͞Εͨ֬શ෦ֻ͚߹ΘͤΕ͍͍ͷͰ P(t = [1,0,0]|x)
= y0 P(t|x) = yt0 0 yt1 1 yt2 2 P(T|X) = N−1 ∏ n=0 P(tn |xn ) = N−1 ∏ n=0 ytn0 n0 ytn1 n1 ytn2 n2 = N−1 ∏ n=0 K−1 ∏ k=0 ytnk nk
ฏۉަࠩΤϯτϩϐʔޡ ࠩ ฏۉަࠩΤϯτϩϐʔޡࠩؔɺͷෛͷ ରͷฏۉͳͷͰɺ ্ͷࣜʹͳͬͯ͠·͑͏ؔΛѻ Θͳ͍ͷͰɺ͋Δҙຯؔͷҙຯ͕Θ͔ͬ ͯͳͯ͘ͳ͍ͬͪΌͳ͍ E(w) = −
1 N log P(T|X) = − 1 N log N−1 ∏ n=0 K−1 ∏ k=0 ytnk nk = − 1 N N−1 ∑ n=0 K−1 ∑ k=0 tnk log ynk
ฏۉަࠩΤϯτϩϐʔޡ ͕ࠩҙຯ͢Δͷ̍ ͋ΔҰͭͷσʔλ͚ͩʹ͢ΔͱɺɹɹɹɹͱͳΔ E(w) = − 1 N N−1 ∑
n=0 K−1 ∑ k=0 tnk log ynk tk log yk ͚ͩ͜͜ʹ ͢Δ a0 ग़ྗ ೖྗ૯ a1 a2 y0 = softmax(a0 ) y1 = softmax(a1 ) y2 = softmax(a2 ) 0.85 0.11 0.04 ਖ਼ղt 0 1 0 t0 log y0 = 0 t1 log y1 = − 0.1625 t2 log y2 = 0 ͜͜ͱ͜͜Λֻ ͚ͨʹͳΔ ͜͜ʢΛlogͱͬͨʣͱ͜͜ Λֻ͚ͨʹͳΔ
ฏۉަࠩΤϯτϩϐʔޡ ͕ࠩҙຯ͢Δͷ̎ ͋ΔҰͭͷσʔλ͚ͩʹ͢ΔͱɺɹɹɹɹɹɹͱͳΔ tkone-hotදݱͷਖ਼ղσʔλͳͷͰɺtk=1Ͱ͋Δyk͚͕ͩEͷ߹ ࢉରʹͳΔʢ͋ͱશ෦θϩʣ yk0ʙ1ͷͰ͋Γɺ1ʹ͍ۙ΄ͲlogΛऔΔͱ0ʹۙ͘ͳΔɻ0ʹ ͍ۙ΄ͲlogΛऔΔͱϚΠφεํʹେ͖ͳͱͳΔ ͭ·Γɺྨͷ݁Ռ͕ਖ਼͍͠ͳΒɹɹɹɹɹɹɹ΄΅0ʹͳΔ ͠ɺؒҧ͍ͬͯΔ΄ͲϚΠφεํʹେ͖͘ͳΔɻ͜Εͭ·Γ ޡࠩΛݟ͍ͯΔ͜ͱʹͳΓɺ͜ΕΒΛσʔλͷ͚ͩ͠߹Θͤ
ͨE(W)ೋޡࠩͱରͯ͠ൃมΘΒͳ͍ʢೋޡࠩͷྨ൛ Έ͍ͨͳΠϝʔδʣɻ E(w) = − 1 N N−1 ∑ n=0 K−1 ∑ k=0 tnk log ynk tk log yk ͚ͩ͜͜ʹ ͢Δ tk log yk
ޯ๏ʹΑΔղ ޯ๏ͰฏۉަࠩΤϯτϩϐʔޡࠩؔE(W)Λ࠷খԽ͢ΔWΛٻΊΔʹ ɺ͍ͭͷΑ͏ʹ֤wki ʹؔ͢ΔภඍΛ༻ҙ͢Εྑ͍ ಋग़লུ͢Δ͕ɺಋؔҎԼͷΑ͏ʹશͯͷkͱiʹରͯ͠ಉ͡ܗʹ ͳΔ ͪΖΜֶशଇ͜͏ ֶशଇʹैͬͯগͣͭ͠ύϥϝʔλwΛม͍͖͑ͯʢޯϕΫτϧͷ ରํͷࡔΛԼ͍͖ͬͯʣɺ࠷దͳύϥϝʔλwΛٻΊΔ ∂E
∂wki = 1 N N−1 ∑ n=0 (ynk − tnk )xni wki := wki − ∂E ∂wki
ޯ๏લճͱಉָ͘͡ ͠Α͏ scipy.optimizeϥΠϒϥϦʹؚ·ΕΔ minimize()ͱ͍͏ؔͰޯ๏͕ߦ͑Δ
՝ one-hotදݱͷਖ਼ղσʔλΛ༻ҙ͢Δ scipy.optimizeͷminimize()Λֶͬͯश͢Δ ΫϥεؒͷڥքઢΛάϥϑͰදࣔ͢Δɻ3Ϋϥε ͋ΔͷͰ୯७ʹઢͰදΘͤͳ͍ͷͰɺྫ͑ͦ ΕͧΕͷΫϥεͰ0.5Ҏ্ͷग़ྗ͕ಘΒΕΔྖҬ ΛߴઢͳͲͰදࣔ͢Δͱྑ͍ʢmatplotlibͷ ߴઢcontour()ͬͯͭʣ
ࢀߟจݙ தҪ ӻ࢘ʮITΤϯδχΞͷͨΊͷػցֶश ཧೖʯٕज़ධࣾ, 2015 ҏ౻ ਅʮPythonͰಈֶ͔ͯ͠Ϳʂ͋ͨΒ͠ ͍ػցֶशͷڭՊॻʯᠳӭࣾ, 2018 ཱੴݡޗʮֶ͘͞͠Ϳ
ػցֶशΛཧղ͢ ΔͨΊͷֶͷ͖΄Μ ʯϚΠφϏग़൛, 2017