改善深层神经网络:超参数调整、正则化以及优化——2.1 Mini-batch梯度下降
机器学习的应用是一个高度依赖经验的过程,优化算法能够帮助你快速训练模型。深度学习没有在大数据领域发挥最大的效果我们可以利用一个巨大的数据集来训练神经网络,而在巨大的数据集基础上进行训练速度很慢。
因此,使用快速的优化算法,使用好用的优化算法能够大大提高效率,现在谈谈mini-batch梯度下降法。
向量化能有效地对所有m个例子进行计算,允许处理整个训练集而无需某个明确的公式,所以我们要把训练样本放到巨大的矩阵X中,如下X=[x(1),x(2),...,x(m)]X=[x^{(1)},x^{(2)},...,x^{(m)}]X=[x(1),x(2),...,x(m)]Y=[y(1),y(2),...,y(m)]Y=[y^{(1)},y^{(2)},...,y^{(m)}]Y=[y(1),y(2),...,y(m)]XXX的维数是(nx,m)(n_x,m)(nx,m),YYY的维数是(1,m)(1,m)(1,m),向量化能相对较快地处理所有m个样本,但如果m很大的话,处理速度仍然缓慢,比如说m是500万或者5000万或者更大的一个数,在对整个训练集执行梯度下降法时,必须处理整个训练集,然后才能进行一步梯度下降法,然后需要再重新处理500万个训练样本才能进行下一步梯度下降法。
所以如果在处理完整个500万个样本的训练集之前,先让梯度下降法处理一部分,算法速度会更快。可以把训练集分割为小一点的子训练集,这些子集被取名为Mini-batch,假设每一个子集中只有1000个样本,那么将其中的x(1)x^{(1)}x(1)到x(1000)x^{(1000)}x(1000)取出来,将其称之为第一个子训练集,也叫做Mini-batch,然后再取出接下来的1000个样本,从x(1001)x^{(1001)}x(1001)到x(2000)x^{(2000)}x(2000),然后再取1000个样本,以此类推。
接下来说一个新符号,X{1}X^{\left \{1\right \}}X{1},如果训练集数据有500万,每个mini-batch都有1000个样本,也就是说有5000个mini-batch。
之前我们使用x(i)x^{(i)}x(i)表示训练集中的第i个数据,用z[l]z^{[l]}z[l]表示神经网络的层数,表示神经网络中第l层的z值,现在用X{t}X^{\left \{t\right \}}X{t}表示不同的mini-batch。
改善深层神经网络:超参数调整、正则化以及优化——2.1 Mini-batch梯度下降相关推荐
- 交叉验证和超参数调整:如何优化您的机器学习模型
In the first two parts of this article I obtained and preprocessed Fitbit sleep data, split the data ...
- 2020-6-9 吴恩达-改善深层NN-w3 超参数调试(3.3 超参数训练的实践:Pandas(资源少,一次一个模型) VS Caviar(资源多,一次多个模型))
1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c 2.详细笔记网站(中文):http://www.ai-sta ...
- python/keras中用Grid Search对神经网络超参数进行调参
原文:How to Grid Search Hyperparameters for Deep Learning Models in Python With Keras 作者:Jason Brownle ...
- 自动机器学习超参数调整(贝叶斯优化)
[导读]机器学习中,调参是一项繁琐但至关重要的任务,因为它很大程度上影响了算法的性能.手动调参十分耗时,网格和随机搜索不需要人力,但需要很长的运行时间.因此,诞生了许多自动调整超参数的方法.贝叶斯优化 ...
- 改善深层神经网络:超参数调整、正则化以及优化——2.2 理解Mini-batch梯度下降法
使用batch梯度下降法时,每次迭代都需要遍历整个训练集,可以预期每次迭代的成本都会下降.如果成本函数J是迭代次数的一个函数,它应该会随着每次迭代而减少,如果J在某次迭代中增加了,那肯定出了问题. 如 ...
- 02.改善深层神经网络:超参数调试、正则化以及优化 W2.优化算法(作业:优化方法)
文章目录 1. 梯度下降 2. mini-Batch 梯度下降 3. 动量 4. Adam 5. 不同优化算法下的模型 5.1 Mini-batch梯度下降 5.2 带动量的Mini-batch梯度下 ...
- 02.改善深层神经网络:超参数调试、正则化以及优化 W1.深度学习的实践层面(作业:初始化+正则化+梯度检验)
文章目录 作业1:初始化 1. 神经网络模型 2. 使用 0 初始化 3. 随机初始化 4. He 初始化 作业2:正则化 1. 无正则化模型 2. L2 正则化 3. DropOut 正则化 3.1 ...
- 吴恩达深度学习之二《改善深层神经网络:超参数调试、正则化以及优化》学习笔记
一.深度学习的实用层面 1.1 训练/开发/测试集 机器学习时代,数据集很小,可能100.1000.10000条,这种级别.可以按 70%.30% 划分训练集和测试集,训练后直接用测试集评估.或者按 ...
- 深度学习笔记第二门课 改善深层神经网络 第三周 超参数调试、Batch正则化和程序框架...
本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...
- 02.改善深层神经网络:超参数调试、正则化以及优化 W3. 超参数调试、Batch Norm和程序框架(作业:TensorFlow教程+数字手势预测)
文章目录 1. 探索TensorFlow库 1.1 线性函数 1.2 计算 sigmoid 1.3 计算损失函数 1.4 One_Hot 编码 1.5 用0,1初始化 2. 用TensorFlow建立 ...
最新文章
- 代码攻击破坏设备,炸毁 27 吨发电机的背后
- Java继承_Hachi君浅聊Java三大特性之 封装 继承 多态
- Zepto源码分析-event模块
- QML 编程之旅 -- QML程序的基本结构概念
- 数据预处理|关于标准化和归一化的一切
- Android MP3录音实现
- windows下生成zlib1.dll
- 4.6 Routing -- Rendering A Tempalte
- Jensen不等式及其证明
- 华为成功完成中国联通NFV三层解耦测试验证
- Trie树(c++实现)
- notepad++是什么软件_对比国外更优秀的五款国产软件,却不被国人所熟悉
- php比赛票数造假算法,PHP可以修改概率的抽奖算法(例如转盘等,个人感觉蛮好用)...
- 49个Python学习资源:从初学者到高级玩家都有了
- 深入解析 ES6 系列(二)
- System.Trunc、System.Round、System.Int - 返回整数部分
- SaaSBase:什么是数云麒麟CRM?
- Unity功能实现——解析OBJ模型文件
- 什么是php递归算法_PHP递归算法实例解析
- android 局域网聊天工具(可发送文字/语音)
热门文章
- [转]动态加载jar文件
- 面试官系统精讲Java源码及大厂真题 - 43 ThreadLocal 源码解析
- RMAN备份恢复报错 ORA-19573: cannot obtain exclusive enqueue for datafile 5
- 利用DB Link两步搞定Oracle两个数据库间的表同步
- 行为设计模式 - 中介设计模式
- 移动端禁止页面缩放问题
- CCNA初认识——链路捆绑命令
- 修改itunes备份路径的方法(奇奇怪怪的文件堆积C盘,别让文件成为最后的稻草哦)
- npm 缓存_npm缓存:无名英雄
- 杭电oj 1002 c++版本