一、Cost function(代价函数)
对于分类问题,分为二分类和多分类问题。对于二分类,输出层只需要一个单元(unit);对于多分类,输出层需要分类数个单元。如下图所示:
代价函数如下图所示:
注:和以前提到的一样,正则项对所有的偏置单元所对应的θ 0 都不作用,只对其余的参数(权重)进行惩罚。
二、Backpropagation algorithm(反向传播算法)
误差逆传播算法(error Backpropagation algorithm),简称“BP算法”。
BP算法的核心思想就是:“链式法则”求导。先求出代价函数对各个层级单元的偏导,然后再根据该层级对前一层级的参数(权重)求导,利用链式法则,就能求出代价函数对每个层级的参数(权重)的偏导,
然后就可以利用优化算法进行优化。根据代价函数,从输出层,按照层级的顺序反向对各个层次求导,因此被称为“反向传播算法”。
现在的库这么高级,一般不需要编程人员自己收到编写反向传播算法,可以直接调用库。
Backpropagation intuition(理解反向传播)
三、Gradient checking(梯度检测)
这一节所说的是:利用数值梯度去检测根据反向传播算法算出来的梯度是否一样(这里的一样是指相近)。不一样的原因在于,反向传播算法编程的时候有bug,和数学无关。
注:不用每一次迭代都进行检查,可以每隔几次迭代检查一次。因为,求解数值梯度计算量大。
Random initialization(随机初始化)
优化过程中的初始化,通常是随机给的,而不是都选0,这是因为如果都选0,则下图中,任意两条相同颜色的线所对应的参数(权重)就会在整个迭代优化过程中,
始终都是一样的(这种情况称为“对称”),这样明显不合理。
Putting it together(组合到一起)
本节就是把前面讲的总结到一起,说明了神经网络的总体实现过程。
第一步,选择神经网络结构
第二步,训练神经网络