BP反向传播

笔记在pad中

接下来,我们就将问题慢慢复杂化,一步一步接近最终的神经网络中的反向传播!

前文中,我们利用的是一个神经元,这里我们讲问题变复杂,变成两个神经元,并且是有嵌套关系的两个神经元!如下图:


 

将输入值相加然后输出到第二个神经元,同时第二个神经元还接受输入c,并将两个值相乘,最后输出!
这个简单网络的正向传播很容易写出来:

def product(x, y):
    return x * y


def addition(x, y):
    return x + y


def forward(a, b, c):
    d = addition(a, b)
    return product(d, c)


print(forward(5, -6, 7))
现在开始我们的训练吧!
目标和之前一样,就是改变输入的a,b,c三个值,使函数f的值增加!之后我们就会发现,在这个过程中,我们会慢慢接触到反向传播的核心思想!

    误差反向传播算法简称反向传播算法(即BP算法)。使用反向传播算法的多层感知器又称为BP神经网络。BP算法是一个迭代算法,

它的基本思想为:(1)先计算每一层的状态和激活值,直到最后一层(即信号是前向传播的);

(2)计算每一层的误差,误差的计算过程是从最后一层向前推进的(这就是反向传播算法名字的由来);

(3)更新参数(目标是误差变小)。迭代前面两个步骤,直到满足停止准则(比如相邻两次迭代的误差的差别很小)。

原文地址:https://www.cnblogs.com/h694879357/p/13353846.html