本文最后更新于 1673 天前,其中的信息可能已经有所发展或是发生改变。
1. 梯度下降、随机梯度下降和批量梯度下降
梯度下降法在解优化问题时候常用到,利用迭代的思想来逼近最低点,沿着梯度的负方向更新模型权重。向函数上当前点对应梯度的反方向规定步长距离点进行迭代搜索简而言之,为求的某函数的最小值(比如cost函数,其自变量是某个模型的参数,函数值是模型和真实值的方差),随找一个点,求的其梯度,沿着其梯度下降的方向找下一个点,最终就能找到局部最小值,因为每个点都是通过上一个点得来的,因此是一个迭代的过程,而每一步的函数值,又是通过多个样本计算得来。
缺点:
- 靠近极值时速度减慢
-
可能 ‘之字形’ 下降
1. 批量梯度下降 (BGD: Batch Gradient Descent) :
最典型的的梯度下降。在每一次迭代过程中,利用所有样本来更新一遍权重,
缺点:每次更新幅度大,计算量大,收敛速度快。
$$
\theta_j = \theta_j – \alpha \frac{1}{m} \sum_{i=1}^m (h_\theta (x^{(i)}) – y^{(i)}) x_j^{(i)}
$$
2. 随机梯度下降 (SGD: Stochastic Gradient Descent)
和批量梯队下降对应,是一个极端:在更新参数时随机用一个样本。
缺点:准确度差;容易陷入局部最优解;训练速度虽然快,但收敛速度不一定快。
$$
\theta_j = \theta_j – \alpha \frac{1}{m} (h_\theta (x^{(i)}) – y^{(i)}) x_j^{(i)}
$$
3. 随机批量梯度下降 (MBGD: Mini-Batch Gradient Descent)
前两种方法的折中,每次迭代过程中,利用随机的部分样本更新权重。每次使用 k 个样本,k 小于总样本数量 m。
$$
\theta_j = \theta_j – \alpha \frac{1}{m} \sum_{i=k}^{t+k-1} (h_\theta (x^{(i)}) – y^{(i)}) x_j^{(i)}
$$
评论