神经网络的学习的目的是找到使损失函数的值尽可能小的参数。这是寻找最优参数的问题, 解决这个问题的过程称为最优化 (optimization)而由于参数空间复杂,无法轻易找到最优解

1随机梯度下降法 (stochastic gradient descent),简称SGD :

分步走, 朝着当前所在位置的坡度(梯度)最大的方向前进,就是SGD的策略

缺点是 有些情况SGD低效,原因是梯度的方向并没有指向最小值的方向,按照局部的梯度走,会出现来回往返的多余路线

 

2 Momentum法

Momentum方法给人的感觉就像是小球在地面上滚动, 物体在梯度方向上受力,在这个力的作用下,物体的速度增加这一物理法则, 减弱了SGD的“之” 字形的路线变动程度

3 AdaGrad法

在关于学习率的有效技巧中,有一种被称为学习率衰减 (learning rate decay) 的方法, 即随着学习的进行, 使学习率逐渐减小。

AdaGrad会为参数的每个元素适当地调整学习率,与此同时进行学习 (AdaGrad的Ada来自英文单词Adaptive,即 “适当的” 的意思)

AdaGrad会记录过去所有梯度的平方和。因此,学习越深入,更新的幅度就越小。实际上,如果无止境地学习,更新量就会变为0,完全不再更新。

4 Adam法 (结合Momentum与AdaGrad法)

Momentum参照小球在碗中滚动的物理规则进行移动,AdaGrad为参数的每个元素适当地调整更新步伐。这就是Adam法的基本思路

 上面我们介绍了SGD、Momentum、AdaGrad、Adam这4种方法,那 么用哪种方法好呢?一般而言,与SGD相比,其他3种方法可以学习得更快,有时最终的识别精度也更高。

 

超参数 :学习率(数学式中记为η) 的值很重要。学习率过小, 会导致学习花费过多时间;反过来,学习率过大,则会导致学习发散而不能 正确进行

隐藏层的激活值的分布

观察隐藏层的激活值A(激活函数的输出数据) 的分布,可以获得很多启发

用直方图绘制各层激活值的数据分布

使用标准差为1的高斯分布作为权重初始值时的各层激活值的分布

从图可知,各层的激活值呈偏向0和1的分布,随着输出不断地靠近0 (或者靠近1),它的导数的值逐渐接近0。因此,偏向0和1的数据分布会造成反向传播中梯度的值不断变小,最 后消失。这个问题称为梯度消失 (gradient vanishing) 。层次加深的深度学习 中,梯度消失的问题可能会更加严重。

使用标准差为0.01的高斯分布时,各层的激活值的分布

这次呈集中在0.5附近的分布, 因为如果有多个神经元都输出几乎相同 的值,那它们就没有存在的意义了。比如,如果100个神经元都输出几乎相 同的值,那么也可以由1个神经元来表达基本相同的事情。因此,激活值在 分布上有所偏向会出现 “表现力受限” 的问题

需求 : 各层的激活值的分布都要求有适当的广度

推荐办法: 如果前一层的节点数为n,则权重初始值使用标准差为 1/根号n 的分布  (参考Xavier初始值)

设定了合适的权重初始值,则各层的激活值分布会有适当的广度,从而可以顺利地进行学习。那么,为了使各层拥有适当的广度, “强制性” 地调整激活值的分布会怎样呢?实际上,Batch Normalization方法就是基于这个想法产生的:

Batch Normalization 虽然是一个问世不久的新方法,但已经被很多研究人员和技术人员广泛使用, 优点如下:

1 可以使学习快速进行 (可以增大学习率)

2 不那么依赖初始值 (对于初始值不用那么神经质) 

3 抑制过拟合 (降低Dropout等的必要性)

Batch Norm的思路是调整各层的激活值分布使其拥有适当的广度。为此,要向神经网络中插入对数据分布进行正规化的层

基于Batch Norm的效果:使用Batch Norm后,学习进行得更快了, 通过使用Batch Norm,可以推动学习的进行。并且,对权重初 始值变得健壮 ( “对初始值健壮” 表示不那么依赖初始值) 。Batch Norm具备 了如此优良的性质,一定能应用在更多场合中

解决过拟合:

1 权值衰减是一直以来经常被使用的一种抑制过拟合的方法。该方法通过在学习的过程中对大的权重进行惩罚,来抑制过拟合。(很多过拟合原本就是因为权重参数取值过大才发生的)

方法是: 损失函数加上权重的平方范数 (L2范数) 。这样一来,就可以抑制权重变大。

数据集分成了训练数据, 测试数据和 验证数据

训练数据用于学习

测试数据用于评估泛化能力

验证数据用于调整超参数的数据

为什么不能用测试数据评估超参数的性能呢?这是因为如果使用测试数 据调整超参数,超参数的值会对测试数据发生过拟合

池化层

在图像识别领域,主要使用Max池化

使用im2col展开输入数据

池化层的实现流程:池化的应用区域内的最大值元素用灰色表示

由此可以认为今后半精度浮点数将 被作为标准使用 (16位的半精度浮点 数(half float))

转载于:https://www.cnblogs.com/clemente/p/10096326.html

深度神经网络关键词解释相关推荐

  1. 由深度神经网络想到的人生意义和哲理

    ◆ ◆ ◆ 导读 几周前,我经历工作项目的调动,恰好给了我空余时间重拾那些很久没有碰过的感兴趣的话题.机器学习是我兴趣列表中的第一项.这是一个已经广泛渗入科技领域的话题,但我对其一无所知.仅几周的泛读 ...

  2. 深度神经网络的不确定性(上)

    目录 摘要 深度神经网络不确定性的起因 A.数据获取 B.深度神经网络设计与训练 C.推理 D.预测性不确定度建模 E.不确定性分类 摘要 基本的神经网络不能提供确定性估计,或者存在过度或过低的置信度 ...

  3. 深入认识深度神经网络

    文章目录 0 前言 1 深度神经网络通俗解释 2 通用近似定理-万能神经网络 3 神经网络模型变宽与变深 4 神经网络加深的问题 5 深度神经网络模型训练解决方案 5.1 训练数据集 5.2 选择恰当 ...

  4. Facebook:易于解释的神经元可能会阻碍深度神经网络的学习

    选自 Facebook AI 博客 作者:Matthew Leavitt.Ari Morcos 机器之心编译 编辑:张倩.杜伟 易于解释的神经元对于提升神经网络的性能来说是必要的吗?Facebook ...

  5. 谷歌大脑团队新尝试 用奇异向量典型相关分析解释深度神经网络

    来源:ATYUN AI平台 深度神经网络(DNNs)在视觉.语言理解和语音识别等领域取得了前所未有的进展.但这些成功也带来了新的挑战.与许多以前的机器学习方法不同的是,深度神经网络可以很容易地在分类中 ...

  6. 如何用Python和深度神经网络识别图像?

    本文授权转自微信公众号芝兰玉树 作者 | 王树义 只需要10几行Python代码,你就能自己构建机器视觉模型,对图片做出准确辨识和分类.快来试试吧! 视觉 进化的作用,让人类对图像的处理非常高效. 这 ...

  7. 深度神经网络的成功应用,深度神经网络技术赋能

    深度神经网络是什么意思? 深度神经网络是机器学习(ML, Machine Learning)领域中一种技术.在监督学习中,以前的多层神经网络的问题是容易陷入局部极值点. 如果训练样本足够充分覆盖未来的 ...

  8. 神经网络的图像识别技术,语音识别深度神经网络

    深度学习能应用在哪些领域? 深度学习的快速发展,不仅使机器学习得到许多实际的应用,还拓展了整个AI(人工智能的)的范围. 它将任务进行拆解,使得各种类型的机器辅助变成可能,具体分为以下几类应用:1.无 ...

  9. 深度神经网络的特征表示,神经网络识别图像原理

    有哪些深度神经网络模型? 目前经常使用的深度神经网络模型主要有卷积神经网络(CNN).递归神经网络(RNN).深信度网络(DBN).深度自动编码器(AutoEncoder)和生成对抗网络(GAN)等. ...

最新文章

  1. JVM_03 运行时数据区 [ 程序计数器+本地方法栈 ]
  2. WebRTC十周年、Space X成功对接国际空间站、TikTok复制品Zynn或有快手支持|Decode the Week...
  3. Python lambda表达式
  4. python打包exe不弹窗_Pyinstaller 打包exe教程及问题解决
  5. 我教育和科研计算机网是指,我校成为中国教育和科研计算机网湘潭城市节点单位...
  6. DEBUG org.springframework.web.servlet.DispatcherServlet - Error rendering view [org.thymeleaf.spring
  7. Android 弹出有确认按键的对话
  8. 医疗小程序源码_不懂商城小程序源码,如何快速创建小程序商城?
  9. 北京大学2016年高等代数与解析几何考研试题
  10. 一寸相思千万绪,人间没个安排处。
  11. 凸优化学习笔记(一):仿射集、凸集、锥
  12. Windows 实用小工具
  13. 如何在 Mac 上使用“活动监视器”
  14. 顺序表基本操作的实现
  15. java婚纱摄影网站计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  16. 学术篇 | 不同需求的认知控制揭示了语义记忆和情景记忆提取共享的神经机制
  17. Unity Burst 用户指南
  18. java实现三方登陆:微信登陆功能的实现
  19. 手把手教你撸个直播小程序
  20. 7.跨段跳转,短调用和长调用堆栈图

热门文章

  1. 程序员》推荐C++ 图书三人谈
  2. F5刷新表单页不能清空缓存
  3. matlab保存格式可以用cad打开文件,怎么将TXT文件导入CAD中生成图形
  4. activemq中怎么知道推送消息是否成功_如何优雅的使用activeMQ 安装、应用、安全认证、持久化...
  5. 2020idea插件怎么同步_VScode 插件整理
  6. flask 上传excel 前端_flask-restful编写上传图片api
  7. java map取值_Java Set接口 Map 与枚举
  8. Shell 脚本案例实战 [4]
  9. ElasticSearch 之中文分词器
  10. 基本数据类型的成员变量放在jvm的哪块内存区域里?