目录
最小二乘法
梯度下降法
1.梯度下降法的定义
2.梯度下降法的运行过程
3.梯度下降法的步骤
4.梯度下降法的分类
(1)批量梯度下降 BGD
(2)随机梯度下降 SGD
(3)小批量梯度下降 mini-batch GD
5.梯度下降改进
(1)Momentum
(2)AdaGrad(Adaptive Gradient)
(3)Adam( Adaptive Moment Estimation)
摘要:
1.最小二乘法
通过最小化实际观测值与模型预测值之间的残差平方和来确定最佳参数。
核心思想:求解未知参数,使得理论值与观测值之差(即误差,或者说残差)的平方和达到最小。
2.梯度下降法
梯度下降法是一种优化算法,常用于机器学习和深度学习中,用于最小化一个损失函数。
核心思想:是通过迭代调整模型参数,以使损失函数达到最小值。
参数更新:新参数 = 旧参数 - 学习率 × 梯度
最小二乘法
最小二乘法是一种常用于拟合数据和估计模型参数的数学方法。
它通过最小化实际观测值与模型预测值之间的残差平方和来确定最佳参数。
最小二乘法广泛应用于回归分析和曲线拟合。
🌍它的主要思想就是求解未知参数,使得理论值与观测值之差(即误差,或者说残差)的平方和达到最小。
在最小二乘法中,我们通常有一个模型,该模型包含一些待定的参数,而实际观测到的数据点与模型的预测值之间存在差异。最小二乘法的目标是找到最优的参数值,使得这些差异的平方和最小。化。
梯度下降法
1.梯度下降法的定义
梯度下降法是一种优化算法,常用于机器学习和深度学习中,用于最小化一个损失函数。
🌍梯度下降法的核心思想是通过迭代调整模型参数,以使损失函数达到最小值。
这个过程类似于寻找山上最低点的过程,其中梯度代表了上升最快的方向,而负梯度则代表了下降最快的方向。
怎么找损失函数的最小值呢?我们可以借助【极值点】来描述。
🌍梯度下降法的核心思想是通过迭代调整模型参数,以使损失函数达到最小值。
根据高数知识我们可以知道最小值点=min{极小值点,边界值}。
梯度下降法就是寻找一个极小值点。
有的函数的极小值点会有很多个,这个时候就要看运气了。梯度下降法最开始会随机寻找一个位置,然后从这个位置开始找局部的最优解,如果运气好的话就找到了最小值,如果不好的话就只是找到了一个极小值。
2.梯度下降法的运行过程
在梯度下降法中,我们利用梯度的信息来调整模型参数,以减小损失函数。具体来说,沿着梯度的反方向更新参数,从而使损失函数逐渐减小,最终达到最优参数配置。
首先说【梯度】是什么?
在数学和向量微积分中,梯度是一个向量,表示函数在某一点上的变化率。对于一个多元函数,梯度由该函数对每个自变量的偏导数组成。
🌍在梯度下降法中,我们沿着梯度的反方向更新参数,从而使损失函数逐渐减小,最终达到最优参数配置。
梯度的方向也就是上图蓝线标的方向,梯度的反方向也就是红线标的方向。
那么如何调整【参数】呢?
这个调整的大小由【学习率】(learning rate)控制。
学习率是一个重要的超参数,过大的学习率可能导致算法不稳定,而过小的学习率可能导致收敛速度缓慢。
新参数 = 旧参数 - 学习率 × 梯度
3.梯度下降法的步骤
-
初始化参数: 随机或使用某些启发式方法初始化模型参数。这些参数是算法的初始猜测,梯度下降将通过迭代来更新这些参数。
-
计算损失函数: 使用当前参数计算损失函数的值。损失函数是衡量模型预测与实际值之间差异的函数。目标是最小化这个损失函数。
-
计算梯度: 计算损失函数关于模型参数的梯度(偏导数)。梯度是一个向量,其每个分量表示对应参数的变化率。梯度的方向是损失函数增加最快的方向,而梯度的负方向是损失函数减少最快的方向。
-
更新参数: 沿着梯度的反方向调整模型参数,以减小损失函数的值。这个调整的大小由学习率(learning rate)控制。学习率是一个重要的超参数,过大的学习率可能导致算法不稳定,而过小的学习率可能导致收敛速度缓慢。
新参数 = 旧参数 - 学习率 × 梯度
-
重复步骤2-4: 重复上述步骤,直到满足停止条件,例如达到最大迭代次数、损失函数收敛到一个设定的阈值,或者梯度足够小。
4.梯度下降法的分类
根据计算一次目标函数梯度的样本数量可分为批量梯度下降(Batch gradient descent, BGD),随机梯度下降(Stochatic gradient decent, SGD),小批量梯度下降(mini-batch gradient descent)。
(1)批量梯度下降 BGD
在训练过程中,每一步迭代都使用训练集的所有内容。
也就是说,利用现有参数对训练集中的每一个输入生成一个估计输出y ̂_i,然后跟实际输出 y_i 比较,统计所有误差,求平均以后得到平均误差,以此来作为更新参数的依据。
优点:由于每一步都利用了训练集中的所有数据,因此当损失函数达到最小值以后,能够保证此时计算出的梯度为0,换句话说,就是能够收敛。因此,使用BGD时不需要逐渐减小学习速率。
缺点:由于每一步都要使用所有数据,因此随着数据集的增大,运行速度会越来越慢.
(2)随机梯度下降 SGD
随机梯度下降方法一次只抽取一个随机样本进行目标函数梯度计算。
优点:由于每次只计算一个样本,所以SGD收敛非常快。
缺点:因为是随机抽取样本,因此误差是不可避免的,且每次迭代的梯度受抽样的影响比较大。
(3)小批量梯度下降 mini-batch GD
小批量梯度下降结合了批量梯度下降和随机梯度下降的优点,它一次以小批量的训练数据计算目标函数的权重并更新参数。
🌍梯度下降法的问题
1. 难以选择合适的学习速率:如果学习速率选择过小会造成网络收敛太慢,但是设得太大可能使得损失函数在最小点周围不断摇摆而永远达不到最小点;
2.如果训练数据十分稀疏并且不同特征的变化频率差别很大,这时候对变化频率慢得特征采用大的学习率,而对变化频率快的特征采用小的学习率是更好的选择;
5.梯度下降改进
(1)Momentum
若当前的梯度方向与累积的历史梯度方向一致,则当前的梯度会被加强,从而这一步下降的幅度更大。若当前的梯度方向与累积的梯度方向不一致,则会减弱当前下降的梯度幅度。
(2)AdaGrad(Adaptive Gradient)
每一次更新参数时(一次迭代),不同的参数使用不同的学习率。
(3)Adam( Adaptive Moment Estimation)
Adam利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。其优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。