Python中的简单感知器

时间:2013-04-07 15:33:43

标签: python perceptron

我正在使用Python编写一个非常简单的感知器而没有阈值,我正在使用sigmoid函数,但我需要一个明确的指导方针,我对如何构造输出感到困惑。

Input = [(1,1,0), (0,1,0),(1,1,1),(0,0,1)]
weights = [0,0,0]
output = sigmoid(input)
sigmoid = 1.0/(1.0 + exp(- Input)
sigmoid_derative = sigmoid * (1.0 - sigmoid)

我没有在python中测试代码,但这只是我从讲座中学到的心灵风暴。但我不确定何时使用sigmoid_derative? 我知道激活功能将包含两部分:

  1. 加法器:newInput= w1x1 + w2x2 + w3x3
  2. sigmoid = 1.0/(1.0 + exp(- newInput)
  3. 然后我们将使用误差函数来了解权重是否准确。

    Error = 0.5 * (Target - Output)* (Target- Output)
    if Error == 0 then Break;
    else
    Update weights.
    

2 个答案:

答案 0 :(得分:0)

  1. 根本不是Python代码。据我了解,它是一种伪代码。
  2. 您的问题更多是概念问题,与Python无关或编码问题。因此,为了让您清楚地了解它,您需要首先按照您的方式计算newInput。用作激活函数的sigmoid函数为您提供最终输出(实际输出)。将此输出与目标输出进行比较,以获得用于更新权重的错误值。对于所有输入时期按期限重复该迭代,直到误差值低于合适的标记。终止算法的另一种可能方法是设置允许的最大历元数。

答案 1 :(得分:0)

我希望我的一篇关于Perceptron的文章可以帮助你弄清楚。我的文章是"人工神经网络(感知器)的直观示例,检测来自自驾车的汽车/行人"。 - 所以,基本上,这篇文章是为初学者写的,只是为了获得更好的直觉。这是链接:

https://www.spicelogic.com/Journal/Perceptron-Artificial-Neural-Networks-10

[enter image description here] 2