BP算法
sigmoid函数
神经网络激活函数是sigmoid函数。
定义为:
sigmoid函数是一个非线性函数,值域是(0,1)。函数图像如下图所示:
sigmoid导数:
可以看得出sigmoid导数计算很方便。
则
神经网络
神经网络其实就是按照一定规则连接起来的多个神经元。
神经网络实际上就是一个输入向量到输出向量的函数:
神经网络的矩阵表示
反向传播算法(Back Propagation)
我们可以说神经网络是一个模型,那么这些权值就是模型的参数,也就是模型要学习的东西。
然而,一个神经网络的连接方式、网络的层数、每层的节点数这些参数,则不是学习出来的,而是人为事先设置的。对于这些人为设置的参数,我们称之为超参数(Hyper-Parameters)。
推导
1、目标函数
2、使用随机梯度下降法进行优化
3、以某一个节点的权值优化过程来举例
前一层的输入向量:
前一层和下一层之间的权值矩阵:
其中mxn,意味着下一层的神经元格式(即维度是m),上一层的输入维度是n。
其中:
输出层:
其中:
综合得到:
隐藏层权值训练
例如,对于节点4来说,它的直接下游节点是节点8、节点9。
节点 j 的加权输入只能通过影响节点 j 的所有下游节点再影响目标函数。