神经元、神经网络
神经元 Neuron ),又名感知机( Perceptron ),在模型结构上与 逻辑回归 一致,这里以一个二维输入量的例子对其进行进一步 的解释: 假设模型的输 入向 量是一 维特征向 (x1,x2). 则单神 经元的模型结构 如下图所示:
其中,蓝圈 内的 部分可以看作线性的加权求和 再加 一个常 数偏操作,最终得到输入如下 (X 1 . W1) + (X2 . W2) + b
图中的蓝圈可以看作激活函数,它的主要作用是把一个无界输入映射到 个规范的、有界的值域上 常用的激活函数除了 . sigmoid 函数, 还包括 tanh ReLU 单神经元由于受到简单结构的限制,拟合能力不强, 因此在解决复杂问题时经常会用多神经元组成一个网络,使之具备拟合任意复杂函数的能力,这就是我们常说的神经网络。
神经网络是通过将多个神经元以某种方式连接起来形成的网络,神经网络的训练方法就是基于链式法则的梯度反向传播。
前向传播和反向传播
前向传播(Forward Propagation)和反向传播(Backpropagation)是神经网络训练中的两个核心过程。它们在神经网络学习、权重更新和误差修正方面扮演关键角色。以下是二者的主要区别:
-
前向传播(Forward Propagation):
- 输入信号(x1, x2)被赋予相应的权重(w1-w4)并加上偏差(b1),然后传递到隐藏层的节点(h1, h2)。
- 在隐藏层节点,这些值通常会通过激活函数(如sigmoid或ReLU)进行非线性转换。
- 转换后的值再次被赋予权重(w5-w8)并加上偏差(b2),然后传递到输出层的节点(o1, o2)。
- 输出层通常也会应用一个激活函数,以得到最终的预测输出。
-
计算误差(Error Calculation):
- 输出层的预测值与实际值(这里看起来像是0.01和0.99)比较,以计算误差。
- 误差通常通过误差函数(如均方误差MSE或交叉熵)计算。
-
反向传播(Backpropagation):
- 误差被用来计算每个输出节点对于总误差的贡献,这是通过误差对输出节点的预测的偏导数来实现的。
- 然后,计算每个隐藏层节点对总误差的贡献,这需要应用链式法则,递归计算误差相对于隐藏层节点激活前的值的偏导数。
- 这个过程将继续传递回网络,计算误差相对于每个权重的偏导数。
-
权重更新(Weight Update):
- 一旦计算了相对于每个权重的误差的偏导数,权重可以根据学习率(learning rate)进行更新,以减少总误差。
- 权重的更新公式通常是:新权重 = 旧权重 - 学习率 * 偏导数。
总结起来,前向传播是数据在网络中正向流动的过程,用于生成预测输出。反向传播是一种通过网络反向传递误差的算法,用于优化权重参数,以提高模型的预测性能。在训练过程中,这两个过程交替进行:先通过前向传播计算预测结果,然后通过反向传播对权重进行优化,如此反复直至训练完成。