学习笔记,仅供参考,有错必纠


文章目录

  • 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,每层权重WijW_{ij}Wij​的初始化为:

注意,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

结论:

参考文献(本博客)

[1]

经典DL论文研读(part1)--Understanding the difficulty of training deep feedforward neural networks相关推荐

  1. 论文解析-《Understanding the difficulty of training deep feedforward neural networks》

    这篇论文详细解析了深度网络中参数xavier初始化方法,这里做一下读书笔记,同时记录一下自己的理解. 1 引言 经典前馈神经网络其实很早就有了(Remelhart et al.,1986),近年来对深 ...

  2. Paper之DL之BP:《Understanding the difficulty of training deep feedforward neural networks》

    Paper之DL之BP:<Understanding the difficulty of training deep feedforward neural networks> 目录 原文解 ...

  3. Paper:Xavier参数初始化之《Understanding the difficulty of training deep feedforward neural networks》的翻译与解读

    Paper:Xavier参数初始化之<Understanding the difficulty of training deep feedforward neural networks>的 ...

  4. 【Deep Learning】笔记:Understanding the difficulty of training deep feedforward neural networks

    这几天读了这篇论文,在这里将大致内容写在这里. Abstract 介绍这篇论文的主要内容就是尝试更好的理解为什么使用"标准随机初始化"来计算使用标准梯度下降的网络效果通常来讲都不是 ...

  5. Understanding the difficulty of training deep feedforward neural networks

    1.作者 Xavier Glorot  Yoshua Bengio这就是非常出名的Xavier初始化的作者 蒙特利尔大学 加拿大 2.文章目的 本篇文章的主题在于 1.理解为什么随机初始化在很深的神经 ...

  6. 经典DL论文研读(part4)--ImageNet Classification with Deep Convolutional Neural Networks

    学习笔记,仅供参考,有错必纠 文章目录 ImageNet Classification with Deep Convolutional Neural Networks 摘要 Introduction ...

  7. 【论文解读】Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks

    Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks 论文地址:http://cadlab.c ...

  8. 经典DL论文研读(part3)--Improving neural networks by preventing co-adaptation of feature detectors

    学习笔记,仅供参考,有错必纠 文章目录 Improving neural networks by preventing co-adaptation of feature detectors Abstr ...

  9. 经典DL论文研读(part2)--Deep Sparse Rectifier Neural Networks

    学习笔记,仅供参考,有错必纠 文章目录 Deep Sparse Rectifier Neural Networks Abstract Introduction Background Deep Rect ...

最新文章

  1. 【开源】QuickPager ASP.NET2.0分页控件V2.0.0.3 【增加了使用说明】
  2. python3 使用 socket.gethostbyname 报错 getaddrinfo failed 解决方法
  3. mysql 查询 字段是否为空
  4. 一小时学会Ansible自动化运维
  5. 朴素的UNIX之-Linux CFS一个注释
  6. c#winform选择文件,文件夹,打开指定目录方法
  7. Qt4 在x86和arm平台上的一些配置
  8. 太空战机c语言源码,funcode编写的太空战机
  9. MedicineCare-可行性分析
  10. 我的博客今天启用了量子统计
  11. 感应电机的矢量控制策略【Ⅰ】
  12. 克隆硬盘后进不去系统_Windows 10克隆后ssd硬盘不能引导启动
  13. 索骥馆-DIY硬盘之《新手3周学通硬盘芯片级维修》扫描版[PDF]
  14. iDrac6 虚拟控制台 连接失败
  15. ICMPv6与NDP
  16. 【GD32L233C-START】1、初识GD32L233C-START板卡
  17. convert函数用法小结---转载
  18. hive导出数据的7种方式
  19. 卖不动的江某白,还能靠什么打动年轻人?
  20. 基追踪算法 matlab,什么是基追踪算法?基于改进基追踪方法的信号去噪 - 全文

热门文章

  1. 多进程fork()函数
  2. 数据结构:线性数据结构(3)-deques(栈,队列,deques, 列表)
  3. xampp php连接mysql数据库_关于PHP xampp连接数据库之后查询失败,数据库连接成功,表中也有数据...
  4. 炸金花 php算法,php 炸金花牌型 和 比牌 规则
  5. java 存储cookie_java设置cookie,存储和读取 | 学步园
  6. 我所了解的Chrome
  7. python全栈_007_Python3格式化输出
  8. Coding and Paper Letter(三十九)
  9. Concurrent包工具类使用
  10. Vue组件实现tips的总结