Share
Embed
サポートベクターマシンとは?アルゴリズムや数学の徹底解説!!
サポートベクトルマシン(SVM)の数学の解説をしてます.
ダウンロードしたい方はご自由にどうぞ!!
良ければTwitterをフォローくださいませ.
https://twitter.com/kenyu0501_?lang=ja
詳細ブログ:サポートベクターマシン(SVM)とは?〜基本からPython実装まで〜
https://kenyu-life.com/2019/02/11/support_vector_machine/
kenyu
July 23, 2019
Transcript
41 slides
-
αϙʔτϕΫλʔϚγϯ 47. ͷ ֶΛઆ໌͍͚ͨͩ͠ͷεϥΠυ ্ݪݡ༞!LFOZV@ ɹࢁޱେֶത࢜՝ఔֶज़ݚڀһ ࠷ۙͷτϐοΫ ɹਓೳͷݕఆ Hݕఆ ʹ߹֨
ͨ͠ͷͰɼ"*ʹؔ͢ΔϚϯτ ͕ͱΕΔΑ͏ʹͳΓ·ͨ͠ɽ θϛࢿྉୈճ ࡱӨɼιʔγϟϧɼࣗݾ༻ɼશ෦0, 5XJUUFSྑ͚ΕϑΥϩʔͩ͘͞Εʂ -
ࠓճͷθϛͷతͱίϯςϯπ ɾػցֶशͷେΛͬ͘͟Γͱཧղ͢Δ͜ͱɹɾɾɾ ɾ47.ͷֶతഎܠΛཧղ͢Δ͜ͱɾɾɾ ɾ47.Λ࣮ࡍʹ༻Ͱ͖ΔΑ͏ʹͳΔ͜ͱɾɾɾ ɾػցֶशͱʂʁ ɾػցֶशͷҐஔ͚ ɾػցֶशͷΞϧΰϦζϜ ڭࢣ͋Γ74ͳ͠ ɾ47.ڭࢣ͋Γֶश
ɾσϞϯετϨʔγϣϯɿۙͳ47. ɾݚڀͷϞνϕʔγϣϯ ͷݚڀ ɾϕΫτϧͷ෮श ɾઢܗֶशϚγϯͷֶɿϋʔυϚʔδϯˠιϑτϚʔδϯ ɾओ74ରɿઢܗ͔Βඇઢܗ47.ͷ֦ு ɾಛۭؒͷࣸ૾ɼΧʔωϧͷಋೖ ɾݚڀͷద༻ɿհ త ΊͬͪΌֶʂ ༰ -
ػցֶश .BDIJOF-FBSOJOH ͱʂʁ τϨϯυ (PPHMFτϨϯυ ػցֶश͕͡Θ৳ͼ͍ͯ͠Δཧ༝ ɾσΟʔϓϥʔχϯάͰେྔͷ ɹσʔλ͕ඞཁʹͳΔ ɾܭࢉϦιʔε͕ඞཁʹͳΔ ɾݸਓ͕ͳ͔ͳ͔࣮͠ʹ͍͘
ʮσʔλΛ෮తʹֶशͯ͠ɼ͋Δ๏ଇΛݟ͚ͭΔ͜ͱʯ σΟʔϓϥʔχϯά͜͏͍ͬͨোน͕͋Δ ɾগྔͷσʔλͰ࣮Ͱ͖Δ 47.ͰަࠩݕূͳͲͷख๏͋Δ ɾೖग़ྗؔͷؔ ౷ܭཧʹجͮ͘ ɾܭࢉϦιʔεͦ͜·ͰඞཁͰͳ͍ ɾݸਓͰ࣮͕༰қͰ͋Δ ਓؾͬ͢Α -
ਓೳ͔ΒΈͨػցֶशͷҐஔ͚ ৼΔ͍͕ܾΊΒΕ͍ͯΔͷ ਓೳͷͭͷϨϕϧ͚ -FWFM -FWFM -FWFM -FWFM γϯϓϧͳ੍ޚϓϩάϥϜ ݹయతͳਓೳ ػցֶश
σΟʔϓϥʔχϯά 0O0GG੍ޚ 1*%੍ޚ 1SPQPSUJPOBM*OUFHSBM%JGGFSFOUJBM ͋Δಛఆͷڥʹݶఆͨ͠߹ͷΈɼ ෳࡶͳಈ͖͕Ͱ͖Δ ೖग़ྗͷؔΛֶशͨ͠ͷɽ ೖྗʹಛྔͱ͍͏ਓ͕ؒ ઃఆ͢Δ֓೦͕͋Δɽ ಛྔࣗମΛࣗಈͰֶशͰ͖Δ ͋ΒΏΔ݅ʹରԠͨ͠ಈ࡞੍ޚܥͷ Έ߹Θͤ αϙʔτϕΫλʔϚγϯ ܾఆͳͲ χϡʔϥϧωοτϫʔΫ 3// $//ͳͲ -
ػցֶशͷΞϧΰϦζϜɿڭࢣ͋Γɼڭࢣͳ͠ɼڭࢣɼڧԽֶश ػցֶश ڭࢣ͋Γֶश ڭࢣͳֶ͠श ڭࢣ͋Γֶश ڧԽֶश ϥϕϧ͖σʔλΛ༻͍ͯೖग़ྗؒͷ ؔΛ࡞Δ ϥϕϧͳ͠ͷσʔλ͔ΒӅΕͨߏΛ هड़͢ΔؔΛ࡞Δ
ϥϕϧ͖ͱແ͠ͷ྆ํͷσʔλΛ༻ ͍ͯೖग़ྗؒͷؔΛ࡞Δ ͋ΔڥͰߦಈͷՁΛ࠷େԽ͢Δ Α͏ͳಈ࡞ΛܾΊΔؔΛ࡞Δ ɾճؼ ઢܗճؼɼϕΠζճؼ ɾྨ 47.ɼܾఆ ɾΫϥελϦϯά ɹ ,NFBOT๏ɼࠞ߹ਖ਼نϞσϧ ɾใѹॖ 1$"ɼಛҟղ ɾྨ ڭࢣ͋ΓLۙ๏άϥϑɼɹɹɹ ɹɹڭࢣ͋Γࠞ߹ΨεϞσϧ ɾήʔϜɼ੍ޚɼਪఆ ɹ 2MFBSOJOHɼ4BSTB -
ػցֶशͷΞϧΰϦζϜɿڭࢣ͋ΓαϙʔτϕΫλʔϚγϯ47. ݹయతͳ੍ޚ ೖྗ ϓϩάϥϜ ίϯϐϡʔλ ग़ྗ ೖྗ ग़ྗ ίϯϐϡʔλ ϓϩάϥϜ
ڭࢣ͋Γֶश ػցֶश αϙʔτϕΫλʔϚγϯ ೖग़ྗσʔλͷύλʔϯΛ ίϯϐϡʔλʹ୳ͯ͠Β͏ -
47.͕͡ΊʹΘΕͨ՝ɿखॻ͖จࣈೝࣝ ΞϝϦΧ༣αʔϏεɿखॻ͖༣ศ൪߸Λೝࣝͯ͠ɼࣗಈ͚͢Δ՝ 77BQOJL 4UBUJTUJDBM-FBSOJOH5IFPSZ 4QSJOHFS7FSMBH ࠓճ࣮EFNP͋Γ खॻ͖จࣈೖྗ ࣈग़ྗ
ػցֶशͷ࣮ߦ 47. //FUD ίʔϧηϯλ ༣ศ͚ ిަख ݱࡏɼػցʹସ͞ΕΔ ͱ༧͞Ε͍ͯΔࣄ#FTU 「RaspberryPiではじめる機械学習」 を参考にしました ྨث ˠଆͷॲཧΛͬ͟ͱઆ໌ɽ ˠ47.ʹΑΓྨثΛ࡞ͯ͠ɼ࣮ࡍʹखॻ͖ ɹจࣈೝࣝΛߦ͏͜ͱ͕Ͱ͖Δ͔Ͳ͏͔ͷςετɽ σϞϯετϨʔγϣϯͷ༰ -
47.͕͡ΊʹΘΕͨ՝ɿखॻ͖จࣈೝࣝ x1 x2 Y1 = 6 Y2 = 5 特徴量(本当は64つ)
特徴量 データ1797つ Q. Sklearnのオープンデータセット がどのようなものか確認して下さい データとターゲットを用意できれば, すぐにSVMやNNに与えることができます for文 「変数i を0から9まで変化させながら10回繰り返す」 n_classesには10が格納されている -
47.͕͡ΊʹΘΕͨ՝ɿखॻ͖จࣈೝࣝ サポートベクターマシンを使った分類器の作成に挑戦 サポートベクターマシンがたったの3行で実装できる! Sklearnを使用したらかなり楽に記述することができます. 予測と正解が一致した結果(合計)をsuccessに渡す SVM X y result =
clf.predict(X) 入力のy(数字)と,出力のresult(数字)が一致して いるのか確かめる! 正解率を表示して,与えたデータでSVMを使ってきちんと0~9のクラスに 分けることができているのか確かめる -
ϕΫτϧͷ෮शɿزԿֶతදݱ͔Βతදݱ r θ x y (r, θ) x1 x x1
x (x, y) ༗ઢ͔Β࠲ඪܥͷ త֓೦ͩͱ ϕΫτϧΛͬͨ ࠩੵͷԋࢉ͕༰қ ཧ࠲ඪܥXJLJQFEJB IUUQTKBXJLJQFEJBPSHXJLJཧ࠲ඪܥ ֤ࠃҢઢͱܦઢͷ ใΛ࣋ͭϕΫτϧ ࣾձਓͷͨΊͷσʔλੳೖୈճ IUUQTBNVTFNFOUKBQBODPKQBSUJDMFEFUBJM ϚοΫͱύνϯίͷ ใΛ࣋ͭϕΫτϧ ສਓ͋ͨΓ ͜͏͍ͬͨͷ ϕΫτϧ -
ಛྔ ಛྔ ઢܗՄೳ K2 K1 ಛྔ ಛྔ K2 K1 ઢܗෆՄೳ
ϋʔυϚʔδϯ ιϑτϚʔδϯ ϋʔυϚʔδϯΑΓݡ໌ͳ47. 47.ͷऔֻ͔ͬΓʹྑ͍ ઢܗֶशϚγϯͷֶɿϋʔυϚʔδϯ -
ಛྔ ಛྔ αϙʔτϕΫτϧ αϙʔτϕΫτϧ Ϛʔδϯ࠷େԽ ҹ෦ͷ͞ wT x + b
= 0 K2 K1 ઢΑΓԼʹ͋Δσʔλ Ϋϥεʹଐ͢Δ ઢΑΓ্ʹ͋Δσʔλ Ϋϥεʹଐ͢Δ wT xi + b > 0 wT xi wT xi + b < 0 xi ∈ K1 wT xi xi ∈ K2 ͱͳΔσʔλxͷू߹ ઢܗՄೳͳσʔλ ྨڥքͰ͋Δઢ ฏ໘ ͷํఔࣜΛ͜ͷΑ͏ʹఆٛ͢Δ ϥϕϧมti Λಋೖͯ͠ɼΑΓେ͖͍ܗʹ ti (wT xi + b) > 0 wT xi i = 1,2,⋯, n w زԿϚʔδϯ ͱ͍͏Αʂ ɾྨڥքΛܾఆ͢ΔؔʹΑΓྨثΛఆٛ͢Δɽ ɾσʔλΛᘳʹ͢Δ͕ؔଘࡏ͢Δͱ͍͏Ծఆ͕͋Δɽ ɾαϙʔτϕΫτϧͰͳ͍ɼઢ ฏ໘ ʹશ͘ӨڹΛ༩͑ͳ͍ɽ ɹͭ·Γɼ࠷దղʹӨڹͳ͍ɽ w w b ॏΈ O࣍ݩ࣮ϕΫτϧ όΠΞε εΧϥʔ ઢܗֶशϚγϯͷֶɿϋʔυϚʔδϯ -
䡧ͱઢͷڑ ࣍ݩ7FS (x1 , x2 ) d d = |w1
x1 + w2 x2 + b| w2 1 + w2 2 wT xi + b = 0 wT xi 䡧ͱฏ໘ͷڑ O࣍ݩ7FS (x1 , x2 , ⋯, xn ) d = |w1 x1 + w2 x2 + ⋯ + wn xn + b| w2 1 + w2 2 + ⋯ + w2 n O࣍ݩ͔͚ͳ͍͚Ͳɼ ࣍ݩతʹɼɼɼ wT xi + b = 0 wT xi d = |wT x + b| ||w|| w wT x ҰൠԽ͢Δ ɼॏΈϕΫτϧͷϊϧϜ ͞ Λද͢ ||w|| w O࣍ݩσʔλ ࣍ݩฏ໘ͷ ͱઢͷڑ ߴߍֶͩͶ ઢܗֶशϚγϯͷֶɿϋʔυϚʔδϯ -
ಛྔ ಛྔ αϙʔτϕΫτϧ αϙʔτϕΫτϧ Ϛʔδϯ࠷େԽ ҹ෦ͷ͞ wT x + b
= 0 K2 K1 ̎ͭͷΫϥεΛ͚Δฏ໘ʹ࠷͍ۙσʔλ αϙʔτϕΫτϧ ͷڑΛߟ͑Δ wT x M = wT x+ + b ||w|| = −(wT x− + b) ||w|| w wT x x+ x− x x w wT x αϙʔτϕΫτϧ αϙʔτϕΫτϧ ti (wT xi + b) ||w|| ≥ M maxM, w, b w (i = 1,2,⋯, n) wT xi w ͜ͷ࠷దԽΛղ͘ ᶃαϙʔτϕΫτϧ PS ʹରͯ͠Ϛʔδϯ࠷େԽ͢Δ ᶄશͯͷϕΫτϧɹ͕ ͦͷϚʔδϯΑΓڑ͕͍ ͜ͷͭͷ݅Λຬͨ͢ xi xi x+ x+ x− x− ઢܗֶशϚγϯͷֶɿϋʔυϚʔδϯ -
ti (wT xi + b) ||w|| ≥ M maxM, w,
b w (i = 1,2,⋯, n) wT xi w ͜ͷ࠷దԽΛղ͘ ؔग़ྗͱͯ͠ଌఆ͞ΕΔؔϚʔδϯM͕มԽ͢ΔͷͰɼ زԿϚʔδϯΛ࠷దԽ͢ΔͨΊʹɼؔϚʔδϯΛʹ͢Δɽ ͦͷޙɼॏΈϕΫτϧͷϊϧϜΛ࠷େԽ ࠷খԽ ͢Δɽ M = wT x+ + b ||w|| = −(wT x− + b) ||w|| w wT x w wT x αϙʔτϕΫτϧ αϙʔτϕΫτϧ wT x + b = 1 w ͜͜Ͱɼ྆ลΛMͰׂΔ ti (wT xi + b) M||w|| ≥ 1 ti ( ˜ wT xi + ˜ b) ≥ 1 ˜ w = w M||w|| ˜ b = b M||w|| શͯͷσʔλʹରͯ͠ɼ͜ͷෆ͕ࣜͳΓͨͭ wT xi w wT xi w w ؆୯ͷͨΊνϧμͰද͓ͯ͘͠ ˜ M = ti ( ˜ wT xi + ˜ b) || ˜ w|| = 1 || ˜ w|| αϙʔτϕΫτϧ x+ x- ʹ͓͍ͯɼ ҎԼͷ߸ཱ͕͢Δ wT xi w w తؔ ੍݅ ti ( ˜ wT xi + ˜ b) = 1 wT xi ಛʹαϙʔτϕΫτϧͰ߸ཱ͕ ઢܗֶशϚγϯͷֶɿϋʔυϚʔδϯ -
max 1 || ˜ w|| , ˜ w, b w
(i = 1,2,⋯, n) ti ( ˜ wT xi + ˜ b) ≥ 1 wT xi w min 1 2 ||w||2 , ti (wT xi + b) ≥ 1 wT xi (i = 1,2,⋯, n) w, b w ࠷େԽɼٯΛͱͬͯ࠷খԽ͢ΔͷͱՁͰ͋Δ ࠷େԽˠ࠷খԽ w ϊϧϜͷೋܭࢉΛߦ͍͘͢͢ΔͨΊʂ తؔ ੍݅ ࠷దԽͷ࠷దղΛٻΊΔͱɼ wT x + b = 1 w ti ( ˜ wT xi + ˜ b) = 1 wT xi ௨ৗ͍͔ͭ͘ݱΕΔɽ ͜Εɼྨڥքʹ࠷͍ۙϕΫτϧͰ͋Γɼࠨਤͷഁઢ্ ͷʹ૬͢Δ ઢܗֶशϚγϯͷֶɿϋʔυϚʔδϯ -
ಛྔ ಛྔ wT x + b = 0 ઢܗՄೳ K2
K1 ಛྔ ಛྔ K2 K1 ઢܗෆՄೳ wT x + b = 0 ϋʔυϚʔδϯ ιϑτϚʔδϯ ϋʔυϚʔδϯΑΓݡ໌ͳ47. ϋʔυϚʔδϯͷ੍࣋ͭ݅ͷ؇ 47.ͷऔֻ͔ͬΓʹྑ͍ ઢܗֶशϚγϯͷֶɿιϑτϚʔδϯ -
K2 K1 ઢܗෆՄೳ wT x + b = 0 wT
x + b = − 1 wT x + b = 1 ti (wT xi + b) ≥ 1 − ξi wT xi K1 ʹ͓͍ͯ͢Δઢͷ Ұ൪͍ۙσʔλ αϙʔτϕΫτϧ K2 ʹ͓͍ͯҰ൪͍ۙσʔλ αϙʔτϕΫτϧ w, b w ઢܗՄೳͳ߹ ϋʔυϚʔδϯ ɼ͜Εͷ࠷খԽΛղ͘͜ͱ͕ඞཁͩͬͨ min 1 2 ||w||2 , ti (wT xi + b) ≥ 1 wT xi (i = 1,2,⋯, n) w ߸ཱ͕͢Δ߹ Ϛʔδϯ Ϛʔδϯ෦ʹҟͳΔσʔλ͕ ೖΓࠐΜͰ͠·͏ εϥοάมξ Λಋೖ੍ͯ͠ΛऑΊΔ ξi = max{0, M − ti (wT xi + b) ||w|| } εϥοάมξ NBYؔ wT x w w x w x w x ά β Π ઢܗֶशϚγϯͷֶɿιϑτϚʔδϯ -
ξi = max{0, (1 − 0.4 = 0.6)} ξi =
max{0, M − ti (wT xi + b) ||w|| } wT x w K2 K1 ۩ମྫΛߟ͑Δ wT x + b = 0 wT x + b = 1 Ϛʔδϯ. ྫ͑ɼ͜ͷೖΓࠐΜͩ σʔλ Λߟ͑Δ ti (wT xi + b) ||w|| = 0.4 ઢͱͷڑ Ϛʔδϯ M = 1 ξi = 0.6 ti (wT xi + b) ≥ 1 − ξi = 0.4 wT xi ͜ͷೖΓࠐΜͩσʔλ ʹରͯ͠ɼ੍͕খ͘͞ͳΔ w x w x ্ͷ۩ମྫͷΑ͏ʹɼϚʔδϯΛ͑ͯ͠·ͬͨͷଘࡏΛڐՄ͢ΔͨΊͷͷ ͜ΕʹΑͬͯɼෆՄೳͳ߹ڥքͷਪఆΛՄೳʹ͍ͯ͠Δ ઢܗֶशϚγϯͷֶɿιϑτϚʔδϯ -
ti (wT xi + b) ≥ 1 wT xi (i
= 1,2,⋯, n) ϋʔυϚʔδϯ min 1 2 ||w||2 w, b w w తؔ ੍݅ ιϑτϚʔδϯ min{ 1 2 ||w||2 + C n ∑ i=1 ξi} w, b, ξ w w తؔ ੍݅ ti (wT xi + b) ≥ 1 − ξi , wT xi (i = 1,2,⋯, n) ξi ≥ 0 C> 0ɿਖ਼ଇԽ ϖφϧςΟͷ߹͍ తؔΛ࠷খԽ͢ΔͨΊʹɼ߲̎ͷόϥϯεΛ্ख͘औΒͳ͍ͱ͍͚ͳ͍ ϚʔδϯΛ͛Α͏ͱ͢ΔͱɼC n ∑ i=1 ξi ͷ෦ ξ ͷ૯ ͕େ͖͘ͳΔͨΊ ΑΓখ͘͞ͳΔͷͰɼ ϚʔδϯΛ͑ͯҟͳΔΫϥεʹೖΔͷΛڐ͢ ϚʔδϯΛ͛ΔͱɼୈҰ߲খ͘͞ͳΔ͕ɼୈೋ߲େ͖͘ͳ͍ͬͯ͘ ઢܗֶशϚγϯͷֶɿιϑτϚʔδϯ -
ਖ਼ଇԽ ϋΠύʔύϥϝʔλ ͷ୳ٻɹɹɹɹɹɹιϑτϚʔδϯ ਖ਼ଇԽͷʹΑͬͯɼϚʔδϯʹͲͷΑ͏ͳӨڹ͕͋Δͷ͔֬ೝ͢Δ min{ 1 2 ||w||2 + C
n ∑ i=1 ξi} w, b, ξ w w తؔ C> 0ɿਖ਼ଇԽ ϖφϧςΟͷ߹͍ C= 100 C= 0.1 ਤͷҾ༻ɼαϙʔτϕΫτϧϚγϯɼ Ұɼௗࢁণɼߨஊࣾ ▶︎ 2VFTUJPO Ͳ͕ͬͪ$ʁ$ʁ ɾతؔ࠷খԽΛ͢ΔࡍɼC͕େ͖͍ͱɼξΛ੍͢Δྗ͕ڧ͘ͳΔɽ ɹ ޡͬͨσʔλ͕ϚʔδϯΛ͑ͯ৵ೖ͢Δ͜ͱ͕ͳ͘ͳΔ ɾC͕খ͍͞ͱɼσʔλ͕ϚʔδϯΛ͑ͯ͠·͏͜ͱΛڐ͢ͷͰɼϚʔδϯΛ͘औΕΔɽ 47.Ϛʔδϯ࠷େԽΛ͍ͨ͠ͷ͚ͩͲɼɼɼɼ ߲ͷόϥϯεΛߟ͑Δඞཁ͕͋Δ CˠʿͰʮϋʔυϚʔδϯʯʹͳΔɽ -
ओ74ରɿઢܗ͔Βඇઢܗ47.ͷ֦ு ιϑτϚʔδϯ min{ 1 2 ||w||2 + C n ∑
i=1 ξi} w, b, ξ w w తؔ ੍݅ ti (wT xi + b) ≥ 1 − ξi , wT xi (i = 1,2,⋯, n) ξi ≥ 0 ओɿ͜Ε·ͰఆࣜԽ͖ͯͨ͠࠷దԽͷ͜ͱ 47.Λܭࢉ͢Δ߹ɼओղ͔ͣɼରΛղ͘ ରɿओΛผͷղ͖қ͍ܗʹมܗͤͨ͞ ྨڥքͷඇઢܗԽΛߟ͑Δ্Ͱɼରͷܗ͕ࣜ༗༻Ͱ͋Δ w w w w w w w w w ̍ɽมΛݮΒ͢͜ͱ͕Ͱ͖Δ ̎ɽΧʔωϧ͕ؔಋೖͰ͖Δ ੍݅ͷͳ͍࠷దԽͷมܗΛ͢Δ͜ͱ -
తؔf(x) Λ࠷খʹ͢ΔΛɼn ݸͷෆ੍ࣜgi(x) ≦ 0ͷͱͰٻΊΔ ϥάϥϯδϡͷະఆ๏ ϥάϥϯδϡؔ ओม ରม ϥάϥϯδϡ
x x (i = 1,2,⋯, n) x L(x, α) = f(x) + n ∑ i=1 αi gi (x) ∂L(x, α) ∂x = ∂f(x) ∂x + n ∑ i=1 αi ∂gi (x) ∂x ∂L(x, α) ∂αi = gi (x) ≤ 0 αi ≥ 0 αi gi (x) = 0 1. 2. 3. 4. x x x x x x x x x ओมʹؔ͢Δมඍ ରมʹؔ͢Δมඍ ϥάϥϯδϡৗʹਖ਼ ੍݅ͱϥάϥϯδϡͷੵ ҎԼͷͭΛղ͘͜ͱʹΑͬͯٻ·Δ ඇઢܗ47.ͷ֦ுɿϥάϥϯδϡͷະఆ๏ -
(1, 1, 1) 0 x y z ʲྫʳத৺(1, 1, 1
) ܘͷٿද໘ʹɹ ɹɹɹɹ͓͍ͯɼݪ(0, 0, 0)͔Βڑ͕ ɹɹɹɹ࠷খͱͳΔ࠲ඪΛٻΊΑ ͜ͷΛϥάϥϯδϡͷ ະఆΛͬͯղ͘Α ࠷খ ݪ͔ΒͷڑͳͷͰɼࡾฏํͷఆཧ f(x, y, z) = x2 + y2 + z2 తؔ ੍݅ g(x, y, z) = (x − 1)2 + (y − 1)2 + (z − 1)2 − 1 = 0 ϥάϥϯδϡؔ L(x, y, z, α) = x2 + y2 + z2 − α{(x − 1)2 + (y − 1)2 + (z − 1)2 − 1} ⾢ Ҿ༻ɼֶͷͨΊͷ࠷దԽख๏ೖɼ ఱ୩ݡ࣏ɼཧֶࣾ ඇઢܗ47.ͷ֦ுɿϥάϥϯδϡͷະఆ๏ ٿͷํఔࣜʹै͏ͱ͍͏੍ -
∂L(x, y, z, α) ∂x = 2x − 2α(x −
1) ∂L(x, y, z, α) ∂y = 2y − 2α(y − 1) ∂L(x, y, z, α) ∂z = 2z − 2α(z − 1) ∂L(x, y, z, α) ∂α = − {(x − 1)2 + (y − 1)2 + (z − 1)2 − 1} (x, y, z, α) = (1 ± 1 3 , 1 ± 1 3 , 1 ± 1 3 , 1 ± 3) ্ͷຊͷ࿈ཱํఔࣜΛղ͘ͱɼ ͕ಘΒΕΔɽf ූ߸͕+ͷͱ͖ʹɼ࠷େΛɼ-ͷͱ͖ʹ࠷খΛͱΔɽ Αͬͯɼݪ͔Βͷڑ͕࠷খͱͳΔ࠲ඪɼ (1 − 1 3 , 1 − 1 3 , 1 − 1 3 ) ඇઢܗ47.ͷ֦ுɿϥάϥϯδϡͷະఆ๏ -
min{ 1 2 ||w||2 + C n ∑ i=1 ξi}
w, b, ξ w w తؔ ੍݅ ti (wT xi + b) ≥ 1 − ξi , wT xi (i = 1,2,⋯, n) ξi ≥ 0 ϥάϥϯδϡͷະఆ๏Λͬͯ47.ͷओΛରͱมܗ͢Δ L(w, b, ξ, α, β) = 1 2 ||w||2 + C n ∑ i=1 ξi − n ∑ i=1 αi {ti (wT xi + b) − 1 + ξi } − n ∑ i=1 βi ξi wT xi w w β α ϥάϥϯδϡ ϥάϥϯδϡؔ 1. 2. 3. ओมw ʹؔ͢Δมඍ ∂L(w, b, ξ, α, β) ∂w = w − n ∑ i=1 αi ti xi = 0 ∂L(w, b, ξ, α, β) ∂b = − n ∑ i=1 αi ti = 0 ∂L(w, b, ξ, α, β) ∂ξ = C − αi − βi = 0 ओมb ʹؔ͢Δมඍ ओมξ ʹؔ͢Δมඍ w w w w w xi ओม w, b, ξ ʹؔ͢ΔภඍΛղ͘ w = n ∑ i=1 αi ti xi w xi n ∑ i=1 αi ti = 0 C = αi + βi ϥάϥϯδϡؔೖ ͜ΕΒͷ੍͕ͲͷఔॏཁͰ͋Δ͔Λ ఆྔԽͨ͠ʹͳΔ ඇઢܗ47.ͷ֦ுɿϥάϥϯδϡͷະఆ๏ -
L(w, b, ξ, α, β) = 1 2 ||w||2 +
C n ∑ i=1 ξi − n ∑ i=1 αi {ti (wT xi + b) − 1 + ξi } − n ∑ i=1 βi ξi wT xi w w max{ ˜ L(α) = n ∑ i=1 αi − 1 2 n ∑ i=1 n ∑ i=j αi αj ti tj xT i xj} xT i xj ͭͷ݅ࣜΛϥάϥϯδϡؔೖ͠ɼཧ͢Δ͜ͱʹΑͬͯɼ α ͷΈͷࣜʹมܗͰ͖Δ αϙʔτϕΫλʔϚγϯͷରɼ্ͷؔʹΑͬͯදݱ͞ΕΔ ϥάϥϯδϡؔ ͜͜ͰɼbͷରʹݱΕͳ͍ͷͰɼb ओͷ੍Λར༻ͯ͠ಋग़͢Δඞཁ͕͋Δ b = − maxti =−1 (wxi ) + minti =1 (wxi ) 2 wxi wxi ඇઢܗ47.ͷ֦ுɿϥάϥϯδϡͷະఆ๏ -
ೖྗۭؒ ಛۭؒ x1 x2 x1 x2 x1x2 x = (x1
, x2 ) x ϕ(x) = (x1 , x2 , x1 x2 ) x ࣸ૾ ϕ(x) = (x1 , x2 , x2 1 , x2 2 , x1 x2 ) x ଞʹ͍ΖΜͳํ๏͕͋ΔΑ ࣍ݩ֦ு ಛۭؒͷࣸ૾ɼΧʔωϧͷಋೖ -
L(w, b, ξ, α, β) = 1 2 ||w||2 +
C n ∑ i=1 ξi − n ∑ i=1 αi {ti (wT xi + b) − 1 + ξi } − n ∑ i=1 βi ξi wT xi w w max{ ˜ L(α) = n ∑ i=1 αi − 1 2 n ∑ i=1 n ∑ i=j αi αj ti tj xT i xj} xT i xj ϥάϥϯδϡؔ max{ ˜ L(α) = n ∑ i=1 αi − 1 2 n ∑ i=1 n ∑ i=j αi αj ti tj ϕ(x)T i ϕ(x)j} ϕ(x)T i ϕ(x)j ಛ্ۭؒͷ֦ு ϕ(x) = (ϕ1 (x), ϕ2 (x), ⋯, ϕr (x)) x x x x ੵͷΈͷ͓ ɿ࣍ݩ֦ுʹΑΓɼੵͷܭࢉྔ͕େ ϕ(x)T i ϕ(x)j ϕ(x)T i ϕ(x)j ಛۭؒͷ࣍ݩ r ɼͱͱͷೖྗۭؒͷn ΑΓΔ͔ʹେ͖͍ ͦͷͨΊɼੵ ͷܭࢉ͕ͱͯେม ϕ(x)T i ϕ(x)j K(xi , xj ) = ϕ(x)T i ϕ(x)j xi , xj Χʔωϧؔ ಛϕΫτϧͷੵΛΧʔωϧؔͰஔ͖͑Δ ݴ͍͑Δͱɼੵͷܭࢉ͑͞Ͱ͖Ε͓L ಛۭؒͷࣸ૾ɼΧʔωϧͷಋೖ -
ϕ(x) = ϕ(x1 , x2 ) = (x2 1 ,
2x1 x2 , x2 2 ) x x, y x y ೋͭͷϕΫτϧ Λߟ͑Δ ϕ(x) = ϕ(x1 , x2 ) = (x2 1 , 2x1 x2 , x2 2 ) x ϕ(y) = ϕ(y1 , y2 ) = (y2 1 , 2y1 y2 , y2 2 ) y ͜ΕΒೋͭͷੵΛߟ͑Δ ϕ(x)Tϕ(y) x y = (x2 1 , 2x1 x2 , x2 2 )T(y2 1 , 2y1 y2 , y2 2 ) = x2 1 y2 1 + 2x1 x2 y1 y2 + x2 2 y2 2 = (x1 y1 − x2 y2 )2 = ((x1 , x2 )T(y1 , y2 ))2 = (xTy)2 x y มޙͷϕΫτϧͷੵɼ ݩͷϕΫτϧͷੵͷʹ͍͠ c = 0 d = 2ͱͨ࣌͠ͷଟ߲ࣜΧʔωϧ ಛۭؒͷࣸ૾ɼΧʔωϧͷಋೖ ಛۭؒͰͷੵ͕ͲͷΑ͏ͳܗʹམͪண͔͘ɼ؆୯ͳྫͰߟ͑ͯΈΔ ͜͏͍ͬͨܗ͕ɼΧʔωϧؔͱͯ͠Γཱͪͦ͏ͩͧɽɽɽ -
max{ ˜ L(α) = n ∑ i=1 αi − 1
2 n ∑ i=1 n ∑ i=j αi αj ti tj ϕ(x)T i ϕ(x)j} ϕ(x)T i ϕ(x)j తؔ ϕ(x)T i ϕ(x)j K(xi , xj ) = ϕ(x)T i ϕ(x)j xi , xj Χʔωϧؔ ͋Δಛఆͷੑ࣭Λຬͨ͢ͱ ͜Ε͕దԠͰ͖Δʂ ΧʔωϧؔΛ༻͍ΔࣄͰɼ࠷దԽΛ͢Δࡍʹɼ໌ࣔతʹП Λܭࢉ͠ͳͯ͘ྑ͍ ಛۭؒͷࣸ૾ɼΧʔωϧͷಋೖ ʮϚʔαʔͷఆཧʯΛຬͰ͖Δ͕ؔɼΧʔωϧؔͱͯ͠ద༻͢Δࣄ͕Ͱ͖Δ Χʔωϧؔͷྫ ɾଟ߲ࣜΧʔωϧ K(xi , xj ) = (xT i xj + c)d xi , xj xT i xj ɾΨεΧʔωϧ K(xi , xj ) = exp{− ||xi − xj ||2 2σ2 } ɾγάϞΠυΧʔωϧ K(xi , xj ) = tanh(bxT i xj + c) xi , xj xi , xj xi xj xT i xj -
Χʔωϧؔͷྫ ɾଟ߲ࣜΧʔωϧ K(xi , xj ) = (xT i xj
+ c)d xi , xj xT i xj ɾΨεΧʔωϧ K(xi , xj ) = exp{− ||xi − xj ||2 2σ2 } ɾγάϞΠυΧʔωϧ K(xi , xj ) = tanh(bxT i xj + c) xi , xj xi , xj xi xj xT i xj ֤ΧʔωϧͷଆͷϋΠύʔύϥϝʔλc dɼσ ͳͲผ్ܾఆ͠ͳ͚ΕͳΒͳ͍ɽ ͜ΕΒͷઃఆɼώϡʔϦεςΟοΫͰ͋Δ͠ɼ͍͔ͭ͘ͷٻΊํ͋Δɽ ඞͣ͠ਖ਼͍͑͠Λಋ͚ΔΘ͚Ͱͳ͍͕ɺ͋ΔఔͷϨϕϧͰਖ਼ղʹ͍ۙղΛಘΔ͜ͱ͕Ͱ͖Δ σ ɿผʑͷΫϥεʹྨ͞Εͨؒͷڑͷ࠷খ͍͞ͷΛબ͢Δɽ ৴ͽΐ͏ੑͷ͋Δج४͕ͳ͍߹ɼަࠩݕূݕূू߹ͳͲΛ༻͍ͯઃఆ͢Δ ͨͱ͑ ݁Ռͱͯ͠ຬͷ͍͘ੑೳΛୡ͢Δ·Ͱɼ༷ʑͳύϥϝʔλΛ͍͘͡Γ·Θ͢ʁ ͔͠͠ɼଟ͘ͷ߹ɼ47.Λ༻͢Δ߹ɼૉͳઃఆɼ࣮ͰɼຬͰ͖Δ݁ՌΛฦ͢ɽ ٯʹɼ͜ΕΒͷܦݧɼ47.͕͏·͘దԠͰ͖ΔྖҬ͕શʹ։͞Ε͍ͯͳ͍͜ͱΛ҉ʹࣔ͢ɽ lαϙʔτϕΫλʔϚγϯೖzɼ/FMMP$ +PIO45 େ߶ɼڞཱग़൛ Q ಛۭؒͷࣸ૾ɼΧʔωϧͷಋೖ