Experimental Study of SGD and Momentum SGD
在课程中,我们讨论了 momentum SGD 等价于学习率增大后的标准 SGD 算法,参见 Lecture 8 的Slides. 请在如下任务中对比学习率为 gamma 的momentum SGD以及学习率为gamma/(1-beta) 的 standard SGD 的 training loss 曲线与 test accuracy 曲线,其中 beta 为动量系数。以上两种优化算法均需要自行编写。
- [1] 在实际数据集(可在 LIBSVM [R1-2]中自行挑选)中做线性回归任务,对两种算法的结果进行对比与分析
- [2] 在 MNIST 数据集中训练 LeNet 神经网络,对两种算法的结果进行对比分析
- [3] 在 CIFAR10 的数据集中训练 Resnet-18 神经网络,对两种算法结果进行对比
- [4] 在 MNIST 的数据集中测试不同的 constant learning rate 对 SGD 的收敛曲线及 test accuracy 的影响
- [5] 在 MNIST 的数据集中测试不同的 batch-size 对 SGD 的收敛曲线及 test accuracy 的影响
- 陈:[1]
- 赵:[2][4][5]
- 朱:[3]
设
以下报告各种batch_size、
现象:小学习率,二者差不多,甚至SGD稍微屌点;大学习率,SGD寄了,MSGD还能苟住;学习率继续增大,两个都寄了,但是MSGD寄的慢。神奇的是,二者寄了的平稳点是一样的。曲线在比较大的Loss重合(Accuracy也是)。
batch_size=64,
batch_size=64,
batch_size=64,
batch_size=64,
batch_size=64,
batch_size=64,
batch越小,Loss抖动的越厉害。batch越大,Loss越平稳。大batch有助于减小方差。SGD收敛速率的第二项好像有这个东西
batch_size=8,
batch_size=16,
batch_size=32,
batch_size=64,