0

我正在编写一个没有阈值的 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?我了解激活功能将包含 2 个部分:

  1. 加法器: newInput= w1x1 + w2x2 + w3x3
  2. sigmoid = 1.0/(1.0 + exp(- newInput)

然后我们将使用误差函数来了解权重是否准确。

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

2 回答 2

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

我希望我关于 Perceptron 的一篇文章可以帮助您了解清楚。我的文章是“人工神经网络(感知器)检测自动驾驶汽车中的汽车/行人的直观示例”。——所以,基本上,这篇文章是为新手写的,只是为了获得更好的直觉。链接在这里:

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

[ 在此处输入图像描述] 2

于 2015-10-28T07:31:26.417 回答