Skip to main content

Perceptron

什么是感知机

感知机是一种二元线性分类模型,旨在寻找一个超平面(在二维空间中即为一条直线),将不同类别的实例划分到不同的区域。感知机的训练过程包括迭代地对样本进行分类,并根据分类错误的情况调整超平面的参数,使得分类准确率逐步提高。感知机是基础的机器学习算法之一,其思想和方法对神经网络等更复杂的模型也具有启发意义。


详细原理

  1. 输入向量:感知机的输入向量是一个n维向量x=(x1,x2,...,xn)x=(x_1,x_2,...,x_n),表示一个样本的各个特征值。

  2. 权值向量:感知机的权值向量也是一个n维向量w=(w1,w2,...,wn)w=(w_1,w_2,...,w_n),表示每个特征对应的权重。

  3. 偏置项:偏置项bb是一个常数,可看作是模型的截距,用于调整阈值函数的位置。

  4. 内积运算:感知机将输入向量和权值向量进行内积运算,并加上偏置项,得到输入信号z=wx+bz=w*x+b

  5. 阈值函数:将输入信号zz带入阈值函数,如符号函数sign(z)sign(z),即可得到分类结果。

  6. 损失函数:感知机使用误分类点到超平面的距离来作为损失函数,即

    L(y,z)=max(0,yz)(1)L(y,z)=max(0,-y*z) \tag{1}

    其中yy是样本的真实标签,zz是预测值。

  7. 参数更新:根据当前样本误分类情况来对权值向量ww和偏置项bb进行迭代更新。

  8. 收敛条件:当全部训练样本被正确分类或达到最大迭代次数时,感知机算法停止迭代。

感知机训练流程伪代码如下所示:

initialize w = 0 and b = 0
repeat
if yi * zi <= 0 then
w = w + yi * xi and b = b + yi
end if
until all classified correctly

总结

  • 感知机是一个二分类模型,最早的AI模型之一
  • 求解算法等价于使用批量大小为1的梯度下降
  • 要求数据集线性可分,不能拟合XOR异或等非线性问题,导致第一次AI寒冬