打字猴:1.70053686e+09
1700536860
1700536861 百面机器学习:算法工程师带你去面试 [:1700532209]
1700536862 百面机器学习:算法工程师带你去面试 06 随机梯度下降法的加速
1700536863
1700536864
1700536865
1700536866 场景描述
1700536867
1700536868 提到深度学习中的优化方法,人们通常会想到随机梯度下降法。但是,随机梯度下降法并不是万金油,有时候反而会成为一个坑。当你设计出一个深度神经网络时,如果只知道用随机梯度下降法来训练模型,那么当你得到一个比较差的训练结果时,你可能会放弃在这个模型上继续投入精力。然而,造成训练效果差的真正原因,可能并不是模型的问题,而是随机梯度下降法在优化过程中失效了,这可能会导致你丧失一次新发现的机会。
1700536869
1700536870 知识点
1700536871
1700536872 梯度下降法,随机梯度下降法
1700536873
1700536874 问题1 随机梯度下降法失效的原因 —— 摸着石头下山。
1700536875
1700536876 难度:★★☆☆☆
1700536877
1700536878 深度学习中最常用的优化方法是随机梯度下降法,但是随机梯度下降法偶尔也会失效,无法给出满意的训练结果,这是为什么?
1700536879
1700536880 分析与解答
1700536881
1700536882 为了回答这个问题,我们先做一个形象的比喻。想象一下,你正在下山,视力很好,能看清自己所处位置的坡度,那么沿着坡向下走,最终你会走到山底。如果你被蒙上双眼,只能凭脚底踩石头的感觉判断当前位置的坡度,精确性就大大下降,有时候你认为的坡,实际上可能并不是坡,走上一段时间发现没有下山,或者曲曲折折走了好多弯路才下山。
1700536883
1700536884 类似地,批量梯度下降法(Batch Gradient Descent,BGD)就好比正常下山,而随机梯度下降法就好比蒙着眼睛下山。具体介绍一下两种方法。
1700536885
1700536886
1700536887 批量梯度下降法在全部训练集上计算准确的梯度,即
1700536888
1700536889
1700536890
1700536891
1700536892 (7.46)
1700536893
1700536894 其中f (θ;xi,yi)表示在每个样本(xi,yi)的损失函数,φ(θ)为正则项。
1700536895
1700536896 随机梯度下降法则采样单个样本来估计的当前梯度,即
1700536897
1700536898
1700536899
1700536900
1700536901 (7.47)
1700536902
1700536903 可以看出,为了获取准确的梯度,批量梯度下降法的每一步都把整个训练集载入进来进行计算,时间花费和内存开销都非常大,无法应用于大数据集、大模型的场景。相反,随机梯度下降法则放弃了对梯度准确性的追求,每步仅仅随机采样一个(或少量)样本来估计当前梯度,计算速度快,内存开销小。但由于每步接受的信息量有限,随机梯度下降法对梯度的估计常常出现偏差,造成目标函数曲线收敛得很不稳定,伴有剧烈波动,有时甚至出现不收敛的情况。图7.4展示了两种方法在优化过程中的参数轨迹,可以看出,批量梯度下降法稳定地逼近最低点,而随机梯度下降法的参数轨迹曲曲折折简直是“黄河十八弯”。
1700536904
1700536905
1700536906
1700536907
1700536908 图7.4 参数优化轨迹
1700536909
[ 上一页 ]  [ :1.70053686e+09 ]  [ 下一页 ]