斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))

反向传播算法详细推导过程
斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))_第1张图片
如图,是反向传播算法中的一些基本公式。我们的目的就是更新权重矩阵

利用部分公式,如下:
斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))_第2张图片
计算之后,loss function 针对 w3 矩阵的导数如下:

斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))_第3张图片

斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))_第4张图片

斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))_第5张图片
斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))_第6张图片

如何提高神经网络性能

通常使用简单的神经网络并不会得到好结果,我们需要提升它

1.选用合适的激活函数(尝试不同的激活函数)

斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))_第7张图片
如图,是 sigmoid 和 ReLU 激活函数
斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))_第8张图片
如图 tanh 激活函数

sigmoid 优点:用于分类 (值域在(0, 1)) 缺点:位于高激活和低激活状态时,斜率非常接近0,训练速度慢
tanh 优缺点和 sigmoid 非常相似
ReLU 可以保证较快的训练速度

为什么我们需要激活函数?
(因为,如果没有激活函数,无论神经网络多深,都会编程普通的线性方程)

初始化方法

标准化输入的必要性:使样本像一个球(圆)

在这样一来在使用梯度下降法的时候,会更快且更有效(梯度下降法会沿切线垂直方向运动)

vanishing / exploding gradient

斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))_第9张图片
当神经网络层级变深时,会出现 一个问题,那就是权重矩阵稍大于1或者稍小于1,那么某些变量就会完全变成0或者无限大

斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))_第10张图片
可以使用一些初始化权重矩阵的方案来避免梯度消失/爆炸问题,那就是权重项越多的权重矩阵,我们要赋予它越小的初始值,让限制 z 的大小

斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))_第11张图片
如图是一种初始化权重矩阵的方式

斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))_第12张图片
一次使用 1000 个样本做训练,是一种小批次梯度下降法

斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))_第13张图片
如图,批次梯度下降法学习曲线平滑,而小批次梯度下降法会有震荡

斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))_第14张图片

如上图是梯度下降加动量算法

在椭圆等高线中,x 轴上的移动明显要比 y 轴多。可以通过求解平均值看 优化点往哪个方向移动多,然后让移动少的方向移动更少。移动多的方向移动更多。

斯坦福机器学习 Lecture12 (反向传播算法详细推导过程,如何提高神经网络性能(主要是激活函数的选择,还有输入数据归一化,权重矩阵初始化方法, 小批次梯度下降法,动量算法 ))_第15张图片

你可能感兴趣的:(斯坦福机器学习,机器学习)