Upgrade to Pro — share decks privately, control downloads, hide ads and more …

「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

kenmatsu4
November 29, 2023

「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料

「第5回 プログラマのための数学勉強会 発表資料 (2015/11/21[sat])」
内容は統計学の素養がある方には基本的な事項ですが、ベクトルと内積で見方を変えてみたという点と、あまり統計学に親しみがない方にも理解してもらえるようなまとめになっている、というところに本スライドの独自性があると考えていますので、その辺り良ければご覧ください^^

kenmatsu4

November 29, 2023
Tweet

More Decks by kenmatsu4

Other Decks in Science

Transcript

  1. ࣗݾ঺հ!LFONBUTV ɾ'BDFCPPLϖʔδ ɹIUUQTXXXGBDFCPPLDPNNBUTVLFOCPPL ɾ5XJUUFSΞΧ΢ϯτ ɹ!LFONBUTV ɾ2JJUBͰϒϩάΛॻ͍͍ͯ·͢ʢ౷ܭɺػցֶशɺ1ZUIPO౳ʣ ɹɹɹIUUQRJJUBDPNLFONBUTV ɹɹɹʢDPOUSJCVUJPOΛ௒͑·ͨ͠ʂʣ ɾझຯ ɹɹɹόϯυͰϕʔεΛ஄͍ͨΓ͍ͯ͠·͢ɻ

    ɹɹɹओʹ౦ೆΞδΞ΁όοΫύοΫཱྀߦʹߦͬͨΓ͠·͢ ɹɹʢΧϯϘδΞɺϛϟϯϚʔɺόϯάϥσγϡɺ৽ᙜ΢Πάϧ࣏ࣗ۠FUDʣ ཱྀߦͷࣸਅIUUQNBUTVLFOKJNEPDPN TwitterΞΠίϯ
  2. ͱ͢Δͱɺ಺ੵͱ͸ ϕΫτϧΛ n࣍ݩϕΫτϧ ఆٛ a = (a1, a2, · ·

    · , an)T, b = (b1, b2, · · · , bn)T a, b a · b = a1b1 + · · · + anbn = n X i=1 aibi a b
  3. ͱ͢Δͱɺ಺ੵͱ͸ ϕΫτϧΛ n࣍ݩϕΫτϧ ఆٛ a = (a1, a2, · ·

    · , an)T, b = (b1, b2, · · · , bn)T a, b a · b = a1b1 + · · · + anbn = n X i=1 aibi n n 1 1 ɾ a b ϕΫτϧ͔ΒεΧϥʹม׵͢Δ ԿΒ͔ͷֻ͚ࢉతͳૢ࡞Ͱ͋Δ͜ͱ͸ Θ͔Δ͕ɺͦΕҎ্Α͘Θ͔Βͳ͍
  4. ϕΫτϧ a = (a1, a2, · · · , an)T,

    ͷ௕͞ ϊϧϜ ͸ɺ ͷΑ͏ʹɺࣗ਎ͱͷ಺ੵͷϧʔτͱͯ͠ දͤ·͢ a kak2 kak = p a1 · a1 + · · · + an · an = v u u t n X i=1 a2 i = p a · a
  5. ͜͜Ͱ༨ݭఆཧΛࢥ͍ग़͠·͢ɻ kb ak2 = kak2 + kbk2 2 kakkbk cos

    ✓ kb ak2 = (b a) · (b a) = a · a + b · b 2a · b = kak2 + kbk2 2a · b ࠨลΛల։͢Δͱɾɾɾ
  6. ͜͜Ͱ༨ݭఆཧΛࢥ͍ग़͠·͢ɻ kb ak2 = kak2 + kbk2 2 kakkbk cos

    ✓ kb ak2 = (b a) · (b a) = a · a + b · b 2a · b = kak2 + kbk2 2a · b ࠨลΛల։͢Δͱɾɾɾ ಉ͡ͳͷͰɺ
  7. ͜͜Ͱ༨ݭఆཧΛࢥ͍ग़͠·͢ɻ kb ak2 = kak2 + kbk2 2 kakkbk cos

    ✓ kb ak2 = (b a) · (b a) = a · a + b · b 2a · b = kak2 + kbk2 2a · b ࠨลΛల։͢Δͱɾɾɾ ফڈՄೳʂ 2 a · b = 2 kakkbk cos ✓ ) a · b = kakkbk cos ✓
  8. ͜͜Ͱ༨ݭఆཧΛࢥ͍ग़͠·͢ɻ kb ak2 = kak2 + kbk2 2 kakkbk cos

    ✓ kb ak2 = (b a) · (b a) = a · a + b · b 2a · b = kak2 + kbk2 2a · b ࠨลΛల։͢Δͱɾɾɾ 2 a · b = 2 kakkbk cos ✓ ) a · b = kakkbk cos ✓ a · b = kakkbk cos ✓
  9. ) krk cos ✓ = kck cos ✓ = kck

    krk ͱɺมܗͰ͖ΔͷͰɺ ɹccDcc͸൒ܘͷ௕͞ʹDPTВΛ͔͚ͨ΋ͷ ͱཧղͰ͖·͢ɻ
  10. a b θ c = kbk cos ✓ Ҏ্ͷٞ࿦Λ;·͑ͯɺ಺ੵΛཧղ͢Δ a

    · b = kakkbk cos ✓ ϕΫτϧͷ௕͞ c ϕΫτϧͷ௕͞ ͭ·Γɺಉ͡ํ޲Λ޲͘ ੒෼ʹ͋Θͤͯ͋͛ͯɺ ͦͷํ޲ͷ௕͞Λ ֻ͚ࢉͨ͠΋ͷʂ a
  11. a b θ c = kbk cos ✓ ͜ͷֆͷ৔߹ɺBͷํ޲ʹ͋Θ͍ͤͯΔ Ҏ্ͷٞ࿦Λ;·͑ͯɺ಺ੵΛཧղ͢Δ

    a · b = kakkbk cos ✓ ϕΫτϧͷ௕͞ c ϕΫτϧͷ௕͞ a ͭ·Γɺಉ͡ํ޲Λ޲͘ ੒෼ʹ͋Θͤͯ͋͛ͯɺ ͦͷํ޲ͷ௕͞Λ ֻ͚ࢉͨ͠΋ͷʂ
  12. a · b = kakkbk cos ✓ = cos ✓

      ಺ੵ͸DPTВ ͱͳΔɻ
  13. ͜ͷઅͷ·ͱΊ a · b = a1b1 + · · ·

    + anbn = n X i=1 aibi a · b = kakkbk cos ✓ a b θ c = kbk cos ✓ ಺ੵʹ͸̎ͭͷఆ͕ٛ͋Γɺ ࣹӨ͞ΕΔଆͷϕΫτϧͷ௕͕͞ͷ࣌͸ɺ಺ੵ͸ ࣹӨͷ௕͞Ͱ͋Δɻ ܭࢉ͢ΔͳΒͪ͜Β ҙຯ͕Θ͔Δͷ͸ͪ͜Β
  14. DBSTσʔληοτ TQFFEσʔλ = ¯ x = 1 n n X

    i=1 xi ฏۉ = s 2 = 1 n n X i=1 ( xi ¯ x )2 ෼ࢄ ඪ४ภࠩ = s = v u u t 1 n n X i=1 ( xi ¯ x )2 ภࠩ
  15. ඪ४ภࠩ = s = v u u t 1 n

    n X i=1 ( xi ¯ x )2 DBSTσʔληοτ TQFFEσʔλ = ¯ x = 1 n n X i=1 xi ฏۉ = s 2 = 1 n n X i=1 ( xi ¯ x )2 ෼ࢄ ֤σʔλฏۉ͔ΒͷࠩΛͦ ΕͧΕ̎৐ͯ͠࿨Λͱͬͨ ΋ͷɻࢄΒ͹Γ۩߹ͷࢦඪ ภࠩ
  16. ෼ࢄɾඪ४ภࠩͷࢹ֮తΠϝʔδ  = s 2 = 1 n n X

    i=1 ( xi ¯ x )2 ภࠩ͸ɺ୯७ʹ଍͠ ͯ͠·͏ͱɺ௼Γ߹ͬ ͍ͯΔͷͰʹͳΔ ˠภࠩ৐͍ͯ͠ΔΦϨϯδͷਖ਼ํܗͷ໘ੵΛฏۉͨ͠ ΋ͷɻԼهͰ͸த৺ΛͣΒ͍ͯ͠Δ͕ɺ࠷খͱͳΔͷ͕ ฏۉ  ͷҐஔ ¯ x ৐͢Δ https://goo.gl/6DROOA Ξχϝʔγϣϯɿ
  17. ෼ࢄɾඪ४ภࠩͷ΋͏ҰͭͷΠϝʔδ x = ( x1, · · · , xn)

    x 0 = ( x1 ¯ x, · · · , xn ¯ x ) σʔλΛO࣍ݩϕΫτϧͱͯ͠ݟͯΈΔɻ x ฏۉ͔ΒͷภࠩͷϕΫτϧΛ ¯ x ͱ͢Δͱɺͦͷ࣌ɺͷ௕͞͸ x 0 k x 0k k x 0k = v u u t n X i=1 ( xi ¯ x )2 Ͱɺද͞ΕΔɻ
  18. ෼ࢄɾඪ४ภࠩͷ΋͏ҰͭͷΠϝʔδ Αͬͯ = s = v u u t 1

    n n X i=1 ( xi ¯ x )2 = r 1 n v u u t n X i=1 ( xi ¯ x )2 = r 1 n k x 0k ͱͳΓɺඪ४ภࠩ͸ϕΫτϧͷ௕͞ͷ Ұछͱߟ͑ΒΕΔɻ x 0 k x 0k = v u u t n X i=1 ( xi ¯ x )2 x’ k x 0 k
  19. ͪͳΈʹɺ &Yภࠩ஋ ໊લɹ ਺ֶɹ ภࠩ ඪ४ภࠩ Կݸ෼ʁ ˡºഒ ˡ 

    ాத      ߴڮ      ླ໦      ౉ล      ਗ਼ਫ      ໦ଜ      ࢁຊ      ฏۉ  ඪ४ภࠩ  ͜Ε͕ʮภࠩ஋ʯ
  20. ͜ͷઅͷ·ͱΊ σʔλΛO࣍ݩ্ͷ̍ຊͷϕΫτϧͱͯ͠ݟͯΈΔɻ ·ͨɺฏۉ͔ΒͷภࠩϕΫτϧΛԼهͷΑ͏ʹఆٛͨ͠ x s = r 1 n v

    u u t n X i=1 ( xi ¯ x )2 = r 1 n k x 0k x 0 = ( x1 ¯ x, · · · , xn ¯ x ) ͜ͷΑ͏ʹ͢Δͱඪ४ภࠩ͸ɺ ͷΑ͏ʹϕΫτϧͷ௕͞ͷҰछͱଊ͑Δ͜ͱ͕Ͱ͖Δɻ
  21. ૬ؔ܎਺ r = P ( xi ¯ x )( yi

    ¯ y ) pP ( xi ¯ x )2 pP ( yi ¯ y )2 ૬ؔ܎਺ ࣜΛΑ͘ݟͯΈΔͱɺ = x 0 · y 0 k x 0kk y 0k ͋Εɺ͜Εͬͯʁ
  22. ૬ؔ܎਺ r = P ( xi ¯ x )( yi

    ¯ y ) pP ( xi ¯ x )2 pP ( yi ¯ y )2 ૬ؔ܎਺ ࣜΛΑ͘ݟͯΈΔͱɺ = x 0 · y 0 k x 0kk y 0k = cos ✓ ಺ੵͷఆ͔ٛΒ DPTВͩʂ ͋Εɺ͜Εͬͯʁ θ x’ y’ σʔλ਺Oͷͱ͖ɺO࣍ݩͷ ߴ࣍ݩۭؒͷ̎ຊͷϕΫτϧ ͱݟͳ͢ ฏۉΛҾ͍ͯத৺Λଗ͑ͯ͋Δ͜ͱʹ஫ҙ
  23. ͜ͷઅͷ·ͱΊ r = P ( xi ¯ x )( yi

    ¯ y ) pP ( xi ¯ x )2 pP ( yi ¯ y )2 ૬ؔ܎਺ = x 0 · y 0 k x 0kk y 0k = cos ✓ ̎ͭͷσʔλؒͷ૬ؔؔ܎Λද͢ʮ૬ؔ܎਺ʯ͸ σʔλΛϕΫτϧͱͯ͠ଊ͑ΔͱɺO࣍ݩ্ۭؒͷ ̎ຊͷϕΫτϧͷؒͷ֯౓ͱଊ͑Δ͜ͱ͕Ͱ͖ͨɻ θ x’ y’
  24. ճؼ෼ੳ yi = ↵ + xi + ei ei =

    yi ( ↵ + xi) ˠ min S ( ↵, ) = min n X i=1 e 2 i = min n X i=1 { yi ( ↵ + xi)}2 ΑͬͯɺԼهͷ࠷খԽ໰୊ͱͳΔɻ ࠷খೋ৐๏ ↵ + xi yi ei
  25. ճؼ෼ੳ @S(↵, ) @↵ = 0 @S(↵, ) @ =

    0 Λղ͘͜ͱͰɺ4͕࠷খͱͳΔ ЋͱЌΛٻΊΒΕΔɻ
  26. ճؼ෼ੳ લϖʔδͷܭࢉΛղ͘ͱɺ ˆ ↵ = ¯ y ˆ¯ x ͱͳΔɻ

    ˆ = P ( xi ¯ x )( yi ¯ y ) P ( xi ¯ x )2
  27. ճؼ෼ੳ લड़ͷΑ͏ʹɺภࠩΛϓϥΠϜͰද͢ͱɺ ˆ = P ( xi ¯ x )(

    yi ¯ y ) P ( xi ¯ x )2 = x 0 · y 0 k x 0k2 ಺ੵͱɺϕΫτϧͷ௕͞Ͱ දݱͰ͖Δʂ
  28. ճؼ෼ੳ x’ y’ θ = x 0/k x 0k ޲͖͕x’ͱಉ͡Ͱ͋Δ୯ҐϕΫτϧ

    ˆ = x 0 · y 0 k x 0k2 = x 0 k x 0k2 · y 0 ͜ͷ̎ͭͷϕΫτϧͷ಺ੵͱ ߟ͑ΒΕΔɻ
  29. ճؼ෼ੳ ˆ = x 0 · y 0 k x

    0k2 = x 0 k x 0k2 · y 0 ͜ͷ̎ͭͷϕΫτϧͷ಺ੵͱ ߟ͑ΒΕΔɻ x’ y’ θ = x 0/k x 0k ˆ = x 0 k x 0k2 · y 0 ͸x’ʹର͢Δy’ͷࣹӨͷ ௕͞Ͱ͋Δͱߟ͑ΒΕΔɻ ˆ = 1 k x 0k k x 0kk y 0k cos ✓ = k y 0k cos ✓ = 1 k x 0k x 0 k x 0k · y 0 ௕͞
  30. ྫɿ*SJT ΞϠϝ σʔληοτ ˠσʔλ෼ੳքͷ)FMMP8PSMEతͳσʔλͰ͢ ID sepal_length sepal_width petal_length petal_width target

    0 5.1 3.5 1.4 0.2 0 1 4.9 3.0 1.4 0.2 0 2 4.7 3.2 1.3 0.2 0 3 4.6 3.1 1.5 0.2 0 4 5.0 3.6 1.4 0.2 0 5 5.4 3.9 1.7 0.4 0 6 4.6 3.4 1.4 0.3 0 7 5.0 3.4 1.5 0.2 0 8 4.4 2.9 1.4 0.2 0 9 4.9 3.1 1.5 0.1 0 ʜ http://blog.kaggle.com/2015/04/22/scikit-learn-video-3-machine-learning-first-steps-with-the-iris-dataset/ ɹΞϠϝͷछผ TFUPTB WFSTJDPMPS WJSHJOJDB Ֆห ᣾ย
  31. sepal_length sepal_width petal_length petal_width z1 z2 ͭͷಛ௃͔Βɺ ͳΔ΂͘৘ใΛ ଛͳΘͳ͍Α͏ʹ ͭʹݮΒͨ͠ɻ

    [ [ ʮओ੒෼෼ੳʯͱ͍͏ explained: 0.9776 ྫɿ*SJT ΞϠϝ σʔληοτ ৘ใͷ໿͕ΩʔϓͰ͖͍ͯΔ
  32. sepal_length sepal_width petal_length petal_width z1 z2 ͭͷಛ௃͔Βɺ ͳΔ΂͘৘ใΛ ଛͳΘͳ͍Α͏ʹ ͭʹݮΒͨ͠ɻ

    [ [ ʮओ੒෼෼ੳʯͱ͍͏ explained: 0.9776 ओ੒෼෼ੳ ଟ͘ͷಛੑΛ࣋ͭଟมྔσʔλΛɺগͳ͍ݸ਺Ͱ ૯߹తʹಛ௃Λද͢ྔʹ·ͱΊΔ͜ͱΛߦ͏෼ੳ ྫɿ*SJT ΞϠϝ σʔληοτ
  33. ओ੒෼෼ੳͷ࢓૊Έ ΋͏গ͠୯७ͳσʔλͰ ID Math Japanese 1 20 9 2 4

    2 3 12 15 4 5 10 5 10 6 6 8 11 7 1 4 8 15 9 9 5 6 ਺ֶɾࠃޠͷڭՊͷ੒੷σʔλ͔Β૯߹తͳֶྗͷ ࢦඪΛࢉग़ͯ͠Έ·͢ɻ㱺࣍ݩσʔλΛ࣍ݩʹམͱ͢
  34. xi = (xi1, xi2)   ௕͞ kx i kcos

    ✓ θ z(1) a ಺ੵʂ ओ੒෼ͱͯ͠ͷ̍ͭ໨ͷ࣠Λͱ͢Δͱɺʹର͢Δ ओ੒෼͸ͱදͤΔɻ   z(1) xi z(1)i = ( a · xi) a ओ੒෼෼ੳͷ࢓૊Έ ࣍ݩͷྫ = z(1)i = a · x i a = (a1, a2)T ৘ใଛࣦྔ
  35. ͜ͷ੺͍఺ͷ෼ࢄΛٻΊΔɻ ओ੒෼෼ੳͷ࢓૊Έ ࣍ݩͷྫ V(z(1) ) = 1 n n X

    i=1 (z(1)i ¯ z(1) )2 ෼ࢄ = 1 n n X i=1 {( a · xi) ( a · ¯ x )}2 dதུd ͸࣠ͷ෼ࢄ ͸࣠ ͷڞ෼ࢄ sii sij ¯ z(1) z(1) = a2 1 s11 + 2a1a2s12 + a2 2 s22
  36. ͜ͷ੺͍఺ͷ෼ࢄΛٻΊΔɻ ओ੒෼෼ੳͷ࢓૊Έ ࣍ݩͷྫ V(z(1) ) = 1 n n X

    i=1 (z(1)i ¯ z(1) )2 ෼ࢄ = 1 n n X i=1 {( a · xi) ( a · ¯ x )}2 dதུd ͸࣠ͷ෼ࢄ ͸࣠ ͷڞ෼ࢄ sii sij ¯ z(1) z(1) ෼ࢄΛ࠷େʹ͢ΔBͷ֯౓ ͭ·Γ ͜ΕΛ࠷େʹ͢ΔB BΛٻΊΔ = a2 1 s11 + 2a1a2s12 + a2 2 s22
  37. ओ੒෼෼ੳͷ࢓૊Έ ࣍ݩͷྫ = a2 i s11 + 2a1a2s12 + a2

    2 s22 ͨͩ͠ɺ ͸ɺϕΫτϧ͕௕͘ͳΕ͹ͳΔ΄Ͳେ͖͘ͳΔͷͰɺ ௕͞͸̍ a kak2 = 1 ͱ͍͏੍໿Λ͚ͭΔɻ Ҏ্ΑΓɾɾɾ
  38. ओ੒෼෼ੳͷ࢓૊Έ ࣍ݩͷྫ ओ੒෼෼ੳ͸ҎԼͷ৚͖݅ͭ࠷େԽ໰୊ͱͯ͠ղ͘ɻ s.t. kak2 = 1 max a2 1

    s11 + 2 a1a2s12 + a2 2 s22 ৚͖݅ͭ࠷దԽ໰୊ 㱺ʮϥάϥϯδϡͷະఆ৐਺๏ʯͰղ͘
  39. s.t. kak2 = 1 max a2 1 s11 + 2

    a1a2s12 + a2 2 s22 ओ੒෼෼ੳͷ࢓૊Έ ࣍ݩͷྫ F(a1, a2, ) = a2 1 s11 + 2a1a2s12 + a2 2 s22 (a2 1 + a2 2 1) @F @a1 = 2a1s11 + 2a2s12 2 a1 = 0 @F @a2 = 2a2s22 + 2a1s12 2 a2 = 0 @F @ = a2 1 + a2 2 1 = 0 ඍ෼ͯ͠ͱஔ͘
  40. ओ੒෼෼ੳͷ࢓૊Έ ࣍ݩͷྫ લϖʔδͷࣜΛ੔ཧ͢Δͱɺ  s11 s12 s12 s22  a1

    a2 =  a1 a2 ෼ࢄڞ෼ࢄߦྻͷݻ༗஋໰୊ͱͳ͍ͬͯΔʂ
  41. ˞ΑΓ͜Ε͕ݴ͑Δ ෼ࢄڞ෼ࢄߦྻͷݻ༗஋໰୊ʁ S =  s11 s12 s12 s22 =

     2.0 s12 s12 5.0 ྫ ෼ࢄ͕ɺԣ࣠ɺॎ࣠ͷ৔߹ ·ͨɺ෼ࢄͱڞ෼ࢄͷؔ܎͔Βɺڞ෼ࢄͷ্Լݶ͸ ͦΕͧΕͷඪ४ภࠩΛֻ͚ͨ΋ͷͱͳΔɻ |sij |  p siisjj |a · b| = |kakkbk cos ✓|  kakkbk ্هͷ਺஋ྫͷ৔߹ɺ ্Լݶ͸œ
  42. ࢀߟ ɾʲ౷ܭֶʳॳΊͯͷʮඪ४ภࠩʯʢ౷ܭֶʹ࠳ં͠ͳ͍ͨΊʹʣ  2JJUB  IUUQRJJUBDPNLFONBUTVJUFNTFDBDCDF ɾʲ਺ֶʳݻ༗஋ɾݻ༗ϕΫτϧͱ͸Կ͔ΛՄࢹԽͯ͠ΈΔ 2JJUB  IUUQRJJUBDPNLFONBUTVJUFNTBFDGDEB

    ɾओ੒෼෼ੳ ɹɹIUUQXXXFPLBZBNBVBDKQdOBHBIBUBCTUBUSUBTZPQEG ɾࠓ೔ͷ1ZUIPOίʔυPO(JU)VC IUUQTHJUIVCDPNNBUTVLFO2JJUB@$POUFOUTCMPCNBTUFS NBUI@GPS@QSPHSBNNFSEFNP@NBUI@TUBUT@JQZOC