神经网络算法
神经网络算法是由多个神经元组成的算法网络。
每一个神经元的作用是这样的:
输入是多个值,输出是一个值。
其会先将多个输入值线性组合,然后把线性组合得到的值进行非线性的映射(要求映射函数可微,因为在反向传播时需要其可导),如常见的非线性映射函数为Sigmoid函数:
神经网络是多层的,每一层有多个神经元,上一层神经元的输出作为下一层每个神经元的一个输入。
反向传播算法:
输出层的神经元的输出和实际值有一定误差,我们用一个损失函数表示这个差别大小。如差别为d,将d用损失函数映射到cost(d),cost(d)的值就表示误差程度。
所以想要这个神经网络能够很好的达到要求,实际上就是调整神经网络的参数,让cost函数尽量接近最低点。
我们可以先求输出层的偏导数,调整输出层参数。然后求倒数第二层,以此类推。最终完成对整个网络的调整。
用梯度下降法,也就是求各个参数的偏导数,沿着梯度相反的方向调整参数。
这就是反向传播算法。