Anda di halaman 1dari 5

Kelompok 1

Fajar Nur Aulia


Ika Putri Puji Lestari
Ichsan Rahadian
Maulana Ichsan

Support Vector Machine (SVM)

Support Vector Machine (SVM) adalah suatu teknik yang relatif baru (1995) untuk melakukan
prediksi, bai dalam kasus klasifikasi maupun regresi. Secara sederhana, SVM adalah
memaksimalkan margin, yang merupaan jarak pemisah antara kelas data. SVM mampu
bekerja pada dataset yang berdimensi tinggi dengan menggunakan kernel trik. SVM hanya
menggunakan beberapa titik data terpilih yang berontribusi (Support Vector) untuk
membentuk model yang akan digunakan dalam proses klasifikasi. Dibandingkan dengan
regresi logistik dan jaringan saraf, SVM terkadang memberi cara yang lebih baik untuk
mempelajari fungsi non-linear.

Tujuan Optimasi
Dengan regresi logisti kita dapat melihat bagaimana kita bisa memodifikasinya untuk
mendapatkan SVM.
Cost function dari Regresi Logistik adalah
𝑚 𝑛
1 𝜆
min [∑ 𝑦 (𝑖) (− log ℎ𝜃 (𝑥 (𝑖) )) + (1 − 𝑦 (𝑖) )((− log(1 − ℎ𝜃 (𝑥 (𝑖) )))] + ∑ 𝜃𝑗2
𝜃 𝑚 2𝑚
𝑖=1 𝑗=1
dengan parameter 𝜆 dan fungsi tujuan optimasi 𝐴 + 𝜆𝐵.

Cost function dari Support Vector Machine mirip dengan Regresi Logistik, hanya saja konstanta 𝑚
dihapus karena berapapun nilai 𝑚 tidak akan mempengaruhi nilai minimum 𝜃, lalu bentuk
(− log ℎ𝜃 (𝑥 (𝑖) )) diubah menjadi 𝑐𝑜𝑠𝑡1 (𝜃 𝑇 𝑥 (𝑖) ) dan ((− log(1 − ℎ𝜃 (𝑥 (𝑖) ))) diubah menjadi
1
𝑐𝑜𝑠𝑡0 (𝜃 𝑇 𝑥 (𝑖) ), dan dikalikan dengan 𝐶 = 𝜆. Bentuknya menjadi
𝑚 𝑛
(𝑖) 𝑇 (𝑖) (𝑖) 1
𝑇 (𝑖)
min 𝐶 [∑ 𝑦 𝑐𝑜𝑠𝑡1 (𝜃 𝑥 ) +(1 − 𝑦 ) 𝑐𝑜𝑠𝑡0 (𝜃 𝑥 )] + ∑ 𝜃𝑗2
𝜃 2
𝑖=1 𝑗=1
dengan parameter 𝐶 dan fungsi tujuan optimasi 𝐶𝐴 + 𝐵.

Hipotesis dari Support Vector Machine adalah ℎ𝜃(𝑥) = 1 jika 𝜃 𝑇 𝑥 ≥ 0 dan ℎ𝜃(𝑥) = 0 jika
𝜃𝑇 𝑥 < 0

Intuisi Margin Besar


Support Vector Machine mempunyai parameter 𝐶. Jika nilai 𝐶 sangat besar maka kita perlu
membuat ∑𝑚 𝑖=1 𝑦
(𝑖)
𝑐𝑜𝑠𝑡1 (𝜃 𝑇 𝑥 (𝑖) ) +(1 − 𝑦 (𝑖) ) 𝑐𝑜𝑠𝑡0 (𝜃 𝑇 𝑥 (𝑖) ) mendekati 0 untuk
meminimumkan cost function. Sehingga ketika 𝑦 (𝑖) = 1 maka 𝜃 𝑇 𝑥 (𝑖) ≥ 1 dan ketika 𝑦 (𝑖) =
0 maka 𝜃 𝑇 𝑥 (𝑖) ≤ 1.

Gambar 1: Contoh cost function


Garis hitam pada gambar 1 adalah batas keputusan dari Support Vector Machine, garis hijau dan
merah muda juga merupakan batas keputusan tetapi berbeda dengan Support Vector Machine
karena jarak antara batas keputusannya dengan data sangat dekat. Jarak antara garis hitam
dan garis biru disebut margin dan karena jaraknya yang besar maka Support Vector Machine
sering disebut klasifikasi margin besar.

Gambar 2: Terdapat pencilan dalam suatu data


Jika nilai parameter 𝐶 kecil maka batas keputusannya akan seperti garis hitam dengan
mengabaikan pencilan yang ada pada data. Tetapi jika nilai parameter 𝐶 besar maka batas
keputusannya akan berubah menjadi garis merah muda menyesuaikan dengan pencilan.

.....................................................................................

Memilih Landmark
Cara pertama yang harus kita lakukan adalah memplot setiap training example (𝑋) dari
dimensi yang lebih rendah kedalam bentuk 𝜙(𝑋) dengan dimensi yang lebih tinggi.
𝑋2 𝑋1 𝜙(𝑋2) 𝜙(𝑋1)

Gambar 3: training sample 𝑋1 dan 𝑋2 dari dimensi 2 dan bentuk 𝜙(𝑋1) dan 𝜙(𝑋2) dalam
dimensi 3

Dari gambar 3 diatas dapat terlihat jelas bahwa training sample 𝑋1 dan 𝑋2 dari dimensi 2
sudah diplot dalam bentuk 𝜙(𝑋1) dan 𝜙(𝑋2) dalam dimensi 3. Untuk letak penentuan
landmark yang dibuat adalah sama letaknya dengan training sample yang ada di dimensi 2.

SVM dengan Kernel


Misal (𝑥(1), 𝑦(1)), (𝑥(2), 𝑦(2)), . . . . , (𝑥(𝑚), 𝑦(𝑚))
Kita pilih 𝜙(𝑋(1)) = 𝑥(1), 𝜙(𝑋(2)) = 𝑥(2), . . . . , 𝜙(𝑋(𝑚)) = 𝑥(𝑚)
Untuk training sample (𝑥(𝑖), 𝑦(𝑖)) :
𝐹1(𝑖) = 𝑠𝑖𝑚 ( 𝑥(𝑖), 𝜙(𝑋(1))
𝐹2(𝑖) = 𝑠𝑖𝑚 ( 𝑥(𝑖), 𝜙(𝑋(2))

𝐹𝑚(𝑖) = 𝑠𝑖𝑚 ( 𝑥(𝑖), 𝜙(𝑋(𝑚))
Sehingga dapat dibentuk sebuah vektor hasil yaitu,
𝐹1(𝑖)
𝐹2(𝑖)
𝐹(𝑖) = ( )

𝐹𝑚(𝑖)

Parameter SVM
1
 C=𝜆
dimana untuk nilai C yang besar akan menghasilkan bias yang rendah dan variansi yang
tinggi, namun apabila nilai C yang kecil akan menghasilkan bisa yang tinggi dan variansi
yang rendah.
 σ2
untuk nilai σ2 yang besar maka features Fi memiliki bentuk yang smooth dengan bias yang
tinggi dan variansi yang rendah, tetapi apabila nilai σ2 kecil akan terbentuk Fi yang tidak
smooth dengan bias yang rendah dan variansi yang tinggi.
Implementasi dan Penggunaan
Kali ini digunakan paket perangkat lunak SVM (misalnya liblinear, libsvm) untuk
memecahkan parameter 𝜃. Maka perlu ditentukan parameter 𝐶 dan kernel. Jika n kecil
dan/atau m besar misalnya dimensi 2 training set yang besar maka perlu menerapkan fungsi
kernel (jika menggunakan kernel Gaussian).
Misalkan diprediksikan 𝑦 = 1 jika (𝜃 𝑇 𝑥) ≥ 0 jadi tidak ada vektor 𝑓 dan didapatkan
classifier linier standar. Artinya jika n besar dan m kecil maka banyak fitur untuk beberapa
contoh dan tidak cukup data - risk overfitting dalam ruang fitur berdimensi tinggi.

Linear dan Gaussian kernel yang paling umum:


||𝑥 − 𝑙 (𝑖) ||2
𝑓𝑖 = exp (− )
2𝜎 2
Dimana 𝑙 (𝑖) = 𝑥 (𝑖) dan perlu memilih 𝜎 2 .

Tidak semua fungsi kesamaan yang dikembangkan adalah kernel yang valid. Maka harus
memenuhi Teorema Merecer untuk SVM menggunakan trik optimasi numerik. Berarti
pengoptimalan tertentu bisa dilakukan, tapi harus mengikuti teorema.

Kernel polinomial
Kita mengukur kesamaan x dan l dengan melakukan salah satu dari
(𝑥 𝑇 𝑙)2
(𝑥 𝑇 𝑙)3
(𝑥 𝑇 𝑙 + 1)3
Bentuk umumnya adalah
(𝑥 𝑇 𝑙 + 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡)𝑑𝑒𝑔𝑟𝑒𝑒
Jika mereka serupa maka produk dalam cenderung besar, tidak sering digunakan. Biasanya
Kernel polinomial hasilnya lebih buruk daripada kernel Gaussian saat x dan l keduanya tidak
negatif.

Lainnya terdapat Kernel string yaitu digunakan jika inputnya adalah string teks atau untuk
klasifikasi teks. Selain itu terdapat Kernel Chi-kuadrat dan Histogram Intersection kernel,
dll.

Klasifikasi multi-class untuk SVM

Gambar 4: contoh Klasifikasi multi-class untuk SVM


Regresi logistik vs SVM
Penggunaan SVM akan lebih baik dan regresi logistik lebih tepat jika n (fitur) berukuran
besar dari m (set training). Misalnya masalah klasifikasi teks pada dimensi vektor fitur (n)
adalah 10.000 dan set training (m) adalah 10 – 1000. Kemudian gunakan regresi logistik atau
SVM dengan kernel linier. Jika n kecil dan m adalah intermediate
𝑛 = 1 − 1000
𝑚 = 10 − 10 000
Kernel Gaussian baik, jika n kecil dan m berukuran besar yaitu
𝑛 = 1 − 1000
𝑚 = 50.000 +
SVM akan lambat dijalankan dengan kernel Gaussian. Maka dari itu, buat atau tambahkan
fitur secara manual atau Gunakan regresi logistik SVM dengan kernel linier. Regresi logistik
dan SVM dengan kernel linier sangat mirip. Lakukan hal yang sama dan dapatkan kinerja
yang sama. Banyak kekuatan SVM menggunakan kernel yang berbeda untuk mempelajari
fungsi non-linier yang kompleks. Untuk semua rezim ini Neural Network yang dirancang
dengan baik harus bekerja. Tapi, untuk beberapa masalah ini Neural Network mungkin lebih
lambat - SVM yang diimplementasikan dengan baik akan lebih cepat. SVM memiliki masalah
optimasi cembung, sehingga didapatkan minimum global.
Tidak selalu jelas bagaimana memilih sebuah algoritma. Tetapi seringkali lebih penting
untuk mendapatkan data yang cukup, untuk merancang fitur baru, dan debugging algoritma.
SVM secara luas dianggap sebagai algoritma pembelajaran yang sangat hebat.

Anda mungkin juga menyukai