深度学习(batch,mini-batch,其它算法)
来源:互联网 发布:4g卡为什么显示3g网络 编辑:程序博客网 时间:2024/06/15 21:47
1 .batch vs mini-batch
2.理解mini-batch
分成几份,,,遍历做回归与反省回归。
若size=m,才相当于batch。
若size=1 ,随机梯度下降法(stochastic gradient descent)每个样本样本都是独立Mini_batch.
随机梯度下降法有很多的 噪声。指错方向。往往不会到达最小值,而是在附近波动.很显然,一个样本求一次梯度,没有用到向量,速度慢.若1 < size < m,学习速率最快。1 实现了向量化。2.不需要等待整个训练集处理完
Vectoration fast总的来说比随机梯度下降 更持续的接近最小值,也不一定在很小的范围内波动,如果出现波动,可以减小学习率
3How to choose size?
1 . small training set (m<=2000):use batch gradient descent
2 . bigger training set:64 to 512.consider computer memory,(2 to nth)
attention: make sure your mini-batch size fits in GPU/CPU memory
3.指数加权平均(exponentially weighted average):
4.理解指数加权平均
5.偏差修正
6.动量梯度下降法(Momentum):
![这里写图片描述](http://img.blog.csdn.net/20171005135513484?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQwNTk5ODk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)![这里写图片描述](http://img.blog.csdn.net/20171005135709643?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQwNTk5ODk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)1. 这种上下波动,不可能使用更大的学习率,会偏离函数范围,所以我们希望使用更小的学习率。
2. 你希望横轴上加快,纵轴上变慢,
7.RMS
8.adam算法:
2个结合
Alpha:调试选择
Belta1:0.9
Belta:0.999
Epsilon:10-8 Adam作者这么认为
通常使用默认值,只调整alpha
Adaptive moment Estimation
9. 学习率衰减:
前期能承受较大的步伐,开始的alpha比较大。
学习率下降的方法:
1、 Decay rate: 衰减率
Epoch-num 第几代
2. exponentially decay :
3还有各种方法:
4. manual decay 手动衰减 模型数量小的时候
10. local optima in neural network
不太可能困在极差的局部最优中。(有很多的参数,J被定义在极大的维度空间)
局部最优这不是个问题。
平稳段 是最严重的问题。导数长时间未0。这也就是momentum 原因。
如果梯度为0,那么他在各个方向可能是凸函数,凹函数。
在20000维当中,维度都为0 的概率很小。。 很可能遇到上面的鞍点。
这点的梯度为0 。。
实际上,在低纬度的一些直觉 不能应用到高wei度上去。
附带数组 运算
数的平方和多次方 pow(a,2)
Array多次方 np.square(a) np.sqrt(a)
umpy.sqrt(array) 平方根函数
numpy.exp(array) e^array[i]的数组
numpy.abs/fabs(array) 计算绝对值
numpy.square(array) 计算各元素的平方 等于array**2
numpy.log/log10/log2(array) 计算各元素的各种对数
numpy.sign(array) 计算各元素正负号
numpy.isnan(array) 计算各元素是否为NaN
numpy.cos/cosh/sin/sinh/tan/tanh(array) 三角函数
numpy.modf(array) 将array中值得整数和小数分离,作两个数组返回二元ufunc
numpy.add(array1,array2)元素级加法
numpy.subtract(array1,array2) 元素级减法
numpy.multiply(array1,array2) 元素级乘法
numpy.divide(array1,array2) 元素级除法 array1./array2
numpy.power(array1,array2) 元素级指数 array1.^array2
numpy.maximum/minimum(array1,aray2) 元素级最大值
numpy.fmax/fmin(array1,array2) 元素级最大值,忽略NaN
numpy.mod(array1,array2)元素级求模
numpy.copysign(array1,array2) 将第二个数组中值得符号复制给第一个数组中值
numpy.greater/greater_equal/less/less_equal/equal/not_equal (array1,array2)元素级比较运算,产生布尔数组
numpy.logical_and/logical_or/logic_xor(array1,array2)元素级的真值逻辑运算
- 深度学习(batch,mini-batch,其它算法)
- 神经网络算法学习---mini-batch
- 神经网络算法学习---mini-batch
- 深度学习优化函数详解(3)-- mini-batch SGD 小批量随机梯度下降
- 深度学习—加快梯度下降收敛速度(一):mini-batch、Stochastic gradient descent
- [深度学习] Batch Normalization算法介绍
- 深度学习--Batch Normalization
- 【深度学习】Batch Normalization
- 深度学习中的batch size
- 深度学习的Batch Normalization
- 深度学习中的Batch Normalization
- 深度机器学习中的batch
- 深度学习: Batch Normalization (归一化)
- Mini-batch gradient
- mini-batch 梯度下降
- Mini-Batch Gradient Descent
- scikit-learn学习之K-means聚类算法与 Mini Batch K-Means算法
- 深度学习中的batch、batch size与epoch
- HDU6183 Color it(线段树 动态开点)
- sql之left join、right join、inner join的区别
- pata1060
- 微信图书馆开发——cnsoft总结
- Spark性能优化:数据数据倾斜(Data Skew)
- 深度学习(batch,mini-batch,其它算法)
- OS学习笔记二: 进程线程模型
- webpack多出口文件及简单处理
- java定时scheduledExecutionTime
- 中文文本处理传统方法
- Time To Get Up
- hdu 1081 1559 最大子矩阵
- Learning Python Part I 之 列表
- hdu5687