人工神经网络:多层感知器订购/处理

时间:2014-11-19 16:09:09

标签: artificial-intelligence

我目前正在学习模式识别。我有7年的编程背景,所以,我认为像程序员一样。

关于人工神经网络的文档告诉我什么订单一切都被处理,或者至少没有说清楚。这很烦人,因为我不知道如何编码公式。

我找到了一个很好的GIF,我希望是正确的。有人可以给我一个人工神经网络反向传播的一步一步过程,例如2个输入,1个隐藏层,3个节点,2个输出使用sigmoid。

这是gif

2 个答案:

答案 0 :(得分:1)

正如埃米尔所说,你从输入到输出逐层进行,然后再逐层向后传播错误。

根据你所说的,我希望你正在努力使'#34;面向对象"每个神经元都是对象的实现。但这并不是最快最简单的方法。最常见的实现是由Matrix操作完成的 每个层由单个Matrix描述(每行包含一个神经元加上阈值的权重)

这是matlab代码应该做的诀窍:

output_hidden = logsig( hidden_layer * [inputs ; 1] );

inputs是图层输入的列向量

hidden_layer是权重矩阵加一行,用于描述隐藏层中的阈值

output_hidden再次是图层中所有神经元输出的列向量,可用作下一层的输入

logsig是逐个对矢量的所有成员进行sigmoid变换的函数

[inputs ; 1]在列向量inputs的末尾创建一个新的向量1,因为你需要"虚拟输入"阈值乘以。

如果您考虑一下,您会看到矩阵乘法将对所有输入乘以权重与输出进行精确求和,您还会看到它与您执行所有操作的顺序无关。为了用任何其他语言实现它,只需找到自己很好的线性代数库。实现反向传播有点棘手,你需要进行一些矩阵转置(例如,通过对角线翻转矩阵)

答案 1 :(得分:0)

正如您在gif中看到的那样,每层处理。由于图层中没有连接,因此图层中的处理顺序无关紧要。使用ANN(分类)从输入层到隐藏层到输出层。训练(使用反向传播)从输出层返回到输入层。