3.1调试处理

(1)不同超参数调试的优先级是不一样的,如下图中的一些超参数,首先最重要的应该是学习率α(红色圈出),然后是Momentum算法的β、隐藏层单元数、mini-batch size(黄色圈出)、再之后是Layer、learning rate decay(紫色圈出)、最后是Adam算法中的β1、β2、ε。

(2)用随机取值代替网格点取值。下图左边是网格点取值,如果二维参数中,一个参数调试的影响特别小,那么虽然取了25个点,其实只相当于取了5个不同的点;而右图中随机取值取了多少个点就代表有多少不同值的点。

(3)由粗糙到精细的取值,先粗糙取值,然后发现最好的点,再在这个点附近进行精细的取值。如下图所示

3.2为超参数选择合适的范围

(1)随机取值并不是在取值范围内随机均匀取值,而是要选择合适的标尺来随机取值。

(2)案例1:在选择网络层数时,其范围是[2,4],那么直接均匀取值2,3,4都是合理的。

(3)案例2:如果在给学习率取值时,其范围是[0.0001,1],如果均匀取值,将会有90%的点落在0.1到1之间,这时不合理的;此时应该用对数坐标0.0001=10-4,1=100,所以应该是在[-4,0]上随机均匀取值作为r,然后10r作为学习率α。如下图所示

(4)指数加权平均的超参数β取值范围是[0.9,0.999],其方法是:1-β=[0.1,0.001],然后再根据学习率提到的用对数坐标来随机取值。

(5)在取值微小变化会带来巨大结果不同的地方(β在0.9990到0.9995敏感度就比0.9到0.9005高)即灵敏度高,需要去更多更密集的值,这就是为什么要选择合适的标尺。

3.3超参数训练的实践

(1)当计算资源少的时候,只能一个模型慢慢调参,悉心照顾,当计算资源丰富时,可以模型同时选择不同参数进行训练,然后找出最优的。如下图所示

3.4归一化网络的激活函数

(1)计算过程如下图所示(总共包括四个式子):

(2)特征输入归一化之后均值为0,方差为1,但是对隐藏层的归一化而言,她的均值和方差是空调的,即通过γ、β两个超参数调整。之所以不希望都是均值为0,方差为1,因为那样的话可能都集中再激活函数的线性区域,导致可能没法得到任意想要的值。如下图所示

(3)一般情况下都是对z(即激活函数之前)进行归一化的。

3.5将Batch Norm拟合进神经网络

(1)使用以下公式来进行更新参数,其中原来的b已经可以去掉,因为不管是多少都会在归一化中被消除,然后用新的参数β替代(此处的β是归一化时的参数,不是优化算法中的β):

除了以上的这种更新方式之外,也可以用其他优化算法进行更新。

3.6Batch Norm为什么奏效

(1)浅层的理解可以按照之前提到的,把输入特征归一化之后,可以加快训练的思路来理解每一层归一化的作用。

(2)深层原因:当已经学的x到y的映射,然后当x的分布发生变化是,该映射将需要重新学习,这里的x可以理解成中间的某一隐藏层,x的分布是受到它前面层参数的影响的,为了时x的分布尽量不受到影响(这样x到y的映射可以尽量少做调整),所以加入了归一化,这样x的均值可以始终固定为β,方差固定为α。这样即使x值会发生变化,但是其分布是不变的(或者说变得更少),这样一来减弱了前层参数对后层参数的影响,互相之间相对较独立,更有利于各层之间学习自己的映射,这样有助于加速网络的训练。如下图中框选出来的中间层它的值受前面参数影响,同时又是后层的输入,归一化保证了该层的分布不变性。

3.7测试时的Batch Norm

(1)训练时mini-batch有样本来计算均值和方差,如下式子(式子中的m是mini-batch size):

(2)但是在测试集时,是一个一个进行测试的,一个样本求均值和方差是没有意义的。所以使用的到方法就是:在训练是每一个批次获得对应的均值和方差,然后用之前提到的指数加权平均来实时获得最新的均值和方差给测试时来用(当然还有其他估算均值和方差的方法)。有了均值和方差之后,测试数据就可以按照上面的式子进行归一化了,使用的β、γ是训练出来的。

3.8Softmax回归

(1)softmax激活函数常用于多分类问题的最后一层作为激活函数,它将最后一层算出来的z[L]取幂函数,然后求和,最后再把每个单元取幂函数之后都分别除以求和,得到各自的概率输出。如下所示

3.9训练一个Softmax分类器

(1)分类器的损失函数(一个样本):

如四分类器中样本标签(左边)和预测值(右边)如下:

所以损失函数简化为:

(2)代价函数:

3.10深度学习框架

(1)一些常见的深度学习框架

3.11TensorFlow

(1)给一个TensorFlow的简单使用案例:

吴恩达《深度学习》第二门课(3)超参数调试、Batch正则化和程序框架相关推荐

  1. 在等吴恩达深度学习第5课的时候,你可以先看看第4课的笔记

    大数据文摘作品 编译:党晓芊.元元.龙牧雪 等待吴恩达放出深度学习第5课的时候,你还能做什么?今天,大数据文摘给大家带来了加拿大银行首席分析师Ryan Shrott的吴恩达深度学习第4课学习笔记,一共 ...

  2. 吴恩达深度学习第四课第一周 卷积神经网络

    文章目录 前言 一.计算机视觉(引言) 二.边缘检测示例(过滤器) 三.更多边缘检测内容(由亮到暗还是由暗到亮?) 四.Padding(Valid.Same.p) 五.卷积步长(s) 六.三维卷积(通 ...

  3. 吴恩达深度学习第二周--logistic回归作业1

    吴恩达深度学习第二周–logistic回归作业1 本系列为吴恩达老师深度学习作业的总结,其中参考了很多优秀的文章,本文为了方便日后的复习与巩固,更为详细的作业讲解参考 目录 吴恩达深度学习第二周--l ...

  4. 吴恩达深度学习第二周+二分类应用+猫图片识别

    由于最近在看吴恩达老师深度学习的课程,在第二周有一个关于猫图片识别的习题,下面将自己的一些体会和代码分享. 有关数据集的下载可以自行百度. 下载好数据集之后会发现是一个.h5的文件.所以我们首先导入 ...

  5. 《吴恩达深度学习》第一课第四周任意层的神经网络实现及BUG处理

    目录 一.实现 1.吴恩达提供的工具函数 sigmoid sigmoid求导 relu relu求导 2.实现代码 导包和配置 初始化参数 前向运算 计算损失 后向运算 更新参数 组装模型 3.问题及 ...

  6. Cousera吴恩达深度学习第二次编程作业

    第二次编程作业出现在第三周,下载链接->深度学习 (6月13日上传,如果看不到可能还在审核)

  7. 吴恩达深度学习笔记——第一课第四周

    深层神经网络 内容概述 深层神经网络概述 前向传播和反向传播(Forward and backward propagation) 前向传播 反向传播 搭建神经网络块 超参数 代码作业--helper ...

  8. 【深度学习】吴恩达深度学习-Course1神经网络与深度学习-第四周深度神经网络的关键概念编程(下)——深度神经网络用于图像分类:应用

    在阅读这篇文章之前,请您先阅读:[深度学习]吴恩达深度学习-Course1神经网络与深度学习-第四周深度神经网络的关键概念编程(上)--一步步建立深度神经网络,这篇文章是本篇文章的前篇,没有前篇的基础 ...

  9. 吴恩达深度学习课程之第四门课 卷积神经网络 第二周 深度卷积网络

    本文参考黄海广主编针对吴恩达深度学习课程DeepLearning.ai <深度学习课程 笔记 (V5.1 )> 第二周 深度卷积网络 2.1 为什么要进行实例探究?(Why look at ...

  10. 吴恩达深度学习 | (18) 卷积神经网络专项课程第二周学习笔记

    课程视频 第二周PPT汇总 吴恩达深度学习专项课程共分为五个部分,本篇博客将介绍第四部分卷积神经网络专项的第二周课程:深度卷积网络:实例探究. 目录 1. 为什么要进行实例探究 2. 经典网络 3. ...

最新文章

  1. 针对自己网站内容的搜索引擎代码
  2. 最优化——单纯形法,单纯形表的求取
  3. [SHOI2011]双倍回文 manacher
  4. Python 爬虫“学前班”!学会免踩坑!
  5. 华为S5700S-52P-LI-AC千兆网管交换机web登录界面配置
  6. 个人工作总结10(冲刺二)
  7. [洛谷P4183][USACO18JAN]Cow at Large P
  8. Unix Windows
  9. FreeSwitch之拨号计划~简单例子(二)
  10. 单片机原理与接口技术(ESP8266/ESP32)机器人类草稿
  11. python图片拼接算法实现_python实现单张图像拼接与批量图片拼接
  12. android 的mvp架构,老生常谈Android的MVP架构
  13. logo是啥_logo什么意思_LOGO是什么意思
  14. 裁剪算法——中点分割算法/Liang-Barsky算法
  15. Day10:捡烟蒂投资法:便宜组合
  16. IDEA关联MySQL数据库库
  17. Android Studio 网络调试
  18. 从手机端 H5 制作来看 WEB 动画的术与道
  19. 最新的全球78707个主要城市数据库,包含经纬度坐标值国家省份
  20. Java判断平衡二叉树

热门文章

  1. Jquery中$(document).ready(function(){ })函数
  2. js面向对象技术小结
  3. 我的PDF阅读器之muPDF的编译
  4. 运维自动化部署Cobbler之服务安装篇
  5. 有趣的问题:C的表达式x == x,何时为假?!
  6. 中文分词:采用二元词图以及viterbi算法(三)
  7. [原创]Silverlight与SQLite数据库的互操作(CURD完全解析)[Final]
  8. oracle 10g 安装完成后,无法登陆EM的解决办法
  9. Docker 背后的内核知识——cgroups 资源限制
  10. Linux 内核C -- 第01课,C 语言语法扩展