-
感知机(perceptron)的输入空间是 X⊆Rn,输出空间是 Y={+1,−1},输入空间到输出空间的函数是:
f(x)=sign(w⋅x+b)
其中,sign 是符号函数:
sign(x)={+1,−1,x≥0x<0
-
如果存在一个超平面可以将数据的正类负类分开,那么数据被称为线性可分的。
-
感知机只能处理线性可分的数据。
-
感知机的损失函数,是所有错误分类的点到超平面的距离之和:
−∥w∥1xi∈M∑yi(w⋅xi+b)
因为 ∥w∥1 是常数,所以可以忽略掉它得到最终的损失函数:
L(w,b)=−xi∈M∑yi(w⋅xi+b)
使用此函数而不是误分类数作为代价函数的好处是,这个函数可导,便于计算。
-
感知机学习算法的原始形式:
-
选取初值 w0,b0。
-
在训练集中选取数据 (xi,yi)。
-
如果 yi(w⋅xi+b)≤0:
w←w+ηyixi
b←b+ηyi
-
转至 2,直至训练集中没有误分类点。
-
可以证明,算法是收敛的,也就是经过有限次迭代,一定能将线性可分的数据完全正确分类。但是解不唯一。证明方法留待以后看。
-
感知机存在一个对偶解法,使用对偶解法的原因可以查看这个知乎帖子。
-
感知机模型的对偶解法还需要仔细理解,以后补充。