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
機械学習勉強会09 2層フィードフォワードニューラルネット/MLStudy09
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
hachiilcane
March 03, 2022
Technology
0
69
機械学習勉強会09 2層フィードフォワードニューラルネット/MLStudy09
機械学習勉強会09 2層フィードフォワードニューラルネット
hachiilcane
March 03, 2022
Tweet
Share
More Decks by hachiilcane
See All by hachiilcane
機械学習勉強会01 1次関数での回帰分析/MLStudy01
hachiilcane
0
60
機械学習勉強会02 多項式近似と最小二乗法による推定/MLStudy02
hachiilcane
0
77
機械学習勉強会03 最急降下法/MLStudy03
hachiilcane
0
37
機械学習勉強会04 偏微分と連鎖律/MLStudy04
hachiilcane
0
41
機械学習勉強会05 パーセプトロン/MLStudy05
hachiilcane
0
41
機械学習勉強会06 ロジスティック回帰/MLStudy06
hachiilcane
0
56
機械学習勉強会07 ROC曲線/MLStudy07
hachiilcane
0
39
機械学習勉強会08 2次元入力3クラス分類/MLStudy08
hachiilcane
0
66
WPF勉強会 第1回 動的レイアウト/WPFStudy1
hachiilcane
0
180
Other Decks in Technology
See All in Technology
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
今日から始めるAmazon Bedrock AgentCore
har1101
4
400
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
100
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
1.8k
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
590
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
150
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.1k
20260204_Midosuji_Tech
takuyay0ne
1
140
AWS Network Firewall Proxyを触ってみた
nagisa53
1
210
Greatest Disaster Hits in Web Performance
guaca
0
200
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
180
変化するコーディングエージェントとの現実的な付き合い方 〜Cursor安定択説と、ツールに依存しない「資産」〜
empitsu
4
1.3k
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
Balancing Empowerment & Direction
lara
5
880
Joys of Absence: A Defence of Solitary Play
codingconduct
1
290
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
100
How to train your dragon (web standard)
notwaldorf
97
6.5k
How GitHub (no longer) Works
holman
316
140k
Designing for Performance
lara
610
70k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
930
Mobile First: as difficult as doing things right
swwweet
225
10k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
Transcript
2ϑΟʔυϑΥϫʔ υχϡʔϥϧωοτ χϡʔϥϧωοτϫʔΫͷجૅ @hachiilcane
χϡʔϩϯϞσϧ֮͑ͯ ·͢ʁ ࣠ࡧ γφϓε ిؾύϧε f = { 0 (w0
+ w1 x + w2 y ≤ 0) 1 (w0 + w1 x + w2 y > 0) x y ॏΈw1 ॏΈw2 f ग़ྗ ೖྗ ೖྗ 1 ͍ͭ1ͷ μϛʔೖྗ ॏΈw0 ೖྗۭؒΛઢͰ ͚Δͱ͍͏ػೳ
χϡʔϩϯϞσϧΛ֦ு ͢Δ χϡʔϩϯϞσϧɺD࣍ݩͷೖྗۭؒΛD-1 ࣍ݩͷฏ໘ʢͷΑ͏ͳۭؒʣͰ2ͭʹ͚Δಇ ͖͕͋ͬͨ 2ͭʁ ͰχϡʔϩϯϞσϧΛͭͳ͛ͨΒͲ͏ ͳΔʁ ͬͱෳࡶʹ͚ΒΕΔͷͰʁ χϡʔϩϯϞσϧΛͭͳ͛ͯதؒΛ࡞ͬͨͷ
͕χϡʔϥϧωοτϫʔΫ
ࠓճֶͿ༰ χϡʔϥϧωοτϫʔΫͷҰ൪؆୯ͳܗɺ2ͷ ϑΟʔυϑΥϫʔυχϡʔϥϧωοτΛֶͿ લճͱಉ͘͡ɺΔ͜ͱ2ೖྗ3ΫϥεྨͰ ͕͢Ϟσϧͷ࡞Γํ͕ҧ͏͚ͩ Λ͢͜ͱͰɺΑΓෳࡶͳܗͰ͚Δ͜ͱ͕Ͱ͖ Δͱ͍͏ΞΠσΟΞΛΔ ඍͱ͍͏ݴ༿Λ͓ͬͯ͜͏
લճͷ෮शɿϩδεςΟο Ϋճؼͷ2ೖྗ3Ϋϥεྨ x1 x2 a0 ग़ྗ ೖྗ ೖྗ x0 ͍ͭ1ͷ
μϛʔೖྗ w00 ೖྗ૯ 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
2ϑΟʔυϑΥϫʔυχϡʔϥ ϧωοτͷ2ೖྗ3Ϋϥεྨ த͕ؒՃ͞Ε͚ͨͩʂ 3ʹݟ͑Δ͚ͲɺॏΈύϥϝʔλ͕͋Δ͚ͩΛ͑ͯ2ͱ͍͏߹͕ଟ͍ x1 x2 a0 ग़ྗʢ2ʣ x0 όΠΞε߲
w00 தؒʢ1ʣ w01 w02 v20 v21 v22 P(t = 0|x) y0 b1 z1 b2 z2 z0 a1 y1 a2 y2 ೖྗ v00 v01 v02 = 1 = 1 όΠΞε߲ t0 t1 t2 P(t = 1|x) P(t = 2|x) D + 1 M + 1 K ؙͷࠨ͕ೖྗ૯ɺӈ͕ͦΕ Λ׆ੑԽؔʹ௨ͨ͠ ؙͷࠨ͕ೖྗ૯ɺӈ͕ͦΕΛ ιϑτϚοΫεؔʹ௨ͨ͠
׆ੑԽؔ தؒͷೖྗ૯bγάϞΠυؔΛ ௨ͯ͠ग़ྗzΛ࡞Δ͕ɺҰൠతʹγά ϞΠυؔҎ֎ͷؔΛ͏͜ͱ͋Δ ೖྗ૯͔Βग़ྗΛܾఆ͢ΔͳΜΒ͔ͷ ؔΛ׆ੑԽؔͱݺͿɻ͜͜Ͱh()Ͱ දݱ͢Δ
Ϟσϧͷࣜͷ֬ೝ h()ͱΓ͋͑ͣγάϞΠυؔͱ͢Δ தؒͷೖྗ૯ɿbj = ∑D i=0 wji xi தؒͷग़ྗɿzj =
h(bj ) ग़ྗͷೖྗ૯ɿak = ∑M j=0 vkj zj ग़ྗͷग़ྗɿyk = exp(ak ) ∑K−1 l=0 exp(al ) = exp(ak ) u ೖྗ࣍ݩ:Dɺதؒͷχϡʔϩϯͷ:Mɺग़ྗ࣍ݩ:K b = wx b0 b1 b2 = w00 w01 w02 w10 w11 w12 w20 w21 w22 x0 x1 x2 ϕΫτϧදه͢ΔͳΒ͜Μͳ͔Μ͡ʢҰ෦͚ͩʣ
ਤͱࣜΛηοτͰ֬ೝ x1 x2 a0 ग़ྗʢ2ʣ x0 όΠΞε߲ w00 தؒʢ1ʣ w01
w02 v20 v21 v22 P(t = 0|x) y0 b1 z1 b2 z2 z0 a1 y1 a2 y2 ೖྗ v00 v01 v02 = 1 = 1 όΠΞε߲ t0 t1 t2 P(t = 1|x) P(t = 2|x) D + 1 M + 1 K ೖྗ࣍ݩ:Dɺதؒͷχϡʔϩϯͷ:Mɺग़ྗ࣍ݩ:K bj = ∑D i=0 wji xi zj = h(bj ) ak = ∑M j=0 vkj zj yk = exp(ak ) ∑K−1 l=0 exp(al )
ޡࠩؔʁ ͜ͷ2ϑΟʔυϑΥϫʔυχϡʔϥϧωοτʹ3Ϋϥεྨ Λղ͔ͤΔ͜ͱΛߟ͑Δ ྨͳͷͰɺޡࠩؔલճͱಉ͘͡ฏۉަࠩϔϯτϩϐʔ ޡࠩΛ͏ yͷͱ͜Ζ͕݁ہલճͱಉ͡ͳͷͰɺࣜݟͨಉ͡ɻͨ ͩɺύϥϝʔλw͚ͩͰͳ͘v͋Δͱ͜Ζ͕ҧ͏ E(w, v) =
− 1 N N−1 ∑ n=0 K−1 ∑ k=0 tnk log ynk wͱvyͷࣜͷͳ͔ʹؚ·Ε ͍ͯΔ
͋ͱภඍͰ͖Εޯ ๏ͰֶशͰ͖Δʁ ·͞ʹͦͷͱ͓ΓɻޯϕΫτϧͷٯํ ʢ୩ఈํʣʹύϥϝʔλΛগͣͭ͠ ม͍͚͑ͯOKʂ χϡʔϥϧωοτͱݴͬͯ݁ہجૅ ͓Μͳ͡ͳͷͩ
ͰͲ͏ͬͯภඍ͢ Δͷʁ େม͚ͩͲɺஸೡʹ͍͚ͬͯภඍ Ͱ͖Δ ภඍΛಋग़ͯ͠ޯ๏Λద༻͍ͯ͘͠ ͱɺࣗવʹޡࠩٯ๏ʢόοΫϓϩ ύήʔγϣϯʣͱ͍͏χϡʔϥϧωοτ ϫʔΫʹ͓͚Δ༗໊ͳֶशํ๏͕ಋग़ ͞ΕΔ
ภඍͳΜ͔ͨ͘͠ͳ ͍ʂͱ͍͏߹ ඍ๏Λ͏ͱ͍͏ख͋Δɻ ඍͱ͖ͷ͜ͱͰɺ͋Δw*ͷ͖ΛಘΔʹɺ͜ͷਤͰ͍͏hΛͲΜͲΜখ ͍͚ͯۙ͘͞͠ࣅతʹٻΊΒΕΔɻ ภඍͩͬͨΒɺண͢ΔมҎ֎ݻఆʹ͢Δͱ͍͏ͷඍ๏Ͱ͓ͳ͡ɻ ͜ΕͰภඍಋؔΛಋग़͠ͳͯ͋͘ΔͷޯϕΫτϧΛͱΊΒΕΔɻ ඍͷఆٛɿ d dx
f(x) = lim h→0 f(x + h) − f(x) h E(w) w w* w* + h w* − h 2h ͲΜͲΜhΛখ͍͚ͯ͘͞͠ɺ͕ͯw*Ͱ ͷઢʹۙ͘ɻͦΕ͢ͳΘ͖ͪͰ͋Γɺͦ ͷॠؒͷมԽͰ͋ΓɺඍͰ͋Δɻඍͷ ఆٛࣜͱ͍͍ͩͨಉ͜͡ͱΛݴ͍ͬͯΔɻ ∂E ∂w | w=w* ≃ E(w* + h) − E(w* − h) 2h
ָ͔ͩΒ͍ͭඍ ๏Ͱ͍͍Μ͡ΌͶʁ ܭࢉεϐʔυ͕͍ͱ͍͏͕ܽ͋ΔɻͳͥͳΒɺ ઌ΄ͲͷࣜΛݟΕΘ͔Δ௨Γɺ͖ΛٻΊΔͷʹ E(w,v)ͷΛ2ճܭࢉ͠ͳ͍ͱ͍͚ͳ͍͔Βɻ ಋ͕ؔ͋Εɺ1ճͷܭࢉͰٻΊΒΕΔɻ ϓϩάϥϚͳΒΘ͔Δͱࢥ͏͚Ͳɺͱࢠͷ ͕ͷ͍͢͝খ͞ͳʹͳΔͷͰɺͪΌΜͱ͍Ζ ͍Ζߟ͑ͳ͍ͱؙΊޡ͕͍ࠩ͢͜͝ͱʹͳΔɻ
͡Ό͍͋ͭඍ๏Λ ͏ͷʁ ·ͩϞσϧͷ͕ࣜݻ·ͬͯͳͯ͘ɺภඍಋؔΛಋग़ ͢Δલʹͬ͟ͱֶशͰ͖Δ͔ײ͡Λ௫Έ͍ͨ࣌ɻ ภඍಋؔͷಋग़͕͍͋ͬͯΔ͔ͷݕূʹ͑Δɻ ·͋ɺֶशͷϥΠϒϥϦ͑ͦͦภඍ͠ͳͯ͘ ͍͍͜ͱ͕ଟ͍͚Ͳ……ɻ൚༻తͳߟ͑ํͳͷͰͳʹ ͔ͷʹ͔ͨͭ͠Εͳ͍ɻ ϥΠϒϥϦͷͳ͔Ͱඍ๏Λ͍ͬͯΔέʔε ͋Δ͔͠Εͳ͍ʢ͠ͳ͍͔͠Εͳ͍ʣɻ
ޡࠩٯ๏֓ཁ ೖྗΛೖΕͯग़ྗΛಘΔ ֤χϡʔϩϯͰͷޡࠩΛಘΔ ॏΈΛߋ৽͢Δ δ(2) k = yk − tk
←ୈ2ͷޡࠩ δ(1) j = h′ (bj ) K−1 ∑ k=0 vkj δ(2) k ←ୈ1ͷޡࠩ vkj := vkj − αδ(2) k zj /N wji := wji − αδ(1) j xi /N bj = ∑D i=0 wji xi zj = h(bj ) ak = ∑M j=0 vkj zj yk = exp(ak ) ∑K−1 l=0 exp(al ) x1 x2 a0 ग़ྗʢ2ʣ x0 w00 தؒʢ1ʣ w01 w02 v20 v21 v22 y0 b1 z1 b2 z2 z0 a1 y1 a2 y2 ೖྗ v00 v01 v02 = 1 = 1 t0 t1 t2 D + 1 M + 1 K δ(1) j δ(2) k
՝ 2ϑΟʔυϑΥϫʔυχϡʔϥϧωοτΛ࣮ͯ͠ΈΑ͏ TensorFlow·ͨKerasϕʔεָ͕ɻ͕࣌ؒ͋ΔͳΒ scipy.optimizeͷminimize()Ͱ࣮ͯ͠ΈΑ͏ɻ ޡࠩؔͱॏΈύϥϝʔλw, vͷֶशաఔͰͷมԽΛάϥ ϑԽͯ͠ΈΑ͏ɻ ӡ͕ྑ͚Εʢѱ͚ΕʁʣҌʹΓ্͛Δ༷ࢠ͕ ݟΒΕΔ͔ɻ
ࢀߟจݙ தҪ ӻ࢘ʮITΤϯδχΞͷͨΊͷػցֶशཧೖ ʯٕज़ධࣾ, 2015 ҏ౻ ਅʮPythonͰಈֶ͔ͯ͠Ϳʂ͋ͨΒ͍͠ػց ֶशͷڭՊॻʯᠳӭࣾ, 2018 ༔ีʮৄղ
σΟʔϓϥʔχϯά TensorFlowɾ KerasʹΑΔ࣌ܥྻσʔλॲཧʯϚΠφϏग़൛, 2017