版权声明:来源请注明出处 https://blog.csdn.net/qq_40196164/article/details/83007061
使用3层的神经网络(包含输入层和输出层)来演示是如何工作的。
网络:input 3个节点;hidden 3个节点;output 3个节点
参数:input:矩阵是3*1的矩阵;为3*3的矩阵;为3*3的矩阵;output:矩阵为3*1的矩阵
计算hidden层节点的矩阵:
计算output层节点的输出:
如何根据梯度下降法来调节权重:
其中: 是更新后的权重; 是更新前的权重;是学习率;是斜率代表误差值和权重的比值
其中:是output层第k个节点的误差值,,是目标值,是实际值
是output层输出的实际值
是前一层的输出的转置
误差与权重的比值(也叫梯度)推导
- 误差值 = 目标值 - 实际值,有下面三种选择
- 误差值 = 目标值 - 实际值
- 误差值 = |目标值 - 实际值|
- 误差值 = (目标值 - 实际值)的平方,一般我们选择这个,因为使用平方误差,我们可以很容易的使用代数计算出梯度下降的斜率;误差函数平滑连续,这使得梯度下降法很好的发挥了作用-没有间断,也没有突然地跳跃;越接近最小值,梯度越小这意味着,如果我们使用了这个函数调节步长,超调的风险就会变得较小。
是output层第k个节点的误差值,,是目标值,是实际值
由于节点的输出只取决于所连接的链接,就是取决于链接权重,这意味着误差函数根本就不需要对所有输出节点求和,便得到下式: 是一个常数
其中: 也就是3层神经网络的输出值
所以: