Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SVM&R with Yaruo!!#2

16,178 views

Published on

やる夫はSVMを実装したようです & やる夫で学ぶ非線形なSVM

Published in: Technology, Business
  • Be the first to comment

SVM&R with Yaruo!!#2

  1. 1. やる夫は SVM を実装したようです & やる夫で学ぶ非線形な SVM Hatena id:repose Twitter id :y_benjo
  2. 2. 前回までのおさらい <ul><li>使おうと思っていた </li></ul><ul><li>ライブラリが使えず </li></ul><ul><li>ぶん投げて逃げた </li></ul><ul><li>やる夫であった… </li></ul>
  3. 3. つうか <ul><li>やっつけスライドな </li></ul><ul><li>のに大勢に見られ </li></ul><ul><li>た挙句、投げっぱ </li></ul><ul><li>なしなのは恥ずか </li></ul><ul><li>しいので </li></ul>
  4. 4. やる夫は SVM を実装したようです
  5. 5. <ul><li>とりあえずもう一度 </li></ul><ul><li>落ち着いて考え直す </li></ul><ul><li>お… </li></ul>
  6. 6. <ul><li>前回発表したように、 </li></ul><ul><li>線形 SVM で問題にな </li></ul><ul><li>るのは、 超平面まで </li></ul><ul><li>の最大化問題 だお… </li></ul>
  7. 7. <ul><li>詳しい話はさておき、 </li></ul><ul><li>これが解ければ線形 </li></ul><ul><li>分離はできる筈… </li></ul>
  8. 8. <ul><li>問題は、行列が半正 </li></ul><ul><li>定値行列になってし </li></ul><ul><li>まう事だお… </li></ul><ul><li>最初試した solve.QP </li></ul><ul><li>は正定値行列にしか </li></ul><ul><li>対応してない し… </li></ul>
  9. 9. <ul><li>正定値行列と、半正 </li></ul><ul><li>定値行列のおおまか </li></ul><ul><li>な違いは、行列式の </li></ul><ul><li>値が≧ 0 か、> 0 かの </li></ul><ul><li>差なんだお… </li></ul>
  10. 10. <ul><li>今度は kernlab パッケ </li></ul><ul><li>ージの ipop を試して </li></ul><ul><li>見るお… </li></ul><ul><li>こっちなら半正定値 </li></ul><ul><li>行列でもきっと…… </li></ul>
  11. 11. <ul><li>引数は多いわ、 1 次元 </li></ul><ul><li>行列なのにエラー吐 </li></ul><ul><li>くわ、引数と違う形式 </li></ul><ul><li>でもエラー吐かない </li></ul><ul><li>わイミフすぎるお! </li></ul>
  12. 12. <ul><li>こうなりゃヤケだお! </li></ul><ul><li>適当にそれっぽい変 </li></ul><ul><li>数作りまくってエラー </li></ul><ul><li>が消えるまで試し続 </li></ul><ul><li>けるお! </li></ul>
  13. 14. <ul><li>なんか解が出た </li></ul>
  14. 15. <ul><li>これで超平面が引け </li></ul><ul><li>るお! SVM が完成し </li></ul><ul><li>たお!これで勝つる! </li></ul>
  15. 16. <ul><li>いい所まで出来たが、 </li></ul><ul><li>それでは不十分。 </li></ul><ul><li>あと少し必要 </li></ul>
  16. 18. <ul><li>これまで解いていた </li></ul><ul><li>のは マージン(距離) </li></ul><ul><li>の最大化問題。 </li></ul><ul><li>ここで得られた解は </li></ul><ul><li>超平面そのものでは </li></ul><ul><li>ない。 </li></ul><ul><li>あと 1 ステップ必要 </li></ul>
  17. 19. <ul><li>ここから先は楽勝だ </li></ul><ul><li>お!式に突っ込めば </li></ul><ul><li>すぐに超平面が完成 </li></ul><ul><li>したお!! </li></ul>
  18. 20. <ul><li>実 装 完 了 </li></ul>
  19. 21. <ul><li>じゃあ次は 非線形な </li></ul><ul><li>SVM を実装してもらう。 </li></ul><ul><li>ここまで来たら後は簡 </li></ul><ul><li>単(な筈) </li></ul>
  20. 23. <ul><li>お前は何を言っているんだ </li></ul>
  21. 24. やる夫で学ぶ非線形な SVM
  22. 25. <ul><li>あの…いきなり簡単 </li></ul><ul><li>とか言われましても… </li></ul>
  23. 26. <ul><li>そもそも「 非線形な </li></ul><ul><li>SVM 」ってどんな感じ </li></ul><ul><li>なんだお…? </li></ul>
  24. 27. <ul><li>じゃあ簡単な質問。 </li></ul><ul><li>このような一次元の </li></ul><ul><li>データを SVM でどう </li></ul><ul><li>分割する? </li></ul>
  25. 28. <ul><li>そんなの楽勝だお。 </li></ul><ul><li>こんな風に赤い点と青 </li></ul><ul><li>い点の間に超平面を </li></ul><ul><li>引っ張ればいいお。 </li></ul>
  26. 29. <ul><li>じゃあ、もしさっきの </li></ul><ul><li>データがこういう分布 </li></ul><ul><li>なら? </li></ul>
  27. 30. <ul><li>ちょっと待つお… </li></ul><ul><li>これは明らかに直線で </li></ul><ul><li>分割する SVM では無 </li></ul><ul><li>理だお… </li></ul>
  28. 31. <ul><li>じゃあこのデータを </li></ul><ul><li>何らかの関数を使って </li></ul><ul><li>二次元に拡張したとし </li></ul><ul><li>よう </li></ul>
  29. 32. <ul><li>こうするとどうだろう? </li></ul><ul><li>SVM でのデータ分割 </li></ul><ul><li>は可能だろうか </li></ul>
  30. 33. <ul><li>これなら楽勝だお! </li></ul><ul><li>ここに一本引いてやれ </li></ul><ul><li>ばいいお! </li></ul>
  31. 34. <ul><li>これが非線形分離を </li></ul><ul><li>行う SVM の原理。 </li></ul><ul><li>データを線形分離可 </li></ul><ul><li>能な 高次元空間まで </li></ul><ul><li>写像 して分離する。 </li></ul>
  32. 35. わかったつもりになれる解説
  33. 36. ここでちょっと数式を使っ て解説します。
  34. 37. さて、先ほど 「高次元空間に写像する」 と言いました。これは地味 ながらも SVM の特徴的な 部分です。
  35. 38. 何故ならば、他のデータ 分析やクラス判別の手法 では、「 データの次元をい かに落とすか 」という点に 焦点を置いていたからで す。
  36. 39. しかし、線形分離可能な 高次元空間とはどんな状 態 なのでしょうか?また、 その空間への写像はどの ように記述 すればいいの でしょうか?
  37. 40. ここで、「 カーネルトリック 」 という手法が用いられます。
  38. 41. 証明その他諸々を省くと、 これは 「写像が どんな形かわか らなくても 、 ベクトルの内 積だけで表せたら楽 なん じゃね?wwwwwうはww wwwwwwww」 という方法です
  39. 42. それが更に発展し 「じゃあ φ(x1)φ(x2) って書 くより K(x1,x2) みたいな 関 数で代用 できるんじゃねw wwwwww天才現るwww wwwww」となりました。 この時の関数 K を カーネル 関数 と呼びます。
  40. 43. この時用いられるカーネ ルの代表的なものに ガウ シアンカーネル があります。
  41. 44. さて、ここで現れるのはベ クトルの内積です。 これを SVM の式に代入し て見ましょう。
  42. 45. 前回のスライドじゃずれ ちゃってたんですが、 線形 分離の SVM に置ける最適 化問題 はこのようになって います。
  43. 46. この 後半部はベクトルの 内積 になっています。 つまり、 ここをカーネル関 数で置き換えて やると…
  44. 47. このような形になります。 非常に以前の式に似てい て、かつシンプルです。
  45. 48. あとは R で実装するならば 行列を少しだけ書き換え て ipop に投げてやれば良 い、という事ですね。
  46. 49. <ul><li>これなら式の形が前 </li></ul><ul><li>回のと近くいからなん </li></ul><ul><li>とかなりそうだお! </li></ul>
  47. 50. <ul><li>この場合問題となるの </li></ul><ul><li>は、適切なパラメータ。 </li></ul><ul><li>例えばガウシアンなら </li></ul><ul><li>ば、 σ をどうするか、で </li></ul><ul><li>結果が変わってくる </li></ul>
  48. 51. <ul><li>それでもこれならきっ </li></ul><ul><li>となんとかなるお! </li></ul><ul><li>これで卒論も修論も </li></ul><ul><li>楽勝だおwwwwww </li></ul><ul><li>ww </li></ul>
  49. 52. 研究室楽勝すぎる おwwwwww 数理計画系の研究 室涙目だおwwww wwwwww
  50. 54. <ul><li>言い忘れていた。 </li></ul><ul><li>あなたが今回 R で実装 </li></ul><ul><li>した SVM だが、あのま </li></ul><ul><li>までは 実用に堪えがた </li></ul><ul><li>いほど重い 。 </li></ul>
  51. 55. <ul><li>それにうちの研究室で </li></ul><ul><li>は、 SVM を発展させた </li></ul><ul><li>OCSVM や 多クラスの </li></ul><ul><li>SVM 、そして線形回帰 </li></ul><ul><li>に応用させた SVR に取 </li></ul><ul><li>り組むのがメイン </li></ul>
  52. 56. <ul><li>なので今後は C++ で </li></ul><ul><li>SVM を実装してもらう。 </li></ul>
  53. 58. <ul><li>お前は何を言っているんだ </li></ul>
  54. 59. <ul><li>ネタではない。 R の </li></ul><ul><li>SVM パッケージでは対 </li></ul><ul><li>応できないような応用 </li></ul><ul><li>を行う為には実装が必 </li></ul><ul><li>要 </li></ul>
  55. 60. <ul><li> 無   理 </li></ul>
  56. 62. 次回 やる夫で学ぶ Random Forest

×