Files
FYS-STK4155/doc/LectureNotes/_build/jupyter_execute/chapter5.ipynb
T
Morten Hjorth-Jensen be71a16b8b updated book
2021-08-22 23:25:18 +02:00

2022 lines
273 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Support Vector Machines, overarching aims\n",
"\n",
"A Support Vector Machine (SVM) is a very powerful and versatile\n",
"Machine Learning method, capable of performing linear or nonlinear\n",
"classification, regression, and even outlier detection. It is one of\n",
"the most popular models in Machine Learning, and anyone interested in\n",
"Machine Learning should have it in their toolbox. SVMs are\n",
"particularly well suited for classification of complex but small-sized or\n",
"medium-sized datasets. \n",
"\n",
"The case with two well-separated classes only can be understood in an\n",
"intuitive way in terms of lines in a two-dimensional space separating\n",
"the two classes (see figure below).\n",
"\n",
"The basic mathematics behind the SVM is however less familiar to most of us. \n",
"It relies on the definition of hyperplanes and the\n",
"definition of a **margin** which separates classes (in case of\n",
"classification problems) of variables. It is also used for regression\n",
"problems.\n",
"\n",
"With SVMs we distinguish between hard margin and soft margins. The\n",
"latter introduces a so-called softening parameter to be discussed\n",
"below. We distinguish also between linear and non-linear\n",
"approaches. The latter are the most frequent ones since it is rather\n",
"unlikely that we can separate classes easily by say straight lines.\n",
"\n",
"\n",
"## Hyperplanes and all that\n",
"\n",
"The theory behind support vector machines (SVM hereafter) is based on\n",
"the mathematical description of so-called hyperplanes. Let us start\n",
"with a two-dimensional case. This will also allow us to introduce our\n",
"first SVM examples. These will be tailored to the case of two specific\n",
"classes, as displayed in the figure here based on the usage of the petal data.\n",
"\n",
"We assume here that our data set can be well separated into two\n",
"domains, where a straight line does the job in the separating the two\n",
"classes. Here the two classes are represented by either squares or\n",
"circles."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"LinearSVC: [0.28475098] [[1.05364854 1.09903804]]\n",
"SVC: [0.31896852] [[1.1203284 1.02625193]]\n",
"SGDClassifier(alpha=0.00200): [0.117] [[0.77714169 0.72981762]]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 792x288 with 1 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter5_1_1.png"
},
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"from sklearn import datasets\n",
"from sklearn.svm import SVC, LinearSVC\n",
"from sklearn.linear_model import SGDClassifier\n",
"from sklearn.preprocessing import StandardScaler\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"plt.rcParams['axes.labelsize'] = 14\n",
"plt.rcParams['xtick.labelsize'] = 12\n",
"plt.rcParams['ytick.labelsize'] = 12\n",
"\n",
"\n",
"iris = datasets.load_iris()\n",
"X = iris[\"data\"][:, (2, 3)] # petal length, petal width\n",
"y = iris[\"target\"]\n",
"\n",
"setosa_or_versicolor = (y == 0) | (y == 1)\n",
"X = X[setosa_or_versicolor]\n",
"y = y[setosa_or_versicolor]\n",
"\n",
"\n",
"\n",
"C = 5\n",
"alpha = 1 / (C * len(X))\n",
"\n",
"lin_clf = LinearSVC(loss=\"hinge\", C=C, random_state=42)\n",
"svm_clf = SVC(kernel=\"linear\", C=C)\n",
"sgd_clf = SGDClassifier(loss=\"hinge\", learning_rate=\"constant\", eta0=0.001, alpha=alpha,\n",
" max_iter=100000, random_state=42)\n",
"\n",
"scaler = StandardScaler()\n",
"X_scaled = scaler.fit_transform(X)\n",
"\n",
"lin_clf.fit(X_scaled, y)\n",
"svm_clf.fit(X_scaled, y)\n",
"sgd_clf.fit(X_scaled, y)\n",
"\n",
"print(\"LinearSVC: \", lin_clf.intercept_, lin_clf.coef_)\n",
"print(\"SVC: \", svm_clf.intercept_, svm_clf.coef_)\n",
"print(\"SGDClassifier(alpha={:.5f}):\".format(sgd_clf.alpha), sgd_clf.intercept_, sgd_clf.coef_)\n",
"\n",
"# Compute the slope and bias of each decision boundary\n",
"w1 = -lin_clf.coef_[0, 0]/lin_clf.coef_[0, 1]\n",
"b1 = -lin_clf.intercept_[0]/lin_clf.coef_[0, 1]\n",
"w2 = -svm_clf.coef_[0, 0]/svm_clf.coef_[0, 1]\n",
"b2 = -svm_clf.intercept_[0]/svm_clf.coef_[0, 1]\n",
"w3 = -sgd_clf.coef_[0, 0]/sgd_clf.coef_[0, 1]\n",
"b3 = -sgd_clf.intercept_[0]/sgd_clf.coef_[0, 1]\n",
"\n",
"# Transform the decision boundary lines back to the original scale\n",
"line1 = scaler.inverse_transform([[-10, -10 * w1 + b1], [10, 10 * w1 + b1]])\n",
"line2 = scaler.inverse_transform([[-10, -10 * w2 + b2], [10, 10 * w2 + b2]])\n",
"line3 = scaler.inverse_transform([[-10, -10 * w3 + b3], [10, 10 * w3 + b3]])\n",
"\n",
"# Plot all three decision boundaries\n",
"plt.figure(figsize=(11, 4))\n",
"plt.plot(line1[:, 0], line1[:, 1], \"k:\", label=\"LinearSVC\")\n",
"plt.plot(line2[:, 0], line2[:, 1], \"b--\", linewidth=2, label=\"SVC\")\n",
"plt.plot(line3[:, 0], line3[:, 1], \"r-\", label=\"SGDClassifier\")\n",
"plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"bs\") # label=\"Iris-Versicolor\"\n",
"plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"yo\") # label=\"Iris-Setosa\"\n",
"plt.xlabel(\"Petal length\", fontsize=14)\n",
"plt.ylabel(\"Petal width\", fontsize=14)\n",
"plt.legend(loc=\"upper center\", fontsize=14)\n",
"plt.axis([0, 5.5, 0, 2])\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The aim of the SVM algorithm is to find a hyperplane in a\n",
"$p$-dimensional space, where $p$ is the number of features that\n",
"distinctly classifies the data points.\n",
"\n",
"In a $p$-dimensional space, a hyperplane is what we call an affine subspace of dimension of $p-1$.\n",
"As an example, in two dimension, a hyperplane is simply as straight line while in three dimensions it is \n",
"a two-dimensional subspace, or stated simply, a plane. \n",
"\n",
"In two dimensions, with the variables $x_1$ and $x_2$, the hyperplane is defined as"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"b+w_1x_1+w_2x_2=0,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"where $b$ is the intercept and $w_1$ and $w_2$ define the elements of a vector orthogonal to the line \n",
"$b+w_1x_1+w_2x_2=0$. \n",
"In two dimensions we define the vectors $\\boldsymbol{x} =[x1,x2]$ and $\\boldsymbol{w}=[w1,w2]$. \n",
"We can then rewrite the above equation as"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\boldsymbol{x}^T\\boldsymbol{w}+b=0.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We limit ourselves to two classes of outputs $y_i$ and assign these classes the values $y_i = \\pm 1$. \n",
"In a $p$-dimensional space of say $p$ features we have a hyperplane defines as"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"b+wx_1+w_2x_2+\\dots +w_px_p=0.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we define a \n",
"matrix $\\boldsymbol{X}=\\left[\\boldsymbol{x}_1,\\boldsymbol{x}_2,\\dots, \\boldsymbol{x}_p\\right]$\n",
"of dimension $n\\times p$, where $n$ represents the observations for each feature and each vector $x_i$ is a column vector of the matrix $\\boldsymbol{X}$,"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\boldsymbol{x}_i = \\begin{bmatrix} x_{i1} \\\\ x_{i2} \\\\ \\dots \\\\ \\dots \\\\ x_{ip} \\end{bmatrix}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If the above condition is not met for a given vector $\\boldsymbol{x}_i$ we have"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"b+w_1x_{i1}+w_2x_{i2}+\\dots +w_px_{ip} >0,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"if our output $y_i=1$.\n",
"In this case we say that $\\boldsymbol{x}_i$ lies on one of the sides of the hyperplane and if"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"b+w_1x_{i1}+w_2x_{i2}+\\dots +w_px_{ip} < 0,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"for the class of observations $y_i=-1$, \n",
"then $\\boldsymbol{x}_i$ lies on the other side. \n",
"\n",
"Equivalently, for the two classes of observations we have"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"y_i\\left(b+w_1x_{i1}+w_2x_{i2}+\\dots +w_px_{ip}\\right) > 0.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"When we try to separate hyperplanes, if it exists, we can use it to construct a natural classifier: a test observation is assigned a given class depending on which side of the hyperplane it is located.\n",
"\n",
"\n",
"### The two-dimensional case\n",
"\n",
"Let us try to develop our intuition about SVMs by limiting ourselves to a two-dimensional\n",
"plane. To separate the two classes of data points, there are many\n",
"possible lines (hyperplanes if you prefer a more strict naming) \n",
"that could be chosen. Our objective is to find a\n",
"plane that has the maximum margin, i.e the maximum distance between\n",
"data points of both classes. Maximizing the margin distance provides\n",
"some reinforcement so that future data points can be classified with\n",
"more confidence.\n",
"\n",
"What a linear classifier attempts to accomplish is to split the\n",
"feature space into two half spaces by placing a hyperplane between the\n",
"data points. This hyperplane will be our decision boundary. All\n",
"points on one side of the plane will belong to class one and all points\n",
"on the other side of the plane will belong to the second class two.\n",
"\n",
"Unfortunately there are many ways in which we can place a hyperplane\n",
"to divide the data. Below is an example of two candidate hyperplanes\n",
"for our data sample.\n",
"\n",
"\n",
"Let us define the function"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"f(x) = \\boldsymbol{w}^T\\boldsymbol{x}+b = 0,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"as the function that determines the line $L$ that separates two classes (our two features), see the figure here. \n",
"\n",
"\n",
"Any point defined by $\\boldsymbol{x}_i$ and $\\boldsymbol{x}_2$ on the line $L$ will satisfy $\\boldsymbol{w}^T(\\boldsymbol{x}_1-\\boldsymbol{x}_2)=0$. \n",
"\n",
"The signed distance $\\delta$ from any point defined by a vector $\\boldsymbol{x}$ and a point $\\boldsymbol{x}_0$ on the line $L$ is then"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\delta = \\frac{1}{\\vert\\vert \\boldsymbol{w}\\vert\\vert}(\\boldsymbol{w}^T\\boldsymbol{x}+b).\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How do we find the parameter $b$ and the vector $\\boldsymbol{w}$? What we could\n",
"do is to define a cost function which now contains the set of all\n",
"misclassified points $M$ and attempt to minimize this function"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"C(\\boldsymbol{w},b) = -\\sum_{i\\in M} y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b).\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We could now for example define all values $y_i =1$ as misclassified in case we have $\\boldsymbol{w}^T\\boldsymbol{x}_i+b < 0$ and the opposite if we have $y_i=-1$. Taking the derivatives gives us"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{\\partial C}{\\partial b} = -\\sum_{i\\in M} y_i,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{\\partial C}{\\partial \\boldsymbol{w}} = -\\sum_{i\\in M} y_ix_i.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can now use the Newton-Raphson method or different variants of the gradient descent family (from plain gradient descent to various stochastic gradient descent approaches) to solve the equations"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"b \\leftarrow b +\\eta \\frac{\\partial C}{\\partial b},\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\boldsymbol{w} \\leftarrow \\boldsymbol{w} +\\eta \\frac{\\partial C}{\\partial \\boldsymbol{w}},\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"where $\\eta$ is our by now well-known learning rate. \n",
"\n",
"\n",
"\n",
"The equations we discussed above can be coded rather easily (the\n",
"framework is similar to what we developed for logistic\n",
"regression). We are going to set up a simple case with two classes only and we want to find a line which separates them the best possible way."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There are however problems with this approach, although it looks\n",
"pretty straightforward to implement. When running the above code, we see that we can easily end up with many diffeent lines which separate the two classes.\n",
"\n",
"\n",
"For small\n",
"gaps between the entries, we may also end up needing many iterations\n",
"before the solutions converge and if the data cannot be separated\n",
"properly into two distinct classes, we may not experience a converge\n",
"at all.\n",
"\n",
"\n",
"### A better approach\n",
"\n",
"A better approach is rather to try to define a large margin between\n",
"the two classes (if they are well separated from the beginning).\n",
"\n",
"Thus, we wish to find a margin $M$ with $\\boldsymbol{w}$ normalized to\n",
"$\\vert\\vert \\boldsymbol{w}\\vert\\vert =1$ subject to the condition"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b) \\geq M \\hspace{0.1cm}\\forall i=1,2,\\dots, p.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"All points are thus at a signed distance from the decision boundary defined by the line $L$. The parameters $b$ and $w_1$ and $w_2$ define this line. \n",
"\n",
"We seek thus the largest value $M$ defined by"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{1}{\\vert \\vert \\boldsymbol{w}\\vert\\vert}y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b) \\geq M \\hspace{0.1cm}\\forall i=1,2,\\dots, n,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"or just"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b) \\geq M\\vert \\vert \\boldsymbol{w}\\vert\\vert \\hspace{0.1cm}\\forall i.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we scale the equation so that $\\vert \\vert \\boldsymbol{w}\\vert\\vert = 1/M$, we have to find the minimum of \n",
"$\\boldsymbol{w}^T\\boldsymbol{w}=\\vert \\vert \\boldsymbol{w}\\vert\\vert$ (the norm) subject to the condition"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b) \\geq 1 \\hspace{0.1cm}\\forall i.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We have thus defined our margin as the invers of the norm of\n",
"$\\boldsymbol{w}$. We want to minimize the norm in order to have a as large as\n",
"possible margin $M$. Before we proceed, we need to remind ourselves\n",
"about Lagrangian multipliers.\n",
"\n",
"\n",
"## A quick Reminder on Lagrangian Multipliers\n",
"\n",
"Consider a function of three independent variables $f(x,y,z)$ . For the function $f$ to be an\n",
"extreme we have"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"df=0.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A necessary and sufficient condition is"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{\\partial f}{\\partial x} =\\frac{\\partial f}{\\partial y}=\\frac{\\partial f}{\\partial z}=0,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"due to"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"df = \\frac{\\partial f}{\\partial x}dx+\\frac{\\partial f}{\\partial y}dy+\\frac{\\partial f}{\\partial z}dz.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In many problems the variables $x,y,z$ are often subject to constraints (such as those above for the margin)\n",
"so that they are no longer all independent. It is possible at least in principle to use each \n",
"constraint to eliminate one variable\n",
"and to proceed with a new and smaller set of independent varables.\n",
"\n",
"The use of so-called Lagrangian multipliers is an alternative technique when the elimination\n",
"of variables is incovenient or undesirable. Assume that we have an equation of constraint on \n",
"the variables $x,y,z$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\phi(x,y,z) = 0,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"resulting in"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"d\\phi = \\frac{\\partial \\phi}{\\partial x}dx+\\frac{\\partial \\phi}{\\partial y}dy+\\frac{\\partial \\phi}{\\partial z}dz =0.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we cannot set anymore"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{\\partial f}{\\partial x} =\\frac{\\partial f}{\\partial y}=\\frac{\\partial f}{\\partial z}=0,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"if $df=0$ is wanted\n",
"because there are now only two independent variables! Assume $x$ and $y$ are the independent \n",
"variables.\n",
"Then $dz$ is no longer arbitrary.\n",
"\n",
"\n",
"However, we can add to"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"df = \\frac{\\partial f}{\\partial x}dx+\\frac{\\partial f}{\\partial y}dy+\\frac{\\partial f}{\\partial z}dz,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"a multiplum of $d\\phi$, viz. $\\lambda d\\phi$, resulting in"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"df+\\lambda d\\phi = (\\frac{\\partial f}{\\partial z}+\\lambda\n",
"\\frac{\\partial \\phi}{\\partial x})dx+(\\frac{\\partial f}{\\partial y}+\\lambda\\frac{\\partial \\phi}{\\partial y})dy+\n",
"(\\frac{\\partial f}{\\partial z}+\\lambda\\frac{\\partial \\phi}{\\partial z})dz =0.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Our multiplier is chosen so that"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{\\partial f}{\\partial z}+\\lambda\\frac{\\partial \\phi}{\\partial z} =0.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We need to remember that we took $dx$ and $dy$ to be arbitrary and thus we must have"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{\\partial f}{\\partial x}+\\lambda\\frac{\\partial \\phi}{\\partial x} =0,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{\\partial f}{\\partial y}+\\lambda\\frac{\\partial \\phi}{\\partial y} =0.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"When all these equations are satisfied, $df=0$. We have four unknowns, $x,y,z$ and\n",
"$\\lambda$. Actually we want only $x,y,z$, $\\lambda$ needs not to be determined, \n",
"it is therefore often called\n",
"Lagrange's undetermined multiplier.\n",
"If we have a set of constraints $\\phi_k$ we have the equations"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{\\partial f}{\\partial x_i}+\\sum_k\\lambda_k\\frac{\\partial \\phi_k}{\\partial x_i} =0.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In order to solve the above problem, we define the following Lagrangian function to be minimized"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\cal{L}(\\lambda,b,\\boldsymbol{w})=\\frac{1}{2}\\boldsymbol{w}^T\\boldsymbol{w}-\\sum_{i=1}^n\\lambda_i\\left[y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)-1\\right],\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"where $\\lambda_i$ is a so-called Lagrange multiplier subject to the condition $\\lambda_i \\geq 0$.\n",
"\n",
"Taking the derivatives with respect to $b$ and $\\boldsymbol{w}$ we obtain"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{\\partial \\cal{L}}{\\partial b} = -\\sum_{i} \\lambda_iy_i=0,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{\\partial \\cal{L}}{\\partial \\boldsymbol{w}} = 0 = \\boldsymbol{w}-\\sum_{i} \\lambda_iy_i\\boldsymbol{x}_i.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Inserting these constraints into the equation for $\\cal{L}$ we obtain"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\cal{L}=\\sum_i\\lambda_i-\\frac{1}{2}\\sum_{ij}^n\\lambda_i\\lambda_jy_iy_j\\boldsymbol{x}_i^T\\boldsymbol{x}_j,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"subject to the constraints $\\lambda_i\\geq 0$ and $\\sum_i\\lambda_iy_i=0$. \n",
"We must in addition satisfy the [Karush-Kuhn-Tucker](https://en.wikipedia.org/wiki/Karush%E2%80%93Kuhn%E2%80%93Tucker_conditions) (KKT) condition"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\lambda_i\\left[y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b) -1\\right] \\hspace{0.1cm}\\forall i.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. If $\\lambda_i > 0$, then $y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)=1$ and we say that $x_i$ is on the boundary.\n",
"\n",
"2. If $y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)> 1$, we say $x_i$ is not on the boundary and we set $\\lambda_i=0$. \n",
"\n",
"When $\\lambda_i > 0$, the vectors $\\boldsymbol{x}_i$ are called support vectors. They are the vectors closest to the line (or hyperplane) and define the margin $M$. \n",
"\n",
"\n",
"We can rewrite"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\cal{L}=\\sum_i\\lambda_i-\\frac{1}{2}\\sum_{ij}^n\\lambda_i\\lambda_jy_iy_j\\boldsymbol{x}_i^T\\boldsymbol{x}_j,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and its constraints in terms of a matrix-vector problem where we minimize w.r.t. $\\lambda$ the following problem"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{1}{2} \\boldsymbol{\\lambda}^T\\begin{bmatrix} y_1y_1\\boldsymbol{x}_1^T\\boldsymbol{x}_1 & y_1y_2\\boldsymbol{x}_1^T\\boldsymbol{x}_2 & \\dots & \\dots & y_1y_n\\boldsymbol{x}_1^T\\boldsymbol{x}_n \\\\\n",
"y_2y_1\\boldsymbol{x}_2^T\\boldsymbol{x}_1 & y_2y_2\\boldsymbol{x}_2^T\\boldsymbol{x}_2 & \\dots & \\dots & y_1y_n\\boldsymbol{x}_2^T\\boldsymbol{x}_n \\\\\n",
"\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n",
"\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n",
"y_ny_1\\boldsymbol{x}_n^T\\boldsymbol{x}_1 & y_ny_2\\boldsymbol{x}_n^T\\boldsymbol{x}_2 & \\dots & \\dots & y_ny_n\\boldsymbol{x}_n^T\\boldsymbol{x}_n \\\\\n",
"\\end{bmatrix}\\boldsymbol{\\lambda}-\\mathbb{1}\\boldsymbol{\\lambda},\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"subject to $\\boldsymbol{y}^T\\boldsymbol{\\lambda}=0$. Here we defined the vectors $\\boldsymbol{\\lambda} =[\\lambda_1,\\lambda_2,\\dots,\\lambda_n]$ and \n",
"$\\boldsymbol{y}=[y_1,y_2,\\dots,y_n]$. \n",
"\n",
"\n",
"\n",
"Solving the above problem, yields the values of $\\lambda_i$.\n",
"To find the coefficients of your hyperplane we need simply to compute"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\boldsymbol{w}=\\sum_{i} \\lambda_iy_i\\boldsymbol{x}_i.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With our vector $\\boldsymbol{w}$ we can in turn find the value of the intercept $b$ (here in two dimensions) via"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)=1,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"resulting in"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"b = \\frac{1}{y_i}-\\boldsymbol{w}^T\\boldsymbol{x}_i,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"or if we write it out in terms of the support vectors only, with $N_s$ being their number, we have"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"b = \\frac{1}{N_s}\\sum_{j\\in N_s}\\left(y_j-\\sum_{i=1}^n\\lambda_iy_i\\boldsymbol{x}_i^T\\boldsymbol{x}_j\\right).\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With our hyperplane coefficients we can use our classifier to assign any observation by simply using"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"y_i = \\mathrm{sign}(\\boldsymbol{w}^T\\boldsymbol{x}_i+b).\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Below we discuss how to find the optimal values of $\\lambda_i$. Before we proceed however, we discuss now the so-called soft classifier. \n",
"\n",
"\n",
"## A soft classifier\n",
"\n",
"Till now, the margin is strictly defined by the support vectors. This defines what is called a hard classifier, that is the margins are well defined.\n",
"\n",
"Suppose now that classes overlap in feature space, as shown in the\n",
"figure here. One way to deal with this problem before we define the\n",
"so-called **kernel approach**, is to allow a kind of slack in the sense\n",
"that we allow some points to be on the wrong side of the margin.\n",
"\n",
"We introduce thus the so-called **slack** variables $\\boldsymbol{\\xi} =[\\xi_1,x_2,\\dots,x_n]$ and \n",
"modify our previous equation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)=1,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"to"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)=1-\\xi_i,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"with the requirement $\\xi_i\\geq 0$. The total violation is now $\\sum_i\\xi$. \n",
"The value $\\xi_i$ in the constraint the last constraint corresponds to the amount by which the prediction\n",
"$y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)=1$ is on the wrong side of its margin. Hence by bounding the sum $\\sum_i \\xi_i$,\n",
"we bound the total amount by which predictions fall on the wrong side of their margins.\n",
"\n",
"Misclassifications occur when $\\xi_i > 1$. Thus bounding the total sum by some value $C$ bounds in turn the total number of\n",
"misclassifications.\n",
"\n",
"\n",
"This has in turn the consequences that we change our optmization problem to finding the minimum of"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\cal{L}=\\frac{1}{2}\\boldsymbol{w}^T\\boldsymbol{w}-\\sum_{i=1}^n\\lambda_i\\left[y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)-(1-\\xi_)\\right]+C\\sum_{i=1}^n\\xi_i-\\sum_{i=1}^n\\gamma_i\\xi_i,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"subject to"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b)=1-\\xi_i \\hspace{0.1cm}\\forall i,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"with the requirement $\\xi_i\\geq 0$.\n",
"\n",
"Taking the derivatives with respect to $b$ and $\\boldsymbol{w}$ we obtain"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{\\partial \\cal{L}}{\\partial b} = -\\sum_{i} \\lambda_iy_i=0,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{\\partial \\cal{L}}{\\partial \\boldsymbol{w}} = 0 = \\boldsymbol{w}-\\sum_{i} \\lambda_iy_i\\boldsymbol{x}_i,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\lambda_i = C-\\gamma_i \\hspace{0.1cm}\\forall i.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Inserting these constraints into the equation for $\\cal{L}$ we obtain the same equation as before"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\cal{L}=\\sum_i\\lambda_i-\\frac{1}{2}\\sum_{ij}^n\\lambda_i\\lambda_jy_iy_j\\boldsymbol{x}_i^T\\boldsymbol{x}_j,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"but now subject to the constraints $\\lambda_i\\geq 0$, $\\sum_i\\lambda_iy_i=0$ and $0\\leq\\lambda_i \\leq C$. \n",
"We must in addition satisfy the Karush-Kuhn-Tucker condition which now reads"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"5\n",
"0\n",
" \n",
"<\n",
"<\n",
"<\n",
"!\n",
"!\n",
"M\n",
"A\n",
"T\n",
"H\n",
"_\n",
"B\n",
"L\n",
"O\n",
"C\n",
"K"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\gamma_i\\xi_i = 0,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"and"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"y_i(\\boldsymbol{w}^T\\boldsymbol{x}_i+b) -(1-\\xi_) \\geq 0 \\hspace{0.1cm}\\forall i.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Kernels and non-linearity\n",
"\n",
"The cases we have studied till now, were all characterized by two classes\n",
"with a close to linear separability. The classifiers we have described\n",
"so far find linear boundaries in our input feature space. It is\n",
"possible to make our procedure more flexible by exploring the feature\n",
"space using other basis expansions such as higher-order polynomials,\n",
"wavelets, splines etc.\n",
"\n",
"If our feature space is not easy to separate, as shown in the figure\n",
"here, we can achieve a better separation by introducing more complex\n",
"basis functions. The ideal would be, as shown in the next figure, to, via a specific transformation to \n",
"obtain a separation between the classes which is almost linear. \n",
"\n",
"The change of basis, from $x\\rightarrow z=\\phi(x)$ leads to the same type of equations to be solved, except that\n",
"we need to introduce for example a polynomial transformation to a two-dimensional training set."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 792x288 with 2 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter5_109_0.png"
},
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import os\n",
"\n",
"np.random.seed(42)\n",
"\n",
"# To plot pretty figures\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"plt.rcParams['axes.labelsize'] = 14\n",
"plt.rcParams['xtick.labelsize'] = 12\n",
"plt.rcParams['ytick.labelsize'] = 12\n",
"\n",
"\n",
"from sklearn.svm import SVC\n",
"from sklearn import datasets\n",
"\n",
"\n",
"\n",
"X1D = np.linspace(-4, 4, 9).reshape(-1, 1)\n",
"X2D = np.c_[X1D, X1D**2]\n",
"y = np.array([0, 0, 1, 1, 1, 1, 1, 0, 0])\n",
"\n",
"plt.figure(figsize=(11, 4))\n",
"\n",
"plt.subplot(121)\n",
"plt.grid(True, which='both')\n",
"plt.axhline(y=0, color='k')\n",
"plt.plot(X1D[:, 0][y==0], np.zeros(4), \"bs\")\n",
"plt.plot(X1D[:, 0][y==1], np.zeros(5), \"g^\")\n",
"plt.gca().get_yaxis().set_ticks([])\n",
"plt.xlabel(r\"$x_1$\", fontsize=20)\n",
"plt.axis([-4.5, 4.5, -0.2, 0.2])\n",
"\n",
"plt.subplot(122)\n",
"plt.grid(True, which='both')\n",
"plt.axhline(y=0, color='k')\n",
"plt.axvline(x=0, color='k')\n",
"plt.plot(X2D[:, 0][y==0], X2D[:, 1][y==0], \"bs\")\n",
"plt.plot(X2D[:, 0][y==1], X2D[:, 1][y==1], \"g^\")\n",
"plt.xlabel(r\"$x_1$\", fontsize=20)\n",
"plt.ylabel(r\"$x_2$\", fontsize=20, rotation=0)\n",
"plt.gca().get_yaxis().set_ticks([0, 4, 8, 12, 16])\n",
"plt.plot([-4.5, 4.5], [6.5, 6.5], \"r--\", linewidth=3)\n",
"plt.axis([-4.5, 4.5, -1, 17])\n",
"plt.subplots_adjust(right=1)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Suppose we define a polynomial transformation of degree two only (we continue to live in a plane with $x_i$ and $y_i$ as variables)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"z = \\phi(x_i) =\\left(x_i^2, y_i^2, \\sqrt{2}x_iy_i\\right).\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"With our new basis, the equations we solved earlier are basically the same, that is we have now (without the slack option for simplicity)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\cal{L}=\\sum_i\\lambda_i-\\frac{1}{2}\\sum_{ij}^n\\lambda_i\\lambda_jy_iy_j\\boldsymbol{z}_i^T\\boldsymbol{z}_j,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"subject to the constraints $\\lambda_i\\geq 0$, $\\sum_i\\lambda_iy_i=0$, and for the support vectors"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"y_i(\\boldsymbol{w}^T\\boldsymbol{z}_i+b)= 1 \\hspace{0.1cm}\\forall i,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"from which we also find $b$.\n",
"To compute $\\boldsymbol{z}_i^T\\boldsymbol{z}_j$ we define the kernel $K(\\boldsymbol{x}_i,\\boldsymbol{x}_j)$ as"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"K(\\boldsymbol{x}_i,\\boldsymbol{x}_j)=\\boldsymbol{z}_i^T\\boldsymbol{z}_j= \\phi(\\boldsymbol{x}_i)^T\\phi(\\boldsymbol{x}_j).\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For the above example, the kernel reads"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"K(\\boldsymbol{x}_i,\\boldsymbol{x}_j)=[x_i^2, y_i^2, \\sqrt{2}x_iy_i]^T\\begin{bmatrix} x_j^2 \\\\ y_j^2 \\\\ \\sqrt{2}x_jy_j \\end{bmatrix}=x_i^2x_j^2+2x_ix_jy_iy_j+y_i^2y_j^2.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We note that this is nothing but the dot product of the two original\n",
"vectors $(\\boldsymbol{x}_i^T\\boldsymbol{x}_j)^2$. Instead of thus computing the\n",
"product in the Lagrangian of $\\boldsymbol{z}_i^T\\boldsymbol{z}_j$ we simply compute\n",
"the dot product $(\\boldsymbol{x}_i^T\\boldsymbol{x}_j)^2$.\n",
"\n",
"\n",
"This leads to the so-called\n",
"kernel trick and the result leads to the same as if we went through\n",
"the trouble of performing the transformation\n",
"$\\phi(\\boldsymbol{x}_i)^T\\phi(\\boldsymbol{x}_j)$ during the SVM calculations.\n",
"\n",
"\n",
"\n",
"Using our definition of the kernel We can rewrite again the Lagrangian"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\cal{L}=\\sum_i\\lambda_i-\\frac{1}{2}\\sum_{ij}^n\\lambda_i\\lambda_jy_iy_j\\boldsymbol{x}_i^T\\boldsymbol{z}_j,\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"subject to the constraints $\\lambda_i\\geq 0$, $\\sum_i\\lambda_iy_i=0$ in terms of a convex optimization problem"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{1}{2} \\boldsymbol{\\lambda}^T\\begin{bmatrix} y_1y_1K(\\boldsymbol{x}_1,\\boldsymbol{x}_1) & y_1y_2K(\\boldsymbol{x}_1,\\boldsymbol{x}_2) & \\dots & \\dots & y_1y_nK(\\boldsymbol{x}_1,\\boldsymbol{x}_n) \\\\\n",
"y_2y_1K(\\boldsymbol{x}_2,\\boldsymbol{x}_1) & y_2y_2(\\boldsymbol{x}_2,\\boldsymbol{x}_2) & \\dots & \\dots & y_1y_nK(\\boldsymbol{x}_2,\\boldsymbol{x}_n) \\\\\n",
"\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n",
"\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n",
"y_ny_1K(\\boldsymbol{x}_n,\\boldsymbol{x}_1) & y_ny_2K(\\boldsymbol{x}_n\\boldsymbol{x}_2) & \\dots & \\dots & y_ny_nK(\\boldsymbol{x}_n,\\boldsymbol{x}_n) \\\\\n",
"\\end{bmatrix}\\boldsymbol{\\lambda}-\\mathbb{1}\\boldsymbol{\\lambda},\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"subject to $\\boldsymbol{y}^T\\boldsymbol{\\lambda}=0$. Here we defined the vectors $\\boldsymbol{\\lambda} =[\\lambda_1,\\lambda_2,\\dots,\\lambda_n]$ and \n",
"$\\boldsymbol{y}=[y_1,y_2,\\dots,y_n]$. \n",
"If we add the slack constants this leads to the additional constraint $0\\leq \\lambda_i \\leq C$.\n",
"\n",
"We can rewrite this (see the solutions below) in terms of a convex optimization problem of the type"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\begin{align*}\n",
" &\\mathrm{min}_{\\lambda}\\hspace{0.2cm} \\frac{1}{2}\\boldsymbol{\\lambda}^T\\boldsymbol{P}\\boldsymbol{\\lambda}+\\boldsymbol{q}^T\\boldsymbol{\\lambda},\\\\ \\nonumber\n",
" &\\mathrm{subject\\hspace{0.1cm}to} \\hspace{0.2cm} \\boldsymbol{G}\\boldsymbol{\\lambda} \\preceq \\boldsymbol{h} \\hspace{0.2cm} \\wedge \\boldsymbol{A}\\boldsymbol{\\lambda}=f.\n",
"\\end{align*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Below we discuss how to solve these equations. Here we note that the matrix $\\boldsymbol{P}$ has matrix elements $p_{ij}=y_iy_jK(\\boldsymbol{x}_i,\\boldsymbol{x}_j)$.\n",
"Given a kernel $K$ and the targets $y_i$ this matrix is easy to set up. The constraint $\\boldsymbol{y}^T\\boldsymbol{\\lambda}=0$ leads to $f=0$ and $\\boldsymbol{A}=\\boldsymbol{y}$. How to set up the matrix $\\boldsymbol{G}$ is discussed later. Here note that the inequalities $0\\leq \\lambda_i \\leq C$ can be split up into\n",
"$0\\leq \\lambda_i$ and $\\lambda_i \\leq C$. These two inequalities define then the matrix $\\boldsymbol{G}$ and the vector $\\boldsymbol{h}$.\n",
"\n",
"\n",
"\n",
"## Different kernels and Mercer's theorem\n",
"\n",
"There are several popular kernels being used. These are\n",
"1. Linear: $K(\\boldsymbol{x},\\boldsymbol{y})=\\boldsymbol{x}^T\\boldsymbol{y}$,\n",
"\n",
"2. Polynomial: $K(\\boldsymbol{x},\\boldsymbol{y})=(\\boldsymbol{x}^T\\boldsymbol{y}+\\gamma)^d$,\n",
"\n",
"3. Gaussian Radial Basis Function: $K(\\boldsymbol{x},\\boldsymbol{y})=\\exp{\\left(-\\gamma\\vert\\vert\\boldsymbol{x}-\\boldsymbol{y}\\vert\\vert^2\\right)}$,\n",
"\n",
"4. Tanh: $K(\\boldsymbol{x},\\boldsymbol{y})=\\tanh{(\\boldsymbol{x}^T\\boldsymbol{y}+\\gamma)}$,\n",
"\n",
"and many other ones.\n",
"\n",
"An important theorem for us is [Mercer's\n",
"theorem](https://en.wikipedia.org/wiki/Mercer%27s_theorem). The\n",
"theorem states that if a kernel function $K$ is symmetric, continuous\n",
"and leads to a positive semi-definite matrix $\\boldsymbol{P}$ then there\n",
"exists a function $\\phi$ that maps $\\boldsymbol{x}_i$ and $\\boldsymbol{x}_j$ into\n",
"another space (possibly with much higher dimensions) such that"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"K(\\boldsymbol{x}_i,\\boldsymbol{x}_j)=\\phi(\\boldsymbol{x}_i)^T\\phi(\\boldsymbol{x}_j).\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So you can use $K$ as a kernel since you know $\\phi$ exists, even if\n",
"you dont know what $\\phi$ is. \n",
"\n",
"Note that some frequently used kernels (such as the Sigmoid kernel)\n",
"dont respect all of Mercers conditions, yet they generally work well\n",
"in practice.\n",
"\n",
"\n",
"## The moons example"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter5_129_0.png"
},
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/mhjensen/opt/anaconda3/lib/python3.8/site-packages/sklearn/svm/_base.py:976: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n",
" warnings.warn(\"Liblinear failed to converge, increase \"\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter5_129_2.png"
},
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 792x288 with 2 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter5_129_3.png"
},
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 792x288 with 2 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter5_129_4.png"
},
"needs_background": "light"
},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Phi(-1.0, -2) = [0.74081822]\n",
"Phi(-1.0, 1) = [0.30119421]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 792x504 with 4 Axes>"
]
},
"metadata": {
"filenames": {
"image/png": "/Users/mhjensen/Teaching/MachineLearning/doc/LectureNotes/_build/jupyter_execute/chapter5_129_6.png"
},
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"from __future__ import division, print_function, unicode_literals\n",
"\n",
"import numpy as np\n",
"np.random.seed(42)\n",
"\n",
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"plt.rcParams['axes.labelsize'] = 14\n",
"plt.rcParams['xtick.labelsize'] = 12\n",
"plt.rcParams['ytick.labelsize'] = 12\n",
"\n",
"\n",
"from sklearn.svm import SVC\n",
"from sklearn import datasets\n",
"\n",
"\n",
"\n",
"from sklearn.pipeline import Pipeline\n",
"from sklearn.preprocessing import StandardScaler\n",
"from sklearn.svm import LinearSVC\n",
"\n",
"\n",
"from sklearn.datasets import make_moons\n",
"X, y = make_moons(n_samples=100, noise=0.15, random_state=42)\n",
"\n",
"def plot_dataset(X, y, axes):\n",
" plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"bs\")\n",
" plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"g^\")\n",
" plt.axis(axes)\n",
" plt.grid(True, which='both')\n",
" plt.xlabel(r\"$x_1$\", fontsize=20)\n",
" plt.ylabel(r\"$x_2$\", fontsize=20, rotation=0)\n",
"\n",
"plot_dataset(X, y, [-1.5, 2.5, -1, 1.5])\n",
"plt.show()\n",
"\n",
"from sklearn.datasets import make_moons\n",
"from sklearn.pipeline import Pipeline\n",
"from sklearn.preprocessing import PolynomialFeatures\n",
"\n",
"polynomial_svm_clf = Pipeline([\n",
" (\"poly_features\", PolynomialFeatures(degree=3)),\n",
" (\"scaler\", StandardScaler()),\n",
" (\"svm_clf\", LinearSVC(C=10, loss=\"hinge\", random_state=42))\n",
" ])\n",
"\n",
"polynomial_svm_clf.fit(X, y)\n",
"\n",
"def plot_predictions(clf, axes):\n",
" x0s = np.linspace(axes[0], axes[1], 100)\n",
" x1s = np.linspace(axes[2], axes[3], 100)\n",
" x0, x1 = np.meshgrid(x0s, x1s)\n",
" X = np.c_[x0.ravel(), x1.ravel()]\n",
" y_pred = clf.predict(X).reshape(x0.shape)\n",
" y_decision = clf.decision_function(X).reshape(x0.shape)\n",
" plt.contourf(x0, x1, y_pred, cmap=plt.cm.brg, alpha=0.2)\n",
" plt.contourf(x0, x1, y_decision, cmap=plt.cm.brg, alpha=0.1)\n",
"\n",
"plot_predictions(polynomial_svm_clf, [-1.5, 2.5, -1, 1.5])\n",
"plot_dataset(X, y, [-1.5, 2.5, -1, 1.5])\n",
"\n",
"plt.show()\n",
"\n",
"\n",
"from sklearn.svm import SVC\n",
"\n",
"poly_kernel_svm_clf = Pipeline([\n",
" (\"scaler\", StandardScaler()),\n",
" (\"svm_clf\", SVC(kernel=\"poly\", degree=3, coef0=1, C=5))\n",
" ])\n",
"poly_kernel_svm_clf.fit(X, y)\n",
"\n",
"poly100_kernel_svm_clf = Pipeline([\n",
" (\"scaler\", StandardScaler()),\n",
" (\"svm_clf\", SVC(kernel=\"poly\", degree=10, coef0=100, C=5))\n",
" ])\n",
"poly100_kernel_svm_clf.fit(X, y)\n",
"\n",
"plt.figure(figsize=(11, 4))\n",
"\n",
"plt.subplot(121)\n",
"plot_predictions(poly_kernel_svm_clf, [-1.5, 2.5, -1, 1.5])\n",
"plot_dataset(X, y, [-1.5, 2.5, -1, 1.5])\n",
"plt.title(r\"$d=3, r=1, C=5$\", fontsize=18)\n",
"\n",
"plt.subplot(122)\n",
"plot_predictions(poly100_kernel_svm_clf, [-1.5, 2.5, -1, 1.5])\n",
"plot_dataset(X, y, [-1.5, 2.5, -1, 1.5])\n",
"plt.title(r\"$d=10, r=100, C=5$\", fontsize=18)\n",
"\n",
"plt.show()\n",
"\n",
"def gaussian_rbf(x, landmark, gamma):\n",
" return np.exp(-gamma * np.linalg.norm(x - landmark, axis=1)**2)\n",
"\n",
"gamma = 0.3\n",
"\n",
"x1s = np.linspace(-4.5, 4.5, 200).reshape(-1, 1)\n",
"x2s = gaussian_rbf(x1s, -2, gamma)\n",
"x3s = gaussian_rbf(x1s, 1, gamma)\n",
"\n",
"XK = np.c_[gaussian_rbf(X1D, -2, gamma), gaussian_rbf(X1D, 1, gamma)]\n",
"yk = np.array([0, 0, 1, 1, 1, 1, 1, 0, 0])\n",
"\n",
"plt.figure(figsize=(11, 4))\n",
"\n",
"plt.subplot(121)\n",
"plt.grid(True, which='both')\n",
"plt.axhline(y=0, color='k')\n",
"plt.scatter(x=[-2, 1], y=[0, 0], s=150, alpha=0.5, c=\"red\")\n",
"plt.plot(X1D[:, 0][yk==0], np.zeros(4), \"bs\")\n",
"plt.plot(X1D[:, 0][yk==1], np.zeros(5), \"g^\")\n",
"plt.plot(x1s, x2s, \"g--\")\n",
"plt.plot(x1s, x3s, \"b:\")\n",
"plt.gca().get_yaxis().set_ticks([0, 0.25, 0.5, 0.75, 1])\n",
"plt.xlabel(r\"$x_1$\", fontsize=20)\n",
"plt.ylabel(r\"Similarity\", fontsize=14)\n",
"plt.annotate(r'$\\mathbf{x}$',\n",
" xy=(X1D[3, 0], 0),\n",
" xytext=(-0.5, 0.20),\n",
" ha=\"center\",\n",
" arrowprops=dict(facecolor='black', shrink=0.1),\n",
" fontsize=18,\n",
" )\n",
"plt.text(-2, 0.9, \"$x_2$\", ha=\"center\", fontsize=20)\n",
"plt.text(1, 0.9, \"$x_3$\", ha=\"center\", fontsize=20)\n",
"plt.axis([-4.5, 4.5, -0.1, 1.1])\n",
"\n",
"plt.subplot(122)\n",
"plt.grid(True, which='both')\n",
"plt.axhline(y=0, color='k')\n",
"plt.axvline(x=0, color='k')\n",
"plt.plot(XK[:, 0][yk==0], XK[:, 1][yk==0], \"bs\")\n",
"plt.plot(XK[:, 0][yk==1], XK[:, 1][yk==1], \"g^\")\n",
"plt.xlabel(r\"$x_2$\", fontsize=20)\n",
"plt.ylabel(r\"$x_3$ \", fontsize=20, rotation=0)\n",
"plt.annotate(r'$\\phi\\left(\\mathbf{x}\\right)$',\n",
" xy=(XK[3, 0], XK[3, 1]),\n",
" xytext=(0.65, 0.50),\n",
" ha=\"center\",\n",
" arrowprops=dict(facecolor='black', shrink=0.1),\n",
" fontsize=18,\n",
" )\n",
"plt.plot([-0.1, 1.1], [0.57, -0.1], \"r--\", linewidth=3)\n",
"plt.axis([-0.1, 1.1, -0.1, 1.1])\n",
" \n",
"plt.subplots_adjust(right=1)\n",
"\n",
"plt.show()\n",
"\n",
"\n",
"x1_example = X1D[3, 0]\n",
"for landmark in (-2, 1):\n",
" k = gaussian_rbf(np.array([[x1_example]]), np.array([[landmark]]), gamma)\n",
" print(\"Phi({}, {}) = {}\".format(x1_example, landmark, k))\n",
"\n",
"rbf_kernel_svm_clf = Pipeline([\n",
" (\"scaler\", StandardScaler()),\n",
" (\"svm_clf\", SVC(kernel=\"rbf\", gamma=5, C=0.001))\n",
" ])\n",
"rbf_kernel_svm_clf.fit(X, y)\n",
"\n",
"\n",
"from sklearn.svm import SVC\n",
"\n",
"gamma1, gamma2 = 0.1, 5\n",
"C1, C2 = 0.001, 1000\n",
"hyperparams = (gamma1, C1), (gamma1, C2), (gamma2, C1), (gamma2, C2)\n",
"\n",
"svm_clfs = []\n",
"for gamma, C in hyperparams:\n",
" rbf_kernel_svm_clf = Pipeline([\n",
" (\"scaler\", StandardScaler()),\n",
" (\"svm_clf\", SVC(kernel=\"rbf\", gamma=gamma, C=C))\n",
" ])\n",
" rbf_kernel_svm_clf.fit(X, y)\n",
" svm_clfs.append(rbf_kernel_svm_clf)\n",
"\n",
"plt.figure(figsize=(11, 7))\n",
"\n",
"for i, svm_clf in enumerate(svm_clfs):\n",
" plt.subplot(221 + i)\n",
" plot_predictions(svm_clf, [-1.5, 2.5, -1, 1.5])\n",
" plot_dataset(X, y, [-1.5, 2.5, -1, 1.5])\n",
" gamma, C = hyperparams[i]\n",
" plt.title(r\"$\\gamma = {}, C = {}$\".format(gamma, C), fontsize=16)\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Mathematical optimization of convex functions\n",
"\n",
"A mathematical (quadratic) optimization problem, or just optimization problem, has the form"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\begin{align*}\n",
" &\\mathrm{min}_{\\lambda}\\hspace{0.2cm} \\frac{1}{2}\\boldsymbol{\\lambda}^T\\boldsymbol{P}\\boldsymbol{\\lambda}+\\boldsymbol{q}^T\\boldsymbol{\\lambda},\\\\ \\nonumber\n",
" &\\mathrm{subject\\hspace{0.1cm}to} \\hspace{0.2cm} \\boldsymbol{G}\\boldsymbol{\\lambda} \\preceq \\boldsymbol{h} \\wedge \\boldsymbol{A}\\boldsymbol{\\lambda}=f.\n",
"\\end{align*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"subject to some constraints for say a selected set $i=1,2,\\dots, n$.\n",
"In our case we are optimizing with respect to the Lagrangian multipliers $\\lambda_i$, and the\n",
"vector $\\boldsymbol{\\lambda}=[\\lambda_1, \\lambda_2,\\dots, \\lambda_n]$ is the optimization variable we are dealing with.\n",
"\n",
"In our case we are particularly interested in a class of optimization problems called convex optmization problems. \n",
"In our discussion on gradient descent methods we discussed at length the definition of a convex function. \n",
"\n",
"Convex optimization problems play a central role in applied mathematics and we recommend strongly [Boyd and Vandenberghe's text on the topics](http://web.stanford.edu/~boyd/cvxbook/).\n",
"\n",
"\n",
"\n",
"\n",
"If we use Python as programming language and wish to venture beyond\n",
"**scikit-learn**, **tensorflow** and similar software which makes our\n",
"lives so much easier, we need to dive into the wonderful world of\n",
"quadratic programming. We can, if we wish, solve the minimization\n",
"problem using say standard gradient methods or conjugate gradient\n",
"methods. However, these methods tend to exhibit a rather slow\n",
"converge. So, welcome to the promised land of quadratic programming.\n",
"\n",
"The functions we need are contained in the quadratic programming package **CVXOPT** and we need to import it together with **numpy** as"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [],
"source": [
"import numpy\n",
"import cvxopt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This will make our life much easier. You don't need t write your own optimizer.\n",
"\n",
"\n",
"\n",
"We remind ourselves about the general problem we want to solve"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\begin{align*}\n",
" &\\mathrm{min}_{x}\\hspace{0.2cm} \\frac{1}{2}\\boldsymbol{x}^T\\boldsymbol{P}\\boldsymbol{x}+\\boldsymbol{q}^T\\boldsymbol{x},\\\\ \\nonumber\n",
" &\\mathrm{subject\\hspace{0.1cm} to} \\hspace{0.2cm} \\boldsymbol{G}\\boldsymbol{x} \\preceq \\boldsymbol{h} \\wedge \\boldsymbol{A}\\boldsymbol{x}=f.\n",
"\\end{align*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let us show how to perform the optmization using a simple case. Assume we want to optimize the following problem"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\begin{align*}\n",
" &\\mathrm{min}_{x}\\hspace{0.2cm} \\frac{1}{2}x^2+5x+3y \\\\ \\nonumber\n",
" &\\mathrm{subject to} \\\\ \\nonumber\n",
" &x, y \\geq 0 \\\\ \\nonumber\n",
" &x+3y \\geq 15 \\\\ \\nonumber\n",
" &2x+5y \\leq 100 \\\\ \\nonumber\n",
" &3x+4y \\leq 80. \\\\ \\nonumber\n",
"\\end{align*}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The minimization problem can be rewritten in terms of vectors and matrices as (with $x$ and $y$ being the unknowns)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{1}{2}\\begin{bmatrix} x\\\\ y \\end{bmatrix}^T \\begin{bmatrix} 1 & 0\\\\ 0 & 0 \\end{bmatrix} \\begin{bmatrix} x \\\\ y \\end{bmatrix} + \\begin{bmatrix}3\\\\ 4 \\end{bmatrix}^T \\begin{bmatrix}x \\\\ y \\end{bmatrix}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Similarly, we can now set up the inequalities (we need to change $\\geq$ to $\\leq$ by multiplying with $-1$ on bot sides) as the following matrix-vector equation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\begin{bmatrix} -1 & 0 \\\\ 0 & -1 \\\\ -1 & -3 \\\\ 2 & 5 \\\\ 3 & 4\\end{bmatrix}\\begin{bmatrix} x \\\\ y\\end{bmatrix} \\preceq \\begin{bmatrix}0 \\\\ 0\\\\ -15 \\\\ 100 \\\\ 80\\end{bmatrix}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We have collapsed all the inequalities into a single matrix $\\boldsymbol{G}$. We see also that our matrix"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\boldsymbol{P} =\\begin{bmatrix} 1 & 0\\\\ 0 & 0 \\end{bmatrix}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"is clearly positive semi-definite (all eigenvalues larger or equal zero). \n",
"Finally, the vector $\\boldsymbol{h}$ is defined as"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\boldsymbol{h} = \\begin{bmatrix}0 \\\\ 0\\\\ -15 \\\\ 100 \\\\ 80\\end{bmatrix}.\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Since we don't have any equalities the matrix $\\boldsymbol{A}$ is set to zero\n",
"The following code solves the equations for us"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false,
"editable": true
},
"outputs": [
{
"ename": "SyntaxError",
"evalue": "invalid character in identifier (<ipython-input-5-c46dd114b2af>, line 5)",
"output_type": "error",
"traceback": [
"\u001b[0;36m File \u001b[0;32m\"<ipython-input-5-c46dd114b2af>\"\u001b[0;36m, line \u001b[0;32m5\u001b[0m\n\u001b[0;31m P = matrix(numpy.diag([1,0]), tc=d)\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid character in identifier\n"
]
}
],
"source": [
"# Import the necessary packages\n",
"import numpy\n",
"from cvxopt import matrix\n",
"from cvxopt import solvers\n",
"P = matrix(numpy.diag([1,0]), tc=d)\n",
"q = matrix(numpy.array([3,4]), tc=d)\n",
"G = matrix(numpy.array([[-1,0],[0,-1],[-1,-3],[2,5],[3,4]]), tc=d)\n",
"h = matrix(numpy.array([0,0,-15,100,80]), tc=d)\n",
"# Construct the QP, invoke solver\n",
"sol = solvers.qp(P,q,G,h)\n",
"# Extract optimal value and solution\n",
"sol[x] \n",
"sol[primal objective]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We are now ready to return to our setup of the optmization problem for a more realistic case. Introducing the **slack** parameter $C$ we have"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\frac{1}{2} \\boldsymbol{\\lambda}^T\\begin{bmatrix} y_1y_1K(\\boldsymbol{x}_1,\\boldsymbol{x}_1) & y_1y_2K(\\boldsymbol{x}_1,\\boldsymbol{x}_2) & \\dots & \\dots & y_1y_nK(\\boldsymbol{x}_1,\\boldsymbol{x}_n) \\\\\n",
"y_2y_1K(\\boldsymbol{x}_2,\\boldsymbol{x}_1) & y_2y_2K(\\boldsymbol{x}_2,\\boldsymbol{x}_2) & \\dots & \\dots & y_1y_nK(\\boldsymbol{x}_2,\\boldsymbol{x}_n) \\\\\n",
"\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n",
"\\dots & \\dots & \\dots & \\dots & \\dots \\\\\n",
"y_ny_1K(\\boldsymbol{x}_n,\\boldsymbol{x}_1) & y_ny_2K(\\boldsymbol{x}_n\\boldsymbol{x}_2) & \\dots & \\dots & y_ny_nK(\\boldsymbol{x}_n,\\boldsymbol{x}_n) \\\\\n",
"\\end{bmatrix}\\boldsymbol{\\lambda}-\\mathbb{I}\\boldsymbol{\\lambda},\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"subject to $\\boldsymbol{y}^T\\boldsymbol{\\lambda}=0$. Here we defined the vectors $\\boldsymbol{\\lambda} =[\\lambda_1,\\lambda_2,\\dots,\\lambda_n]$ and \n",
"$\\boldsymbol{y}=[y_1,y_2,\\dots,y_n]$. \n",
"With the slack constants this leads to the additional constraint $0\\leq \\lambda_i \\leq C$.\n",
"\n",
"**code will be added**"
]
}
],
"metadata": {
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}