深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业

时间:2022-12-14 17:02:45

Mini-batch

  当采用mini-batch时,cost function持续减小,但是cost function减小的并不完全平坦,因为每个batch可能带来不同的下降方向和大小。
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业
  当batch size 减小为1时,退化为SGD,此时将会丢失向量化处理的优势;
  当batch size增大到m时,此时为batch gradient descent,此时每次循环将会需要很长时间。
  相反如果采用mini-batch时,不仅能够利用向量化处理的优点,而且在不同时处理整个数据集时取得不错的效果。
  一般的mini-batch的大小为64/128/256/512(2的次方)。
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业
  实践中的mini-batch包括shuffle和partition两步,同时还需要考虑到最后一个batch的数量小于mini_batch_size的情况:
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业
num_complete_minibatches=math.floor(m/mini_batch_size)
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业

优化

优化算法之前讨论两个问题:
1. 局部最小值问题。在深度学习中,最优化问题其实并不容易困在局部最小值点。在高维度空间时(如20000维),局部最小值点需要在所有维度上都取得最小值,概率为,反而更容易困在鞍点处。
  反而是平稳端(plateaus)也会使得学习变慢,因此可以通过学习率衰减例如Adam或者RMSProp加速学习。
2. 指数加权(移动)平均(Exponentially Weighted (moving) average)
  在数据抖动较大的情况下,如果希望利用之前的整体变化趋势,可以对每个时刻的数据进行平滑处理,即指数加权移动平均,一般形式为:

vt=βvt1+(1β)θt

  其中数据 vt 利用了前 11β 天的整体趋势平均。
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业
  为什么是前 11β 天的指数平均可以从上图看出。当我们迭代带入数值计算时,一般认为当权重占比小于t时刻数值的三分之一( (1ϵ)1ϵ=1e13 )时,就不再认为t时刻后的数据参与平均。那么可以看到当( 1ϵ )为0.9的时候,指数系数为10,也即认为共10个时刻的数据参与平均,当( 1ϵ )为0.98时,指数系数为50,也即认为共50个时刻的数据参与平均。

作业

Momentum
  采用指数加权平均的动量方式加速训练,每一层需要初始化v(velocity),然后再在每一层进行梯度下降:
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业
  如何选择参数beta?
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业
Adam
  由于采用指数加权平均的初始化过程中存在初始阶段的偏值,因此添加了偏置修正(bias correction)的Adam参数更新如下:
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业
  参数更新的时候,注意此时一般的beta1取0.9,beta2取0.999:
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业
  最后通过比较梯度下降(Mini-batch SGD)、Momentum、Adam在分类上的效果,得出如下结论:
深度学习第二课 改善深层神经网络:超参数调试、正则化以及优化 第二周Mini_batch+优化算法 笔记和作业
Adam的优势:
1. 相对较小的存储要求(利用指数加权平均的方式不需要存储过去时间的数据)
2. 微调也能得到很好的效果