学习笔记,仅供参考,有错必纠
文章目录
- Understanding the difficulty of training deep feedforward neural networks
- Abstract
- Deep Neural Networks
- Experimental Setting and Datasets
- Online Learning on an Infinite Dataset Shapeset-3*2
- Finite Datasets
- Experimental Setting
- Effect of Activation Functions and Saturation During Training
- Experiments with the Sigmoid
- Experiments with the Hyperbolic tangent
- Studying Gradients and their Propagation
- 对比
- Error Curves and Conclusions
- 参考文献(本博客)
Understanding the difficulty of training deep feedforward neural networks
Abstract
基于随机初始化的标准梯度下降法在深度神经网络中表现的不好.
由于随机初始化的均值问题,sigmoid激活函数并不适合深度神经网络,其top隐藏层(最接近输出层的隐藏层)会出现饱和的状态.
- 饱和状态
当x的数值处于两个红框框住的状态时,sigmoid函数的梯度几乎为0,参数的变化率非常小,此时就是处于sigmoid函数的【饱和状态】.
注意,当x值为0时,函数接近于线性变化,函数只能做出近似线性的表达,则对非线性的情况不能很好的拟合,此时效果也不是很好. 当x的数值处于绿色框的范围内时,会有较好的效果.
Deep Neural Networks
略
Experimental Setting and Datasets
在本章中,将介绍多个实验中使用的数据集,以及实验设置.
Online Learning on an Infinite Dataset Shapeset-3*2
该数据集可以随机生成包含3种形状(triangle, parallelogram, ellipse)的无限多的图片,其中每张图片中随机包含2种图形.
Finite Datasets
- MNIST digits
MNIST数据集中包含50000张训练图片,10000张测试图片,其中每张图片为28*28像素的灰度图.
- CIFAR-10
CIFAR-10数据集中包含50000张训练图片,10000张测试图片,其中每张图片为32*32像素的彩色图像. 这个数据集中包含10个种类的物体( airplane, automobile, bird, cat, deer, dog, frog, horse, ship, or truck).
- Small-ImageNet
Small-ImageNet数据集中包含90000张训练图片,10000张测试图片,其中每张图片为37*37像素的灰度图像. 这个数据集中包含10个种类的物体( eptiles, vehicles, birds, mammals, fish, furniture, instruments, tools, flowers and fruits).
Experimental Setting
- 激活函数
本次实验使用了3种激活函数: sigmoid函数, 双曲正切函数以及softsign函数.
双曲正切函数以及softsign函数的曲线图如下所示. 直观来看softsign函数更加平滑,非线性区域更广.
- 网络层数
对于Shapeset-3*2数据集来说,神经网络最好的深度为5层,但对于sigmoid激活函数来说,最好的层数为4层.
- 初始化
偏置的初始化为0,每层权重的初始化为:
注意,n为前一个隐藏层神经元的个数.
Effect of Activation Functions and Saturation During Training
Experiments with the Sigmoid
以Sigmoid为激活函数有4个隐藏层的神经网络的结果如下图所示. 纵坐标为激活函数值,横坐标为训练的周期数,实线为激活函数均值. 可以看到第四层(top 层)激活函数的值很快下降到0附近,则此时模型处于饱和状态,所有隐藏层的权值几乎没有调整. 直至训练到100个周期之后,top层才摆脱饱和状态,此时,其他隐藏层的权值才进行快速学习优化.
需要注意的是,基于Sigmoid激活函数的神经网络如果层数为5,则无法摆脱饱和状态.
文章认为出现这种饱和状态的原因,是使用了传统的随机初始化. 缓解这种饱和状态的方法是使用预训练模型[1],具体方法为:首先使用无监督的方法得到BP网络中的初始化权值,然后再对BP神经网络进行微调,得到效果更好的模型.
Experiments with the Hyperbolic tangent
下图中的上半部分使用的是双曲正切函数,下半部分使用softsign函数.
基于双曲正切激活函数模型的lay1很快进入饱和状态,随着训练的增加,其他隐藏层也逐渐进入饱和状态.
基于softsign函数模型的隐藏层在经过多次训练后,都没有进入饱和状态.
下图的上半部分使用的是双曲正切函数,下半部分使用softsign函数.
基于双曲正切激活函数模型的激活函数值大多处于0, 1, -1的状态下. 这表明,这些隐藏层多处于饱和状或者只能描绘线性的情况.
基于softsign函数模型的激活函数值,除了lay5的激活函数值处于0状态下比较多,其他隐藏层的值都在[-0.8, -0.6] 或 [0.6, 0.8]的范围内,这说明基于该激活函数的隐藏层没有出现饱和状态,且模型具有较好的学习性能.
Studying Gradients and their Propagation
本文提出了一种新的初始化方法,即标准初始化:
对比
- 激活函数值
下图中上半部分使用的是普通初始化,下半部分使用的是新的标准化方法. 可以看到,普通初始化方法得到的激活函数值多在0附近,而新的初始化方法所产生的激活函数值分布较广,则对模型的学习训练有较好的结果.
- 梯度
Error Curves and Conclusions
结论: