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

データマイニングと機械学習2022-第6回20220525

 データマイニングと機械学習2022-第6回20220525

1. サポートベクターマシン
2. 非線形SVM

059fb717431a8cd2b509ffebc57d905a?s=128

Y. Yamamoto

May 24, 2022
Tweet

More Decks by Y. Yamamoto

Other Decks in Education

Transcript

  1. 分類問題2: サポートベクターマシン ⼭本 祐輔 静岡⼤学 情報学部 准教授 yusuke_yamamoto@acm.org 第6回 データマイニングと機械学習

    2022 2022年5月25日
  2. 講義のトピック 機械学習 教師あり学習 教師なし学習 強化学習 ・クラスタリング ・データ圧縮 ・分類 ・回帰 …

    … 2 行動情報学科に 特有の応用手法 時系列データ分析 時間経過とともに変化する データに対する分析⼿法 ・K近傍法 ・サポートベクタマシン ・ニューラルネットワーク
  3. K-近傍法(k-NN: k nearest neighbor)のアイデア 3 対象データまでの距離が最も近いK個のデータの ラベルのうち、最も多いラベルに分類する ? K=5:⻘ K=3:緑

    K=1:⻘ 多 数 決
  4. K-近傍法のメリット・デメリット 4 メリット • 単純なのに強⼒ • データの背後にある分布を仮定しなくてよい (ノンパラメトリックな⼿法) デメリット •

    推論フェーズの計算量が⼤きい(毎回の距離計算) • 次元の呪いの影響を受けやすい
  5. 教師あり学習のための機械学習アルゴリズムの分類 5 ロジスティック回帰 ナイーブベイズ サポートベクターマシン K近傍法 ランダムフォレスト & 決定木 ニューラルネットワーク

    訓練データをすべて記憶して おき,それら全部を使って 予測を⾏う(推論計算が遅い) 訓練データの背後にあるモデル を抽出し,それを予測時に使う (推論計算は速い) インスタンスベース モデルベース 本⽇学ぶのはコレ
  6. 1 一世を風靡した学習アルゴリズム サポートベクターマシン 6

  7. 教師あり学習の歴史(⼀部抜粋) ロジスティック回帰 サポートベクターマシン 決定木 パーセプトロン 単純ベイズ分類器 ランダムフォレスト k-近傍法 ベイジアンネットワーク 深層学習

    1958年 1957年 1951年 1979年 1985年 1992年 1960年代 2001年 2010年代 7 ⼀世を⾵靡した強⼒なアルゴリズム. 深層学習が台頭した今でも,状況に よっては⽤いられることも.
  8. サポートベクターマシン(SVM) 入力 ・ベクトルデータ ・正則化係数 𝐶 ・カーネル関数 𝐾 学習 by SVM

    8 それほど多くないデータでも精度よく推論したい時に有効 ID 血圧 (上) 喫煙 頻度 年齢 心臓 疾患 1 110 5 74 なし 2 160 17 53 あり … … … … … ⼼臓疾患データ 学習済み モデル ML 血圧 … 疾患 124 ? 未知データ 推論 ⼼臓疾患あり 出力 ラベル(基本的には2値)
  9. 2次元平⾯上で考える分類問題 •と×のデータ集合が与えられたときに, 未知の2次元データが•か×をどう予測する? Q. X 0 Y ? ▲ ?

    ▲ 9
  10. 2次元平⾯上で考える分類問題 •と×のデータを2分するような直線を見つける A. X 0 Y ? ▲ ? ▲

    直線より下側なら「•」 直線より上側なら「×」 ax+by+c=0 10
  11. 2次元平⾯上で考える分類問題 •と×のデータを2分するような直線を見つける A. X 0 Y 直線といっても複数考えられる…どれがベストか? A B C

    11
  12. 機械学習の⾄上命題 12 機械学習 汎化性能の高い 予測モデルの構築 未知データに対する予測性能を⾼める必要あり (訓練データに最適化しすぎても意味がない(過学習))

  13. 2次元平⾯上で考える分類問題 X 0 Y ▲ ▲ ▲ ▲ 学習に使用したデータは 真の分布を完全に表現しているとは限らない

    ▲ ▲ できる限り未知のデータにも対応できる直線にしたい… 13
  14. 2次元平⾯上で考える分類問題 X 0 Y A B C 未知のデータがどこに出現するか分からない状況で 未知データが•か×かを予測するベスト直線は? Q.

    14
  15. 2次元平⾯上で考える分類問題 X 0 Y A 未知のデータがどこに出現するか分からない状況で 未知データが•か×かを予測するベスト直線は? Q. 15 B

  16. 2次元平⾯上で考える分類問題 X 0 Y B 未知のデータがどこに出現するか分からない状況で 未知データが•か×かを予測するベスト直線は? Q. 16

  17. 2次元平⾯上で考える分類問題 X 0 Y C 未知のデータがどこに出現するか分からない状況で 未知データが•か×かを予測するベスト直線は? Q. 17 B

  18. 2次元平⾯上で考える分類問題 X 0 Y 直線に最も近い訓練データから直線までの距離 (マージン)が最大となるような直線がベスト!! A. 18 B

  19. 2次元平⾯上で考える分類問題 X 0 Y A 19 直線に最も近い訓練データから直線までの距離 (マージン)が最大となるような直線がベスト!! A.

  20. 2次元平⾯上で考える分類問題 X 0 Y C 20 直線に最も近い訓練データから直線までの距離 (マージン)が最大となるような直線がベスト!! A.

  21. サポートベクター (直線に最も近い点) サポートベクターマシンの直感的なアイデア X 0 Y マージンを最大化する超平面を見つける (分類境界とサポートベクターの距離) 𝑔(𝒙) =

    0 サポートベクター (直線に最も近い点) 21
  22. 数学的準備:超平⾯の数式表現(1/2) 22 x y x y z 2次元空間での直線 𝑎𝑥 +

    𝑏𝑦 + 𝑐 = 0 𝑎𝑥 + 𝑏𝑦 + 𝑐𝑧 + 𝑑 = 0 3次元空間での平⾯
  23. 数学的準備:超平⾯の数式表現(2/2) 23 x1 2次元空間での直線 𝑤! 𝑥! + 𝑤" 𝑥" +

    𝑤# = 0 𝑤! 𝑥! + 𝑤" 𝑥" + ⋯ + 𝑤# = 0 N次元空間での超平⾯ x2 𝒙 = (𝑥! , 𝑥" ) ? x1 x2 xN ベクトルwとxの内積 w=(w1 , w2 ) ※ 実は wは法線ベクトル ⟹ 𝒘$𝒙 + 𝑤# = 0
  24. 数学的準備:2次元空間での点と直線間の垂直距離 24 x1 直線: 𝑤! 𝑥! + 𝑤" 𝑥" +

    𝑤# = 0 x2 (𝑥! ′, 𝑥" ′) 𝐿 = |𝑤! 𝑥! $ + 𝑤" 𝑥" $ + 𝑤# | 𝑤! " + 𝑤" " ⾼校で習った公式 L
  25. 数学的準備:N次元空間での点と超平⾯の間の距離 25 |𝑤! 𝑥! " + ⋯ + 𝑤# 𝑥#

    ′ + 𝑤$ | 𝑤! % + ⋯ + 𝑤# % = |𝒘%𝒙$ + 𝑤# | 𝒘 x1 x2 xN 𝒙$ = (𝑥! $ , 𝑥" $ , … , 𝑥% ′) 𝐿 = L 直線: 𝒘𝑻𝒙 + 𝑤# = 0 ベクトルで表現 (𝑔 𝒙 = 𝒘𝑻𝒙 + 𝑤# ) = |𝑔(𝒙)| 𝒘
  26. サポートベクターマシンの定式化: 設定 X1 0 Xn N次元空間上の点 𝑖 : 𝒙 !

    = (𝑥" ! , … , 𝑥# (!)) 点 𝑖 のラベル値 y(!) = * 1 −1 … 点 𝑖 が×の場合 … 点 𝑖 が•の場合 26
  27. サポートベクターマシンの定式化: 設定 X1 0 Xn N次元空間上の点 𝑖 : 𝒙 !

    = (𝑥" ! , … , 𝑥# (!)) 点 𝑖 のラベル値 y(!) = * 1 −1 … 点 𝑖 が×の場合 … 点 𝑖 が•の場合 y = −1の点 y = 1の点 27
  28. サポートベクターマシンの定式化 : ⽬標設定(1/2) X1 0 Xn 点 𝑖 について y(')

    = 1 の場合,𝑔(𝒙 ' ) ≥ 1 y(') = −1の場合,𝑔 𝒙 ' ≤ −1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 𝑔 𝒙 = 0 (𝑔 𝒙 = 𝒘!𝒙" + 𝑤# ) 28
  29. サポートベクターマシンの定式化 : ⽬標設定(2/2) X1 0 Xn 目標2: 𝑔(𝒙) のマージンを最大化させたい 𝑔

    𝒙 = 0 (𝑔 𝒙 = 𝒘!𝒙" + 𝑤# ) ×で 𝑔 𝒙 に 最も近い点 𝑗 •で 𝑔 𝒙 に 最も近い点 𝑖 𝐿' 𝐿( ⟹ argmax % 𝐿& + 𝐿' 29
  30. サポートベクターマシンの最適化問題を解く 点 𝑖 について y(!) = 1 の場合,𝑔(𝒙 ! )

    ≥ 1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmax % 𝐿& + 𝐿' … 式(1) … 式(2) y(!) = −1の場合,𝑔 𝒙 ! ≤ −1 30
  31. サポートベクターマシンの最適化問題を解く 点 𝑖 について y(!) = 1 の場合,𝑔(𝒙 ! )

    ≥ 1 y(!) = −1の場合,𝑔 𝒙 ! ≤ −1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmax % 𝐿& + 𝐿' … 式(1) … 式(2) ⟹ argmax 𝒘, (! |𝑔(𝒙("))| 𝒘 + |𝑔(𝒙 $ )| 𝒘 点と超平⾯間の距離公式 31
  32. サポートベクターマシンの最適化問題を解く 点 𝑖 について y(!) = 1 の場合,𝑔(𝒙 ! )

    ≥ 1 y(!) = −1の場合,𝑔 𝒙 ! ≤ −1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmax % 𝐿& + 𝐿' … 式(1) … 式(2) 式(1)より ≥ argmax 𝒘, '! 1 𝒘 + 1 𝒘 = argmax 𝒘, '! 2 𝒘 (𝑔 𝒙 = 𝒘!𝒙" + 𝑤# ) ⟹ argmax 𝒘, '! |𝑔(𝒙("))| 𝒘 + |𝑔(𝒙 $ )| 𝒘 32
  33. サポートベクターマシンの最適化問題を解く 点 𝑖 について y(!) = 1 の場合,𝑔(𝒙 ! )

    ≥ 1 y(!) = −1の場合,𝑔 𝒙 ! ≤ −1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmax % 𝐿& + 𝐿' … 式(1) … 式(2) ≥ argmax 𝒘 1 𝒘 + 1 𝒘 = argmax 𝒘 2 𝒘 ⟹ argmin 𝒘, '! 𝒘 2 逆数の最⼩化と等価 33
  34. サポートベクターマシンの最適化問題を解く 点 𝑖 について y(!) = 1 の場合,𝑔(𝒙 ! )

    ≥ 1 y(!) = −1の場合,𝑔 𝒙 ! ≤ −1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmax % 𝐿& + 𝐿' … 式(1) … 式(2) ≥ argmax 𝒘 1 𝒘 + 1 𝒘 = argmax 𝒘 2 𝒘 ⟹ argmin 𝒘 𝒘 2 2乗を最⼩化 しても同じ ⟹ argmin 𝒘 𝒘 ( 2 34
  35. サポートベクターマシンの最適化問題:問題設定の変形 点 𝑖 について y(!) = 1 の場合,𝑔(𝒙 ! )

    ≥ 1 y(!) = −1の場合,𝑔 𝒙 ! ≤ −1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmax % 𝐿& + 𝐿' … 式(1) … 式(2) ⟹ argmin 𝒘 𝒘 " 2 … 式(3) 最⼩化問題!! SVMの最適化は不等式制約下の最小化問題に帰着される (不等式制約) 35
  36. 数理最適化の定⽯ 36 (不)等式制約下での 関数最小化 ラグランジュの未定乗数法

  37. サポートベクターマシンに関する最適化問題の最終形 37 𝐹(𝜆(!), … , 𝜆(#)) = 8 '/! #

    𝜆(') − 1 2 8 '/! # 8 0/! # 𝜆(')𝜆(0)𝑦(')𝑦(0)𝒙 ' 1𝒙(0) ∑123 4 𝜆(1)𝑦(1) = 0 および 𝜆(3) … , 𝜆(5) ≥ 0 の条件下で を最⼤化する 𝜆 1 を⾒つける(ただし 𝒘 = ∑'/! # 𝜆(')𝑦(')𝒙(')) ラグランジュの未定乗数法 (𝑖 = 1, … , 𝑁) ベクトルの内積
  38. サポートベクターマシンの最適化を例で考える(1/4) X1 0 X2 𝑔 𝒙 = 0 (𝑔 𝒙

    = 𝑤$ 𝑥$ + 𝑤% 𝑥% + 𝑤# ) 𝒙 $ = (3, 4) 𝒙 % = (1,2) 𝒙 & = (2, 6) 学習データとして2次元のデータが3つ与えられたとし, SVMを適用して最適な分離境界線を見つけたい 38 (𝑦 ! = 1) (𝑦 " = 1) (𝑦 # = −1)
  39. サポートベクターマシンの最適化を例で考える(2/4) 39 𝐹(𝜆(!), 𝜆(%), 𝜆(9)) = 8 '/! 9 𝜆(')

    − 1 2 8 '/! 9 8 0/! 9 𝜆(')𝜆(0)𝑦(')𝑦(0)𝒙 ' 1𝒙(0) ただし 𝒘 = 𝜆(!)𝑥(!) − 𝜆 " 𝑥 " + 𝜆(/)𝑥(/) = 3𝜆 ! − 𝜆 " + 2𝜆(/) 4𝜆 ! − 2𝜆 " + 6𝜆(/) + 𝜆(!) − 𝜆 % + 𝜆(9) = 0 および 𝜆(!), 𝜆(%), 𝜆(9) ≥ 0 の条件下で 以下の関数F を最⼤化したい
  40. サポートベクターマシンの最適化を例で考える(3/4) 40 𝜆(!) − 𝜆 % + 𝜆(9) = 0

    および 𝜆(!), 𝜆(%), 𝜆(9) ≥ 0 の条件下で 以下の関数F を最⼤化したい + = − 25 2 𝜆 ! % − 5 2 𝜆(%) % − 20 𝜆(9) % +11𝜆(!)𝜆(%) + 14𝜆 % 𝜆 9 − 30𝜆 9 𝜆 ! − 𝜆 ! + 𝜆 % − 𝜆(9) 𝐹 𝜆 ! , 𝜆 % , 𝜆 9
  41. 微分などを駆使し,各変数についてFを最⼤化すればよい サポートベクターマシンの最適化を例で考える(4/4) 41 𝜆(!) − 𝜆 % + 𝜆(9) =

    0 および 𝜆(!), 𝜆(%), 𝜆(9) ≥ 0 の条件下で 以下の関数F を最⼤化したい = − 25 2 𝜆 ! % − 5 2 𝜆(%) % − 20 𝜆(9) % +11𝜆(!)𝜆(%) + 14𝜆 % 𝜆 9 − 30𝜆 9 𝜆 ! − 𝜆 ! + 𝜆 % − 𝜆(9) 𝐹 𝜆 ! , 𝜆 % , 𝜆 9 𝐹(𝜆 ) ) = … 𝜆 ) ( + … 𝜆()) + … 変数1つに着⽬すれば…単なる2次関数!! !"#$ %&'()*+
  42. 理想世界でのサポートベクターマシン X1 0 Xn 1 𝒘 サポートベクター サポートベクター マージンの外側でデータの分布がキレイに分かれる 𝑔(𝒙)

    = 0 この領域には データはない 42
  43. サポートベクターマシンを使う現実的な状況 X1 0 Xn ノイズ1 ノイズ2 ノイズ3 学習で使うデータにノイズが混入する 43

  44. サポートベクターマシンを使う現実的な状況 X1 0 Xn ノイズ1 ノイズ2 ノイズ3 𝜉) 𝜉* 𝜉(

    学習で使うデータにノイズが混入する ノイズを考慮してサポートベクターマシンを修正したい… 44
  45. サポートベクターマシン with ハードマージン の最適化問題 点 𝑖 について y(!) = 1

    の場合,𝑔 𝒙 ! ≥ 1 y(!) = −1の場合,𝑔 𝒙 ! ≤ −1 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmin 𝒘 𝒘 " 2 45
  46. サポートベクターマシン with ソフトマージン の最適化問題 点 𝑖 について y(!) = 1

    の場合,𝑔 𝒙 ! ≥ 1 − 𝜉! y(!) = −1の場合,𝑔 𝒙 ! ≤ −(1 − 𝜉!) 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmin 𝒘 𝒘 " 2 + 𝐶 9 &)! * 𝜉& 反対側に⾏っても 認めてあげる (𝜉 ≥ 0) 反対側に⾏った分は ペナルティを与える 46
  47. サポートベクターマシン with ソフトマージン に関する最適化問題の最終形 47 𝐹(𝜆(!), … , 𝜆(#)) =

    8 '/! # 𝜆(') − 1 2 8 '/! # 8 0/! # 𝜆(')𝜆(0)𝑦(')𝑦(0)𝒙 ' 1𝒙(0) ∑123 4 𝜆(1)𝑦(1) = 0 および ∀𝑖, 𝜆(1), 𝜉(1) ≥ 0 の条件下で を最⼤化する 𝜆 1 を⾒つける(ただし 𝒘 = ∑'/! # 𝜆(')𝑦(')𝒙(') , ラグランジュの未定乗数法 (𝑖 = 1, … , 𝑁) ∀𝑖, 𝐶 = 𝜆 ' + 𝜇 ' , 𝜇 ' 𝜉 ' = 0)
  48. Hands-on タイム 以下のURLにアクセスして, サポートベクターマシンを体験してみましょう https://dmml2022.hontolab.org/ 48

  49. 2 「トリック」を使う 非線形SVM 49

  50. 線形分離不可能な問題 50 X 0 Y どうやっても1つの直線で分離できないデータ分布がある 線 形 分 離

    不 可 能
  51. 線形分離不可能な問題の解決策 51 X 0 Y 0 X Y Z =

    X2+Y2 複数の直線(超平面)を 組み合わせる 高次元化された空間で 分離超平面を見つける
  52. データの⾼次元化の例 52 𝒙 = (𝑥! , 𝑥" ) 𝒙# =

    (1, 2𝑥! , 2𝑥" , 2𝑥! 𝑥" , 𝑥! ", 𝑥" ") : 2次の多項式に写像(変換) 𝜙(𝒙) 線形分離不能なデータも 高次元化すればSVMで分類しやすくなる
  53. ⾼次元化対応のサポートベクターマシンの最適化問題(1/2) 点 𝑖 について y(!) = 1 の場合,𝑔 𝜙(𝒙 !

    ) ≥ 1 − 𝜉! y(!) = −1の場合,𝑔 𝜙(𝒙 ! ) ≤ −(1 − 𝜉!) 目標1: 以下を満たす 𝑔(𝒙) を見つけたい 目標2: 𝑔(𝒙) のマージンを最大化させたい ⟹ argmin 𝒘 𝒘 " 2 + 𝐶 , #$% & 𝜉# ⾼次元化関数 をかます X 0 Y 0 X Y Z マージン 最⼤化 ⾼次元空間 に 𝜙 で写像 53
  54. ⾼次元化対応のサポートベクターマシンの最適化問題(2/2) 54 𝐹(𝜆(!), … , 𝜆(#)) = 8 '/! #

    𝜆(') − 1 2 8 ',0/! # 𝜆(')𝜆(0)𝑦(')𝑦(0)𝜙(𝒙 ' )𝑇𝜙(𝒙(0)) ∑123 4 𝜆(1)𝑦(1) = 0 および ∀𝑖, 𝜆(1), 𝜉(1) ≥ 0 の条件下で を最⼤化する 𝜆 1 を⾒つける(ただし 𝒘 = ∑'/! # 𝜆(')𝑦(')𝒙(') , ∀𝑖, 𝐶 = 𝜆 ' + 𝜇 ' , 𝜇 ' 𝜉 ' = 0) ⾼次元化された ベクトルの内積
  55. ⾼次元空間の内積計算は⼤変 55 𝒙 = (𝑥! , 𝑥" ) 𝒚 =

    (𝑦! , 𝑦" ) 𝜙+ 𝒙 = 1, 2𝑥! , 2𝑥" , 2𝑥! 𝑥" , 𝑥! ", 𝑥" " 𝜙+ (𝒚) = (1, 2𝑦! , 2𝑦" , 2𝑦! 𝑦" , 𝑦! ", 𝑦" ") : 2次の多項式に写像(変換) 𝜙+ (𝒙) 内積計算 𝜙+ 𝒙 $𝜙+ 𝒚 = 1 + 2𝑥) 𝑦) + 2𝑥( 𝑦( + 2𝑥) 𝑥( 𝑦) 𝑦( + 𝑥) (𝑦) ( + 𝑥( (𝑦( ( 2次元ベクトルでも1ペアの内積計算でのかけ算回数が11回に… ,-./0123453 '6789:;<=>
  56. カーネルトリック 56 𝒙 = 𝑥! , 𝑥" , 𝒚 =

    (𝑦! , 𝑦" ) 𝐾- 𝒙, 𝒚 = 1 + 𝒙. ( 𝒚 / = 1 + 𝑥0 𝑦0 + 𝑥/ 𝑦/ / = 1 + 2𝑥" 𝑦" + 2𝑥& 𝑦& + 2𝑥" 𝑥& 𝑦" 𝑦& + 𝑥" &𝑦" & + 𝑥& &𝑦& & = 𝜙- 𝒙 .𝜙- 𝒚 かけ算回数 = 2 + 1 回 式展開 が与えられたとき カーネル関数を使えば,明示的に 高次元変換しなくても効率よく内積を計算できる 多項式変換したベクトルの内積と同じに!!
  57. 最適化⽅法は線形SVMと全く同じ(記号が変わっただけ) カーネルトリックを使った⾮線形SVMの最適化問題 57 𝐹(𝜆(!), … , 𝜆(#)) = 8 '/!

    # 𝜆(') − 1 2 8 ',0/! # 𝜆(')𝜆(0)𝑦(')𝑦(0)𝜙= (𝒙 ' )𝑇𝜙= (𝒙(0)) ∑123 4 𝜆(1)𝑦(1) = 0 および ∀𝑖, 𝜆(1), 𝜉(1) ≥ 0 の条件下で を最⼤化する 𝜆 1 を⾒つける(ただし 𝒘 = ∑'/! # 𝜆(')𝑦(')𝒙(') , ∀𝑖, 𝐶 = 𝜆 ' + 𝜇 ' , 𝜇 ' 𝜉 ' = 0) 多項式カーネルで計算簡略化 = 8 '/! # 𝜆(') − 1 2 8 ',0/! # 𝜆(')𝜆(0)𝑦(')𝑦(0)𝐾= (𝒙 ' , 𝒙(0))
  58. 代表的なカーネル関数 for SVM 58 𝐾(𝒙, 𝒚) = 𝑐 + 𝒙$

    B 𝒚 , 𝐾(𝒙, 𝒚) = 𝑒 - 𝒙-𝒚 ' "0' 多項式カーネル 動径基底カーネル ・⼊⼒ベクトルの成分の組合せを 成分とする⾼次元ベクトルを想定 ・⽂書分類タスクでよく⽤いられる (パラメータd=2) ・無限次元空間にベクトルを射影 ・最もよく⽤いられるカーネル. 分布の特徴が未知の時に使う ・ガウスカーネルと呼ばれることも Radial Basis Function 画像出典: https://scikit-learn.org/stable/auto_examples/svm/plot_iris_svc.html
  59. サポートベクターマシンの⻑所・短所 59 • ⾼次元空間でも汎化性能が⾼い • 次元数に対して学習データ数が 少なくても性能を発揮 • 計算量が多い(DNNほどではない) •

    データ数に対して次元数がかなり ⼤きいと,過学習が起きる • パラメータが少ない(DNNよりは) ※ DNN = Deep Neural Network
  60. Hands-on タイム 以下のURLにアクセスして, 非線形SVMを体験してみましょう https://dmml2022.hontolab.org/ 60

  61. 今後の予定 回 実施⽇ トピック 1 10/06 ガイダンス:機械学習の概要 & はじめての機械学習 2

    10/13 クラスタリング1:k-means & 階層的クラスタリング 3 10/20 クラスタリング2:密度ベースクラスタリング 4 10/27 分類1:K近傍法 & 教師あり機械学習のお作法 5 11/10 ゲスト講師による講演1(松村先⽣ from Wantedly) 6 11/17 分類2:サポートベクターマシン 7 11/24 分類3:ニューラルネットワーク⼊⾨ & 勾配法 8 12/01 時系列データとモデリング1:時系列データの統計的な扱い 9 12/08 ゲスト講師による講演2(加藤先⽣ from 筑波⼤学) 10 12/15 時系列データとモデリング2:時系列データの解析 11 12/22 時系列データとモデリング3:シミュレーションによる 時系列データの検討 12 01/12 時系列データとモデリング4:未知環境での時系列データ 13 01/19 ゲスト講師による講演3(⼭本岳先⽣ from 兵庫県⽴⼤学) 14 01/26 時系列データとモデリング5:解析と学習モデル 15 予備⽇ 61
  62. 回 実施⽇ トピック 1 04/13 ガイダンス:機械学習の概要 & はじめての機械学習 2 04/20

    クラスタリング1:k-means & 階層的クラスタリング 3 04/27 クラスタリング2:密度ベースクラスタリング 4 05/11 分類1:K近傍法 & 教師あり機械学習のお作法 5 05/18 ゲスト講師による講演2(加藤先⽣ from 筑波⼤学) 6 05/25 分類2:サポートベクターマシン 7 06/01 ゲスト講師による講演3(⼭本岳先⽣ from 兵庫県⽴⼤学) 8 06/08 分類3:ニューラルネットワーク⼊⾨ 9 06/15 時系列データの統計的な扱い 10 06/22 ゲスト講師による講演1(松村先⽣ from Wantedly) 11 06/29 時系列データの解析 12 07/06 シミュレーションによる時系列データの検討 13 07/13 振り返りと補⾜説明、および、後半のデータ取り 14 07/20 未知環境での時系列データ 15 07/27 解析と学習モデル 今後の予定 62
  63. 数学記号(集合) 63 集合 (太字でない⼤⽂字アルファベット) 𝑆 集合の要素 (太字でない⼩⽂字アルファベット) 𝑠 𝑆 =

    𝑠0 , 𝑠/ , … , 𝑠1 = 𝑥 𝑥 ∈ 𝑅 ∧ 𝑓 𝑥 > 0} 外延表現:要素を並べる書き⽅ 内包表現:要素の条件を指定する書き⽅ (xが実数でかつ f (x)がゼロより⼤きくなるようなxの集合) 集合の書き⽅ 集合の⼤きさ(要素数) |𝑆|
  64. 例 64 𝑁 = 0, 1, 2, … 𝑍 =

    … , −2, −1, 0, 1, 2, … 𝑂 = 2n + 1 | n ∈ 𝑁 (⾃然数) (整数) (奇数) 𝐹 = りんご, みかん, なし |𝐹| = 3
  65. 数学記号(ベクトル) 65 𝒙 ベクトル (太字の⼩⽂字) 断りがない限り,縦ベクトル 𝒙 " = 𝑥!

    " + ⋯ + 𝑥1 " ベクトルの要素の書き⽅ 実数を成分とする m次元ベクトル 𝒙 = 𝑥! ⋮ 𝑥1 ∈ 𝑅1 = 𝑥! , … , 𝑥1 $ ベクトルの⼤きさ 𝒙 と書くことも 𝒙 B 𝒚 = 𝒙$𝒚 = ∑ 𝑥2 𝑦2 ベクトルの内積 𝒙, 𝒚 と書くことも
  66. 数学記号(⾏列) 66 ⾏列 (太字の⼤⽂字) 𝑿 = 𝑥00 ⋯ 𝑥10 ⋮

    𝑥20 ⋱ ⋯ ⋮ 𝑥21 ∈ 𝑅2×1 𝑿の各列(縦ベクトル) を使った書き⽅ 実数を成分とする m⾏ n 列の⾏列 = 𝑥45 2×1 こんな書き⽅も = 𝒙0 , … , 𝒙1 𝑿 ⾏列の 要素の書き⽅
  67. 機械学習でよく⾒かける数学的処理(1/3) 67 9 &)! 3 𝑥& = 𝑥! + 𝑥"

    + ⋯ + 𝑥3 J &)! 3 𝑥& = 𝑥! 𝑥" … 𝑥3 𝜕 𝜕𝑥6 𝑓(𝒙) 数列の和 数列の積 偏微分 𝑓 𝒙 = 𝑤! 𝑥! + 𝑤% 𝑥% + ⋯ + 𝑤> 𝑥> 例: 𝜕 𝜕𝑥> 𝑓 𝒙 = 𝑤>
  68. 機械学習でよく⾒かける数学的処理 (2/3) 68 argmax !∈# 𝑓(𝑥) argmin $∈# 𝑓(𝑥) max

    $∈# 𝑓(𝑥) min $∈# 𝑓(𝑥) 関数を最⼤化 関数を最⼩化 実数の範囲でパラメータxを 動かし関数f(x)を最⼤化・最⼩化 関数を最⼤化する パラメータ 関数を最⼩化する パラメータ 関数を最適化する 実数を⾒つける
  69. 機械学習でよく⾒かける数学的処理 (3/3) 69 sign 𝑥 = 5 1: 𝑥 >

    0 0: 𝑥 = 0 −1: 𝑥 < 0 符号関数 値の符号に応じて ・正なら1 ・負なら-1 ・ゼロなら0 を返す関数と覚える 画像出典: https://ja.wikipedia.org/wiki/符号関数 (sgn 𝑥 と書くことも)
  70. 機械学習でよく出くわす瞬時に理解すべき数式 70 𝑨!" # = 𝑨𝑻 !" 𝑨𝑩 # =

    𝑩𝑻𝑨𝑻 @ % 𝑤% 𝑥% = 𝒘𝑻𝒙 Matrix Cookbook: http://www2.imm.dtu.dk/pubdb/edoc/imm3274.pdf 𝜕 𝜕𝒙 𝒙 & = 𝜕 𝜕𝒙 𝒙𝑻𝒙 = 2𝒙 𝜕 𝜕𝒙 𝑴𝒙 = 𝑴𝑻 𝜕 𝜕𝒙 𝒘𝑻𝒙 = 𝒘 𝜕 𝜕𝒙 𝒙 − 𝒂 & = 2(𝒘 − 𝒂) 𝜕 𝜕𝒙 𝑨𝒙 − 𝒃 & = 2𝑨𝑻(𝑨𝒙 − 𝒃) 𝑨 + 𝑩 # = 𝑨𝑻 + 𝑩𝑻
  71. ⾏列サイズの⾒積もり 71 ⾏列A はm⾏ k列(m×k),⾏列B はk⾏ n列(k×n), ⾏列 Wはm⾏ m列(m×m),ベクトルxは

    m⾏ 1列(m×1) とする.このとき以下の演算結果のサイズは? Q1. 𝑨𝑻𝒙 Q2. 𝒙𝑻𝑾𝒙 Q3. 𝒙𝑻𝒙 スカラー スカラー (k×1)の⾏列(k次元ベクトル) (m×k)の⾏列と(k×n)の⾏列の積をとると, (m×n)の⾏列ができあがると覚えておけばよい