梯度下降|笔记

1.梯度下降法的原理

1.1确定一个小目标:预测函数

机器学习中一个常见的任务是通过学习算法,自动发现数据背后的规律,不断改进模型,做出预测。

上图的坐标系,横轴表示房子面积,纵轴表示房价,图中的点就是给出的数据。

任务是,设计一个算法,让机器能够拟合这些数据,算出直线的参数w

一个简单的方法是,先随机选一条过原点的直线,然后计算所有样本点和这条直线的偏离程度,再根据误差大小来调整w的值。

1.2 找到差距:代价函数

均方误差,所有点的误差相加求和再求平均值

e1 e2 ...en是每个点的误差值

把每个点的误差值相加求和再求平均值,合并同类项

上面这个误差函数代表了学习需要付出的代价,也常被称为代价函数(cost function),

二次项的系数a>0,是一个开口向上的抛物线

左边的直线绕原点旋转,对应到右边图像上就是取值点(红色)在抛物线上运动,

左边找到正确的w的值的时候,对应右边图像上取值点应该到最底部,即梯度为0的点

左边是预测函数,右边是代价函数

通过定义预测函数,根据误差公式,推导代价函数,可以成功地将样本点的拟合过程映射到一个函数图像上,

1.3 明确搜索方向:梯度下降

目标是找到代价函数的最低点,

从当前点的位置,每一步都选择"最陡峭"的方向走,这就是前进的方向 沿着这个方向走,就能最快到达最低点

"陡峭程度"就是梯度,是代价函数的导数,抛物线的曲线斜率

(补充:机器学习、深度学习中很多模型是非常复杂的,不能对整个函数求导,只能在一个函数的一个点上求导)

1.4 迈多大步子:学习率

步子太小,loss值会一直在最低点处震荡,难以收敛

直接使用斜率值做步长,步子太大,取值会左右横跳,loss难以收敛

正确的做法:给斜率值乘上一个很小的数值,也就是乘上学习率α,

调整权重参数w的公式是:

1.5 不达目的不罢休:循环迭代

1-4步如下图:

第5步就是重复3、4步,直到找到最低点

整个流程就是梯度下降算法

实际情况没这么简单,

因为实际情况中,训练样本的分布千奇百怪,代价函数也可能千变万化,不太可能是一条简单的抛物线。

代价函数的图像是波浪线时,会有多个最低点,要找到全局最优

代价函数还有可能是高维的,十几维、百维,难以可视化;但都可以通过梯度下降法找到最低点。

2. 梯度下降算法的变体

2.1 批量梯度下降

每次用全部训练样本参与计算,梯度下降的非常平稳,

优点:保证算法的精准度,找到全局最优点

缺点:训练搜索过程慢,代价大

2.2 随机梯度下降

每次只用一个样本参与计算,

优点:提升了计算速度,

缺点:牺牲了一定的精准度

2.3 min-batch梯度下降

每次选用小批量样本进行计算

优点:比批量梯度下降快,比随机梯度下降准确

2.4 其它

其它改进的梯度下降算法:

AdaGrad 动态调节学习率,经常更新的参数学习率小一些,不常更新的参数学习率大

RMSProp 优化动态学习率

AdaDelta无需设置学习率

Adam 融合了AdaGrad和RMSProp

补充:

梯度下降是一种用来对模型的参数进行更新的优化算法,在机器学习和深度学习中,模型的目标是通过调整参数来最小化损失函数。梯度下降算法,通过计算损失函数对参数的梯度(即求导),来指导参数的更新方向。通过迭代地沿着梯度的反方向更新参数,梯度下降算法可以逐步地降低损失函数的值,从而使模型更准确地进行预测或分类。


道阻且长,行则将至!


相关推荐
许愿与你永世安宁1 个月前
强化学习 (11)随机近似
人工智能·算法·强化学习·梯度下降·随机近似
辰尘_星启1 个月前
【机器学习】反向传播如何求梯度(公式推导)
人工智能·深度学习·机器学习·强化学习·梯度下降·反向传播
大饼酥2 个月前
吴恩达机器学习笔记(2)—单变量线性回归
机器学习·线性回归·梯度下降·吴恩达·代价函数
摘取一颗天上星️3 个月前
深入解析机器学习的心脏:损失函数及其背后的奥秘
人工智能·深度学习·机器学习·损失函数·梯度下降
大模型铲屎官3 个月前
【深度学习-Day 16】梯度下降法 - 如何让模型自动变聪明?
开发语言·人工智能·pytorch·python·深度学习·llm·梯度下降
青橘MATLAB学习4 个月前
机器学习中的学习率及其衰减方法全面解析
人工智能·机器学习·梯度下降·超参数优化·学习率·衰减方法·模型收敛
夜松云4 个月前
从对数变换到深度框架:逻辑回归与交叉熵的数学原理及PyTorch实战
pytorch·算法·逻辑回归·梯度下降·交叉熵·对数变换·sigmoid函数
liruiqiang054 个月前
神经网络优化 - 小批量梯度下降之批量大小的选择
人工智能·深度学习·神经网络·机器学习·梯度下降
夜松云4 个月前
自求导实现线性回归与PyTorch张量详解
人工智能·pytorch·算法·机器学习·线性回归·梯度下降·自动求导
夜松云4 个月前
机器学习中的距离度量与优化方法:从曼哈顿距离到梯度下降
人工智能·机器学习·损失函数·梯度下降·前向传播·数学基础·交叉验证