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

basis-of-optimization.pdf

Cabd375086334aa7eb4abb4e317c3d14?s=47 tkng
December 11, 2011
1k

 basis-of-optimization.pdf

Cabd375086334aa7eb4abb4e317c3d14?s=128

tkng

December 11, 2011
Tweet

Transcript

  1. . . . . . . ػցֶशͱ࠷దԽͷجૅ αϒλΠτϧ ಙӬ୓೭ tkng@preferred.jp

    Preferred Infrastructure December 12, 2011 1 / 48
  2. . . . . . . ࣗݾ঺հɿಙӬ୓೭ twitter id:tkng (ג)

    Preferred Infrastructure ۈ຿ ݕࡧɾػցֶशΛத৺ʹ੡඼։ൃɾڞಉݚڀͳͲ ௐࠪҊ݅΍ͬͨΓπʔϧ࡞ͬͨΓͯ͠·͢ झຯ͸೔ຊޠೖྗʢ͔ͳ׽ࣈม׵ɾ༧ଌೖྗʣ ։ൃ͢Δͷ͕झຯ 2 / 48
  3. . . . . . . એ఻ɿຊΛॻ͍͍ͯ·͢ ೔ຊޠೖྗΛࢧ͑Δٕज़ʢٕज़ධ࿦ࣾʣ μϒϧ഑ྻɺLOUDSɺΧοί΢ϋογϡɺߏ଄ Խ

    SVMɺCRF ͳͲΛ঺հ ػցֶश΍ࣗવݴޠॲཧʹ͍ͭͯɺࣗ෼͕ੲ஌Γ ͔ͨͬͨ͜ͱΛ٧ΊࠐΈ·ͨ͠ 2012 ೥ 2 ݄ൃച༧ఆ 3 / 48
  4. . . . . . . Outline . . .

    1 ༻ޠ঺հ . . . 2 ؆୯ͳྫ . . . 3 ػցֶशͱ࠷దԽ . . . 4 ֶश཰ͷ࿩ 4 / 48
  5. . . . . . . ࠓ೔ͷτʔΫͷ಺༰ ࠷దԽͷجຊతͳߟ͑ํΛઆ໌͢Δ ػցֶशͱͷؔ܎Λड़΂Δ ֶश཰ͱ͍͏΋ͷʹ͍ͭͯߟ͑Δ

    5 / 48
  6. . . . . . . ࠓ೔ͷτʔΫͷ಺༰ ࠷దԽͷجຊతͳߟ͑ํΛઆ໌͢Δ ػցֶशͱͷؔ܎Λड़΂Δ ֶश཰ͱ͍͏΋ͷʹ͍ͭͯߟ͑Δ

    ࠷దԽ͸ා͘ͳ͍ʂ ʂ 6 / 48
  7. . . . . . . τʔΫͷ໨త ػցֶशͷݪཧͬͯҙ֎ͱ؆୯ ࣮૷΋؆୯ͳख๏͸݁ߏଟ͍ 7

    / 48
  8. . . . . . . τʔΫͷ໨త ػցֶशͷݪཧͬͯҙ֎ͱ؆୯ ࣮૷΋؆୯ͳख๏͸݁ߏଟ͍ ͜ͷ

    2 ఺Λڧௐ͍ͨ͠ 8 / 48
  9. . . . . . . Outline . . .

    1 ༻ޠ঺հ . . . 2 ؆୯ͳྫ . . . 3 ػցֶशͱ࠷దԽ . . . 4 ֶश཰ͷ࿩ 9 / 48
  10. . . . . . . ࠷దԽͬͯͳʹʁ ؔ਺ͷ஋Λ࠷దͳঢ়ଶʹ͍࣋ͬͯ͘͜ͱ ͦͷͨΊʹม਺ͷ஋Λௐ੔͢Δ άϥϑͷఈͷ෦෼Λݟ͚͍ͭͨ

    10 / 48
  11. . . . . . . େҬత࠷దͱہॴత࠷ద ੺͕େҬత࠷దɺ੨͕ہॴ࠷ద େҬత࠷దΑΓ͍͍ղ͸ଘࡏ͠ͳ͍ ہॴ࠷ద͸पғΑΓ΋ྑ͍ղͳΒ

    OK 11 / 48
  12. . . . . . . ತͱ͔ತͰͳ͍ͱ͔ ತͱ͸௚ײతʹ͸࠷దղ͕ 1 ͔ͭ͠ଘࡏ͠ͳ͍

    ໰୊ ਺ֶతʹ͸ತྖҬͱತؔ਺ʹΑͬͯఆٛ͞ΕΔ֓೦ ತͳΒہॴ࠷దղ͸ৗʹେҬత࠷దղ ඇತͳ໰୊Ͱ͸େҬత࠷దղΛٻΊΔͷ͸΄΅ແཧ 12 / 48
  13. . . . . . . Outline . . .

    1 ༻ޠ঺հ . . . 2 ؆୯ͳྫ . . . 3 ػցֶशͱ࠷దԽ . . . 4 ֶश཰ͷ࿩ 13 / 48
  14. . . . . . . ؆୯ͳ࠷దԽ໰୊ͷྫ min f(x) =

    2x2 + 2x (1) ༁ɿf(x) ͷ஋Λ࠷খͱ͢ΔΑ͏ͳ x ͷ஋ΛٻΊΑ άϥϑΛݟΔͱΘ͔Δ௨Γತ࠷దԽ໰୊Ͱ͢ 14 / 48
  15. . . . . . . Ͳ͏΍ͬͯղ͔͘ʁ ղ͖ํʹઈରͷਖ਼ղ͸ͳ͍͚ΕͲʜ ͍͔ͭ͘ x

    ͷ஋Λద౰ʹܾΊͯ f(x) Λܭࢉ͢Δ άϥϑΛඳ͍ͯͦΕͬΆ͍஋Λ໨ଌͰٻΊΔ ඍ෼ͯ͠ۃ஋ΛٻΊΔ ˡΦεεϝ 15 / 48
  16. . . . . . . ඍ෼ͯ͠ۃ஋ΛٻΊΔ ඍ෼ͨ݁͠ՌΛ 0 ͱஔ͍ͨํఔࣜΛղ͘

    ඍ෼͕ 0 ͱ͍͏͜ͱ͸܏͖͕ 0 f (x) = 4x + 2 = 0 x = −1/2 (2) 16 / 48
  17. . . . . . . ඍ෼ͯ͠0ͱஔ͘ͱͲΜͳ໰୊΋ղ͚Δʁ ग़͖ͯͨํఔ͕ࣜղ͚ͳ͍৔߹ͷํ͕ଟ͍ ੍໿͕͋Δͱͦ΋ͦ΋ۃ஋ͱ࠷దղ͸Ұக͠ͳ͍ ݁࿦ɿ࣮༻తͳػցֶशͷ໰୊͸֓Ͷղ͚ͳ͍

    17 / 48
  18. . . . . . . ͍͍ͩͨ͸ޯ഑๏Λ࢖ͬͯղ͘ wnew = η∇

    + wold ∇ɿޯ഑ʢ ඍ෼ʣ ηɿֶश཰ɺ࣮਺ ޯ഑ʢ܏͖ʣΛܭࢉͯ͠ɺͪΐ ͬͱͣͭͦͪΒʹ ਐΉ ೋ࣍ඍ෼Λ࢖͏΋ͷͱ͔ɺ͍Ζ͍Ζछྨ͕͋Δ ࠓճ͸֬཰తޯ഑߱Լ๏ͱ͍͏ͷΛ঺հ͠·͢ 18 / 48
  19. . . . . . . ػցֶशҎ֎ͷ࠷దԽͷԠ༻ྫ ਤܗॆర໰୊ ෰ͷܕࢴͷޮ཰తͳ഑ஔ మ൘ͷ੾Γग़͠

    ෺ྲྀͷ࠷దԽ 19 / 48
  20. . . . . . . Outline . . .

    1 ༻ޠ঺հ . . . 2 ؆୯ͳྫ . . . 3 ػցֶशͱ࠷దԽ . . . 4 ֶश཰ͷ࿩ 20 / 48
  21. . . . . . . ػցֶशͱ࠷దԽ ػցֶशͱ͸ਓ͕ؒ΋ͷ͝ͱΛֶश͢Δ͕͝ͱ͘ػց ʹ΋ֶशͤ͞Δ͜ͱ ྫ͑͹εύϜ൑ఆͳͲʹ࢖͏͜ͱ͕Ͱ͖Δ

    ؒҧ͑ͨ਺ͷ߹ܭΛ໨తؔ਺ˠ࠷దԽ໰୊ ػցֶशͱ͸࠷దԽ໰୊Ͱ͋Δͱݴ͑Δ K ࠷ۙ๣๏ͷΑ͏ʹɺ࠷దԽ͡Όͳ͍ͷ΋͋Γ·͢ Ҏ߱Ͱ͸εύϜ൑ఆΛྫͱ͠·͢ɹ 21 / 48
  22. . . . . . . ઢܗࣝผثͱ͍͏ఆࣜԽ f(x) = w

    · x x ͱ w ͸ n ࣍ݩͷϕΫτϧͱ͢Δ x ͸ϝʔϧͷಛ௃Λද͢ϕΫτϧ w ͕࠷దԽͰ͏͔͢͝ύϥϝʔλ f(x) ͕ਖ਼ͳΒεύϜɺෛͳΒεύϜͰ͸ͳ͍ɺͱ ͢Δ x ͸ϝʔϧதͷ୯ޠͱ͔ɺૹ৴ݩͷ IP ͱ͔ ཁ͢Δʹ w ͱ x ͷ಺ੵͰεύϜ͔Ͳ͏͔ܾ·Δ ඇৗʹγϯϓϧʂ ͨͩ͠ n ͸ඇৗʹେ͖ͳ஋ʹͳΔ 22 / 48
  23. . . . . . . ϝʔϧ͔Βಛ௃ΛऔΓग़͢ ΩʔϫʔυΛൈ͖ग़͢ͱ݁ߏεύϜ͔Ͳ͏͔Θ͔Δ 23 /

    48
  24. . . . . . . ϝʔϧ͔Βಛ௃ΛऔΓग़͢ ΩʔϫʔυΛൈ͖ग़͢ͱ݁ߏεύϜ͔Ͳ͏͔Θ͔Δ (ओਓ, ΦΦΞϦΫΠ,

    1 ೥, . . .) ˠ εύϜͩʂ ʂ 24 / 48
  25. . . . . . . ϝʔϧ͔Βಛ௃ΛऔΓग़͢ ΩʔϫʔυΛൈ͖ग़͢ͱ݁ߏεύϜ͔Ͳ͏͔Θ͔Δ (ओਓ, ΦΦΞϦΫΠ,

    1 ೥, . . .) ˠ εύϜͩʂ ʂ (ຊ, క੾Γ, ·ͩ, . . .) ˠ εύϜ͡Όͳ͍ʂ ʂ 25 / 48
  26. . . . . . . ઢܗࣝผثͱͯ͠ͷSVM SVM ͱ͸ҎԼͷ໨తؔ਺ͷ࠷খԽͰ͋Δ i

    max(1 − yi w · xi , 0) + c|w| (3) max(1 − yi w · xi , 0) ͸ i ൪໨ͷσʔλʹର͢Δଛࣦ ώϯδϩεͱݴ͍·͢ |w| ͸ෳࡶͳϞσϧʹର͢ΔϖφϧςΟ ਖ਼ଇԽ߲ͱݴ͍·͢ c ͸ͳΜ͔ൺྫఆ਺ ιϑτϚʔδϯͷ࠷େԽ͔Βಋग़Ͱ͖Δ͕লུ 26 / 48
  27. . . . . . . ֬཰తޯ഑߱Լ๏ʢSGDʣʹΑΔ࠷దԽ σʔλҰͭҰͭʹରͯ͠ޯ഑ ∇ Λܭࢉֶͯ͠श཰

    Λ͔͚ͯ଍͢ wnew = η∇ + wold (4) η ͸ֶश཰ʢ࣮਺ʣ 27 / 48
  28. . . . . . . ֬཰తޯ഑߱Լ๏ʢSGDʣʹΑΔ࠷దԽ σʔλҰͭҰͭʹରͯ͠ޯ഑ ∇ Λܭࢉֶͯ͠श཰

    Λ͔͚ͯ଍͢ wnew = η∇ + wold (4) η ͸ֶश཰ʢ࣮਺ʣ ޯ഑ ∇ ͕ܭࢉͰ͖Ε͹ SVM ͕࣮૷Ͱ͖Δ 28 / 48
  29. . . . . . . ޯ഑ͷܭࢉํ๏ʢ1ʣ ·ͣଛࣦ߲͔Βඍ෼͠·͢ l(w, xi

    ) = max(1 − yi w · xi , 0) (5) ৔߹෼͚͢Δͱඍ෼Ͱ͖·͢ɻ if l(w, xi ) > 0 −yi w · xi otherwise 0 (6) 29 / 48
  30. . . . . . . ޯ഑ͷܭࢉํ๏ʢ1ʣ ·ͣଛࣦ߲͔Βඍ෼͠·͢ l(w, xi

    ) = max(1 − yi w · xi , 0) (5) ৔߹෼͚͢Δͱඍ෼Ͱ͖·͢ɻ if l(w, xi ) > 0 −yi w · xi otherwise 0 (6) ϓϩάϥϜͳΒ৔߹෼͚΋ if จͰ؆୯ʂ ʂ 30 / 48
  31. . . . . . . ޯ഑ͷܭࢉํ๏ʢ2ʣ ਖ਼ଇԽ߲ͷඍ෼Λܭࢉ͠Α͏ r(w) =

    |w| = |w0 | + |w1 | + . . . (7) w ͷ k ൪໨ͷཁૉͷඍ෼ if wk > 0 1 otherwise −1 (8) 31 / 48
  32. . . . . . . ޯ഑ͷܭࢉํ๏ʢ2ʣ ਖ਼ଇԽ߲ͷඍ෼Λܭࢉ͠Α͏ r(w) =

    |w| = |w0 | + |w1 | + . . . (7) w ͷ k ൪໨ͷཁૉͷඍ෼ if wk > 0 1 otherwise −1 (8) ϓϩάϥϜͳΒ৔߹෼͚΋ if จͰ؆୯ʂ ʂ 32 / 48
  33. . . . . . . ޯ഑ͷܭࢉํ๏ʢ2ʣ ਖ਼ଇԽ߲ͷܭࢉํ๏͸͍͔ͭ͘ςΫχοΫ͕͋Γ·͢ FOBOS (Duchi,

    2009) Cumulative Update (Tsuruoka, 2009) ଎͔ͬͨΓਫ਼౓͕ྑ͔ͬͨΓ͢Δ, ࣮૷͸؆୯ 33 / 48
  34. . . . . . . ओு͍ͨ͜͠ͱ SVMͬͯා͕ΒΕͯΔ͚ͲͦΜͳා͘ͳ͍ ୯ͳΔώϯδϩε+ਖ਼ଇԽ ΧʔωϧΛ࢖Θͳ͚Ε͹Ͷ

    ൚Խޡࠩͱ͔Λߟ͑ग़͢ͱ΍ͬͺΓ೉͍͚͠ͲͶ 34 / 48
  35. . . . . . . Α͋͘Δٙ໰ Q. SVM ͷ໨తؔ਺ͬͯඍ෼ෆՄೳͳ఺͕͋Δ

    ΑͶʁ A. ద౰ʹޯ഑ 0 ͱ͔Ͱ OK Ͱ͢ʢྼޯ഑๏ʣ Q. SGDͬͯ஗͘ͳ͍ʁ A. ಛ௃͕ߴ࣍ݩ͔ͭૄͰ͋Δ৔߹͸଎͍ Q. ऩଋ͢Δͷʁ A. ֶश཰Λ͏·͘ઃఆ͢Ε͹ʜ 35 / 48
  36. . . . . . . ·ͱΊ ࠷దԽͱػցֶशʹ͸ਂ͍ؔΘΓ͕͋Δ SVM ͸ʢ໊લ΄Ͳʣා͘ͳ͍

    ΍΍͍ࣜ͜͠͸ if จ࢖͑͹͍͍࣮ͩͨ૷Ͱ͖Δ 36 / 48
  37. . . . . . . ࢀߟจݙ ݴޠॲཧͷͨΊͷػցֶशೖ໳ (ίϩφࣾ, 2010)

    Optimization for Machine Learning (MIT Press, 2011) 37 / 48
  38. . . . . . . Outline . . .

    1 ༻ޠ঺հ . . . 2 ؆୯ͳྫ . . . 3 ػցֶशͱ࠷దԽ . . . 4 ֶश཰ͷ࿩ 38 / 48
  39. . . . . . . ͔͜͜Βͪΐ ͬͱֶश཰ͷ࿩ ֶश཰͸ͪΐ ͬͱͣͭݮਰ͍ͯͬͨ͠ํ͕͍͍

    ηt = η0 (1 + λη0 t)0.75 (9) ͜Μͳ η ͩͱੑೳ͕ྑ͘ͳΔΒ͍͠ 39 / 48
  40. . . . . . . ඞཁͳ஋ t+n i=1 ηi

    − t i=1 ηi (10) ্هͷ஋͕೚ҙͷ t, n ͷ૊Έ߹Θͤʹରͯ͠ܭࢉ͠ ͍ͨ ˞ L1 ਖ਼ଇԽͷ৔߹ 40 / 48
  41. . . . . . . ดͨ͡ܗͰܭࢉͰ͖Δ͔ʁ ࢴͱԖචͰܭࢉͯ͠Έͨʜ͕೉͍͠ 41 /

    48
  42. . . . . . . ดͨ͡ܗͰܭࢉͰ͖Δ͔ʁ ࢴͱԖචͰܭࢉͯ͠Έͨʜ͕೉͍͠ Wolfram Alpha

    ʹฉ͍ͯΈΑ͏ʂ ʂ 42 / 48
  43. . . . . . . ดͨ͡ܗͰܭࢉͰ͖Δ͔ʁ ࢴͱԖචͰܭࢉͯ͠Έͨʜ͕೉͍͠ Wolfram Alpha

    ʹฉ͍ͯΈΑ͏ʂ ʂ 43 / 48
  44. . . . . . . 44 / 48

  45. . . . . . . ζ ζ ͸ Hurwitz

    zeta function ཁ͢ΔʹดܗࣜͰܭࢉͰ͖ͳ͍ 45 / 48
  46. . . . . . . Ͱ΋ޮ཰తʹܭࢉͰ͖Δʂ ҎԼͷΑ͏ͳ Λt Λ͋Β͔͡Ίܭࢉ͓ͯ͘͠

    Λt = t i=1 ηt t+n i=t ηi = Λt+n − Λt ͜ͷख๏͸೚ҙͷֶश཰ʹରͯ͠ద༻Մೳʂ 46 / 48
  47. . . . . . . ֶश཰ͷ࿩ͷ·ͱΊ ֶश཰Λ͍͍ײ͡Ͱม͑Α͏ͱ͢ΔͱڪΖ͍ؔ͠ ਺͕ݱΕΔ Ͱ΋ͦΕ࢖Θͳͯ͘΋ޮ཰తʹ࣮૷Ͱ͖ͨΘʔ

    47 / 48
  48. . . . . . . ·ζ· 48 / 48