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

svm as a constrainted optimization

CookieBox26
February 22, 2022
40

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クラスを仕切る
    仕切りを入れて仕切りに最も近いデータと
    のマージンを最大にしよう」といったもの。
    ‐ 図では入力空間に直接仕切りを入れているが (線
    形)、往々にして特徴空間にとばしてからやる。
    ‐ 図ではマージン部分へのはみ出しがないがはみ出
    してもよい。はみ出しの総和をペナルティする。
    • 仕切りが非線形なとき、データが乱雑なと
    き、学習結果の解釈が不要なとき等にロジ
    スティック回帰より適すると思われる。
    サポート: 仕切りに
    最も近いデータ。

    View Slide

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

    View Slide

  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 ̄

    View Slide