今天讲到的是机器学习经典算法中比较简单的一种——感知机(Perceptron),用于二值分类的线性模型,寻找输入空间中将实例划分为正负两类的分离超平面,属于判别模型。
根据三要素顺序介绍感知机:
1、模型
假设输入空间
X∈Rn
,输出空间为
y∈Y={−1,1}
(刚刚接触机器学习发现此处为什么设置为-1和1,没有别的意思,就是区分两个不同的类而已,也可以改成别的两个不同的数),感知器模型:
f(x)=sign(w⋅x+b)
感知机是线性分类模型,也是判别模型,故假设空间
H
中定义为输入空间中所有的线性模型,即
2、学习策略
感知机是线性模型,要保证训练数据
T
线性可分,才能保证存在某个超平面
输入空间中任意一点
x0
到超平面
S
的距离为:
L(w,b)=−∑xi∈Myi(w⋅xi+b)
学习策略即在假设空间
H
中选取损失函数最小的模型参数
3、算法
对于求解感知机最小化损失函数,采用随机梯度下降法:
目标函数:
minw,bL(w,b)=−∑xi∈Myi(w⋅xi+b)
M为误分类点集合
分别对损失函数
L
(w,b)求参数
▽w=−∑xi∈Myixi
▽b=−∑xi∈Myi
随机选取一个误分点
(xi,yi)
,对
w,b
进行更新:
w←w+ηyixi
b←b+ηyi
其中
η(0<η<=1)
为步长,又叫做学习率(举个例子,你去目的地选择步行,高个子的人步子大,走的比矮个子步幅小的人要快一些)
最后,停止的条件是什么呢?不可能一直这么走下去吧,算法的收敛性告诉我们需要进行多少次迭代可以得到将训练样本完全正确分开的分离超平面,本章进行了证明,Novikoff的两个条件就不在列出。
感知机算是最简单的机器学习算法了,设计的知识非常基础,其中随机梯度下降法在以后的算法学习还会经常用到。
习题
有正实例点
x1=(3,3)T,x2=(4,3)T
,负实例点为
x3=(1,1)T
,求解感知机模型。
答案:
f(x)=sign(x(1)+x(2)−3)