支持向量机-SVM 学习
Posted shenxiaolin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支持向量机-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的三层境界) 【这篇写的非常好】
以上是关于支持向量机-SVM 学习的主要内容,如果未能解决你的问题,请参考以下文章