神经网络训练过程:
输入--->输出:前向馈送新型号
输出--->输入:反向误差传播把输入前馈计算得到输出,
计算误差,误差反向传播修正链接权重输入层与隐藏层之间的链接权重
输入向输出传送叫前向馈送信号过程
首先看一个3*3的神经元:
首先构造输入矩阵:
权重矩阵(输入层1到隐藏层2的权重矩阵,其中,每一列代表输入层的某一个节点到下一层的所有节点的权重值,每一行代表下一层中某个节点接收到的权重,这样计算的时候就是权重矩阵点乘输入矩阵,得到的结果也是一个矩阵shape和上一个输入矩阵的一样,也是一个n*1的矩阵代表下一层的输入):
进行点乘运算可以看得一个新的和输入shape一样的矩阵(n*1)
这里折后还不是最终的隐藏层的输入,因为,我们知道,在神经元中必须要达到激活函数之后才能往下传输,这里使用sigmoid函数来描述,也就是,将上一步得到的矩阵中的每一个值都进行一下sigmoid运算才是真正的隐藏层2的输入:
所以经过第一步的运算之后盛景网络就抽象成为下图,隐藏层2的输出作为输出层的输入,然后重复之前的额操作进行权重系数和输入之间的运算就可以得到输出层三的最终输出了:
2*2的神经元
计算公式:
训练样本数据只告诉我们最终输出节点的输出应该为多少,而没有告 诉我们任何其他层节点的输出应该是多少。这是这道谜题的核心。
我们可以使用先前所看到的误差反向传播,为链接重组分割的误差。 因此,第一个隐藏层节点的误差是与这个节点前向连接所有链接中分割误 差的和。在上图中,我们得到了在权重为w1,1 的链接上的输出误差eoutput,1 的一部分,同时也得到了在权重为w1,2 的链接上第二个输出节点的输出误 差einput,1 的一部分这样每一个节点的误差都能计算出来了。
矩阵乘法计算反向传播
计算的起始点是在神经网络最终输出层中出现的误差。此时,在输出 层,神经网络只有两个节点,因此误差只有e1 和e2 。
这里也使用点乘的方式
简化公式,去掉分母,因为有没有分母没什么影响:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。