深度学习入门笔记 Day9/15 与学习相关的技巧(一)

一、为什么SGD不够完美

1. 在输入参数的系数相差较为巨大的时候,比如:深度学习入门笔记 Day9/15 与学习相关的技巧(一) 的时候,由于参数 深度学习入门笔记 Day9/15 与学习相关的技巧(一) 变化对于y的影响比参数 深度学习入门笔记 Day9/15 与学习相关的技巧(一) 变化要小得多,那么在更新参数的时候,对于x1的更新就很不明显,虽然上式的最小值明显在深度学习入门笔记 Day9/15 与学习相关的技巧(一) 处,但是如果选择初始值深度学习入门笔记 Day9/15 与学习相关的技巧(一) 可能最终收敛到的地方是深度学习入门笔记 Day9/15 与学习相关的技巧(一)

2. 学习率对SGD影响也很大,如果选择得过大,可能最终无法收敛;选择得不适合,可能收敛速度很慢;选择得过小,学习效率太低。

二、什么是Momentum、AdaGrad、Adam方法,这些优化器孰优孰劣?

Momentum:  深度学习入门笔记 Day9/15 与学习相关的技巧(一)  深度学习入门笔记 Day9/15 与学习相关的技巧(一)

AdaGrad:  深度学习入门笔记 Day9/15 与学习相关的技巧(一)  深度学习入门笔记 Day9/15 与学习相关的技巧(一)

Adam: 融合了Momentum和AdaGrad方法。

下面是四种方法在MNIST数据集上的比较:与 SGD 相比,其他 3 种方法学习得更快,而且速度基本相同,仔细看的话,AdaGrad 的学习进行得稍微快一点。这个实验需要注意的地方是,实验结果会随学习率等超参数、神经网络的结构(几层深等)的不同而发生变化。不过,一般而言,与 SGD 相比,其他 3 种方法可以学习得更快,有时最终的识别精度也更高。

 

深度学习入门笔记 Day9/15 与学习相关的技巧(一)

三、如何设定好的权重初始值?

1. 权重的初始值不要全部设为0,会导致对称结构,使得权重无法更新;

2. 剩下两个还没理解。

四、如何用Batch normalization加速学习?

Batch Norm,顾名思义,以进行学习时的 mini-batch 为单位,按 mini-batch 进行正规化。具体而言,就是进行使数据分布的均值为 0、方差为 1 的正规化。用数学式表示的话,如下所示。将 mini-batch 的输入数据 深度学习入门笔记 Day9/15 与学习相关的技巧(一) 变换为均值为 0、方差为 1 的数据 深度学习入门笔记 Day9/15 与学习相关的技巧(一)。通过将这个处理插入到**函数的前面(或者后面),可以减小数据分布的偏向。

深度学习入门笔记 Day9/15 与学习相关的技巧(一)