Back Propagation
为了优化神经网络(调整参数theta使h_of_X更贴近标签y),需要用到梯度下降或者更高级的优化/学习方法,比如fminuc。无论使用哪种优化方法,都需要求出CostFunction对于theta的导数,为调整参数theta指明方向。
所以目的是求出CostFunction对所有theta的导数,并用权重-这个导数×学习速率,用来更新权重theta,使CostFunction的值减小。
CostFunction对theta的导数怎么求——反向传播(Back Propagation)
学习过程如下:
for i = 所有examples
正向传播(Forward Propagation)——计算每一层的z,以及a(激励activation),以及h_of_X
计算每一层每一个单元unit的误差delta
其中delta_output_layer = a_output_layer – y
delta_l = delta
end