Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法

1.引入-非线性假设

在实际的机器学习问题中,一个训练集的特征数量十分庞大,若仍采用我们先前所学习的算法将产生过多的高阶多项式,大大减缓算法的运行速度,在正则化过后易造成欠缺拟合。因此,我们需要考虑新的想法来制作复杂的非线性分类器。
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法
Example:
在图像识别的问题中,计算机通过像素点强弱值构建的数值矩阵作为特征值运算处理,一张仅50*50的灰度图片就要产生如此多的多项式。
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法

2.神经元与大脑

大脑的不同皮层控制着人类不同的生理功能,想象将“外接设备”连接到相应的大脑皮层上,该设备是否会习得相应的功能。
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法

Model representation-1

神经网络分输入层,输出层和中间的隐藏层。每层间运算的数据传递都拥有着“权重”(即特征参数值),每一项关联下一层的“神经元”也被称为**项。
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法
偏置单元的引入是为了表现运算的完整性。(之前的第一个特征X_0=1)
以下是每个参数传递的具体过程和字符表意。(以Logistic回归为例)
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法

Model representation-2

为了实现向量化运算,我们采用z(i)来简化运算,具体如下。
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法

3.例子与直觉理解

Example 1

实现基本的二进制逻辑运算是必不可少的功能,通过设置合适的Theta值可以达到我们的预期结果。
以下是逻辑与,或,非运算的演示。
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法

Example 2

如何结合基础运算在神经网络中表示更复杂的运算?
XNOR表示NOT XOR(异或)。
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法

4.多元分类(One-vs-all)

一个优秀的神经网络不仅要准确的进行分类,更要有进行多元分类的功能。
科学家们采用不同的输出向量来表示输出的含义。
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法

5.代价函数

在这个多元分类的问题中,我们如下定义神经网络学习过程中的代价函数。
每一条运算路径产生的代价都要包含。
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法

6.反向传播算法

Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法

δ意思是该结点的偏移程度。

最后一层即输出层的偏移程度由向前传播算法求出来的对应**值a- 训练集 的结果

剩下每层的δ计算方法,g‘(z(3))由微积分可以求解,结果为该层**值a.*(1-a),其中.*为矩阵元素直接相乘。

δ(1)不存在因为第一层为输入层不会有偏差。
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法
以上为反向传播算法的实现过程。
首先初始化每一个“神经元”的Δ为0,然后进行前向传播运算,得出每个activation的值,再由输出层的δ值往前推算,得出每一层中每一个“神经元”的δ值(即δ_ij)。

7.梯度检测

数值梯度检测的方法如下。
采用“两点法”能较为准确的估出代价函数每一处的导数,并与在反向传播中得出的导数进行近似比对,从而判断时下反向传播的可靠性。
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法

8.随机初始化

若将所有权值设为0,在前向传播过程中将会不断产生相同的activation,这显然不符合我们“学习”的宗旨。
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法
Machine Learing by Andrew Ng (5) --神经网络学习与反向传播算法
Tip:初始化中的ε与求导过程中的毫无关联。

9.总结

Training a network

1.初始化参数

2.前向传播得到每一个输出的拟合值和每一个**项

3.计算代价函数

4.运用反向传播算法求导

5.梯度检测

6.用合适的算法最小化J(Θ)