机器学习算法 - 感知机
1感知机的模型
感知机是监督学习算法,样本的特征是输入,输出是Y{1,-1},通过对样本输入输出的映射学习,我们可以得到一个函数
f(x) = sign(w * x + b)
其中:w是权值向量, b是偏置 , W * X 表示W 和 X 做内积 ,sign(X) 当 X大于等于0 为 1 ,否则为 -1
感知机是线性分类模型,是属于判别模型。感知机确定了一个平面,把空间分为两部分即数据分为两个类别
2感知机的策略
假设训练数据集是线性可分的,感知机学习的目标是求得一个分离超平面,从而能将训练集正负样本完全正确分开,
为了找到这样的超平面即确定(W,b)需要一个学习策略:即定义一个(经验)损失函数并将损失函数极小化。
损失函数很自然的选择是误分类点的总数,但是这样损失函数不可导,不好做优化,所以损失函数的另一个选择是误分类点到分离超平面的总距离.
点X0到分割超平面的距离如下:
D0 = |W * X0 + b |/ ||W||
其中: ||W|| 是W的L2范数
对于一般的误分类点都有 -1 * Y * (W * X + b)> 0 , 因为只有当分类Y和 (W * X + b)符号相反才表示其为误分类点,所以取个负号值 -1 * Y * (W * X + b)> 0,
所以误分类点到平面的距离是
-y0 *(W * X0 + b )/ ||W||
损失函数(所有误分类点到平面的距离)为 ∑i€M -yi *(W * Xi + b )/ ||W|| ,其中M为误分类点的集合。
因为对于所有的样本||W|| 是一个定值 ,所以我们的损失函数可以化简为 ∑i€M -yi *(W * Xi + b ) ,其中M为误分类点的集合。这就是感知机的经验风险函数。
分析损失函数: 首先损失函数肯定是非负的,如果没有误分类点,损失函数为0,误分类点越少,误分类点离平面越近,损失函数就越小。
综上所述:感知机的学习策略是在假设空间中选取使损失函数最小的模型参数 W,b
3感知机的算法
感知机的学习问题转化为求解损失函数式的最优化问题,最优化的方法是随机梯度下降算法。
感知机算法分为原始形式和对偶形式:
原始形式:
输入: 训练数据集T = {(xi,yi), 1< i < n}, Xi 表示特征, yi 表示标记{-1,1}, 学习率: μ ( 0<μ <= 1 )
输出: W,b 感知机模型 F(x) = sign(W * X + b)
1) 选取初值W0 , X0, 随机取(可以取 W0 = X0 = 0)
2) 在训练集中选取数据(Xi,Yi)
3) 如果 Yi * (W * Xi + b) <= 0
更新W : W = W + μ *YiXi
b = b + μ *Yi
4) 转至 2)直到训练集中没有误分类点
当一个样本点被误分类,即位于分离超平面的错误一侧时,则调整参数 W,b来减少该误分类点到平面的距离,直到 为 0
对偶形式:
对偶想法的基本想法: 将W和 b 表示为样本实例Xi 和标记Yi的线性组合的形式,假设W0 = b0 = 0,对误分类点通过更新W,b,
设修改了n次,则w和 b的增量分别是αi =niμ 这样W,b可表示为: W = ∑αiyixi B = ∑αiyi
输入: 训练数据集T = {(xi,yi), 1< i < n}, Xi 表示特征, yi 表示标记{-1,1}, 学习率: μ ( 0<μ <= 1 )
输出: α,b 感知机模型 F(x) = sign(∑αiyixi * X + b) 其中α = (α1,α2...αn)T
1) 选取初值W0 = X0 = 0
2) 在训练集中选取数据(Xi,Yi)
3) 如果 Yi * (∑αjyjxj * Xi + b) <= 0
更新α : α = α + μ
b = b + μ *Yi
4) 转至 2)直到训练集中没有误分类点
对偶形式中训练实例以内积形式出现,为了方便可以预先将训练数据集的内积计算出来,并且以矩阵存储,这就是Gram矩阵。

浙公网安备 33010602011771号