Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Support Vector Machines Reading: Ben-Hur and Weston, “A User’s Guide to Support Vector Machines” (linked from class web page)"— Presentation transcript:

1 Support Vector Machines Reading: Ben-Hur and Weston, “A User’s Guide to Support Vector Machines” (linked from class web page)

2 Notation Assume a binary classification problem: h (x)  {−1, 1} Instances are represented by vector x   n. Training examples: x k = (x 1, x 2, …, x n ) Training set: S = {(x 1, y 1 ), (x 2, y 2 ),..., (x m, y m ) | (x k, y k )   n  {+1, -1}} Questions on notation...

3 Here, assume positive and negative instances are to be separated by the hyperplane, where b is the bias. Equation of line: x2x2 x1x1

4 Intuition: The best hyperplane for future generalization will “maximally” separate the examples (assuming new examples will come from the same distribution)

5 Margin is defined as distance from separating hypeplane to nearest training example. Note: Sometimes margin is defined as twice the distance. Definition of Margin

6 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.

7 Definition of Margin 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!

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

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

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

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

12 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

13 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

14 http://nlp.stanford.edu/IR-book/html/htmledition/img1260.png Without changing the problem, we can rescale our data to set a = 1 Length of the margin margin

15 http://nlp.stanford.edu/IR-book/html/htmledition/img1260.png Without changing the problem, we can rescale our data to set a = 1 Length of the margin margin

16 w is perpendicular to decision boundary

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

18 Minimizing ||w|| Find w and b by doing the following minimization: This is a quadratic optimization problem.

19 Minimizing ||w|| Find w and b by doing the following minimization: This is a quadratic optimization problem. Shorthand:

20 Dual Representation It turns out that w can be expressed as a linear combination of the training examples: The results of the SVM training algorithm (involving solving a quadratic programming problem) are the  i and the bias b.

21 Classify new example x as follows: where | S | = m. (S is the training set) SVM Classification

22 Classify new example x as follows: where | S | = m. (S is the training set) Note that dot product is a kind of “similarity measure” SVM Classification

23 Example 12 -2 1 2

24 Example 12 -2 1 2 Input to SVM optimizer: x 1 x 2 class 111 121 211 -10-1 0-1-1 -1-1-1

25 Example 12 -2 1 2 Input to SVM optimizer: x 1 x 2 class 111 121 211 -10-1 0-1-1 -1-1-1 Output from SVM optimizer: Support vectorα (-1, 0)-.208 (1, 1).416 (0, -1)-.208 b = -.376

26 Example 12 -2 1 2 Input to SVM optimizer: x 1 x 2 class 111 121 211 -10-1 0-1-1 -1-1-1 Output from SVM optimizer: Support vectorα (-1, 0)-.208 (1, 1).416 (0, -1)-.208 b = -.376 Weight vector: Separation line: Compute this Sketch this

27 Example 12 -2 1 2 Input to SVM optimizer: x 1 x 2 class 111 121 211 -10-1 0-1-1 -1-1-1 Output from SVM optimizer: Support vectorα (-1, 0)-.208 (1, 1).416 (0, -1)-.208 b = -.376 Weight vector: Separation line:

28 Example 12 -2 1 2 Classifying a new point: Compute this

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

30 svm_light Demo

31 In-Class Exercises

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

33 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 higher- dimensional space.

34 Need to find a function  that will perform such a mapping:  :  n  F Then can find hyperplane in higher dimensional feature space F, and do classification using that hyperplane in higher dimensional space. x1x1 x2x2

35 Need to find a function  that will perform such a mapping:  :  n  F Then can find hyperplane in higher dimensional feature space F, and do classification using that hyperplane in higher dimensional space. x1x1 x2x2 x1x1 x2x2 x3x3

36 Exercise Find  :  2  F to create a 3-dimensional feature space in which XOR is linearly separable. I.e., find  (x 1, x 2 ) = (x 1, x 2, x 3 ) so that these points become separable x2x2 x1x1 (0, 1)(1, 1) (0, 0) (1, 0) x1x1 x2x2 x3x3

37 Problem: –Recall that classification of instance x is expressed in terms of dot products of x and support vectors. –The quadratic programming problem of finding the support vectors and coefficients also depends only on dot products between training examples.

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

39 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.

40 Example: Polynomial kernel: Suppose x = (x 1, x 2 ) and z = (z 1, z 2 ).

41 Example Does the degree-2 polynomial kernel make XOR linearly separable? x2x2 x1x1 (0, 1)(1, 1) (0, 0) (1, 0)

42 Recap of SVM algorithm Given training set S = {(x 1, y 1 ), (x 2, y 2 ),..., (x m, y m ) | (x i, y i )   n  {+1, -1} 1.Choose a map  :  n  F, which maps x i to a higher dimensional feature space. (Solves problem that X might not be linearly separable in original space.) 2.Choose a cheap-to-compute kernel function k(x,z)=  (x)   (z) (Solves problem that in high dimensional spaces, dot products are very expensive to compute.)

43 4.Apply quadratic programming procedure (using the kernel function k) to find a hyperplane (w, b), such that where the  (x i )’s are support vectors, the  i ’s are coefficients, and b is a bias, such that (w, b ) is the hyperplane maximizing the margin of the training set in feature space F.

44 5.Now, given a new instance, x, find the classification of x by computing

45

46

47

48 More on Kernels So far we’ve seen kernels that map instances in  n to instances in  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.

49 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): 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.

50 What counts as a kernel? Mercer’s Theorem: If the kernel matrix K is “symmetric 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.

51 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.)

52 From www.cs.pitt.edu/~tomas/cs3750/kernels.ppt: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

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


Download ppt "Support Vector Machines Reading: Ben-Hur and Weston, “A User’s Guide to Support Vector Machines” (linked from class web page)"

Similar presentations


Ads by Google