理解感知器训练算法

Understanding Perceptron training algorithm

以下文字来自 Hal Daumé III 的 "A Course in Machine Learning" 在线教科书(第 41 页)。

据我所知,D = 输入向量的大小。

(1) 这是什么Perceptron算法? Binary/Multi-class? Online/Offline?

(2) 这里的y是什么? Bias/weight/Sample/class_label?

(3) 测试 ya<=0 更新权重的基本原理是什么?


编辑。

y 是 class_label.

您问题的答案:

1 - 这是一个二进制感知器算法,处理离线批处理。

2 - 如您所写 - Y 是标签向量。每个标签可以是 1 或 -1。

3 - 测试y*a<=0 的合理性是检查感知器是否正确分类了某个样本。如果不是 - 感知器的权重被修改。

关于第三个问题

感知器算法背后的思想如下:

一个。我们迭代样本 MaxIter 次。

b。感知器通过将每个样本与权重向量 W 相乘并添加偏差 b 来对每个样本进行分类。结果赋值给变量a.

c。每个样本的预测可以是 1 或 -1。它由符号(a)计算。在这个阶段,我们检查分类的正确性。

如果 y*a>0 表示 y=sign(a)。换句话说,预测的分类是正确的,我们继续下一个样本。

如果 y*a<=0,则意味着感知器无法预测正确的标签。在这种情况下,算法会更改感知器的权重,使其与我们未能分类的样本更加兼容。