1
Gagasan Utama
Organisasi
2
Vektor Dukungan
3
Mesin Vektor Pendukung
(Support Vector Machine/SVM)
Vektor
- SVM memaksimalkan margin pendukung
(terminologi Winston: 'jalan') di
sekitar hyperplane pemisah.
- Fungsi keputusan sepenuhnya
ditentukan oleh subset (biasanya
sangat kecil) dari sampel pelatihan,
vektor pendukung.
- Ini menjadi masalah pemrograman Memaksi
kuadratik yang mudah diselesaikan malkan
margin
dengan metode standar
4
Masukan/keluaran umum untuk SVM sama
seperti untuk jaring saraf, tetapi dengan satu
tambahan penting...
Masukan: set sampel pasangan pelatihan (masukan,
keluaran); panggil fitur sampel masukan x1, x2... xn, dan hasil
keluaran y.
Biasanya, terdapat banyak sekali fitur input xi.
Keluaran: set bobot w (atau wi), satu untuk setiap fitur, yang
kombinasi liniernya memprediksi nilai y. (Sejauh ini, sama
seperti jaring saraf...)
Perbedaan penting: kita menggunakan optimasi
memaksimalkan margin ('lebar jalan') untuk mengurangi
jumlah bobot yang bukan nol menjadi hanya beberapa bobot
yang sesuai dengan fitur-fitur penting yang 'penting' dalam
menentukan garis pemisah (hyperplane)... bobot yang bukan
nol ini sesuai dengan vektor pendukung (karena mereka
'mendukung' hyperplane pemisah)
Kasus 2-D
Tentukan a, b, c, sedemikian
sehingga
ax + dengan ≥ c untuk titik
merah
ax + by ≤ (atau < ) c untuk titik
hijau.
5
Hyperplane mana yang harus dipilih?
6
Vektor Pendukung: Vektor input yang hanya menyentuh batas
margin (jalan) - dilingkari di bawah ini, ada 3 di antaranya (atau,
lebih tepatnya, 'ujung' vektor)
T
w0Tx + b0 = 1 w0 x + b0 = -1
at
au d
X X
X X
X
X
d
X X
v1
v2
X X
v3
X
X
7
Definisi
Tentukan hiperplane H sedemikian
sehingga: H1
≥ -1
w-xi+b ≤ +1ketika
ketikayiyi==+1
-1 H0
H1 dan H2 adalah
H2
d+
bidangnya: d-
H
H1 : w-xi+b = +1
H2 : w-xi+b = -1
Titik-titik pada bidang H1 dan
H2 adalah ujung-ujung dari
Support Vectors
antara,
Bidang diH0mana w-xi+b
adalah =0dalam
median
d+ = jarak terpendek ke titik positif terdekat d- =
jarak terpendek ke titik negatif terdekat
Margin (selokan) dari hyperplane pemisah adalah d+ + d-.
Memindahkan vektor
pendukung
memindahkan batas
keputusan
8
Mendefinisikan Hyperplane pemisah
9
Memaksimalkan margin (alias lebar
jalan)
Kami menginginkan pengklasifikasi H1
(pemisah linier) dengan margin sebesar H0
H2
mungkin.
Ingat kembali jarak dari sebuah titik (x0 , y0 ) ke d+
sebuah garis: Ax + By + c = 0 adalah: |Ax0 +By0 d-
+c|/sqrt(A2+B2), jadi, Jarak antara H0 dan H1
adalah
|w-x+b|/|w|=1/|w||,
Dengan demikian, jarakjadi total antara H dan H
1 2
adalah 2/||w||
10
meratakan
Contoh: parabola 2+x2+2y2 s.t. x+y=1
11
parabola pipih f: 2+x2+2y2 = 0 dengan batasan yang
ditumpangkan g: x +y = 1; pada solusi singgung p, vektor gradien
f,g sejajar (tidak ada kemungkinan perpindahan ke kenaikan f yang
juga membuat Anda tetap berada di wilayah g)
Dua kendala
12
Menjelaskan kembali kondisi ini
Pada solusi p
13
Bagaimana Langrangian
memecahkan kendala
pengoptimalan
L(x, a) = f (x) - ag(x) di mana
∇(x, a) = 0
Derivatif parsial dengan x memulihkan batasan
normal paralel
Derivatif parsial dengan λ memulihkan g(x,y)=0
Secara
umum, L(x, a) = f (x) + !i i
ai g
(x)
Secara
umum
Gradien min dari
f kondisi kendala g
L(x, a) = f (x) + !i ai gi
(x) sebuah fungsi dari n + m variabel
n untuk x, m untuk a. Diferensiasi menghasilkan n + m persamaan, masing-
masing
diset ke 0. Persamaan n yang dibedakan untuk setiap xi memberikan kondisi
gradien; persamaan m yang dibedakan untuk setiap ai memulihkan batasan gi
Dalam kasus kita, f(x): ½|| w||2 ; g(x): yi(w-xi +b)-1=0 sehingga
Lagrangiannya adalah:
14
Formulasi Lagrangian
• Jadi dalam masalah
l
SVM, Lagrangiannya
l
adalah1
" a y (x ⋅ w + b) +" a
2
min LP = 2 w - ii i i
i=1 i=1
an:
∑
дLP l
= =0
ai yi
дb i =1
sehingga
l l
w= ! ai yi xi
, ! ai yi
=
i=1 i=1
0
15
Masalah Dual Lagrangian: alih-alih meminimalkan w, b, dengan
batasan yang melibatkan a, kita dapat memaksimalkan a
(variabel ganda) d e n g a n t u n d u k pada hubungan yang
diperoleh sebelumnya untuk w dan b
Masalah utama:
l l
" a y x( ⋅ w + b )+ "
2
min LP= w 1
2
- ii i
ai
i=1 i=1
s.t. ∀i ai ≥ 0
l l
w= !
i=1
ai yi xi
, ! ai yi
=
i=1
Masalah 0
ganda: l 1 l
max L (a ) =
D i
!
i=1
a-
i
2
!
i=1
aayy x⋅x
ijij ( i j )
l
s.t. ! ai yi
= 0 & ai ≥ 0
i=1
16
Masalah ganda
• Teorema Kuhn-Tucker: solusi yang kita temukan di
sini akan sama dengan solusi untuk masalah aslinya
• T: Tapi mengapa kita melakukan ini????
(mengapa tidak menyelesaikan masalah aslinya
saja????)
• Jawab: Karena ini akan memungkinkan kita untuk
menyelesaikan masalah dengan menghitung hasil
kali dalam dari xi, xj (yang akan sangat penting
nantinya ketika kita ingin menyelesaikan masalah
klasifikasi yang tidak dapat dipisahkan secara linier)
Masalah Ganda
Masalah ganda:
l l
max LD(a )i = !
i=1
1
(
ai - ! ai j iaj y y x i ⋅ x j
2 i=1
)
l
s.t. ! ai yi
= 0 & ai ≥ 0
i=1
17
Dengan mengetahui ai, kita dapat
menemukan bobot w untuk margin
maksimal yang memisahkan
hyperplane:
w= ! l ai yi xi
i=1
Ingat: sebagian besar bobot wi, yaitu huruf a, akan bernilai nol
Hanya vektor dukungan (pada selokan atau margin) yang akan
memiliki nilai bukan nol
bobot atau a - ini mengurangi dimensi solusi
18
Wawasan tentang produk
dalam l l
Anggap saja kita
memaksimalkan
i=1
1 sedang mencoba
LD(a )i = ! a -i ! a a yi j yi j x ⋅ x i
2bentuknya:
i=1
( j )
l
s.t. ! ai yi = 0 & ai ≥ 0
i=1
Klaimnya adalah bahwa fungsi ini akan dimaksimalkan jika kita memberikan nilai bukan
nol pada a yang sesuai dengan vektor pendukung, yaitu yang 'penting' dalam menetapkan
margin lebar maksimum ('jalan'). Nah, perhatikan seperti apa bentuknya. Perhatikan terlebih
dahulu dari kondisi batasan bahwa semua a bernilai positif. Sekarang mari kita pikirkan
beberapa kasus.
Kasus 1. Jika dua fitur xi , xj sama sekali berbeda, dot product mereka adalah 0, dan mereka
tidak berkontribusi pada L.
Kasus 2. Jika dua fitur xi, xj benar-benar sama, maka dot product mereka adalah 0. Ada 2 sub-
kasus.
Sub-kasus 1: baik xi, dan xj memprediksi nilai keluaran yang sama yi (baik +1 atau -
1). Maka yi x yj selalu bernilai 1, dan nilai dari aiajyiyjxixj akan bernilai positif. Tetapi ini akan
mengurangi nilai L (karena akan mengurangi jumlah suku pertama). Jadi, algoritma ini
menurunkan nilai
vektor fitur serupa yang membuat prediksi yang sama.
Subkasus 2: xi, dan xj membuat prediksi yang berlawanan tentang nilai keluaran yi
(yaitu, salah satunya adalah
+1, yang lain -1), tetapi sebaliknya sangat mirip: maka hasil kali aiajyiyjxix adalah negatif dan
kita menguranginya, jadi ini menambah jumlah, memaksimalkannya. Inilah contoh-contoh
yang kita cari: contoh-contoh penting yang membedakan kedua kelas tersebut.
xj
xi
19
2 vektor yang mirip tetapi memprediksi
kelas yang sama adalah mubazir
xi xj
xj
xi
20
Tapi... apakah kita sudah selesai???
21
Transformasi untuk
memisahkan
φ
φ (x) φ (x)
ox φ (o)
o x φ (x)
x φ (x)
o φ (o)
x φ (x)
o x φ (o)
o
φ (o) φ (x)
x x φ (o) φ (x)
o φ (o) φ (o)
X F
SVM Non-Linear
22
Masalah dengan SVM linier
=-1
=+1
Bagaimana jika fungsi keputusannya tidak linier? Transformasi apa yang akan
memisahkannya?
=-1
=+1
Ingatlah fungsi yang ingin kita optimalkan: Ld = ∑ai - ½∑ai ajyiyj (xi-xj) di mana (xi-xj) adalah hasil
perkalian titik dari dua vektor fitur. Jika kita mengubahnya menjadi ϕ, alih-alih menghitung ini
dot product (xi-xj) kita harus menghitung (ϕ (xi) - ϕ (xj)). Tapi bagaimana kita bisa melakukan ini?
Ini mahal dan memakan waktu (misalkan ϕ adalah polinomial kuartik... atau lebih buruk lagi,
kita tidak mengetahui fungsinya secara eksplisit. Nah, ini dia cara yang lebih mudah:
Jika ada sebuah "fungsi kernel" K sedemikian rupa sehingga K(xi, xj) = ϕ (xi) - ϕ (xj), maka kita
tidak perlu mengetahui
atau menghitung ϕ sama sekali!!! Artinya, fungsi kernel mendefinisikan inner product dalam
ruang yang ditransformasikan. Atau, mendefinisikan kesamaan dalam ruang yang
ditransformasikan.
23
SVM non-linear
Jadi, fungsi yang akhirnya kami optimalkan adalah:
Ld = ∑ai - ½∑aiaj yiyjK(xi-xj),
K (x, y ) = (x ⋅ y
x,)y ) = exp⎨- x−y
p
K (+1
⎬
2
2σ 2
K (x, y) = tanh (κ x ⋅ y - δ )
saraf)
24
Kita sudah melihat transformasi nonlinier
seperti itu...
• Apa itu???
• tanh(β0 xTxi + β )1
• Ini adalah
transformasi
sigmoid (untuk
jaring saraf)
• Jadi, SVM
menggantikan jaring
saraf! (tapi tanpa
masalah...)
25
Kernel menggeneralisasi gagasan
'kesamaan produk dalam'
Linier
Gaussian
26
Kernel rbf nonlinier
27
Pencocokan berlebih oleh SVM
28