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
74
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
66
機械学習勉強会02 多項式近似と最小二乗法による推定/MLStudy02
hachiilcane
0
100
機械学習勉強会03 最急降下法/MLStudy03
hachiilcane
0
40
機械学習勉強会04 偏微分と連鎖律/MLStudy04
hachiilcane
0
44
機械学習勉強会05 パーセプトロン/MLStudy05
hachiilcane
0
45
機械学習勉強会06 ロジスティック回帰/MLStudy06
hachiilcane
0
59
機械学習勉強会07 ROC曲線/MLStudy07
hachiilcane
0
44
機械学習勉強会09 2層フィードフォワードニューラルネット/MLStudy09
hachiilcane
0
72
WPF勉強会 第1回 動的レイアウト/WPFStudy1
hachiilcane
0
200
Other Decks in Technology
See All in Technology
小粒でもパワフルなJS Runtime Antjsについて
comamoca
0
110
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
350
ハーレムエンジニアリング
kazuma777777
0
190
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
230
Bits AI を制するものは Datadog を制す / The player that controls Bits AI, controls Datadog
kaminashi
0
130
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
640
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
250
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
17
7.6k
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9.3k
AIに狂うスタートアップが、あえて「人との協働」に全振りした新卒エンジニア研修 / New Graduate Engineer Training at a Startup Accelerating AI Adoption
ohnoeight
0
100
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
5k
FPGAが実現する遠方宇宙の高空間分解能天体撮影 -大型地上望遠鏡の視力を補正する「補償光学」とは?-
komei_mt
0
550
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
250
The Mindset for Success: Future Career Progression
greggifford
PRO
0
450
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
480
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
370
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
440
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Google's AI Overviews - The New Search
badams
0
1.1k
How to Talk to Developers About Accessibility
jct
2
520
The untapped power of vector embeddings
frankvandijk
2
1.8k
Building an army of robots
kneath
306
46k
Music & Morning Musume
bryan
47
7.3k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
210
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