支持向量机-SVM 学习

一 支持向量机(SVM)

一.1 符号定义

标签 y 不再取 0 或 1,而是: y∈{-1, 1}

定义函数:

向量,没有第个维度,为截距,预测函数定义为:

一.2 函数边距与几何边距

一.2.1 函数边距

样本个体:

全体:

一.2.2 几何边距

样本个体:

全体:

 

一.2.3 关系

函数边距与几何边距都是对预测置信度的度量,这个边距越大,说明预测样本离着分界线越远,我们预测的结果也就更加可靠。

一.3 优化目标

假设样本是线性可分的,优化目标为

一.4 广义拉格朗日乘数法

带约束的优化为:

转化为:

原始问题:

记量为:

原始问题为:

对偶问题:

记量为:

 

对偶问题为:

对于原始问题和对偶问题,以下关系恒成立:

KKT条件:

KKT条件满足时,对偶问题和原始问题有着相同的解。

一.5 最优间隔分类器

SVM的拉格朗日乘数法:

原始问题:

对偶问题:

根据KKT条件:

对关于求梯度,令之为0:

对关于求导,令之为0:

 

带回,得:

因此SVM的对偶问题为:

将对偶解带入原始问题,对所有的不等于0对应的系数求导,令其等于0,得:

因为不为的项0,即该点为支持向量。理想情况分割线两侧各有一个最近的点,且我们也仅在两侧各取一个点。因此,对于的,两侧同时乘,累加两个式子得:

 

即:

上述算法称为最优间隔分类器。

一.6 SVM核

将中的内积替换为,称为核。核的合法取法有很多,如:

不同的核将和映射到了不同的空间之中,一组低维的向量投射至高维通常更容易划分。

一.7 正则化与软边距

对于一些线性不可分的情况,或者为了抵制噪音的影响,使用软边距进行处理。为每组数据加入一个允许误差,同时在优化目标中加入惩罚项SVM的原始优化问题变为:

拉格朗日乘数法写作:

根据KKT条件,令,得:

令,得:

令,得:

同样求对偶问题得到:

根据KKT条件,取值的关系如下:

注意,不再是原始SVM的取值。

二 卷积神经网络

二.1 卷积

卷积是一种函数,卷积可以看做是在函数的每个一点取一个邻域,在这个邻域中与另一个函数的对称形式进行点积(逐点相乘再相加)。

二.1.1 连续形式的卷积定义

一维:

二维:

二.1.2 离散形式的卷积定义

一维:

二维:

二.2 池化

思路:

从微元的角度考虑,对于矩阵或者是更广义的张量中一个小区域,由于它们是经过同样的卷积处理得到的,因此在这个小区域中,每一点的特征是有相互关系的,往往是有着相近似的含义。为了减少数据量,我们无需知道每一个特征,只需要保留他们的统计量即可,例如最大值或者平均值。

以二维矩阵的最大池化为例,每个窗口为,其形式上可以写作是:

Ref:http://ufldl.stanford.edu/wiki/index.php/%E6%B1%A0%E5%8C%96 

二.3 Dropout

在训练时,一方面为了加快训练速度,另一方面为了避免过拟合,对于每次训练,随机的切断一些神经元之间的联系,也就是只训练神经网络的一部分。在预测时,不进行Dropout,网络所有的部分都参与预测。

二.4 ReLu函数

最初使用的激活函数是logistics函数,也就是Sigmoid函数:

这个函数在深度网络的负反馈中,会发生梯度逐层减弱消失的现象。因此改用ReLu函数以克服梯度消失问题,加快训练速度。

原始的ReLu函数是:

之后提出了一些更平滑的函数,如:

 

Ref: http://blog.csdn.net/lg1259156776/article/details/48379321 

Ref: http://blog.csdn.net/stdcoutzyx/article/details/51419768 

二.5 反向传播

神经网络的训练可以分为两个过程,第一个过程是正向过程,从数据输入端经过网络处理到输出端;第二个过程梯度的反向传播过程,能量函数(误差函数)的梯度从输出端逐层返回到最上层,对网络参数进行更新。反向传播的梯度在数学本质上是函数链式求导法则逐层的应用。

如下图:

 

记误差函数为,对的梯度可以写作:

如果激活函数为,,。那么可以进一步写作

Ref: http://www.cnblogs.com/charlotte77/p/5629865.html 

【Reference】

1. 支持向量机通俗导论(理解SVM的三层境界) 【这篇写的非常好】

猜你喜欢

转载自www.cnblogs.com/shenxiaolin/p/9174897.html