【问题标题】:Number of Passes for Perceptron感知器的通过次数
【发布时间】:2012-07-03 14:43:14
【问题描述】:

我正在尝试实现感知器算法,但我无法弄清楚以下几点。

  • 迭代次数的理想值应该是多少
  • 此算法是否适用于大量数据?
  • 阈值会随着迭代而改变吗?
  • 如果是,它对最终输出有什么影响?

【问题讨论】:

    标签: algorithm machine-learning neural-network perceptron


    【解决方案1】:

    感知器不是一个特定的算法,它是一组算法的名称。这些算法之间有两个主要区别。

    1.整合并触发规则

    设输入向量为x,权重向量为w,阈值为t,输出值为P(x)。有多种函数可以计算 P(x):

    1. 二进制:P(x) = 1(如果 w * x>=t)或 0(否则)
    2. 半线性:P(x) = w * x(如果 w * x>=t)或 0(否则)
    3. 硬限制:P(x) = t(如果w * x>=t)或w * x(如果0w * x987654343@ @) 或 0(否则)
    4. Sigmoid:P(x) = 1 / 1+e^(w * x)

    还有很多其他的。 所以很难说阈值对最终输出有什么影响,因为这取决于您使用的集成和触发功能。

    2。学习规律

    感知器的学习规则也是多种多样的。最简单常用的一种是

    w -> w+ a * x* (D(x)- P(x))

    其中a 是学习步骤的大小,D(x)x 的预期输出。 所以也很难说理想的迭代值应该是多少,因为这取决于a 的值以及你有多少训练样本。

    因此,阈值会随着迭代而变化吗? 这也取决于。上面简单通用的学习规则在训练时不会修改阈值,但有一些其他学习规则会修改它。

    顺便说一句,您还问这种算法是否适合大量数据? 衡量分类器对特定数据集的适用性的主要指标是数据集的线性可分性,而不是数据集的规模。 请记住,单层对于非线性可分的数据集,感知器的性能非常差。 数据集的规模并不重要。

    【讨论】:

    • 有什么东西可以用来粗略估计通过次数吗?我正在使用这个规则 1.binary: P(x) = 1 (if w * x>=t) or 0 (otherwise) ..我可以为单个节点指定权重吗?
    • 不,我们甚至没有客观的方法来确定步长。这取决于实验和经验。这是人工神经网络领域的一个关键问题。但总的来说 - 1)样本越多,步长越小; 2)步长越大,训练通过的次数越少。
    • hmmmmm ok..你能给我一个简单的例子,清楚地解释权重和传球,这将是很大的帮助......如果没有,将继续尝试
    • 例如,考虑一个有 2 个输入和阈值为 0.5 的感知器。如果您希望它充当 AND 门,那么 2 个权重会说 0.3 。否则,如果您希望它充当 OR 门,那么 2 个权重会说 0.8 。
    • 权重不​​是人定的,是算法自己学习的。这就是我们将 ANN 称为 学习 算法的原因。只需将它们设置为 0 或随机数,并使用样本将它们训练为正确的值。以上就是ANN的基础知识了,大家不妨多看看教科书吧。
    猜你喜欢
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    • 2015-02-18
    • 2015-08-14
    • 1970-01-01
    相关资源
    最近更新 更多