梯度下降法-优化算法-机器学习

一、概述

梯度下降法(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.确定是否所有的梯度下降的距离都小于\varepsilon,如果小于\varepsilon则算法终止,否则进入第(4)步。

4.更新位置,更新完成后转入步骤

四、

几种常用的梯度下降法

 (1)全梯度下降算法(FG)

计算训练集所有样本误差,对其求和再取平均值作为目标函数。权重向量沿其梯度相反的方向移动,从而使当前目标函数减少得最多。因为在执行每次更新时,需要在整个数据集上计算所有的梯度,所以速度会很慢,同时,其在整个训练数据集上计算损失函数关于参数θ的梯度:

(2)随机梯度下降算法(SG)

由于FG每迭代更新一次权重都需要计算所有样本误差,而实际问题中经常有上亿的训练样本,故效率偏低,且容易陷入局部最优解,因此提出了随机梯度下降算法。其每轮计算的目标函数不再是全体样本误差,而仅是单个样本误差,即每次只代入计算一个样本目标函数的梯度来更新权重,再取下一个样本重复此过程,直到损失函数值停止下降或损失函数值小于某个设定的阈值。此过程简单,高效,通常可以较好地避免更新迭代收敛到局部最优解。其迭代形式为

3)小批量梯度下降法

小批量梯度下降算法是FG和SG的折中方案,在一定程度上兼顾了以上两种方法的优点。每次从训练样本集上随机抽取一个小样本集,在抽出来的小样本集上采用FG迭代更新权重。被抽出的小样本集所含样本点的个数称为batch_size,通常设置为2的幂次方,更有利于GPU加速处理。特别的,若batch_size=1,则变成了SG;若batch_size=n,则变成了FG。其迭代形式为:


参考链接:https://blog.csdn.net/kevinjin2011/article/details/125299113

梯度下降算法原理讲解——机器学习_zhangpaopao0609的博客-CSDN博客_梯度下降

梯度下降法原理解析(大白话+公式推理)_梯度下降原理_又是谁在卷的博客-CSDN博客

猜你喜欢

转载自blog.csdn.net/weixin_68479946/article/details/129040682