一、代价方程(Cost Function)
假设我们有以下的神经网络:
并且有以下训练集:
前面逻辑回归中,代价方程为:
而在神经网络中,代价方程则:
K为输出层的节点数。对比一下,其实就是在逻辑回归的代价方程中,再对每个输出节点的求一次逻辑回归的代价函数的和。
二、反向传播
如果我们要使用梯度下降算法,就必须计算
和
(对于所有的 l,i,j)
对于一组输入(x,y),我们通过计算每一个节点的激励值,就得到前导传播:
然后我们在对没一个节点的计算下面一个值:
可以理解为每一个节点的误差,计算方法如下图:输出节点就是该节点的激励值减去训练集中的真实值。
其他节点就是根据前一层的计算。
再整理一下方向传播的算法:
1.假设我们有大小为m的训练集
2.我们先设
3.for i=1 to m:
先进性前导传播,计算没一个节点的激励值
进行反向传播,计算输出层的误差
再计算隐含层的误差
4.计算
5.最后求出
三、梯度检测
其实这个就是导数的定义嘛,只是我们没取极限,而是取一个很小的数
对于向量的话,就求偏导数都行了
通过算出来是不是近似相等,来检测