Andrew NG 《machine learning》week 5,class2 —Backpropagation in practice

来源:互联网 发布:服装出口数据 编辑:程序博客网 时间:2024/06/04 23:11

Andrew NG 《machine learning》week 5,class2 —Backpropagation in practice

2.1 Implementation Note: Unrolling Parameters

本小节主要是将参数矩阵转为向量形式的。
如下图所示,将原来的三个参数矩阵转为一个向量。
转换 要求
转换矩阵

上图所示就是讲三个分别为10x11,10x11,1x11的矩阵转为有231个值的向量。最终提取的时候就可以按照向量来提取成矩阵。

下图是整个算法的详细过程:
算法详细过程

本节主要是讲解了矩阵和向量参数之间的转化,矩阵参数的好处是方便进行向量计算,向量参数表达式的好处是方便用其它更高级的算法。

2.2 Gradient Checking

在计算的过程中,因为反向传播算法的复杂性,所以可能会出现一些不必要的错误,这个时候就需要校验函数来检测算法的正确性。本节就是主要讲解关于反向传播算法的一些注意事项。
下图展示了求导的准确含义:
求导
如上图所示,这是代价函数求偏导的含义,对于参数矩阵,那么偏导的实际求法就可以用下图所示的方法进行求解。
对参数矩阵求偏导

用matlab或者Octave求解的代码如下:
代码求解

最终检测的条件如上图所示,比较两个方法得出的结果误差是否在规定范围内,是的话就是正确的。

对于反向传播检测算法的使用,需要注意一些事项,如下:
注意事项

因为检测函数的存在,会导致算法的效率下降,所以需要在正式进行迭代计算的时候关闭检测函数。

2.3 Random Initialization

算法的开始,都会需要一些初始化的参数使算法运行,那么对于神经网络的参数threa参数,能不能全部设置为0呢?
本小节主要着重解决这个问题。
如下图所示:
初始化参数问题
初始化为0 的情况

上图展示了当初始化参数为0的情况下,只会得到相同的一个输出。因此不能选择参数初始化为0 。
同时参数的选择要打破对称性。
初始化参数的代码
也就是参数初始化的时候行和列的数目必须不相同。

2.4 Putting it Together

本小节将把之前所讲的内容全部放在一起,将神经网络算法的实现全过程进行描写。

首先是对于神经网络训练算法的结构的选择,下图所示的有三种神经网络结构图,一般的选择是选择只有一层隐藏层的结构或者是选择隐藏层的单元个数都相等的结构。
神经网络结构图

下面是训练神经网络算法的流程:
训练神经网络流程
神经网络训练流程图

以上就是神经网络算法的全部步骤。

0 0
原创粉丝点击