我是自学机器学习,从现在开始写的博客是为了加深自己对于机器学习的理解 同时也是为了以后查看方便,下面就进入正题了。
1. 感知机概念:
感知机是一个二类分布的线性模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。
感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。
感知机学习具有简单而易于实现的优点,分为原始形式和对偶形式。感知机预测是用学习得到的感知机模型对新的输入实例进行分类。感知机1957年由Rosenblatt提出,是神经网络与支持向量机的基础。
由于在李航的统计学习方法一书中认为 模型、策略、算法是统计学习的三要素,故而对于感知机的学习也是从模型、策略、算法三个方面来讲的。
2. 感知机模型
假设输入空间为n维向量空间,输出空间是{+1,-1} 由输入空间到输出空间需要通过如下函数的转换:
f(x) = sign(w * x + b)
sign函数也叫符号函数 当参数大于0时 值为+1,当参数小于0时 值为-1,当参数等于0时 值为0。(需要注意一点是,统计学习方法这本书中将参数等于0时,结果也归为+1)
感知机是一种线性分类模型,属于判别模型。
例如上图,在二维空间中f(x) = sign(w * x + b) 中w * x + b 代表一维的一条线,在三维空间中w * x + b 代表二维的一个平面,在四维空间中w * x + b 代表三维的一个超平面 依次类推.....
3. 感知机学习策略:
3.1 数据可分性(概念):
对于给定的数据集T = {(x1,y1),(x2,y2),(x3,y3)....(xn,yn)} 其中x i 为 Rn n维向量 y i = {-1,+1} i = 1,2,3.....n,如果存在超平面S对于所有的正实例y i = +1 都有 w * x + b > 0 对于所有负实例y i = -1 都有w * x + b < 0 则称数据集T是线性可分的,否则称数据集T是线性不可分。
3.2 损失函数
输入空间Rn 中任意一点x0到超平面S的距离为:
1/||w|| * |w * x + b| (||w||是w的L2范数 等于 根号下w1平方+w2平方+....+wn平方)
对于误分类函数必有 - y i (w * x i +b) >0 (分析:由上图可知当w * x i +b >0 时 对应的 y i 正确值应该>0, 同样当w * x i +b <0 时 对应的 y i 正确值应该<0 故 - y i (w * x i +b) >0 时 必定是函数被误分类了)
由于距离是个正数 故误分类点到超平面的距离为:
-1/||w|| * y i (w * xi + b)
故所有误分类点到超平面的总距离为
-1/||w|| * ∑ y i (w * xi + b) (假设超平面S的所有误分类点集合为M , x i 属于M)
当不考虑-1/||w||的时候,我们就得到了损失函数
L(w,b) = ∑ y i (w * xi + b) (假设超平面S的所有误分类点集合为M , x i 属于M)
让损失函数最小化是我们的目标