一、概述
梯度下降法(Gradient descent,简称GD)是一阶最优化算法,主要目的是通过迭代找到目标函数的最小值,或者收敛到最小值。
梯度下降法是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降法和最小二乘法是最常采用的方法。在求解损失函数的最小值时,可以通过梯度下降法来迭代求解,得到最小化的损失函数和模型参数值。在机器学习中,基于基本的梯度下降法发展了两种常用梯度下降方法,分别为随机梯度下降法和批量梯度下降法
ps:需要求解损失函数的最大值,使用梯度上升法。
ps:最小梯度是启发式算法,因为下一次的解使用了之前的解的结果,并且最小梯度法可以看作是最简单的单层神经网络算法。
二、概念
预测函数(Prediction function):在机器学习中,为了拟合样本而采用预测函数。例如线性回归表达式中Y = WiX + B(Wi=W1,W2……WN),Wi表示权重,Y表示输出值,也成为预测值。而X表示输入值,也成为样本特征值。B在此处称为截距项,目的在于防止训练出的模型必定通过原点,提升了模型的适用范围。
损失函数(Loss function):损失函数用于评估训练出的模型的拟合程度。损失函数越大,意味着模型拟合效果越差。可以用最小二乘来进行评价
在机器学习中,梯度下降法的根本目是在迭代中寻找损失函数的最小值,并通过反向传播的方式调整各个权重的大小,知道模型拟合程度达到指定要求。
步长(Learning rate):步长决定了在梯度下降的过程中沿梯度负方向移动的距离,也就是对应于上文中所提到的两次测量最陡路径之间的距离,在机器学习中也被成为学习率。
梯度:
在单变量的函数中,梯度其实就是函数的微分,代表着函数在某个给定点的切线的斜率在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在给定点的上升最快的方向
三、公式与求解步骤
此公式的意义是:J是关于Θ的一个函数,我们当前所处的位置为Θ0点,要从这个点走到J的最小值点,也就是山底。首先我们先确定前进的方向,也就是梯度的反向,然后走一段距离的步长,也就是α,走完这个段步长,就到达了Θ1这个点!
1.确定当前位置的损失函数的梯度
2.用步长乘以损失函数的梯度,得到当前位置下降的距离
3.确定是否所有的梯度下降的距离都小于,如果小于则算法终止,否则进入第(4)步。
4.更新位置,更新完成后转入步骤
四、
几种常用的梯度下降法
(1)全梯度下降算法(FG)
计算训练集所有样本误差,对其求和再取平均值作为目标函数。权重向量沿其梯度相反的方向移动,从而使当前目标函数减少得最多。因为在执行每次更新时,需要在整个数据集上计算所有的梯度,所以速度会很慢,同时,其在整个训练数据集上计算损失函数关于参数θ的梯度:
(2)随机梯度下降算法(SG)
由于FG每迭代更新一次权重都需要计算所有样本误差,而实际问题中经常有上亿的训练样本,故效率偏低,且容易陷入局部最优解,因此提出了随机梯度下降算法。其每轮计算的目标函数不再是全体样本误差,而仅是单个样本误差,即每次只代入计算一个样本目标函数的梯度来更新权重,再取下一个样本重复此过程,直到损失函数值停止下降或损失函数值小于某个设定的阈值。此过程简单,高效,通常可以较好地避免更新迭代收敛到局部最优解。其迭代形式为
3)小批量梯度下降法
小批量梯度下降算法是FG和SG的折中方案,在一定程度上兼顾了以上两种方法的优点。每次从训练样本集上随机抽取一个小样本集,在抽出来的小样本集上采用FG迭代更新权重。被抽出的小样本集所含样本点的个数称为batch_size,通常设置为2的幂次方,更有利于GPU加速处理。特别的,若batch_size=1,则变成了SG;若batch_size=n,则变成了FG。其迭代形式为:
参考链接:/kevinjin/article/details/125299113
梯度下降算法原理讲解——机器学习_zhangpaopao0609的博客-CSDN博客_梯度下降
梯度下降法原理解析(大白话+公式推理)_梯度下降原理_又是谁在卷的博客-CSDN博客