8mini-batch size = m则为批梯度下降 进行梯度下降时处理全部的训练样本,如果训练样本的数据量很大,则,进行一次梯度下降要耗费很长时间
size=1 即为随机梯度下降 随机梯度下降每次只处理训练样本中的一个训练数据 往往只是朝着局部最优的方向下降,噪声比较大,随机梯度下降不会收敛到全局的最小值只会朝着最小值方向不断下降,失去了所有由向量化而带来的优势
使用指数加权平均办法 类似于递归公示形式,通过赋予权重系数 实现求得前50天平均值的效果 比真正把前50天数据load到内存加以平均的算法好在可以节约存储数据的内存。
普通的梯度下降不能使用太大的学习率,因为普通梯度下降算法在垂直方向有波动,如果学习率太大会造成该方向波动较大,不利于收敛到最小值。动量梯度下降解决的问题是 针对碗形函数执行梯度下降算法时,需要在直接下降到最小值方向的有较大下降而其垂直方向有较小波动。使用的方法是,进行加权平均,因为对于垂直方向加权平均的结果是接近于0正好抵消掉,对于直接下降到最小值的方向,正好累加使得下降加快。
普通的梯度下降与之前的过程独立,而动量梯度下降和之前的过程有关
动量梯度下降和rmsprop都有利于减少摆动并且可以使用较大的学习率
高维空间会遇到鞍点而不是局部最优点会有一个平稳段学习很慢
不同超参数的重要程度不一样,不可以使用网格(grid)去取超参数的值进行训练,因为有些超参数不太重要对于这种超参数进行改变对结果的影响不大。要使用随机取值的办法,并且在大范围内找到效果较好的超参数值之后,划定较小的范围,在小范围内继续随机找。
选取超参数值的时候,所用的scale也比较重要,比如从0 到1之间取值和从0到0.1之间取值取到0到0.01之间数的概率是不一样的。另外选用线性取值不太好,因为0.9到0.99对于结果的影响程度和0.1到0.19对于结果的影响程度有可能是不一样的 。
超参数训练的时候可以采用2种模式 一种是只训练一个模型 (babysitting one model)一种是一次训练多个模型 适用于计算资源比较丰富的情况。
normalization只是对输入数据进行正则化处理,batch norm是对于输入数据和隐含层都进行正则化处理使其具有特定的(可控的直接受超参数beta gama影响的)均值和方差。
另外,batch norm过程中为了不使得所有数据的分布都是一样的即均值为0方差为1 ,添加了系数 beta gama作为超参数,利于调整数据的分布来适应激活函数.例如使得数据分布处在sigmoid接近线性函数的部分。
batch norm使得网络的输入变得稳定 即使这些值在数值上会发生改变但是它们的分布会保持不变。
减弱了下一层网络和上一层网络之间的依赖关系。
网友评论