←上一篇 ↓↑ 下一篇→
1.8 其他正则化方法 回到目录 1.10 梯度消失与梯度爆炸

归一化输入

训练神经网络,其中一个加速训练的方法就是归一化输入。假设一个训练集有两个特征,输入特征为2维,归一化需要两个步骤:

  1. 零均值

  2. 归一化方差;

我们希望无论是训练集和测试集都是通过相同的 μ\muμ 和 σ2\sigma^2σ2 定义的数据转换,这两个是由训练集得出来的。

第一步是零均值化, μ=1m∑i=1mx(i)\mu=\frac1m\sum_{i=1}^mx^{(i)}μ=m1​∑i=1m​x(i) ,它是一个向量, xxx 等于每个训练数据 xxx 减去 μ\muμ ,意思是移动训练集,直到它完成零均值化。

第二步是归一化方差,注意特征 x1x_1x1​ 的方差比特征 x2x_2x2​ 的方差要大得多,我们要做的是给 σ\sigmaσ 赋值, σ2=1m∑i=1m(x(i))2\sigma^2=\frac1m\sum_{i=1}^m(x^{(i)})^2σ2=m1​∑i=1m​(x(i))2 ,这是节点 yyy 的平方, σ2\sigma^2σ2 是一个向量,它的每个特征都有方差,注意,我们已经完成零值均化, (x(i))2(x^{(i)})^2(x(i))2 元素 y2y^2y2 就是方差,我们把所有数据除以向量 σ2\sigma^2σ2 ,最后变成上图形式。

x1x_1x1​ 和 x2x_2x2​ 的方差都等于1。提示一下,如果你用它来调整训练数据,那么用相同的 μ\muμ 和 σ2\sigma^2σ2 来归一化测试集。尤其是,你不希望训练集和测试集的归一化有所不同,不论 μ\muμ 的值是什么,也不论 σ2\sigma^2σ2 的值是什么,这两个公式中都会用到它们。所以你要用同样的方法调整测试集,而不是在训练集和测试集上分别预估 μ\muμ 和 σ2\sigma^2σ2 。因为我们希望不论是训练数据还是测试数据,都是通过相同 μμμ 和 σ2\sigma^2σ2 定义的相同数据转换,其中 μ\muμ 和 σ2\sigma^2σ2 是由训练集数据计算得来的。

我们为什么要这么做呢?为什么我们想要归一化输入特征,回想一下右上角所定义的代价函数。

J(w,b)=1m∑i=1mL(y^(i),y(i))J(w,b)=\frac1m\sum_{i=1}^mL(\hat{y}^{(i)},y^{(i)})J(w,b)=m1​i=1∑m​L(y^​(i),y(i))

如果你使用非归一化的输入特征,代价函数会像这样:

这是一个非常细长狭窄的代价函数,你要找的最小值应该在这里。但如果特征值在不同范围,假如 x1x_1x1​ 取值范围从1到1000,特征 x2x_2x2​ 的取值范围从0到1,结果是参数 x1x_1x1​ 和 x2x_2x2​ 值的范围或比率将会非常不同,这些数据轴应该是 w1w_1w1​ 和 w2w_2w2​ ,但直观理解,我标记为 www 和 bbb ,代价函数就有点像狭长的碗一样,如果你能画出该函数的部分轮廓,它会是这样一个狭长的函数。

然而如果你归一化特征,代价函数平均起来看更对称,如果你在上图这样的代价函数上运行梯度下降法,你必须使用一个非常小的学习率。因为如果是在这个位置,梯度下降法可能需要多次迭代过程,直到最后找到最小值。但如果函数是一个更圆的球形轮廓,那么不论从哪个位置开始,梯度下降法都能够更直接地找到最小值,你可以在梯度下降法中使用较大步长,而不需要像在左图中那样反复执行。

当然,实际上 www 是一个高维向量,因此用二维绘制 www 并不能正确地传达并直观理解,但总地直观理解是代价函数会更圆一些,而且更容易优化,前提是特征都在相似范围内,而不是从1到1000,0到1的范围,而是在-1到1范围内或相似偏差,这使得代价函数 JJJ 优化起来更简单快速。

实际上如果假设特征 x1x_1x1​ 范围在0-1之间, x2x_2x2​ 的范围在-1到1之间, x3x_3x3​ 范围在1-2之间,它们是相似范围,所以会表现得很好。

当它们在非常不同的取值范围内,如其中一个从1到1000,另一个从0到1,这对优化算法非常不利。但是仅将它们设置为均化零值,假设方差为1,就像上一张幻灯片里设定的那样,确保所有特征都在相似范围内,通常可以帮助学习算法运行得更快。

所以如果输入特征处于不同范围内,可能有些特征值从0到1,有些从1到1000,那么归一化特征值就非常重要了。如果特征值处于相似范围内,那么归一化就不是很重要了。执行这类归一化并不会产生什么危害,我通常会做归一化处理,虽然我不确定它能否提高训练或算法速度。

这就是归一化特征输入,下节课我们将继续讨论提升神经网络训练速度的方法。

课程PPT




←上一篇 ↓↑ 下一篇→
1.8 其他正则化方法 回到目录 1.10 梯度消失与梯度爆炸

1.9 归一化输入-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授相关推荐

  1. 吴恩达deeplearning.ai系列课程笔记+编程作业(6)第二课 改善深层神经网络-第二周:优化算法 (Optimization algorithms)

    第二门课 改善深层神经网络:超参数调试.正则化以及优化(Improving Deep Neural Networks:Hyperparameter tuning, Regularization and ...

  2. 2.19 总结-深度学习-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 2.18 Logistic 损失函数的解释 回到目录 3.1 神经网络概览 文章目录 总结 习题 第 11 题 第 12 题 第 13 题 第 14 题 第 15 题 第 1 ...

  3. 1.8 其他正则化方法-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 1.7 理解 Dropout 回到目录 1.9 归一化输入 其他正则化方法 (Other Regularization Methods) 除了 L2L2L2 正则化和随机失活 ...

  4. 1.1 欢迎-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 无 回到目录 1.2 什么是神经网络 欢迎 第一个视频主要讲了什么是深度学习,深度学习能做些什么事情.以下是吴恩达老师的原话: 深度学习改变了传统互联网业务,例如如网络搜索和 ...

  5. 深度学习教程(6) | 神经网络优化算法(吴恩达·完整版)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/35 本文地址:https://www.showmeai.tech/article-d ...

  6. 3.12 总结-深度学习-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 3.11 随机初始化 回到目录 4.1 深层神经网络 文章目录 总结 习题 第 21 题 第 22 题 第 23 题 第 24 题 第 25 题 第 26 题 第 27 题 ...

  7. 3.5 向量化实现的解释-深度学习-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 3.4 多个例子中的向量化 回到目录 3.6 激活函数 向量化实现的解释 (Explanation for Vectorized Implementation) 在上一个视频 ...

  8. 机器学习和深度学习到底怎么学?顶尖专家吴恩达告诉你

    机器学习和深度学习到底怎么学? 在外国版知乎上,有位网友问:新手如何学习机器学习?学习完MOOC的课程后有没有能力阅读研究论文或者真正的做出一点研究成果? 这个困惑很多人的问题吴恩达给出了详细的回答, ...

  9. 3.10 直观理解反向传播-深度学习-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 3.9 神经网络的梯度下降法 回到目录 3.11 随机初始化 直观理解反向传播 (Backpropagation Intuition (Optional)) 这个视频主要是推 ...

最新文章

  1. opencv java match_Java OpenCV-从knnMatch提取匹配项
  2. 来阿里前 vs 来阿里后
  3. 企业网站如何具备亲和力?
  4. pat1038. Recover the Smallest Number (30)
  5. 闪灯什么意思_开车碰见别人闪灯知道是什么意思吗?看不懂不要说自己会开车哦...
  6. python 爬取作品集_Python批量抓取站酷ZCOOL作品图片并归档
  7. 自研云原生数据仓库AnalyticDB再破权威评测TPC-DS世界纪录!
  8. 牛客网 【每日一题】6月10日 失衡天平
  9. signature=1610c03482e0c6557f7ec99f0ceeae85,Vpdes Permit No. Va006557
  10. Kibana安装-源码
  11. 关于数据库的一些基本操作语句
  12. Termux字体大小调整
  13. vue 基于 exceljs 导出 excel实战示例
  14. 开发管理·华为IPD
  15. 【原】使用IPV6,nbsp;10M/s高速BT互传…
  16. 你知道有哪些超级好用的网盘存储吗?
  17. 解决Kafka-1194问题
  18. 解决阿里云ESC启动kube-proxy服务时出现错误 亲测有效
  19. [IDEA]~idea快捷键及Eclipse和Idea快捷键对比
  20. FPGA驱动24C04实现读写操作,提供工程源码和技术支持

热门文章

  1. elasticsearch安装kibana插件
  2. 刷题总结——愤怒的小鸟(NOIPDAY2T3)
  3. 11 个 Visual Studio 代码性能分析工具
  4. 图解Nosql(hbase)与传统数据库的区别
  5. [转载+原创]Emgu CV on C# (五) —— Emgu CV on 局部自适应阈值二值化
  6. 第二章 第二节 安装Eclipse
  7. Linux根文件系统学习总结
  8. 学习笔记97—matlab 获取矩阵中特定值的坐标
  9. 开箱即用的VScode C++环境
  10. [2019BUAA软件工程]第1次阅读作业