神经网络学习:从基础到多分类应用
1. 反向传播算法详解
在神经网络中,权重的调整是优化网络性能的关键。通常,图中不会显示实际的权重,仅展示调整值(delta)。通过观察权重调整的幅度和方向,我们能获得一些直观的理解。以神经元 G 为例,偏置项和输入 x1 的权重调整幅度比输入 x2 的权重大一个数量级(偏置和 x1 权重的调整值分别为 0.0066 和 -0.0060,而 x2 权重的调整值为 0.00066)。这是因为偏置输入和 x1 的幅度大于 x2,所以这两个权重是更重要的调节因素。
当网络输出小于期望输出时,我们希望增加网络的输出。输入值的符号和权重的调整方向有关,例如,偏置权重增加,而对应输入 x1 的权重减小,因为 x1 输入为负值。
计算整个梯度所需的计算量与一次前向传播所需的计算量大致相同。网络中每个神经元有一个导数,每个权重有一次乘法。与在描述反向传播算法之前设想的使用暴力方法数值计算梯度所需的 N + 1 次前向传播相比,反向传播算法是一种高效的计算梯度的方法。
对于每层有多个神经元的网络,反向传播的唯一区别在于计算神经元的误差项时,需要将所有后续神经元的加权误差相加,而不是像之前的简单网络那样只考虑单个加权误差项。
2. 编程示例:学习异或(XOR)函数
现在我们来验证多层前馈网络的学习算法在实际中的效果。我们使用该算法解决第 1 章中提出的 XOR 问题,并使用之前手动求解 XOR 问题时使用的三神经元网络。
以下是实现该网络的代码:
import numpy as np
np.rand
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



