深度神经网络问题以及解决方法

参考博客:深度学习中的highway network、ResNet

参考博客:神经网络梯度与归一化问题总结

一份详细讲解的代码:https://iamtrask.github.io/2015/11/15/anyone-can-code-lstm/

问题一:误差信号的多层反向传播容易产生“梯度消失”、“梯度爆炸”现象

问题二:随着深度神经网络层数的增加,训练误差没有降低反而升高

当神经网络层数过深的时候,会出现“退化”的现象,即在网络层数加深时,网络的loss不降反增。对于该问题,提出了高速网络(Highway network)和残差网络(Residual Network)来解决网络层数过深的问题。

highway  network

highway network 主要解决问题是:网络深度加深,梯度信息回流受阻,造成网络训练困难的问题

shortcut(或shortpath,中文“直连”或“捷径”)是CNN模型发展中出现的一种非常有效的结构, 残差连接的思想起源于中心化,在神经网络系统中,对输入数据等进行中心化转换,即将数据减去均值,被广泛验证有利于加快系统的学习速度。

1、一般一个网络, 每层网络对输入进行一个非线性映射变换

2、对于CNN网络, 定义一层网络结构如下,T 和 C 分别表示对输入的门控(0到1)和直接传送

观察到, 对于特殊的门值T

    

                   

该层的雅可比变换转换为:

        

       

物理意义:假设所有的门t的均值为0.5的话,将所有原始信息一半激活、一半不变直接输入下一层, 保留了很多信息。

反向传播的时候,可以让更多的梯度信息直接回流到输入, 而不需要经过一个非线性转换。

ResNet网络

模型增加一个identity mapping(恒等映射), 将原始所需要学的函数  转换成, 两种函数表达效果像如同, 但是的优化会比简单很多。图像处理中的残差向量编码 , 将一个问题分解成多个尺度直接的残差问题。

  1. 这个简单的加法并不会给网络增加额外的参数和计算量,同时却可以大大增加模型的训练速度、提高训练效果
  2. 并且当模型的层数加深时,这个简单的结构能够很好的解决退化问题。因为identity map是的梯度可以直接回流到了输入层

对于shortcut的方式:

1.使用恒等映射, 如果residual block的输入输出维度不一致, 对增加的维度用0来填充

2.在block输入输出维度一致时使用恒等映射, 不一致时使用线性投影以保证维度一致

3.对于所有的block均使用线性投影

Inception

解决深度学习 参数过多、梯度消失的问题, 解决方法就是增加网络深度和宽度的同时减少参数。

Inception网络在同一层里面使用不同的卷积模板,对不同size感受野做特征提取, 即为一种混合模型; max pooling 也具有特征提取的作用, 和卷积不同, 没有参数不会过拟合,亦可作为一个分支; 使用1*1卷积核可以起到降低特征图厚度的作用(对于使用两层堆叠的3 * 3卷积核 代替一层的5 * 5卷积核, 参数量减少了, 计算量也减少了, 层数变深了, 效果变好了)

梯度消失/梯度爆炸的问题

神经网络训练的方法是BP算法。BP算法的基础就是导数的链式法则。在CNN以及RNN网络中会明显出现梯度消失和梯度爆炸的问题

在使用sigmoid()函数作为激活函数时, 两侧饱和区域的导数很小, 随着网络的加深, 梯度反向传播到浅层网络时, 基本不能引起数值的扰动, 浅层的网络就无法学习到新的特征。解决方法:1、更换激活函数    2、使用层归一化    3、在权重初始化上下功夫    4、构建新的网络结构

激活函数

ReLU()函数, 稀疏激活, 负数端抑制状态, 正数端兴奋激活, 没有将数据压缩, 会使得数据的范围可能会很大。

Leaky ReLU()函数, 负数端不完全抑制。

sigmoid()函数

tanh()函数

批量层归一化

BN通过将输出层的数据归一化到mean = 0, var = 1的分布中, 即使均值方差相同不代表分布也相同

归一化可以解决ReLU()函数不能把数据压缩的问题; 可以使用更高的学习率, 保证每层、每维的scale保持一致, 可以加快收敛; 归一化会破坏原本学习的特征的分布, 加入两个参数来恢复原本的分布, 新添加的两个参数, 是通过训练学习的, 最后可能恢复,也可能未恢复, 这样可以增加网络的capicity,网络中就存在多种不同的分布了。covariate shift (尚未理解)  在加入BN之后可以不使用dropout, dropout是用来正则化增强网络的泛化能力, 减少过拟合, BN是用来提升精度。 过拟合一般发生在数据边缘的噪声位置, BN把它归一化操作

深度神经网络问题以及解决方法相关推荐

  1. 书 | Springer | 时空无监督学习:使用基于图技术和深度神经网络的现代计算机视觉方法

    书名: Unsupervised Learning in Space and Time: A Modern Approach for Computer Vision using Graph-based ...

  2. 周志华:实验论证最好的非深度神经网络方法 !(附论文、代码)

    来源:全球人工智能 本文41张PPT,建议阅读4分钟 北京时间 11月5 日到11月6日,西瓜书<机器学习>作者.南京大学机器学习与数据挖掘研究所(LAMDA)周志华教授日前在MLA 20 ...

  3. 周志华:最新实验表明gcForest已经是最好的非深度神经网络方法

    北京时间 11月5 日到11月6日,西瓜书<机器学习>作者.南京大学机器学习与数据挖掘研究所(LAMDA)周志华教授日前在MLA 2017上的演讲:深度森林初探--讲述的关于他最新集成学习 ...

  4. 基于深度神经网络的高光谱影响分类方法研究---MNF+自动编码器+Softmax (准确率比较低,17年的论文)

    论文地址 基于深度神经网络的高光谱影响分类方法研究 装备学院学报 遥感影像分类的问题:预处理复杂,高维特征提取困难,分类不够精确等缺陷 首先采用最大噪声分数来降低特征空间维度,然后将自动编码器与sof ...

  5. 积神经网络的参数优化方法——调整网络结构是关键!!!你只需不停增加层,直到测试误差不再减少....

    积神经网络(CNN)的参数优化方法 from:http://blog.csdn.net/u010900574/article/details/51992156 著名: 本文是从 Michael Nie ...

  6. 多层感知器及常见激活函数-深度神经网络DNN及计算推导

    多层感知器 在之前的博客中,我们了解到,感知器(指单层感知器)具有一定的局限--无法解决异或问题,即线性不可分的问题. 将多个单层感知器进行组合,就可以得到一个多层感知器(MLP--Multi-Lay ...

  7. 基于深度神经网络的火灾探测声学灭火器控制

    1.文章信息 本次介绍的文章是2022年发表在Elektronika ir Elektrotechnika的一篇基于计算机视觉的火灾检测文章. 2.摘要 近年来,寻找快速.环保的灭火方法一直是一个特别 ...

  8. 深度神经网络压缩与加速总结

    深度神经网络压缩与加速综述 1. 深度神经网络压缩与加速的任务 2. 模型压缩与加速方法 (1) 参数剪枝 (2) 参数共享 (3) 低秩分解 (4) 紧性滤波设计 (5) 知识蒸馏 3. 深度神经网 ...

  9. 半并行深度神经网络(SPDNN)混合架构,首次应用于单目相机的深度

    摘要:近年来,深度神经网络应用于广泛的问题.在这项工作中,卷积神经网络(CNN)应用于从单个摄像机图像(单眼深度)确定深度的问题.设计八个不同的网络来执行深度估计,每个网络适合于特征级别.具有不同池大 ...

最新文章

  1. web developer tips (69):vs中在浏览器中查看的快捷键
  2. nth_element
  3. WSDL文件生成WEB service server端C#程序
  4. 华为发布MetaAAU 能耗降低30% 性能节能双提升
  5. luogu P2344 奶牛抗议 DP 树状数组 离散化
  6. 【Energy Forecasting】能源预測的发展和展望
  7. 成绩管理系统代码c语言,学生成绩管理系统(c语言源代码)
  8. 公众号 html5页面,微信公众号添加h5页面模板的操作方法是什么?
  9. 统计相关系数(1)——Pearson(皮尔逊)相关系数及MATLAB实现
  10. 联盟营销最佳实践:提高联盟计划的投资回报率
  11. Java 8 effectively final
  12. 无线路由器DNS服务器异常,fast无线路由器dns异常的解决方法
  13. 等待是一个过程,每一种坚守都是幸福
  14. 【线性代数】矩阵的初等变换与线性方程组
  15. python读取大文件md5校验性能优化比较
  16. 微信营销软件 php下载,北牧微信营销系统CMS企业版 php版免费版_北牧微信营销系统CMS企业版 php版PC版下载-东乐软件网...
  17. 互联网广告人--联合御寒--品牌,代理,平台,达人 多方携手御寒
  18. Design Compiler - DC综合的流程(三)
  19. Mina框架并实现Server与Client端的简单消息传递!
  20. session和model的区别

热门文章

  1. 金融信息安全实训——利用常见的网络命令获取网络信息
  2. TOPSIS法(优劣解距离法)介绍及 python3 实现
  3. 小巧的截屏软件Greenshot
  4. 大学生免费查题公众号_大学生查题福利公众号,免费,完全免费!
  5. 2021年全球飞机标记和标牌收入大约16百万美元,预计2028年达到18百万美元
  6. [狂顶]国内免费图片外链网站
  7. 差分曼彻斯特第一位判断方法
  8. 菜鸟教程python实例_Python 处理Cookie的菜鸟教程(一)Cookie库
  9. Laravel 5.2 + layui实现视频上传(+ 进度条)原创
  10. 别让绑架式微信投票毁了朋友圈出现:去哪里给微信刷票、微信投票群怎么收费实属无奈