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

svm as a constrainted optimization

CookieBox26
February 22, 2022
57

svm as a constrainted optimization

CookieBox26

February 22, 2022
Tweet

Transcript

  1. サポートベクターマシン (SVM) 4 import numpy as np from sklearn.svm import

    SVC X = np.array([[-1, -1], [-1.5, 0], [-2, -1], [1, 1], [2, 1], [1, 2]]) y = np.array([-1, -1, -1, 1, 1, 1]) clf = SVC(kernel='linear') # わかりやすさのため線形 clf.fit(X, y) print('重み', clf.coef_) print('切片', clf.intercept_) • ラベル +1 • ラベル -1 • サポート • 2クラス分類器であって「2クラスを仕切る 仕切りを入れて仕切りに最も近いデータと のマージンを最大にしよう」といったもの。 ‐ 図では入力空間に直接仕切りを入れているが (線 形)、往々にして特徴空間にとばしてからやる。 ‐ 図ではマージン部分へのはみ出しがないがはみ出 してもよい。はみ出しの総和をペナルティする。 • 仕切りが非線形なとき、データが乱雑なと き、学習結果の解釈が不要なとき等にロジ スティック回帰より適すると思われる。 サポート: 仕切りに 最も近いデータ。
  2. SVM の最適化問題のイメージ (1/2) 5 • 入力空間にせよ特徴空間にせよ仕切りを入 れる空間で仕切りを入れる → ラベル +1

    のデータたちの箇所では正、ラベル -1 の データたちの箇所では負になる線形関数の 坂道を入れることにしてもよい (この関数 の値が 0 になる箇所が仕切りである)。 • それだけだと線形関数の定数倍の自由度が あるのでラベル ±1 のサポートの箇所での 高さを ±1 となるようにする。そうすると 坂道の傾きだけで仕切り~サポートの距離 も決まる(下図)。 • ラベル +1 • ラベル -1 • サポート 1 1 1 𝑤 坂道の傾き 𝑤 • ということは坂道の傾きが なだらかであればあるほど よい……? 坂道 𝑓 𝑥 = 𝑤T𝑥 + 𝑏 1 𝑤
  3. SVM の最適化問題のイメージ (2/2) 6 • 坂道の傾きがなだらかであればあるほどよ いが、「ラベル +1 のデータは全員高さが 1以上である」「ラベル

    -1 のデータは全員 高さが-1以下である」という条件を守らな ければならない(でないとサポートの高さ が ±1 であることに矛盾)。 • ラベル +1 • ラベル -1 • サポート 1 1 1 𝑤 坂道の傾き 𝑤 坂道 𝑓 𝑥 = 𝑤T𝑥 + 𝑏 1 𝑤 _人人人人人人人人人人人人人人_ > 不等式制約付き最適化問題 <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄