机器学习(9)——SVM数学基础

支持向量机涉及到数学公式和定力非常多,只有掌握了这些数学公式才能更好地理解支持向量机算法。

最优化问题

最优化问题一般是指对于某一个函数而言,求解在其指定作用域上的全局最小值问题,一般分为以下三种情况(备注:以下几种方式求出来的解都有可能是局部极小值,只有当函数是凸函数的时候,才可以得到全局最小值)

(1)无约束问题:求解方式一般求解方式梯度下降法、牛顿法、坐标轴下降法等;其中梯度下降法是用递归来逼近最小偏差的模型。我们在前面介绍过;

(2)等式约束条件:求解方式一般为拉格朗日乘子法

(3)不等式约束条件:求解方式一般为KKT条件

拉格朗日乘子式

有拉格朗日乘子法的地方,必然是一个组合优化问题。参数α被称为拉格朗日乘子,且α不等于零。

假设有一个二维的优化问题,如下:

对于上述优化问题可以转化为求下列函数的最值:

拉格朗日乘数法(Lagrange multiplier)有很直观的几何意义。

我们可以画出f的等高线图,如下图。此时,约束g=c由于只有一个自由度,因此也是图中的一条曲线(红色曲线所示)。显然地,当约束曲线g=c与某一条等高线f=d1相切时,函数f取得极值。

两曲线相切等价于两曲线在切点处拥有共线的法向量。因此可得函数f(x,y)与g(x,y)在切点处的梯度(gradient)成正比。 于是我们便可以列出方程组求解切点的坐标(x,y),进而得到函数f的极值。

在梯度为零的情况下取得最小值,既满足两个函数的导数相加等于零;满足的梯度公式如下:

用图表现出来则如上图所示。

偏导数方法列出方程

求出x,y,λ的值,代入即可得到目标函数的极值

例子:求函数:

在约束条件:

下的最小值。

代码如下:

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import math
from mpl_toolkits.mplot3d import Axes3D
# 解决中文显示问题
mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False
# 拉格朗日乘子法理解
def f(x, y):
    return x**2 / 2.0 + y**2 / 3.0 - 1

# 构建数据
X1 = np.arange(-8, 8, 0.2)
X2 = np.arange(-8, 8, 0.2)
X1, X2 = np.meshgrid(X1, X2)
Y = np.array(list(map(lambda t: f(t[0], t[1]), zip(X1.flatten(), X2.flatten()))))
Y.shape = X1.shape

# 限制条件
X3 = np.arange(-4, 4, 0.2)
X3.shape = 1,-1
X4 = np.array(list(map(lambda t: t ** 2+1, X3)))

# 画图
fig = plt.figure(facecolor='w')
ax = Axes3D(fig)
ax.plot_surface(X1, X2, Y, rstride=1, cstride=1, cmap=plt.cm.jet)
ax.plot(X3, X4 , 'ro--', linewidth=2)


ax.set_title(u'拉格朗日乘子的理解')
ax.set_xlabel('x')
ax.set_zlabel('z')
ax.set_ylabel('y')
plt.show()

输出的结果如图所示:

理解好拉格朗日乘子有助于理解后面的KKT条件。

KKT条件

继续讨论关于带等式以及不等式的约束条件的凸函数优化。任何原始问题约束条件无非最多3种,等式约束,大于号约束,小于号约束,而这三种最终通过将约束方程化简化为两类:约束方程等于0和约束方程小于0。

上述的二维优化问题,则多了一个不等式:

对于上述优化问题可以转化为求下列函数的最值:

可以转化为一下两种情况:

(1)当可行解在约束内部区域的时候,令β=0即可消去约束。

(2)对于参数β的取值而言,在等值约束中,约束函数和目标函数的梯度只要满足平

行即可,而在不等式约束中,若β≠0,则说明可行解在约束区域的边界上,这个时候可行解应该尽可能的靠近无约束情况下的解,所以在约束边界上,目标函数的负梯度方向应该远离约束区域朝无约束区域时的解,此时约束函数的梯度方向与目标函数的负梯度方向应相同;从而可以得出β>0。

此时约束条件可以写作:

在图上表示如图:

由于:

可以转化为:

这是一个对偶问题,下面简单介绍一下对偶问题的求解方法:

在优化问题中,目标函数f(X)存在多种形式,如果目标函数和约束条件都为变量的线性函数,则称问题为线性规划;如果目标函数为二次函数,则称最优化问题为二次规划;如果目标函数或者约束条件为非线性函数,则称最优化问题为非线性优化。每个线性规划问题都有一个对应的对偶问题。对偶问题具有以下几个特性

(1).对偶问题的对偶是原问题;

(2).无论原始问题是否是凸的,对偶问题都是凸优化问题

(3)对偶问题可以给出原始问题的-—个下界

(4).当满足一定条件的时候,原始问题和对偶问题的解是完美等价的.

以上问题可以转化为:


这为后面要用到的SVM求解,提供和很大的方便。

参考: 如果公式推导还是不懂,也可以参考《统计学习方法》李航-P103<学习的对偶算法>

点到超平面距离公式:

加入为二维空间可以转化为点到直线的距离,用以前学过的点到直线距离可以表示如下面所示:

假如是多维空间的超平面,则点到平面的距离可以表示为:

超平面公式:

距离公式:

感知器模型

感知器算法是最古老的分类算法之一,原理比较简单,不过模型的分类泛化能力比较弱,不过感知器模型是SⅥM、神经网络、深度学习等算法的基础。它的目的就是找到一条直线或者超平面把不同的样本进行分类。

感知器的思想很简单:比如你们班上的很多学生,可以分为男生和女生。,感知器模型就是试图找到一条直线,能够把所有的男同学和女同学分隔开,如果是高维空间中,感知器模型寻找的就是一个超平面,能够把所有的二元类别分割开。感知器模型的前提是:数据是线性可分的。如下图所示:

对于m个样本,每个样本n维特征,且属于二元类别输出,如下所示:

我们的目的是找到一个超平面:

使得一个类别样本满足:


另外一些样本满足:

则感知器模型最终可以写作:

假如分类正确:

相反分类错的的话:

可以写出损失函数:所以我们可以定义我们的损害函数为期望使分类错误的所有样本(m条样本)到超平面的距离之和最小。损失函数为:

因为此时分子和分母中都包含了θ值,当分子扩大N倍的时候,分母也会随之扩大,也就是说分子和分母之间存在倍数关系,所以可以固定分子或者分母为1然后求另一个即分子或者分母的倒数的最小化作为损失函数,简化后的损失函数为(分母为1):

直接使用梯度下降法就可以对损失函数求解,不过由于这里的m是分类错误的样本点集合,不是固定的,所以我们不能使用批量梯度下降法(BGD)求解,只能使用随机梯度下降(SGD)或者小批量梯度下降(MBGD);一般在感知器模型中使用SGD来求解。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容

  • 机器学习是做NLP和计算机视觉这类应用算法的基础,虽然现在深度学习模型大行其道,但是懂一些传统算法的原理和它们之间...
    在河之简阅读 20,397评论 4 65
  • 注:题中所指的『机器学习』不包括『深度学习』。本篇文章以理论推导为主,不涉及代码实现。 前些日子定下了未来三年左右...
    我偏笑_NSNirvana阅读 39,713评论 12 145
  • 【概述】 SVM训练分类器的方法是寻找到超平面,使正负样本在超平面的两侧(分类正确性即“分得开”),且样本到超平面...
    sealaes阅读 10,563评论 0 7
  • 本章涉及到的知识点清单:1、决策面方程2、函数间隔和几何间隔3、不等式约束条件4、SVM最优化模型的数学描述(凸二...
    PrivateEye_zzy阅读 12,961评论 3 10
  • 参考Jerrylead和july-支持向量机通俗导论 一、由逻辑回归,引申出SVM(线性可分的SVM) 1.1 逻...
    小碧小琳阅读 1,383评论 0 2