【问题标题】:Doubts regarding this pseudocode for the perceptron algorithm对感知器算法的这个伪代码的怀疑
【发布时间】:2018-03-04 16:47:39
【问题描述】:

我正在尝试实现上面的感知器算法。但我有两个问题:

  1. 为什么我们只更新一次w (weight) 变量?每个Xi 不应该有单独的w 变量吗?另外,不确定w = 0d 在初始化中的数学含义。

  2. 数学意义是什么

    yi(< xi,w >+b)
    

我知道括号内的含义是什么,但不确定yi() 部分。

【问题讨论】:

  • 表达式 可以是向量 xi 和 w 之间的点积。 yi(+b) 可能表示 yi 和 (+b) 之间的乘积。
  • 请尝试为您的问题制定描述性标题。

标签: algorithm machine-learning perceptron


【解决方案1】:

(2) 你可以把 'yi' 想象成一个依赖于 w、xi 和 b 的函数。 举个简单的例子,y 是分隔两个不同类的线。在这种情况下,y 可以表示为 y = wx+b。现在,如果你使用 w = 0,x = 1 和 b = 0 然后 y = 0。

对于您给定的算法,当 y 的输出小于或等于 0 时,您需要更新您的权重 w

因此,如果您仔细观察,您不会更新 w 一次,因为它位于 if 语句中,而该语句位于 for 循环中。

对于您的算法,对于 t 的每次迭代,您将根据 n 个输入 x 获得 n 个输出 y。这里'i'用于索引输入为xi和输出为yi。

所以,长话短说,在 n 个输入 x 中,您只需要在相应输入 x 的输出 y 小于时更新 w大于或等于零(对于 t 的每次迭代)。

(1) 我已经提到w 不会更新一次。

假设您知道任何大于 (w 来执行此操作。

这里w表示为一个向量,初始化为零。

【讨论】:

    猜你喜欢
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多