我用Python编写了这个简单的感知器算法
function
检查 w*x>=0
是否成立。我有一个包含4个元素的训练集,第一个元素是 xi
向量,第二个是预期结果。第一个元素 xi 是偏置。循环会持续更新 wi
1000次迭代。事实上,有时会收敛,有时不会收敛。
一些问题:
- 这个算法看起来正确吗?
- 为了确保算法完美收敛,我需要放多少训练样本?
- 为什么平均来说循环会完成训练集的4次迭代?
回答:
- 我认为你需要翻转更新的符号。否则,你会远离最小值。
- 这取决于
w
的初始值、学习率、训练样本的顺序等。你无法对收敛做出任何确定的声明。 - 看起来你编辑了你的代码,这个问题已经不再相关了。