Support vectors machines :SVM支持向量机是一种,输出为2个类的分类算法(classification algorithm)模型。
classification algorithm:分类算法是一个网络结构,有输入有输出,输入的数据经过网络根据输出值大小,进行分类。SVM输出有两类,通过一个阈值控制,大于阈值就是1类,少于阈值就是2类。
supervied learning algorithm:有监督学习算法是一个种网络结构,学习指的是通过训练数据得到这个结构的过程,有监督的意识是输出结果有监督,有监督就是使得输出分别到几个预先设计好的类别中,并根据训练数据预先带答案进行检查,根据对错调整网络结构。SVM预先设计好了是两个输出类别,训练数据也都包含正确的分类。
trainning sample:训练样本:样本(样本的特征使用数据表示),带有标签,表示样本属于哪一个类别。
Goal of SVM:SVM的目标:给定一个特定的数据点(样本的特征),数据点代表的样本属于哪一个类别。
separating hyperplane:分隔超面:特定维度的样本特征空间的分隔的统称。1维样本特征空间,超面是一个点。2维样本特征空间,超面是一条线,3维样本特征空间,超面是一个面。高维度样本空间,称之为超面。关键在于其分隔性。正如广泛的说标量可以成为0阶的张量。
optimal separating hyperplane:优化分隔超面:能分隔空间的面,不一定是划分最好的面。所谓好坏,就是这个面距离两个分类中的数据点都是尽可能的远。当一个面距离1类足够的远,保证对1类的分类都是成功的,但是此时可能会导致把2类的分类错误了,那如果让这个面距离1类近了,近到2类的分类是好的,又会对1类的分类造成麻烦。所以最后是要同时考虑两类,找到一条对两边的分类都尽可能的好的面。这个面到两个类的距离是一样的,但是能等分的超面也不一定是分的最好的,我们使用边缘来描述每个类距离分隔超面的距离。
margin:边缘:空间中任意一个分隔超面固定好了后【不一定最优】,把训练数据中1类的数据都计算一下和超面的距离,找到一个最近的。把训练数据中2类的数据也计算一下和超面的距离,又找到一个最近的。目标是这两个距离是相等的,这两个距离加起来就是边缘。我们找到能使得这个边缘最大的分隔超面()
vector:向量:在一个空间中,向量由量magnitude和方向direction构成。
magniture:量:衡量长度的特性。符号,向量在空间中的长度,由空间决定,使用比如2范来衡量这个空间里的长度特性。
norm:范:是一种长度样的属性,描述向量的长度特点。有1范,2范(最常见的),0范,无穷范。
L2-norm空间中, n是空间的维度。
direction:方向:是一个向量,描述向量的方向特点,角度用表示维度上的角度值,所以向量中的项是所在维度的角度余弦值。
例如有向量u在2维空间中,方向 方向由所在维度的角度余弦值表示。
【可以发现,u向量和方向向量之间的关系,类似于等比例除了u向量在空间中的范】
计算 方向向量的范是1,这种向量被成为单位向量(unit vector),
且的方向向量 就是自己这个u的方向向量。
dot product inner product:点积、内积:向量空间中两个向量的点积等于向量空间范积乘以夹角余弦。
比如:x的角大为和y的角小一些为
向量的点乘就是每个维度的积求和点积的代数定义。
为什么用点积呢?就是因为我们在向量中间点了一个点。还有表现方式为:
线性代数中的内积(inner product)
标量积(scalar product)因为我们得到的是一个标量(实数)
向量的正交映射 (orthogonal projection) Z
向量的正交映射等于被映射向量的方向单元向量,乘以被映射向量的方向单元向量点乘映射向量的点积。
在向量空间中,一个向量 到沿着一个向量的线之间的最短距离就是正交映射向量 减去原向量的量,不需要知道方向。
向量空间中和一个向量的点积为0的情况,在本身范不为零是,角度为90,这些向量组成一个虚拟的线,仅仅用来区分数据点。
在二维向量空间【举例子】中设定一个向量,和这个向量正交的是一个特定方向的向量,这些向量在二维形成了一条线(概念上的线)。向量就是这个线的法向量(normal vector)
空间中的点A到这个线的距离,可以看做到的投影向量P的范
训练就是通过调整参数,影响法向量,进而影响正交的超面。
超面的空间向量条件
二维空间但是约束条件使用三维的向量,如果正常使用二维向量
满足约束的超面是:向量h,投射到向量w后的向量z的范和w的范的积值为-b的,这些向量h组成的空间中虚拟的线H。
我来找一个,由无穷个满足特定条件的在空间中组成的一条线。0超面。
就是超面上的向量和特定向量的内积为特定值,所以当特定值变化时候,这个虚拟的超面在空间中平行移动,法向量控制其不能旋转。
现在数据中的向量经过计算之后,也会得到一个投射到特定后的向量z的范和w的范的积加上偏移b,结果是一个实数有大有小,数据中的A类的向量,,这个值和计算出的值之间的差,就是空间上正交投射到超面的距离。
映射到的范被约束
映射到的范减去映射到的范就是数据点到超面的距离。
汇聚一下,可以这样看。
训练数据点在法向量 上点积加偏移后,大于等于实数D。
空间中我竖起两个超面,A超面和B超面之间的空间范距离为m,叫做边缘margin。
这个超面间的距离向量K,首先是正交于两个超面,也就是和法向量方向相同,空间范是m。有了方向和量的定义,就有了
A超面和B超面上数据点,之间的差为k ,推导得到 D是一个固定的常数,目标是要尽可能的小。
机器的参数,使得尽可能小。
限制条件是 在N个训练样本中训练。
数学求解析解的方法
凸函数:convex function:如果你能在函数的两个点之间绘制一条线,而不穿过函数。
凸集合:convex set:指区域,对于区域中的每一对点,每一个连接点对的直线段上的点在这个区域内。
对偶性:Duality:数学优化理论中,对偶意味着优化问题可以被从两个角度的任意一个看,主要问题或者对偶问题(对偶原则)。对偶问题的解为了主要问题的解提供了下限(lower bound)
如果你有部分有序集合K(可被用来比较的),下限是K的一个元素,小于等于S的每一个元素。infimum(最佳下限)
如果你有一个最小化问题,你可以把它看做一个最大化问题。当你找到这个问题的最大化了,他将会是最小化问题的解的下限。也就是说,它将少于或者等于最小化问题的最小化。
拉格朗日乘法(lagrange multipliers):L乘方法是策略,找到函数的局部最大和最小,受到等式限制。
等高线图(contour lines):等高线图是一个方法,视觉化三维函数到2维。:关键点:线上的每一个点,函数返回相同的值。更深的区域,函数的值更小。
函数的梯度(gradient)被看做是一个向量场(vector field)箭头指向函数增加的方向。
结果我们能在等高线图上容易的绘制梯度向量,他们垂直于等高线,他们应该指向函数增加的方向。
拉格朗日:找到受限函数的最小值,我们需要看或者指出 ,梯度之间的关系。系数就是lagrange multiplier。实际上,尽管两个梯度向量指向相同方向,他们可能被没有相同长度,所有必须有一些系数来做转换。
这个是两个函数的差。
就是加上系数后的梯度差。找到=0的点,就是两个梯度平行,也就是目标函数的最小值。