【DL--06】深度学习基本概念—batch
来源:互联网 发布:rsa算法原理 一 编辑:程序博客网 时间:2024/06/07 02:42
batch
这个概念与Keras无关,老实讲不应该出现在这里的,但是因为它频繁出现,而且不了解这个技术的话看函数说明会很头痛,这里还是简单说一下。
深度学习的优化算法,说白了就是梯度下降。每次的参数更新有两种方式。
第一种,遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度。这种方法每更新一次参数都要把数据集里的所有样本都看一遍,计算量开销大,计算速度慢,不支持在线学习,这称为Batch gradient descent,批梯度下降。
另一种,每看一个数据就算一下损失函数,然后求梯度更新参数,这个称为随机梯度下降,stochastic gradient descent。这个方法速度比较快,但是收敛性能不太好,可能在最优点附近晃来晃去,hit不到最优点。两次参数的更新也有可能互相抵消掉,造成目标函数震荡的比较剧烈。
为了克服两种方法的缺点,现在一般采用的是一种折中手段,mini-batch gradient decent,小批的梯度下降,这种方法把数据分为若干个批,按批来更新参数,这样,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。另一方面因为批的样本数与整个数据集相比小了很多,计算量也不是很大。
基本上现在的梯度下降都是基于mini-batch的,所以Keras的模块中经常会出现batch_size,就是指这个。
顺便说一句,Keras中用的优化器SGD是stochastic gradient descent的缩写,但不代表是一个样本就更新一回,还是基于mini-batch的。
阅读全文
1 0
- 【DL--06】深度学习基本概念—batch
- 【DL--03】深度学习基本概念—张量
- 【DL--04】深度学习基本概念—data_format
- 【DL--07】深度学习基本概念—epochs
- 【DL--05】深度学习基本概念—函数式模型
- 【DL--02】深度学习基本概念--符号计算
- 深度学习——Batch Normalization
- 深度学习——Batch Normalization
- 深度学习--Batch Normalization
- 【深度学习】Batch Normalization
- 深度学习中的batch size
- 深度学习的Batch Normalization
- 深度学习中的Batch Normalization
- 深度机器学习中的batch
- 深度学习: Batch Normalization (归一化)
- 深入浅出——深度学习中的Batch Normalization使用
- 【DL--01】深度学习 揭开DL的神秘面纱
- 深度学习基本概念
- 资料收集:深度学习框架比较
- Git基本操作
- OpenSSL 1.1.0f 25 May 2017 OpenSSL 1.0.1e-fips 11 Feb 2013性能比较
- 函数
- Tomcat 7.0在Eclipse下安装与部署(上)
- 【DL--06】深度学习基本概念—batch
- 解决HTML加载时,外部js文件引用较多,影响页面打开速度问题
- 贴片陶瓷电容材质NPO、C0G、X7R、X5R、Y5V、Z5U区别
- ACM 树的递归 Not so Mobile & The Falling Leaves
- 最长公共子序列LCS和最长子串SLCS
- https请求单向认证
- 使用远程线程注入的三个函数CreateRemoteThread、NtCreateThreadEx、RtlCreateUserThread
- CODEV和zemax tilt反射镜建立和对比3
- JMS之——ActiveMQ支持两种事务