【发布时间】:2012-07-03 14:43:14
【问题描述】:
我正在尝试实现感知器算法,但我无法弄清楚以下几点。
- 迭代次数的理想值应该是多少
- 此算法是否适用于大量数据?
- 阈值会随着迭代而改变吗?
- 如果是,它对最终输出有什么影响?
【问题讨论】:
标签: algorithm machine-learning neural-network perceptron
我正在尝试实现感知器算法,但我无法弄清楚以下几点。
【问题讨论】:
标签: algorithm machine-learning neural-network perceptron
感知器不是一个特定的算法,它是一组算法的名称。这些算法之间有两个主要区别。
1.整合并触发规则
设输入向量为x,权重向量为w,阈值为t,输出值为P(x)。有多种函数可以计算 P(x):
P(x) = 1(如果 w * x>=t)或 0(否则)P(x) = w * x(如果 w * x>=t)或 0(否则)P(x) = t(如果w * x>=t)或w * x(如果0w * x987654343@ @) 或 0(否则)P(x) = 1 / 1+e^(w * x)还有很多其他的。 所以很难说阈值对最终输出有什么影响,因为这取决于您使用的集成和触发功能。
2。学习规律
感知器的学习规则也是多种多样的。最简单常用的一种是
w -> w+ a * x* (D(x)- P(x))
其中a 是学习步骤的大小,D(x) 是x 的预期输出。 所以也很难说理想的迭代值应该是多少,因为这取决于a 的值以及你有多少训练样本。
因此,阈值会随着迭代而变化吗? 这也取决于。上面简单通用的学习规则在训练时不会修改阈值,但有一些其他学习规则会修改它。
顺便说一句,您还问这种算法是否适合大量数据? 衡量分类器对特定数据集的适用性的主要指标是数据集的线性可分性,而不是数据集的规模。 请记住,单层对于非线性可分的数据集,感知器的性能非常差。 数据集的规模并不重要。
【讨论】: