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
機械学習勉強会06 ロジスティック回帰/MLStudy06
Search
hachiilcane
March 03, 2022
Technology
59
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
機械学習勉強会06 ロジスティック回帰/MLStudy06
機械学習勉強会06 ロジスティック回帰
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
機械学習勉強会07 ROC曲線/MLStudy07
hachiilcane
0
44
機械学習勉強会08 2次元入力3クラス分類/MLStudy08
hachiilcane
0
74
機械学習勉強会09 2層フィードフォワードニューラルネット/MLStudy09
hachiilcane
0
72
WPF勉強会 第1回 動的レイアウト/WPFStudy1
hachiilcane
0
200
Other Decks in Technology
See All in Technology
Goでデータパイプラインを作ろう
sansantech
PRO
1
510
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
2027年のMetricKit
kantacky
0
110
도구에서 동료까지: 10년차 AI 스타트업의 AI 적응기
inureyes
PRO
0
240
モダンフロントエンド 開発研修
recruitengineers
PRO
4
810
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9.3k
【CEDEC2026】Creative Approaches to Localizing the Dialects and Unique Speech of Umamusume: Pretty Derby Characters in English
cygames
PRO
3
25k
MulticaとPi Coding Agentで、小規模OSSを30本同時運用した流れ
eiei114
0
130
なぜ Temporal の大小比較には compare しかないのか / Why Does Temporal Only Have compare() for Comparisons
kazukihayase
1
180
まちスペース®とデジタルツインと「まちづくり」
hiro_ogi
0
130
AI-DLC実践録_フルサイクル開発への挑戦
miyuc
0
290
ラジオの科学
frievea
0
350
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
800
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
390
The Language of Interfaces
destraynor
162
27k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.8k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
620
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
410
YesSQL, Process and Tooling at Scale
rocio
174
15k
Deep Space Network (abreviated)
tonyrice
0
260
Leo the Paperboy
mayatellez
8
2.2k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
870
Transcript
ϩδεςΟοΫճ ؼ ֬Λͬͨྨ @hachiilcane
લճ·Ͱ ύʔηϓτϩϯͱ͍͏ྨΞϧΰϦζϜ ͷجૅΛֶΜͩ
ࠓճֶͿ༰ ྨΞϧΰϦζϜͱͯ͠ύʔηϓτϩϯΑΓ൚༻ ੑ͕ߴ͍ɺϩδεςΟοΫճؼΛֶͿʢʮճؼʯͬ ໊ͯલ͕͍͍ͭͯΔ͕ɺҰൠతʹʮྨʯʹΘ Ε·͢ʣ ֬ͷߟ͑ํΛऔΓࠐΜͰ͍ΔͨΊɺʮ͜ͷݕ݁ ՌͳΒපؾͰ͋Δ֬80ˋʯͱ͍͏ݴ͍ํ͕Ͱ͖ Δ γάϞΠυؔͱ͍͏ศརͳͷʹ׳ΕΔ
લճͱಉ͡Λߟ͑Δ ۙɺʮ͍͵͞Μͷ͜ͱ͕͖͗ͯ͢පʯʹ͔͔Δਓ͕૿͑ ͯࣾձʹͳ͍ͬͯ·͢ɻ͜ͷපؾʹ͔͔ͬͨਓಛผͳ ࣏ྍ͕ඞཁʹͳΓ·͕͢ɺපؾʹ͔͔͔ͬͨͲ͏͔ͷఆ ͍͜͠ͱ͕Θ͔͍ͬͯ·͢ ಓͳݚڀͷ݁Ռɺʮ͍͵͞Μͷը૾Λݟͤͨ࣌ͷ৺ഥͷ ૿ݮʯͱʮ͍͵͞Μάοζॴ༗ͷҰൠਓฏۉͱͷࠩʯ͕ප ؾͷఆʹେཱ͖ͭ͘͜ͱ͕Θ͔͖ͬͯ·ͨ͠ ʮ৺ഥͷ૿ݮʯͱʮάοζॴ༗ͷࠩʯΛܭଌ͢Δ͜ͱʹ Αͬͯɺͦͷਓ͕පؾʹ͔͔͍ͬͯΔ͔൱͔ΛҰ࣍ఆͨ͠
͍Ͱ͢
ࠓճt+1·ͨ-1Ͱ ͳ͘ɺ1·ͨ0ͱ͢Δ x ʢ৺ഥ ૿ݮʣ y ʢάοζ ࠩʣ t ʢ1:පؾ
0:͡Όͳ͍ʣ 0 5.604765 -0.837603 0 1 5.093028 -1.098183 0 2 -2.595448 1.348614 0 3 -0.662749 -5.056531 0 4 15.573566 10.073330 1 5 7.084038 2.165339 0 6 6.204333 -2.945187 0 7 13.349965 12.577250 1 8 16.487809 6.629031 1 9 0.060047 -2.900301 0 τϨʔχϯάηοτ50ݸத ͷઌ಄10ݸͷ පؾάϧʔϓ t=1ͱ͢Δ පؾ͡Όͳ͍ άϧʔϓ t=0ͱ͢Δ
લճͱಉ͡Α͏ʹɺׂ ͢ΔઢΛఆٛ͢Δ (x,y)ฏ໘্ͷσʔλΛྨ ͢ΔઢΛࣜͰදݱ͢ Δ ͜ͷ࣌ɺ(x,y)ฏ໘Λׂ͢ Δઢ࣍ࣜͰද͞ΕΔ f(x, y) =
w0 + w1 x + w2 y f(x, y) = 0 ͬͪ͜පؾ ͬͪ͜පؾ ͡Όͳ͍
ڥքઢ͔ΒΕΔ΄Ͳf(x,y)ͷ ઈରେ͖͘ͳΔͷͩͬͨ f(x,y)Ͱׂ͞ΕΔྖҬɺf(x,y)ͷූ߸ͰผͰ͖Δ ڥքઢ͔ΒΕΔ΄Ͳɺf(x,y)ͷઈର͕େ͖͘ͳΔ f(x, y) > 0 f(x, y)
< 0 f(x, y) = 0 (15,20) (2,4) ∟ f(x, y) = 49 f(x, y) = − 22
f(x,y)ฏ໘্ͷҙͷʹ͓ ͍ͯɺt=1Ͱ͋Δ֬ʁ f(x, y) > 0 f(x, y) < 0
∟ ׂઢͷӈ্ͷํ ʹΕΔ΄Ͳt=1 Ͱ͋Δ֬ߴ͍ ͣͩ ׂઢ্ͳΒt=1Ͱ ͋Δ֬0.5 ׂઢͷࠨԼͷํ ʹΕΔ΄Ͳt=1 Ͱ͋Δ͍֬
t=1Ͱ͋Δ֬Λਤʹͯ͠ ΈΔͱ͜Μͳײ͡ʹͳΔ σʔλͷଐੑ͕ t=1Ͱ͋Δ֬ f(x, y) f(x,y)=0ͳΒ ʢׂઢ্ͳ Βʣt=1Ͱ͋Δ ֬0.5
͜ΕγάϞΠυؔͰ දݱͰ͖Δ aͷΛ-∞͔Β∞ʹมԽͤ͞ΔͱɺМ(a) ͷ0͔Β1Β͔ʹมԽ͢Δ γάϞΠυؔɿσ(a) = 1 1 + e−a
γάϞΠυؔͷಛ σ(a)ͷaͷͱ͜ΖʹઢͷࣜΛಥͬࠐΉ ͱɺઢͷେ͖͍ਖ਼ͷ1ʹ͍ۙ ʹɺઈରͷେ͖͍ෛͷ0ʹ͍ۙ ʹม͞ΕΔ ઢ͕0͔Β1ͷൣғʹ௵͞ΕΔΑ͏ͳ Πϝʔδɻ͜ΕΛਖ਼نԽͱݴ͏ɻ
ׂઢf(x,y)Λઢͷ··Ͱ ͳ͘МͰแΉͱ͍͏͜ͱ ઢϞσϧʹγάϞΠυؔΛ͔·͠ ͨͷ͕ϩδεςΟοΫճؼϞσϧ 0͔Β1ͷΛͱΔΑ͏ʹͳΔͷͰ֬ Λද͢ͷʹศརͩ͠ɺεςοϓؔΑ Γඍ͍͢͠
͕ͨͬͯ͠ࠓճϞσϧ Λ͜͏ఆٛ͢Δ (x,y)ͰಘΒΕͨσʔλͷଐੑ͕t=1Ͱ͋Δ֬࣍ࣜͰ ද͞ΕΔ ରʹɺt=0Ͱ͋Δ֬࣍ࣜʹͳΔ ͜Ε͕ҰൠతͳύϥϝτϦοΫϞσϧͷ3ͭͷεςοϓͷ͏ ͪͷεςοϓ̍ɺʮύϥϝʔλΛؚΉϞσϧʢࣜʣΛઃ ఆ͢Δʯ P(x,
y) = σ(w0 + w1 x + w2 y) 1 − P(x, y)
Ϟσϧύʔηϓτϩϯ ͱͲ͏ҧ͏ʁ ύʔηϓτϩϯ ઢͰ۠Δ f(x,y)ͷͷਖ਼ෛͰපؾ͔පؾͰͳ͍͔ͷ۠ผʢೋʣ ͭ·Γ۠Γ͕֊ஈঢ়ͷεςοϓؔ ϩδεςΟοΫճؼ ઢͰ۠Δͱ͍͏ߟ͑ํࠜͬ͜ಉ͡ P(x,y)ͷʢ0ʙ1ͷʣ͕පؾͰ͋Δ֬Λࣔ͢ ͭ·Γ۠Γ͕ͳΊΒͳۂઢ
εςοϓ2ɿύϥϝʔλ ͷධՁج४ΛఆΊΔ ύʔηϓτϩϯͰਖ਼͘͠ྨͰ͖ͳ ͔ͬͨΛޡࠩͱͯ͠ߟ͑ͯޡࠩؔΛ ϕʔεʹ͕ͨ͠…… ϩδεςΟοΫճؼͰؔΛ༻ ͍ͯɺ࠷ਪఆ๏Ͱ࠷దͳύϥϝʔλΛ ٻΊΔ
ͱ ʮ࠷Β͍͠߹͍ʯͱ͍͏ҙຯ ಥʹɺʮτϨʔχϯάηοτ͕ಘΒΕΔ֬ʯΛߟ͑ ͯΈΔ ࣮ࡍʹτϨʔχϯάηοτ͢ͰʹಘΒΕ͍ͯΔ ͷͰɺޙ͚Ͱ֬Λߟ͍͑ͯΔΑ͏ͳͷ ྫ͑ɺαΠίϩΛ2ճ߱ͬͯ1ͷͧΖ͕ग़ͨͱ͠ ͯɺͦΕΛޙ͔ΒʮͲΕ͘Β͍͍͜͠ͱ͕ى͖ͨ ͷͩΖ͏ʁʯͱߟ͍͑ͯΔΑ͏ͳΠϝʔδ
·ͣಛఆͷ1ͭͷσʔλ Ͱߟ͑Δ̍ ̍ͭͷσʔλɹɹɹɹɹ͕ಘΒΕΔ֬ ֶతٕΛ༻͍ͯ̍ͭͷࣜʹ͢Δͱ ͜ΕʹϞσϧͷࣜΛೖ͢Δͱ tn = 1ͷ߹ɿP(xn , yn
) tn = 0ͷ߹ɿ1 − P(xn , yn ) Pn = σ(w0 + w1 xn + w2 yn )tn(1 − σ(w0 + w1 xn + w2 yn ))1−tn (xn , yn , tn ) Pn = P(xn , yn )tn(1 − P(xn , yn ))1−tn
·ͣಛఆͷ1ͭͷσʔλ Ͱߟ͑Δ̎ ѻ͍͘͢͢ΔͨΊʹɺϞσϧͷࣜ෦Λzͱஔ͖͑Δ ͜͜Ͱzn࣍ࣜͰఆٛͨ͠ͷͰɺʮn൪ͷσʔλͷଐੑ ͕t=1Ͱ͋Δ֬ʯΛද͢ wͱПύʔηϓτϩϯͰఆٛͨ͠ͷͱಉ͡ Pn = ztn n
(1 − zn )1−tn zn = σ(wTϕn ) w = w0 w1 w2 ϕn = ( 1 xn yn ) όΠΞε߲
ͰτϨʔχϯάηοτʹؚ· ΕΔσʔλΛ·ͱΊͯߟ͑Δ શ෦ͷσʔλΛ·ͱΊͯߟ͑Δͱɺ͜ΕΒͷσʔλ͕ ಘΒΕΔ֬ɺ֤σʔλ͕ಘΒΕΔ֬ͷੵʹͳΔ ͜ͷ֬ύϥϝʔλwʹΑ͕ͬͯมΘΔͷͰɺύ ϥϝʔλwͷؔΛݟΔ͜ͱ͕Ͱ͖Δ ʮτϨʔχϯάηοτͷσʔλ͕ಘΒΕΔ֬ʯΛύ ϥϝʔλͷؔͱΈͳͨ͠ͷΛؔͱݺͿ P =
N ∏ n=1 Pn = N ∏ n=1 ztn n (1 − zn )1−tn
ʮ͓લͷ࣍ͷηϦϑʯ ʮ؍ଌ͞ΕͨσʔλʢτϨʔχϯάηοτʣɺ࠷ ൃੜ͕֬ߴ͍σʔλʹҧ͍ͳ͍ʯ ͜ͷԾઆ͕ਖ਼͍͠ͷͱͯ͠ɺ֬P͕࠷େʹͳΔ Α͏ʹύϥϝʔλΛܾఆ͢Δख๏Λ࠷ਪఆ๏ͱݴ ͏ ʮτϨʔχϯάηοτͱͯ͠ɺൃੜ͕͍֬ ʢͱ͍ͯ͠ʣσʔλ͕ಘΒΕΔ΄Ͳࣗ ӡ͕͍͍͕ͣͳ͍ʯͱߟ͍͑ͯΔΑ͏ͳͷ
۩ମతʹͲ͏ͬͯ֬PΛ࠷େԽ ͢ΔύϥϝʔλΛݟ͚ͭΔ͔ʢε ςοϓ̏ͷํ๏ʣ ͦͷ̍ɿχϡʔτϯɾϥϑιϯ๏Λ༻͍ ͨΞϧΰϦζϜ IRLS๏ʢ෮࠶ॏΈ ͚࠷খೋ๏ʣΛ͏ํ๏ ͦͷ̎ɿલճಉ༷ʹภඍͯ͠ޯ๏ ʹ࣋ͪࠐΉํ๏
ʢࢀߟʣχϡʔτϯɾϥ ϑιϯ๏Λ༻͍ͨIRLS๏ αϯϓϧϓϩάϥϜ05-logistic_vs_perceptronͰ༻ ͍ͯ͠ΔͷͰհɻҎԼͷΑ͏ͳΞϧΰϦζϜɻ ͜ΕΛ܁Γฦ͢ͱ֬Pͷ͕େ͖͘ͳ͍͖ͬͯɺ࠷ ऴతʹ࠷େʹୡ͢Δɻ͜Ε͕IRLS๏ɻ wnew = wold −
(ΦTRΦ)−1ΦT(z − t) z = z1 ⋮ zN R = diag[z1 (1 − zn ), …, zN (1 − zN )] t = t1 ⋮ tN Φn = 1 x1 y1 1 x2 y2 ⋮ ⋮ ⋮ 1 xN yN ର֯ߦྻ
ޯ๏Ͱ࠷దͳύϥϝʔλ ΛٻΊΔ͜ͱΛࢦͯ͠ ҎԼͷྲྀΕ ؔΛฏۉަࠩΤϯτϩϐʔޡࠩؔͱͯ͠࠶ ఆٛ͢Δ ޡࠩؔΛภඍֶͯ͠शଇʹ͏ภඍΛٻΊΔ ޯ๏Ͱগͣͭ͠ύϥϝʔλwΛม͍͖͑ͯʢޯ ϕΫτϧͷରํͷࡔΛԼ͍͖ͬͯʣɺ࠷దͳύ ϥϝʔλwΛٻΊΔ
ฏۉަࠩΤϯτϩϐʔޡ ࠩ ؔੵͷܗΛ͍ͯ͠ΔͷͰɺѻ͍͘͢͢ΔͨΊʹର ʢlogͷ͜ͱʣΛͱΔ ରؔ୯ௐ૿ՃؔͰ͋ΔͨΊɺରΛͱͬͯؔ Λ࠷େԽ͢ΔύϥϝʔλมΘΒͳ͍ ͞ΒʹϚΠφε̍Λֻ͚ͯɺNͰׂΔɻ͜ΕΛฏۉަࠩΤϯτϩ ϐʔޡࠩͱͯ͠ఆٛ͢Δɻ͜ͷޡࠩؔΛ࠷খԽ͢Δύϥϝʔλ wΛٻΊΔ͜ͱʹͳΔɻ͜Ε͕εςοϓ̎ͷతؔʹ૬ɻ log
P = N ∑ n=1 {tn log zn + (1 − tn )log(1 − zn )} E(w) = − 1 N log P = − 1 N N ∑ n=1 {tn log zn + (1 − tn )log(1 − zn )}
ฏۉަࠩΤϯτϩϐʔޡ ࠩؔE(w)Λภඍ͢Δ εςοϓ̏ͱͯ͠ޯ๏Ͱ࠷ྑͷධՁΛ༩͑ΔύϥϝʔλΛܾఆ͢Δ͜ͱʹ͢Δ ಋग़লུ ֶ͕ͨͬͯ͠शଇ ∂E ∂w0 = 1 N
N ∑ n=1 (zn − tn ) ∂E ∂w1 = 1 N N ∑ n=1 (zn − tn )xn ∂E ∂w2 = 1 N N ∑ n=1 (zn − tn )yn w0 := w0 − ∂E ∂w0 w1 := w1 − ∂E ∂w1 w2 := w2 − ∂E ∂w2
ޯ๏ͷ࣮ͰָΛ͢Δ scipy.optimizeϥΠϒϥϦʹؚ·ΕΔ minimize()ͱ͍͏ؔͰޯ๏͕ߦ͑Δ ֶशΛ෦Ͱࣗಈతʹઃఆͯ͘͠Ε ΔͷͰศར ܭࢉճͳΜ͔উखʹͬͯ͘ΕΔ
scipy.optimizeͷ minimize()ͷ͍ํώϯτ ୈ̍ҾʹతؔʢࠓճͩͱฏۉަࠩΤϯτϩϐʔޡࠩؔʣΛࢦఆ͢Δ ୈ̎ҾʹύϥϝʔλͷॳظΛྻͰ͢ argsʹతؔʹ͢Ҿͷ͏ͪɺw_initͰ͍ͯ͠ͳ͍ΛλϓϧͰ͢ jacʹతؔΛภඍͨؔ͠Λ͢ɻҾతؔͱಉ͡ͰɺΓޯϕΫτϧʢ[w0ͷ ภඍ, w1ͷภඍ, w2ͷภඍ]Έ͍ͨͳײ͡ʣΛฦؔ͢ methodʹ࠷దԽख๏Λࢦఆ͢Δɻ”CG”ڞޯ๏ɻ
minimize()ͷΓͷதͷxϓϩύςΟʹɺ࠷దԽ͞Εͨύϥϝʔλ͕ೖ͍ͬͯΔ from scipy.optimize import minimize def fit_logistic(w_init, train_set): res = minimize(cee_logistic, w_init, args=(train_set), jac=dcee_logistic, method="CG") return res.x
05-logistic_vs_perceptron.ipynbΛ ϕʔεʹͯ͠՝ʹνϟϨϯδͯ͠ ΈΑ͏ z࣠Λt=1Ͱ͋Δ֬ʢP(x,y)ͷʣͱͯ͠ɺڥք໘Λ3DϓϩοτͰදݱͯ͠Έ Δ ฏۉަࠩΤϯτϩϐʔޡࠩؔͷภඍΛखͰͬͯΈΔ ͜Ε݁ߏ͍͠Ͱ͢ɻ࿈ɺlogͷඍͷެࣜɺγάϞΠυؔͷඍ ͷެࣜͳͲΛۦ͠·͠ΐ͏ ޯ๏Λ࣮ͯ͠ΈΔ ͱΓ͋͑ͣɺϩδεςΟοΫճؼϞσϧΛؔͱ࣮ͯͯ͠͠ΈΔͱ͜Ζ
͔Β࢝ΊΔͱ͍͍͔ɻdef logistic(w, x, y):Έ͍ͨͳײ͡Ͱɻ ៉ྷʹઢܗͰ͖ͳ͍ࠞͬͨ͟ײ͡ͷτϨʔχϯάηοτΛ༻ҙͯ͠ɺIRLS ๏·ͨޯ๏Ͱͯ͠ΈΔ
ࢀߟจݙ தҪ ӻ࢘ʮITΤϯδχΞͷͨΊͷػց ֶशཧೖʯٕज़ධࣾ, 2015 ҏ౻ ਅʮPythonͰಈֶ͔ͯ͠Ϳʂ͋ͨ Β͍͠ػցֶशͷڭՊॻʯᠳӭࣾ, 2018