《Improving Deep Neural Networks》的理论知识点
原文博客:Doi技术团队
链接地址:https://blog.doiduoyi.com/authors/1584446358138
初心:记录优秀的Doi技术团队学习经历
目录
文章目录
- 目录
- 深度学习的实践方面
- 优化算法
- 超参数调整,批量标准化,编程框架
深度学习的实践方面
- 如果有10,000,000个例子,数据集拆分一般是98%训练,1%验证,1%测试。
- 验证和测试的数据集通常是来自同样的分配。
- 如果神经网络模型有很大的差异,一般的解决办法是增加数据集和添加正则。
- 当训练集错误较小,而验证集较大时,通常是增加正则lambda、增加数据集。
- 当增加正则化超参数lambda时,权重会被推向更小,接近0.
- 将参数keep_prob从(比如说)0.5增加到0.6可能会导致减少正则效应、最终导致更小的训练集数据的错误。
- 增加训练集、添加Dropout、加正则可以减少方差(减少过度拟合)。
- 权重衰减是一种正则化技术(如L2正规化), 导致梯度下降在每次迭代中收缩权重。
- 我们归一化输入的X,是因为这个可以使得损失函数更快地进行优化。
- 在测试使用反向dropout方法时,不要使用dropout(不要使用随机消除单位),也不要在训练中使用计算中保留的1/keep_prob因子。
优化算法
- 当输入是来自第8个小批次的第7个示例时,表示第3层的激活的符合是:a[3]{8}(7)a^{[3]\{8\}(7)}a[3]{8}(7)。
- 小批量梯度下降(在单个小批量上计算)的一次迭代比批量梯度下降的迭代快。
- 最好的小批量大小通常不是1而不是m,而是介于两者之间。一、如果最小批量为1,则会小批量样本中失去向量化的好处。二、如果最小批量为m,则最终会产生批量梯度下降,该批量梯度下降处理完成之前必须处理整个训练集。
- 假设学习算法的成本JJJ,绘制为迭代次数的函数,如下所示:
从图中可以得知如果是使用小批量梯度下降法,看来是可以接受的,如果是使用批量梯度下降,有些事情是错误的。 - 假设1月前三天卡萨布兰卡的气温相同:
1月1日:θ1=10oC\theta_1 = 10^o Cθ1=10oC
1月2日: θ2=10oC\theta_2 = 10^o Cθ2=10oC
假设使用指数加权平均β=0.5\beta=0.5β=0.5跟踪温度:v0=0,vt=βvt−1+(1−β)θtv_0 = 0, v_t = \beta v_{t-1} +(1-\beta)\theta_tv0=0,vt=βvt−1+(1−β)θt。可以得到2天后的值:v2=7.5v_2 = 7.5v2=7.5,以及其修正偏差的值是:v2corrected=10v_2^{corrected} = 10v2corrected=10。 - α=etα0\alpha = e^t \alpha_0α=etα0不是一个好的学习率衰退的方法,其中t是epoch号码。比较好的方法有:α=0.95tα0\alpha = 0.95^t \alpha_0α=0.95tα0,α=1tα0\alpha = \frac{1}{\sqrt{t}} \alpha_0α=t1α0,α=11+2∗tα0\alpha = \frac{1}{1+2*t} \alpha_0α=1+2∗t1α0 这些。
- 伦敦温度数据集上使用指数加权平均值。使用以下来跟踪温度:vt=βvt−1+(1−β)θtv_{t} = \beta v_{t-1} + (1-\beta)\theta_tvt=βvt−1+(1−β)θt。下面的红线是用来计算的β=0.9\beta=0.9β=0.9。
增加β\betaβ会将红线稍微向右移;降低β\betaβ将在红线内产生更多的振荡。 - 图中:
这个图是梯度下降、动量梯度下降(β=0.5\beta = 0.5β=0.5)和动量梯度下降(β=0.9\beta= 0.9β=0.9)产生的。其中(1)是梯度下降。(2)是动量梯度下降(小β\betaβ)。(3)是动量梯度下降(大β\betaβ) - 假设深度网络中的批量梯度下降时间过长,为找到对于成本函数实现较小值的参数值J(W[1],b[1],...,W[L],b[L])\mathcal{J}(W^{[1]},b^{[1]},..., W^{[L]},b^{[L]})J(W[1],b[1],...,W[L],b[L])。可以使用以下技术找到取得较小值的参数值J\mathcal{J}J:一、尝试调整学习率α\alphaα;二、尝试更好的随机初始化权重;三、尝试使用小批量梯度下降;四、尝试使用Adam。
- 关于Adam的一些正确的说法:一、学习速率超参数α\alphaα在Adam通常需要调整;二、我们通常使用β1,β2\beta_1,\beta_2β1,β2和ε\varepsilonε作为Adam (β1=0.9,β2=0.999,ε=10−8\beta_1=0.9, \beta_2=0.999, \varepsilon = 10^{-8}β1=0.9,β2=0.999,ε=10−8)超参数的默认值;三、Adam结合了RMSProp的优点和动量。
超参数调整,批量标准化,编程框架
- 在大量超参数中进行搜索,通常使用随机值而不是网格中的值。
- 不是每个超参数都会对训练产生巨大的负面影响,比如学习率,比其他参数更重要。
- 在超参数搜索过程中,无论您是尝试照顾一个模型(“熊猫”策略)还是平行训练大量模型(“鱼子酱”),主要取决于可以访问的计算能力的数量。
- 如果β\betaβ(动量超参数)介于0.9和0.99之间,推荐使用以下方法用于对β\betaβ值进行抽样:
r = np.random.rand()
beta = 1-10**(- r - 1)
- 当找到非常好的超参数之后,并不是一劳永逸的,当网络或者其他超参数改变之后,还要再次重新调整它们的。
- 在批量标准化中,如果将其应用于lll你的神经网络的第一层,z[l]z^{[l]}z[l]是规范化的公式。
- 在规范化公式中znorm(i)=z(i)−μσ2+εz_{norm}^{(i)} = \frac{z^{(i)} - \mu}{\sqrt{\sigma^2 + \varepsilon}}znorm(i)=σ2+εz(i)−μ,使用epsilon是避免z(i)−μz^{(i)} - \muz(i)−μ被零除。
- 在关于gammagammagamma和betabetabeta在批准规范中,他们可以使用Adam,动量梯度下降或RMSprop,而不仅仅是渐变下降来学习;他们设置线性变量的均值和方差是从z[l]z^{[l]}z[l]的给定图层。
- 执行必要的规范化时,使用μ\muμ
和
σ2\sigma^2σ2估计在训练期间的小批量的指数加权平均。 - 在深度学习框架中,即使项目目前是开源的,项目的良好治理也有助于确保项目长期保持开放,而不是被封闭或修改为只有一家公司受益;通过编程框架,用户可以使用比高级级语言(如Python)更少的代码行编写深度学习算法。
《Improving Deep Neural Networks》的理论知识点相关推荐
- 机器学习入门课程笔记(二)——deeplearning.ai: Improving Deep Neural Networks
欢迎前往我的个人博客网站:mathscode.top获取更多学习资源. 所有文本内容会在知乎: MathsCode同步 所有开放资源会在Github: MathsCode开放下载 有问题欢迎大家评论或 ...
- Improving Deep Neural Networks:Initialization and Regularization
0-# 前言 学习一项调优的技术时,通常需要明确三点:Why?What?How? 一.Initialization(参数初始化) 严格意义上讲,"参数初始化"并不算调优手段,any ...
- coursera 吴恩达 -- 第二课 Improving Deep Neural Networks :第一周课后习题(3)Gradient Checking
改正后 differrence降到了 e−7 e − 7 e^{-7}
- [论文品读]·d-vector解读(Deep Neural Networks for Small Footprint Text-Dependent Speaker Verification)
Deep Neural Networks for Small Footprint Text-Dependent Speaker Verification 目录 ABSTRACT 1. INTRODUC ...
- 【翻译】Aggregated Residual Transformations for Deep Neural Networks
Aggregated Residual Transformations for Deep Neural Networks 作者:Saining Xie1 Ross Girshick2 Piotr Do ...
- [译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)...
译自:http://sebastianruder.com/multi-task/ 1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我 ...
- 关于'Deep Neural Networks for YouTube Recommendations'的一些思考和实现
七月 上海 | 高性能计算之GPU CUDA培训 6月27-29日三天密集式学习 快速带你入门阅读全文> 正文共6326个字,6张图,预计阅读时间30分钟. @blog : http://sh ...
- 【论文阅读】Deep Neural Networks for Learning Graph Representations | day14,15
<Deep Neural Networks for Learning Graph Representations>- (AAAI-16)-2016 文章目录 一.模型 1.1解决了两个问题 ...
- 剪枝综述论文阅读:Methods for Pruning Deep Neural Networks
文章目录 一.概述 1.分类 2.评估 二.Magnitude based pruning 1.权重剪枝 2.彩票定理 3.特征图和过滤器剪枝 (1)基于通道方差的剪枝 Inbound pruning ...
最新文章
- shelve 之VS. pickle
- corefx 源码学习:SqlClient 是如何同步建立 Socket 连接的
- svn locked解决方法
- 最好的计划是略有闲余的计划,用于缓冲必然出现的错误与突发事件(转)
- Linux的运行级别和chkconfig用法
- cad转pdf怎么变成黑白?
- CATIA怎么约束快捷键_Catia快捷键怎么设置?CATIA小技巧-设置快捷键方法
- 怎么把优酷的kux格式转换成mp4?快速转换kux格式的技巧
- Ubuntu交叉编译工具链安装
- Rax.js基础学习
- LibXL 算法分析(附注册机)
- Revit安装错误1308?Revit软件安装时出现安装错误1308怎么办?
- 笔记本电脑怎么做服务器的显示屏,干货!笔记本液晶屏不要扔,自己动手DIY便携显示器...
- Ricochet —— 基于 Tor 的加密即时通信工具
- 移动端电影院V2.0邀你体验电影院首映礼
- android雪花飘落效果,【OpenGL】Shader实例分析(七)- 雪花飘落效果
- PAT 甲级 A1010
- 攻防世界 Pwn 进阶 第二页
- AXI总线之AXI-LITE总线分析与实现
- MacBook 整个配置过程,供新入手MacBook的同学