成稿最初是在2020年3月
最早整理了一些深度学习的基础知识给实验室的师弟师妹看,后来想想还是写个博客大家一起看吧。
批量梯度下降法(Batch Gradient Descent)
在整个数据集上(求出损失函数 J(θ 并)对每个参数 θ 求目标函数 J(θ) 的偏导数:

在该方法中,每次更新我们都需要在整个数据集上求出所有的偏导数。因此批量梯度下降法的速度会比较慢,甚至对于较大的、内存无法容纳的数据集,该方法都无法被使用。同时,梯度下降法不能以「在线」的形式更新我们的模型,也就是不能再运行中加入新的样本进行运算。
随机梯度下降法(Stochastic Gradient Descent)
相比批量梯度下降法,随机梯度下降法基于蒙特卡洛算法的思想的每次更新,是对数据集中的一个样本(x,y)求出损失函数,然后对其求相应的偏导数:

因为批量梯度下降法在每次更新前,会对相似的样本求算梯度值,因而它在较大的数据集上的计算会有些冗余(redundant)。而随机梯度下降法通过每次更新仅对一个样本求梯度,去除了这种冗余的情况。因而,它的运行速度被大大加快,同时也能够「在线」学习。但是这种算法可以作为无偏估计,但是方差会无限大。相比批量梯度下降法的收敛会使目标函数落入一个局部极小值,SGD 收敛过程中的波动,会帮助目标函数跳入另一个可能的更小的极小值。另一方面,这最终会让收敛到特定最小值的过程复杂化,因为该方法可能持续的波动而不停止。但是,当我们慢慢降低学习率的时候,SGD 表现出了与批量梯度下
深度学习常用优化算法
于 2020-09-09 15:10:34 首次发布

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



