Support Vector Machines

Similar documents
SVM merch available in the CS department after lecture

Support Vector Machines.

CS6375: Machine Learning Gautam Kunapuli. Support Vector Machines

Kernel Methods and Support Vector Machines

Support Vector Machines. Introduction to Data Mining, 2 nd Edition by Tan, Steinbach, Karpatne, Kumar

Perceptron Revisited: Linear Separators. Support Vector Machines

Support Vector Machine (SVM) and Kernel Methods

Support Vector Machine (continued)

Statistical Pattern Recognition

Support Vector Machine (SVM) and Kernel Methods

Support Vector Machine

Max Margin-Classifier

Introduction to Support Vector Machines

L5 Support Vector Classification

Linear, threshold units. Linear Discriminant Functions and Support Vector Machines. Biometrics CSE 190 Lecture 11. X i : inputs W i : weights

Support Vector Machine & Its Applications

Pattern Recognition 2018 Support Vector Machines

10/05/2016. Computational Methods for Data Analysis. Massimo Poesio SUPPORT VECTOR MACHINES. Support Vector Machines Linear classifiers

Support Vector Machine (SVM) and Kernel Methods

A short introduction to supervised learning, with applications to cancer pathway analysis Dr. Christina Leslie

SVM optimization and Kernel methods

Support Vector Machine (SVM) & Kernel CE-717: Machine Learning Sharif University of Technology. M. Soleymani Fall 2012

Linear vs Non-linear classifier. CS789: Machine Learning and Neural Network. Introduction

Support Vector Machines

Introduction to SVM and RVM

Linear & nonlinear classifiers

Machine Learning. Support Vector Machines. Manfred Huber

Support Vector Machines Explained

Linear Classification and SVM. Dr. Xin Zhang

Applied inductive learning - Lecture 7

Support Vector Machine. Industrial AI Lab.

Support Vector Machines

Jeff Howbert Introduction to Machine Learning Winter

Classifier Complexity and Support Vector Classifiers

Data Mining. Linear & nonlinear classifiers. Hamid Beigy. Sharif University of Technology. Fall 1396

Support'Vector'Machines. Machine(Learning(Spring(2018 March(5(2018 Kasthuri Kannan

Support Vector Machines (SVM) in bioinformatics. Day 1: Introduction to SVM

Learning with kernels and SVM

Support Vector Machines

Kernel Machines. Pradeep Ravikumar Co-instructor: Manuela Veloso. Machine Learning

About this class. Maximizing the Margin. Maximum margin classifiers. Picture of large and small margin hyperplanes

Support Vector Machines II. CAP 5610: Machine Learning Instructor: Guo-Jun QI

Multi-class SVMs. Lecture 17: Aykut Erdem April 2016 Hacettepe University

Announcements - Homework

Chapter 9. Support Vector Machine. Yongdai Kim Seoul National University

Linear & nonlinear classifiers

Lecture Notes on Support Vector Machine

Machine Learning. Lecture 6: Support Vector Machine. Feng Li.

Support Vector Machine. Industrial AI Lab. Prof. Seungchul Lee

ML (cont.): SUPPORT VECTOR MACHINES

CS798: Selected topics in Machine Learning

(Kernels +) Support Vector Machines

SUPPORT VECTOR MACHINE

Brief Introduction to Machine Learning

Non-Bayesian Classifiers Part II: Linear Discriminants and Support Vector Machines

Mark your answers ON THE EXAM ITSELF. If you are not sure of your answer you may wish to provide a brief explanation.

Cheng Soon Ong & Christian Walder. Canberra February June 2018

SVMs, Duality and the Kernel Trick

Support vector machines Lecture 4

Linear classifiers selecting hyperplane maximizing separation margin between classes (large margin classifiers)

CS145: INTRODUCTION TO DATA MINING

Statistical Machine Learning from Data

CIS 520: Machine Learning Oct 09, Kernel Methods

Modelli Lineari (Generalizzati) e SVM

CSC 411 Lecture 17: Support Vector Machine

Neural Networks. Prof. Dr. Rudolf Kruse. Computational Intelligence Group Faculty for Computer Science

Support Vector Machines

Support Vector and Kernel Methods

Support Vector Machines. Machine Learning Fall 2017

Machine Learning for Structured Prediction

Lecture 9: Large Margin Classifiers. Linear Support Vector Machines

Pattern Recognition and Machine Learning. Perceptrons and Support Vector machines

Support Vector Machines and Kernel Methods

FIND A FUNCTION TO CLASSIFY HIGH VALUE CUSTOMERS

Lecture Support Vector Machine (SVM) Classifiers

Deviations from linear separability. Kernel methods. Basis expansion for quadratic boundaries. Adding new features Systematic deviation

Support Vector Machines, Kernel SVM

PAC-learning, VC Dimension and Margin-based Bounds

Support Vector Machines. CSE 6363 Machine Learning Vassilis Athitsos Computer Science and Engineering Department University of Texas at Arlington

Support Vector Machines for Classification: A Statistical Portrait

Support Vector Machines

Support Vector Machine. Natural Language Processing Lab lizhonghua

Linear classifiers selecting hyperplane maximizing separation margin between classes (large margin classifiers)

Kernel methods CSE 250B

18.9 SUPPORT VECTOR MACHINES

Chapter 6: Classification

Outline. Basic concepts: SVM and kernels SVM primal/dual problems. Chih-Jen Lin (National Taiwan Univ.) 1 / 22

Applied Machine Learning Annalisa Marsico

Nearest Neighbors Methods for Support Vector Machines

Lecture 10: A brief introduction to Support Vector Machine

CS4495/6495 Introduction to Computer Vision. 8C-L3 Support Vector Machines

Support Vector Machines and Speaker Verification

Introduction to Support Vector Machine

EE613 Machine Learning for Engineers. Kernel methods Support Vector Machines. jean-marc odobez 2015

Indirect Rule Learning: Support Vector Machines. Donglin Zeng, Department of Biostatistics, University of North Carolina

Support vector machines

LMS Algorithm Summary

Non-linear Support Vector Machines

Linear classifiers Lecture 3

CSE546: SVMs, Dual Formula5on, and Kernels Winter 2012

Transcription:

Support Vector Machines Reading: Ben-Hur & Weston, A User s Guide to Support Vector Machines (linked from class web page)

Notation Assume a binary classification problem. Instances are represented by vector x R n. Training examples: x = (x 1, x 2,, x n ) S = {(x 1, t 1 ), (x 2, t 2 ),..., (x m, t m ) (x k, t k ) R n {+1, 1}} Hypothesis: A function h: R n {+1, 1}. h(x) = h(x 1, x 2,, x n ) {+1, 1}

Here, assume positive and negative instances are to be separated by the hyperplane where b is the bias. w x + b = 0 Equation of line: w x + b = w T x + b = w 1 x 1 + w 2 x 2 + b = 0 x 2 x 1

w x + b = 0 Intuition: the best hyperplane (for future generalization) will maximally separate the examples

Definition of Margin (with respect to a hyperplane): Distance from separating hyperplane to nearest positive (or negative) instance.

Definition of Margin (with respect to a hyperplane): Distance from separating hyperplane to nearest positive (or negative) instance. Vapnik (1979) showed that the hyperplane maximizing the margin of S will have minimal VC dimension in the set of all consistent hyperplanes, and will thus be optimal.

Definition of Margin (with respect to a hyperplane): Distance from separating hyperplane to nearest positive (or negative) instance. Vapnik (1979) showed that the hyperplane maximizing the margin of S will have minimal VC dimension in the set of all consistent hyperplanes, and will thus be optimal. This is an optimization problem!

Support vectors: Training examples that lie on the margin. http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png

w x + b = 0 Support vectors: Training examples that lie on the margin. http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png

w x + b = 0 w x + b = a Support vectors: Training examples that lie on the margin. http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png

w x + b = a w x + b = 0 w x + b = a Support vectors: Training examples that lie on the margin. http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png

w x + b = a w x + b = 0 w x + b = a Support vectors: Training examples that lie on the margin. http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png Without changing the problem, we can rescale our data to set a = 1

w x + b = 1 w x + b = 0 w x + b =1 Support vectors: Training examples that lie on the margin. http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png Without changing the problem, we can rescale our data to set a = 1

w x + b = 0 w x + b =1 Geometry of the margin w x + b = 1 http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png Without changing the problem, we can rescale our data to set a = 1

w x + b = 1 w x + b = 0 w x + b =1 Geometry of the margin (w x 1 )+ b = +1 (w x 2 )+ b = 1 w (x 1 x 2 ) = 2 (x 1 x 2 ) = 2 w http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png where w = w w = w 1 2 + w 2 2 Without changing the problem, we can rescale our data to set a = 1

The length of the margin is 1 w So to maximize the margin, we need to minimize. w

Minimizing w Find w and b by doing the following minimization: min w,b! 1 2 w 2 $ # & " % subject to: t k ( w x k + b) 1, k =1,..., m (t k { 1,+1}) This is a quadratic, constrained optimization problem. Use method of Lagrange multipliers to solve it.

Dual Representation It turns out that w can be expressed as a linear combination of the training examples: w = α k x k S x k where α k 0 only if x k is a support vector The results of the SVM training algorithm (involving solving a quadratic programming problem) are the α k and the bias b.

SVM Classification Classify new example x as follows: M h(x) = sgn α k x x k k=1 ( ) + b where S = M. (S is the training set)

SVM Classification Classify new example x as follows: M h(x) = sgn α k x x k k=1 ( ) + b where S = M. (S is the training set) Note that dot product is a kind of similarity measure

Example 2 1-2 -1 1 2-1 -2

Example Input to SVM optimzer: -2-1 2 1-1 1 2 x 1 x 2 class 1 1 1 1 2 1 2 1 1 1 0 1 0 1 1 1 1 1 Output from SVM optimizer: -2 Support vector α ( 1, 0).208 (1, 1).416 (0, 1).208 b =.376

Example Input to SVM optimzer: -2-1 2 1-1 1 2 x 1 x 2 class 1 1 1 1 2 1 2 1 1 1 0 1 0 1 1 1 1 1 Output from SVM optimizer: -2 Support vector α ( 1, 0).208 (1, 1).416 (0, 1).208 b =.376

Example Input to SVM optimzer: -2-1 2 1-1 1 2 x 1 x 2 class 1 1 1 1 2 1 2 1 1 1 0 1 0 1 1 1 1 1 Output from SVM optimizer: Weight vector: w = k {training examples} -2 α k x k =.208 ( 1, 0)+.416 (1,1).208 (0, 1) Support vector α ( 1, 0).208 (1, 1).416 (0, 1).208 b =.376 = (.624,.624)

Example Separation line: w 1 x 1 + w 2 x 2 + b = 0 Input to SVM optimzer: -2-1 2 1-1.624x 1 +.624x 2.376 = 0 x 2 = x 1 +.6 1 2 x 1 x 2 class 1 1 1 1 2 1 2 1 1 1 0 1 0 1 1 1 1 1 Output from SVM optimizer: Weight vector: w = k {training examples} -2 α k x k =.208 ( 1, 0)+.416 (1,1).208 (0, 1) Support vector α ( 1, 0).208 (1, 1).416 (0, 1).208 b =.376 = (.624,.624)

Example Separation line: w 1 x 1 + w 2 x 2 + b = 0 Input to SVM optimzer: -2-1 2 1-1.624x 1 +.624x 2.376 = 0 x 2 = x 1 +.6 1 2 x 1 x 2 class 1 1 1 1 2 1 2 1 1 1 0 1 0 1 1 1 1 1 Output from SVM optimizer: Weight vector: w = k {training examples} -2 α k x k =.208 ( 1, 0)+.416 (1,1).208 (0, 1) Support vector α ( 1, 0).208 (1, 1).416 (0, 1).208 b =.376 = (.624,.624)

Example Classifying a new point: 2 1-2 -1 1 2-1 -2

Example Classifying a new point: 2 1-2 -1 1 2-1 -2 m h((2,2)) = sgn α k x k x k=1 ( ) = sgn.208 ( 1, 0) (2, 2) + b, where sgn(z) = 1 if z > 0 1 if z 0 ( [ ] +.416 [(1,1) (2, 2) ].208 [(0, 1) (2, 2) ].376) ( ) = +1 = sgn.416 +1.664 +.416.376

Example Classifying a new point: 2 1-2 -1 1 2-1 -2 m h((2,2)) = sgn α k x k x k=1 ( ) = sgn.208 ( 1, 0) (2, 2) + b, where sgn(z) = 1 if z > 0 1 if z 0 ( [ ] +.416 [(1,1) (2, 2) ].208 [(0, 1) (2, 2) ].376) ( ) = +1 = sgn.416 +1.664 +.416.376

Example Classifying a new point: 2 1-2 -1 1 2-1 -2 m h((2,2)) = sgn α k x k x k=1 ( ) = sgn.208 ( 1, 0) (2, 2) + b, where sgn(z) = 1 if z > 0 1 if z 0 ( [ ] +.416 [(1,1) (2, 2) ].208 [(0, 1) (2, 2) ].376) ( ) = +1 = sgn.416 +1.664 +.416.376

In-Class Exercise 1

SVM summary Equation of line: w 1 x 1 + w 2 x 2 + b = 0 Define margin using: x k w + b +1 for positive instances (t k = +1) x k w + b 1 for negative instances (t k = 1) Margin distance: 1 w To maximize the margin, we minimize w subject to the constraint that positive examples fall on one side of the margin, and negative examples on the other side: t k ( w x k + b) 1, k =1,..., m where t k { 1,+1} We can relax this constraint using slack variables

SVM summary To do the optimization, we use the dual formulation: w = k {training examples} α k x k The results of the optimization black box are and b. {α k }

SVM review Once the optimization is done, we can classify a new example x as follows: h(x) = class(x) = sgn( w x + b) ## m & & = sgn% % α k x k ( x + b( $ $ k=1 ' ' ## m = sgn% % α k x k x $ $ k=1 ( ) & & (+ b( ' ' That is, classification is done entirely through a linear combination of dot products with training examples. This is a kernel method.

SVM_light demo https://archive.ics.uci.edu/ml/datasets/spambase

Non-linearly separable training examples What if the training examples are not linearly separable?

Non-linearly separable training examples What if the training examples are not linearly separable? Use old trick: Find a function that maps points to a higher dimensional space ( feature space ) in which they are linearly separable, and do the classification in that higherdimensional space.

x 2 x 2 x 1 x 1 x 3 Need to find a function Φ that will perform such a mapping: Φ: R n F Then can find hyperplane in higher dimensional feature space F, and do classification using that hyperplane in higher dimensional space.

Challenge Find a 3-dimensional feature space in which XOR is linearly separable. x 2 (0, 1) (1, 1) x 2 (1, 0) x 1 (0, 0) x 1 x 3

Problem: Recall that classification of instance x is expressed in terms of dot products of x and support vectors. $ Class(x) = sgn & % k {training examples} ' α k (x x k )+ b ) ( The quadratic programming problem of finding the support vectors and coefficients also depends only on dot products between training examples, rather than on the training examples outside of dot products.

So if each x k is replaced by Φ(x k ) in these procedures, we will have to calculate Φ(x k ) for each k as well as calculate a lot of dot products, Φ(x) Φ(x k ) But in general, if the feature space F is high dimensional, Φ(x i ) Φ(x j ) will be expensive to compute.

Second trick: Suppose that there were some magic function, K(x i, x j ) = Φ(x i ) Φ(x j ) such that K is cheap to compute even though Φ(x i ) Φ(x j ) is expensive to compute. Then we wouldn t need to compute the dot product directly; we d just need to compute K during both the training and testing phases. The good news is: such K functions exist! They are called kernel functions, and come from the theory of integral operators.

Example: Polynomial kernel: Suppose x = (x 1, x 2 ) and z = (z 1, z 2 ). k(x,z) = (x z) 2 Let Φ(x) = ( x 2 2 1, 2 x 1 x 2, x ) 2. Then : 2 x 1 2 z 1 Φ(x) Φ(z) = 2 x 1 x 2 2 x 2 z 1 z 2 2 2 z 2 = x 1 x 2 z 1 z 2 2 = (x z) 2 = k(x,z)

In-Class Exercise 2

More on Kernels So far we ve seen kernels that map instances in R n to instances in R z where z > n. One way to create a kernel: Figure out appropriate feature space Φ(x), and find kernel function k which defines inner product on that space. More practically, we usually don t know appropriate feature space Φ(x). What people do in practice is either: 1. Use one of the classic kernels (e.g., polynomial), or 2. Define their own function that is appropriate for their task, and show that it qualifies as a kernel.

How to define your own kernel Given training data (x 1, x 2,..., x n ) Algorithm for SVM learning uses kernel matrix (also called Gram matrix): K i, j = K(x i, x j ), for i, j =1,..., n We can choose some function K, and compute the kernel matrix K using the training data. We just have to guarantee that our kernel defines an inner product on some feature space. Not as hard as it sounds.

What counts as a kernel? Mercer s Theorem: If the kernel matrix K is positive definite, it defines a kernel, that is, it defines an inner product in some feature space. We don t even have to know what that feature space is! It can have a huge number of dimensions.

Structural Kernels In domains such as natural language processing and bioinformatics, the similarities we want to capture are often structural (e.g., parse trees, formal grammars). An important area of kernel methods is defining structural kernels that capture this similarity (e.g., sequence alignment kernels, tree kernels, graph kernels, etc.)

From www.cs.pitt.edu/~tomas/cs3750/kernels.ppt: Design criteria - we want kernels to be valid Satisfy Mercer condition of positive semidefiniteness good embody the true similarity between objects appropriate generalize well efficient the computation of K(x, x ) is feasible

Example: Watson used tree kernels and SVMs to classify question types for Jeopardy! questions From Moschitti et al., 2011

Summary of SVM algorithm Given training set S = {(x 1, t 1 ), (x 2, t 2 ),..., (x m, t m ) (x k, t k ) R n {+1, -1} 1. Choose a kernel function k(x,z). 2. Apply optimization procedure (using the kernel function K) to find support vectors x k, coefficients α k, and bias b. 3. Given a new instance, x, find the classification of x by computing class(x) = sgn α k k(x, x k ) + b k support vectors

Given training data (x 1, x 2,..., x m ) How to define your own kernel Algorithm for SVM learning uses kernel matrix (also called Gram matrix): K i, j = K(x i, x j ), for i, j =1,..., m

How to define your own kernel We can choose some function K, and compute the kernel matrix K using the training data. We just have to guarantee that our kernel defines an inner product on some feature space Mercer s Theorem: : If K is positive semidefinite, it defines a kernel, that is, it defines an inner product in some feature space. We don t even have to know what that feature space is! K is symmetric if K = K T K is positive semidefinite if all the eigenvalues of K are positive.

Example of Simple Custom Kernel Similarity between DNA Sequences: E.g., s 1 = GAATGTCCTTTCTCTAAGTCCTAAG s 2 = GGAGACTTACAGGAAAGAGATTCG Define Hamming Distance Kernel : hamming(s 1, s 2 ) = number of sites where strings match

Kernel matrix for hamming kernel Suppose training set is s 1 = GAATGTCCTTTCTCTAAGTCCTAAG s 2 = GGAGACTTACAGGAAAGAGATTCG s 3 = GGAAACTTTCGGGAGAGAGTTTCG What is the Kernel matrix K? K s 1 s 2 s 3 s 1 s 2 s 3

In-Class Exercise 3

Homework 3

Data Standardization In general, we need to do data standardization for SVMs to avoid imbalance among feature scales: Let µ i denote the mean value of feature i in the training data, and σ i denote the corresponding standard deviation. For each training example x, replace each x i as follows:!! =!!!!!! Scale the test data in the same way, using the µ i and σ i values computed from the training data, not the test data.

Feature Selection Goal: Select a subset of d features (d < n) in order to maximize classification performance with fewer features.

Types of Feature Selection Methods Filter Wrapper Embedded

Filter Methods Independent of the classification algorithm. Training data Apply a filtering function to the features before applying classifier. Filter Examples of filtering functions: Information gain of individual features Selected features Statistical variance of individual features Statistical correlation among features Classifier

Wrapper Methods Training data Choose subset of features Accuracy on validation set Classifier (cross-validation) After cross-validation Classifier (Entire training set with best subset of features) Evaluate classifier on test set

Filter Methods Pros: Fast Cons: Chosen filter might not be relevant for a specific kind of classifier. Doesn t take into account interactions among features Often hard to know how many features to select.

Filter Methods Wrapper Methods Pros: Fast Cons: Chosen filter might not be relevant for a specific kind of classifier. Doesn t take into account interactions among features Pros: Features are evaluated in context of classification Wrapper method selects number of features to use Cons: Slow Often hard to know how many features to select.

Filter Methods Wrapper Methods Pros: Fast Cons: Chosen filter might not be relevant for a specific kind of classifier. Doesn t take into account interactions among features Often hard to know how many features to select. Intermediate method, often used with SVMs: Pros: Features are evaluated in context of classification Wrapper method selects number of features to use Cons: Slow Train SVM using all features Select features f i with highest w i Retrain SVM with selected features Test SVM on test set

Embedded Methods Feature selection is intrinsic part of learning algorithm One example: L 1 SVM: Instead of minimizing w (the L2 norm ) we minimize the L 1 norm of the weight vector: w 1 = n w i i=1 Result is that most of the weights go to zero, leaving a small subset of the weights. Cf., Field of sparse coding

Hard- vs. soft- margin SVMs

Hard-margin SVMs Find w and b by doing the following minimization: w x + b = 1 w x + b = 0 w x + b =1 min w,b! 1 2 w 2 $ # & " % subject to: t k ( w x k + b) 1, k =1,..., m (t k { 1,+1}) http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png

Extend to soft-margin SVMs w x + b =1 w x + b = 1 w x + b = 0 http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png

Extend to soft-margin SVMs Allow some instances to be misclassified, or fall within margins, but penalize them by distance to margin hyperplane. w x + b =1 w x + b = 1 w x + b = 0 http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png

Extend to soft-margin SVMs Allow some instances to be misclassified, or fall within margins, but penalize them by distance to margin hyperplane. w x + b =1 w x + b = 1 w x + b = 0 ξ 0 http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png

Extend to soft-margin SVMs Allow some instances to be misclassified, or fall within margins, but penalize them by distance to margin hyperplane. w x + b =1 w x + b = 0 w x + b = 1 ξ 1 ξ 0 http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png

Extend to soft-margin SVMs Allow some instances to be misclassified, or fall within margins, but penalize them by distance to margin hyperplane. w x + b =1 ξ k are called slack variables. w x + b = 1 w x + b = 0 ξ 1 ξ k > 0 only if x k is misclassified or inside margin ξ 0 http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png

Extend to soft-margin SVMs Allow some instances to be misclassified, or fall within margins, but penalize them by distance to margin hyperplane. Revised optimization problem: Find w and b by doing the following minimization: w x + b =1 w x + b = 0 w x + b = 1 ξ 1 min w,b 1 2 w 2 + C ξ k subject to: k ξ 0 t k ( w x k + b) 1 ξ k, k =1,..., m (t k { 1,+1}) http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png

Extend to soft-margin SVMs Allow some instances to be misclassified, or fall within margins, but penalize them by distance to margin hyperplane. Revised optimization problem: Find w and b by doing the following minimization: w x + b =1 w x + b = 0 w x + b = 1 ξ 1 min w,b 1 2 w 2 + C ξ k subject to: k ξ 0 t k ( w x k + b) 1 ξ k, k =1,..., m (t k { 1,+1}) Optimization tries to keep ξ k s to zero while maximizing margin. http://nlp.stanford.edu/ir-book/html/htmledition/img1260.png C is parameter that trades off margin width with misclassifications

Why use soft-margin SVMs? Always can be optimized (unlike hard-margin SVMs) More robust to outliers, noise However: Have to set C parameter