dnn神经网络_【李宏毅机器学习笔记】深度神经网络(DNN)
当我们训练网络的时候,通常会出现如下两种情况:
- 第一种情况:训练数据表现不好,这种时候通常可以使用新的激活函数,或者调整学习率。
- 第二种情况:训练数据表现的很好,但是测试数据的表现很差,这个时候可以提前终止、数据正则化和Dropout的方法来改善情况。
不一定网络越深,performance越好。
- 接下来我们先讨论针对以上两种情况,具体如何改善:
- 对于训练数据表现不好时,用新的激活函数(New Activation function),再讨论调整学习率(Adaptive Learning Rate)。
- 训练数据表现的很好,但是测试数据的表现很差时:提前终止、数据正则化和Dropout的方法来改善情况。
激活函数
梯度消失问题
- 网络在做梯度下降时,如果我们用sigmoid作为激活函数,在接近输出的地方梯度很大,学习速度快,通过反向传播,在接近出入层的地方,梯度会变得很缓,学习效率很慢。这就是梯度消失的问题。
- 因为sigmoid在接近0和1的地方会突然变得很缓慢。如图:
- 为了解决这个问题,我们引入其它激活函数。
整流线性单元(ReLU)
- 很自然的,我们会想到能不能引入一个变换均匀的激活函数,这样就能减缓梯度消失的问题了。于是我们引入了ReLU,它的函数图像如下:
- 小于0的部分函数值为0,大于0的部分函数为
a=z
。 - ReLU的变种,有人觉得z值小于0的部分函数值为0,这个还是不好,没有梯度了。于是引入ReLU的变种。令z<0的部分函数值为
a = αz
,其中α 也可以根据gradient descent学习出来,这样激活函数就变得更加合理了,可以在一定程度上减少训练时间。函数图像如下:
Maxout
- 顾名思义,输出最大值,使用这种激活函数时,需要两个及以上结点组成一组,从下图中我们可以看出Maxout是如何工作的。
- Maxout是可学习的激活函数,它可以是任何分段线性凸函数。有几段取决于每一组中元素的个数。
学习率
- 前面在讲梯度下降的时候讲到了
Adagrad
的方法,就是将每个参数的学习率除以其先前导数的均方根当作步长,在深度神经网络中,要介绍一种与Adagrad
类似的学习率调整方法:RMSProp
。
RMSProp
- 使用
RMSProp
方法的权值更新公式如下:
- 可以通过调整
α
使得下一次的权值调整是受当前梯度倒数gt的影响都一些还是受前面的调整多一些。如果α
接近0,则受当前梯度倒数gt影响多一些。 - 而且
α
的值还可以通过gradient descen
的方法学习出来。 - 但是这种方法很难找到全局最优值,通常在遇到局部最优点的时候就停止了。
动量(Momentum)
- 现实生活中,当一个球从高处滚落下来,在遇到平坦处和低谷处时,由于惯性的原因有可能还会继续滚动,直到到达全局最低点的位置。因此在机器学习中,通过学习率更新权值时,能不能也引入一个
惯性
,使迭代到达局部最优时,还有有一个动量继续向前,直到到达全局最优呢? - 基于这个想法,接下来开始
Momentum
方法:使移动的方向不仅基于当前求导的方向,还要参考上一次移动的方向。参数的更新过程如下:
加入了动量之后权值更行的过程中运动轨迹如下,在遇到平坦处和低谷时,由于受到上一次方向的影响,还会继续向前。
- Adam:
RMSProp + Momentum
称为Adam。
第二种情况
Early Stopping
- 网络在训练的过程中,可能训练的时间越长,对
Training set
的performance
就越好,但是用训练时间很长得到的参数作用于Testing set
时,有可能并不会得到预期中的好结果,反而提前结束训练得到的参数作用于Testing set
能得到相对满意的结果。
- 所以我们在训练时,有时需要提前结束,至于到底什么时候结束,我们也不清楚,这个时候,验证集的作用就体现出来了。
- 在
Training set
分出一部分数据用来做Validation set
,当获得的参数在Validation set
取得好结果的时候,就停止训练,再将参数作用于Testing set
。
正则化(Regularization)
- 权值更新公式如下:
- 其中sgn(x)时符号函数,x为正数时值为1,x值为负数时,值为-1,x为0时,值为0.
Dropout
- 在每次训练之前,都摘掉p%和神经元,如下图所示:
- 这样训练没循环一次我们都是使用新的网络结构在训练。如果训练时神经元的摘除率为p%,则最后所哦于权值都乘以1-p%。
- 假设
dropout rate
为50%,如果通过训练得到的权值为w=1
,则最后令w=0.5
作用于Testing set
。
-----------------
还没关注我的公众号?
扫文末二维码关注公众号【轮子工厂】,回复“领取资源”可领取如下学习资料:
1T视频教程:涵盖Javaweb前后端教学视频、机器学习/人工智能教学视频、Linux系统教程视频、雅思考试视频教程;
100多本书:包含C/C++、Java、Python三门编程语言的经典必看图书、LeetCode题解大全;
软件工具:几乎包括你在编程道路上的可能会用到的大部分软件;
项目源码:20个JavaWeb项目源码。
dnn神经网络_【李宏毅机器学习笔记】深度神经网络(DNN)相关推荐
- 【李宏毅机器学习笔记】 23、循环神经网络(Recurrent Neural Network,RNN)
[李宏毅机器学习笔记]1.回归问题(Regression) [李宏毅机器学习笔记]2.error产生自哪里? [李宏毅机器学习笔记]3.gradient descent [李宏毅机器学习笔记]4.Cl ...
- DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测实现代码
DL之DNN:基于自定义数据集利用深度神经网络(输入层(10个unit)→2个隐藏层(10个unit)→输出层1个unit)实现回归预测实现代码 目录 基于自定义数据集利用深度神经网络(输入层(10个 ...
- 对抗机器学习系列——深度神经网络的盲点
1.引言 近些年,深度学习在计算机视觉领域取得了很好的表现,引领了第三次人工智能的浪潮.目前大部分表现优异的应用都用到了深度学习,大红大紫的 AlphaGo 就使用到了深度学习. 但是本期讲的 ...
- 吴恩达机器学习笔记week8——神经网络 Neutral network
吴恩达机器学习笔记week8--神经网络 Neutral network 8-1.非线性假设 Non-linear hypotheses 8-2.神经元与大脑 Neurons and the brai ...
- 李宏毅svm_【李宏毅机器学习笔记】 18、支持向量机(Support Vector Machine,SVM)...
[李宏毅机器学习笔记]1.回归问题(Regression) [李宏毅机器学习笔记]2.error产生自哪里? [李宏毅机器学习笔记]3.gradient descent [李宏毅机器学习笔记]4.Cl ...
- 【李宏毅机器学习笔记】 17、迁移学习(Transfer Learning)
[李宏毅机器学习笔记]1.回归问题(Regression) [李宏毅机器学习笔记]2.error产生自哪里? [李宏毅机器学习笔记]3.gradient descent [李宏毅机器学习笔记]4.Cl ...
- 2021李宏毅机器学习笔记--12 attack ML models
2021李宏毅机器学习笔记--12 attack ML models 摘要 一.图像模型的攻击 1.1原理 1.2Constraint 1.3参数训练 1.4一个例子 1.5攻击方法 1.5.1FGS ...
- 2021李宏毅机器学习笔记--22 Generative Adversarial Network 01
@[TOC](2021李宏毅机器学习笔记–22 Generative Adversarial Network 01(GAN,生成式对抗网络)) 摘要 GAN是建立于神经网络的基础上的,其核心思想是&q ...
- 2021李宏毅机器学习笔记--21 Anomaly Detection
2021李宏毅机器学习笔记--21 Anomaly Detection(异常侦测) 摘要 一.问题描述 二.Anomaly异常 三.Anomaly Detection(异常侦测)做法 3.1 Bina ...
最新文章
- 机器学习实战源码数据集
- 引入js失败的可能原因
- 使用python moviepy提取视频中的音频,同时对音频数据进行数据可视化分析
- 7. 堪比JMeter的.Net压测工具 - Crank 总结篇 - crank带来了什么
- Linux 命令之 cat -- 在终端设备上显示文件内容(查看文件内容/浏览文件内容)
- 事件映射 消息映射_映射幻影收费站
- 2022届互联网秋招备战
- (一)flask-sqlalchemy的安装和配置
- PHP网页截图-网页快照实现
- CSS3自定义浏览器滚动条样式
- mysql subquery_mysql-8-subquery
- 2019-12-19
- 无线鼠标 跨计算机控制,终于明白无线鼠标如何设置
- python批量删除txt文本前面几行和最后几行
- 2017年全国研究生电子设计大赛上海赛区感触
- 【hadoop生态之Hbase】HBASE简介【笔记+代码】
- 云服务器怎么多人进去编辑文档,有道云协作怎么实现多人协同编辑 多人同时处理文档方法...
- 鸡尾酒问题,最小二乘法和范数的思考
- matplotlib之网格线
- python(进阶篇):正则表达式常用语法