Suport Vector Machines

Chapter 5 Prosise (2023) & Geron (2023)


Sedikit Review

Tipe keluaran model

  • Regresi: Angka, cth: Premi (10.500)
  • Klasifikasi: Kelas/Label (diabetes=‘1’)

Beberapa algoritma yang biasa digunakan

  • SVM (Support Vector Machines)
  • Tree
  • Ensamble
  • NN (Neural Network)
  • Transformer (yang umum digunakan dalam LLM)

Support Vector Machines

Jika bentuk suatu dataset tercampur, dengan kelompok yang tidak terpisah, tidak mungkin untuk dilakukan suatu garis “Decision Boundary”

  • Akan sulit sekali untuk membuat suatu persamaan yang dapat memisahkan label pada dataset jika posisinya nempel-nempel

Cara kerja SVM (Support Vector Machines):


Bagaimana juga persamaan garisnya, selama dia memisahkan, dapat kita gunakan
Tapi tujuannya, untuk memisahkan beberapa kelas yang ada sejauh mungkin, itulah yang akan menjadi hasil akhir dari fungsi yang akan kita bentuk

Konsep utama SVM

Mencari persamaan garis/bidang/hal lain yang dapat memisahkan selebar-lebarnya antar kelas

Apa itu SVM?

Satu satunya algoritma dalam klasifikasi yang hampir tidak selalu ditentukan oleh banyaknya data pada saat training

Misalnya jika data kita tidak terlalu banyak, mungkin SVM, juga Logistic Regression(?) adalah algoritma yang bisa kita yakini performanya bisa cukup baik

SVM hanya tergantung pada vektor di bagian yang perbatasan-perbatasan, jadi jika dataset banyak tetapi ngumpul pada bagian yang terpisah, maka tidak akan ada pengaruh performa

Salah satu sisi positif yang bisa kita pertimbangkan, algoritma apa yang baik digunakan untuk klasifikasi, jika kita merasa datanya banyak tercampur, SVM ini bisa jadi algoritma yang mumpuni, dia membedakan data yang beda-beda tipis itu dengan persamaan yang optimal

SVM Regularization

Sebagai parameter pertama dalam SVM

Lebar pita pada SVM bergantung pada Reguralisasi
Semakin tinggi nilai penalti, maka lebar pitanya semakin kecil

  • Penalti —> Mengurangi error
  • Semakin kecil error (penalty nambah) —> semakin kecil pitanya

Kita tetap perlu mempertimbangkan mana nilai C (penalty) yang lebih baik, melalui eksperimen, melihat confusion matrix, dsb

Kernels

Hal berikutnya yang disebut dengan intisari dari SVM (core)

Hal yang membuat SVM Spesial

Kita bisa seolah mengubah point of view, kita membawa ke dimensi yang lebih tinggi (2D —> 3D)

Analogi

Point of view pemain dan penonton, pada point of view penonton, lebih tinggi, penonton lebih mudah membedakan tim, sedangkan pada perspektif pemain, terlihat tercampur

Prinsipnya: Cover’s Theorem, data yang kelihatannya mungkin tidak dapat dipisahkan secara linear, mungkin dapat dipisahkan secara linear jika dibawa ke dimensi yang lebih tinggi

Tipe-tipe kernel

Sckit-learn punya beberpa kernel general-purpose secara built-in, termasuk:

  • the Linear kernel
  • the RBF kernel
  • the polynomial kernel
  • the sigmoid kernel

Kernel Tricks

Hyperparameter tuning (C)


Semakin tinggi nilai C, perbatasan antar kelas semakin tipis, dan ini juga meningkatkan resiko untuk overfitting

Tetapi jika nilai C terlalu kecil, maka dapat terjadi underfitting juga

Sifatnya sangat empiris (perlu uji-coba) secara default nilai C adalah 0.1, tapi bisa kita coba misal kalikan 10, dan kita dapat melihat dampaknya terhadap dataset yang kita miliki

Hyperparameter Tuning (C and Gamma)

RBF adalah fungsi yang menaikkan dimensi

Parameter kedua

Ini adalah parameter kedua selain C


jika nilai Gamma semakin tinggi, maka dia akan mengambil sedikit data di perbatasan yang digunakan untuk memisahkan, area-nya semakin kecil pula jika Gamma semakin besar

Secara umum, nilai Gamma itu 0-1, meskipun bisa lebih dari 1, tetapi itu sangat jarang

Bagaimana cara kerja RBF (Radial Basis Function) ?

Basic Idea — Menentukan agar data tidak berada pada dimensi yang sama

Lalu:

RBF dapat kita manfaatkan untuk data yang masih berantakan atau yang sudah terpisah untuk menaikkan dimensi… data kita mungkin tercampur, tapi dengan POV yang berbeda, itu bisa saja jadi terpisah


Menentukan suatu landmark dimana dia bisa dibawa ke dimensi yang lebih tinggi

Video: The Kernel Trick

Contoh Kasus: Face Recognition

SVM memiliki performa yang tidak kalah dengan algoritma-algoritma modern seperti Neural Network (NN), dsb

Muka itu, jika hanya melihat satu bagian wajah (misalnya ambil sepotong-sepotong, mulut saja, mata saja, ujung hidung saja), itu sangat berdekatan, sangat mirip-mirip, bagaimana itu bisa dibedakan?

Pesan moral

Jika kita punya data yang terbatas, dan itu sangat beririsan sifatnya, contoh wajah orang, SVM jadi algoritma yang dianggap dapat optimal untuk dipakai

Face detection Face recognition

  • Face detection hanya deteksi itu muka atau bukan
  • Face recognition mendeteksi identitas juga, tidak hanya itu muka atau bukan

SVM dapat memisahkan dengan tingkatan layer-layer yang berbeda

Insight

SVM memiliki 2 parameter yang harus diatur yaitu C dan Gamma