梯度下降法 Gradient Descent

简介: 梯度下降法 Gradient Descent

正文


梯度下降法求解最小值过程概述:


在一个可微的光滑曲面上随机选取一个点,然后通过不断的迭代计算,使这个点移动的每一步都向着梯度方向(即下降最快的方向),最终到达局部极小值点,之后通过多次随机取点进行同样的计算,即可找出最小值点。

11.png

那么我们为什么不直接求解最小值点,而是通过迭代的方法一步一步来求解呢?


实际上机器学习所要求的非线性方程一般很难求得数值解,而且在实际应用中也没有必要求得精确的数值解,往往只要求得满足一定精度要求的近似解即可。计算模型的过程是一个拟合的过程,通过不断迭代缩小误差来得到近似解,最终误差在一个可接受的范围内就算拟合完成。


举个例子,假设我们要寻找一个小于10的误差在2以内的数,那么通过迭代我们可以得到9或9.5甚至更接近(因为迭代的过程是一个不断减小误差的过程),但是直接求解我们很有可能只能找到8,这时候误差就很大了。

梯度下降法的数学表达:


假设f(x)Rn(n维特征空间)上具有一阶连续偏导数的函数,要求解的无约束最优化函数如下:


12.png


则有:

目标函数(损失函数+正则化项): f(x)

梯度函数: g(x)=∇f(x)

给定精度: ϵ

给定步长: η

下降距离: ηg

极小值点: x∗


计算步骤:


13.png


相关文章
|
机器学习/深度学习 并行计算 算法
梯度下降(Gradient Descent)
梯度下降(Gradient Descent)是一种常用的优化算法,用于最小化(或最大化)函数的目标值。它是一种迭代的优化方法,通过沿着目标函数的负梯度方向更新参数,逐步接近最优解。
139 1
|
机器学习/深度学习 算法 PyTorch
Gradient Descent Algorithm 梯度下降算法
Gradient Descent Algorithm 梯度下降算法
106 0
|
机器学习/深度学习 算法
线性回归(Linear regression)算法
属于有监督学习、判别模型、有预测函数、有优化目标,有优化求解算法
296 0
|
机器学习/深度学习 算法 数据可视化
Lesson 4.3 梯度下降(Gradient Descent)基本原理与手动实现-1
Lesson 4.3 梯度下降(Gradient Descent)基本原理与手动实现-1
|
机器学习/深度学习 算法
Lesson 4.3 梯度下降(Gradient Descent)基本原理与手动实现-2
Lesson 4.3 梯度下降(Gradient Descent)基本原理与手动实现-2
|
机器学习/深度学习 算法
机器学习算法之——梯度提升(Gradient Boosting)下
GDBT本身并不复杂,不过要吃透的话需要对集成学习的原理、策树原理和各种损失函树有一定的了解。由于GBDT的卓越性能,只要是研究机器学习都应该掌握这个算法,包括背后的原理和应用调参方法。目前GBDT的算法比较好的库是xgboost。当然scikit-learn也可以。
机器学习算法之——梯度提升(Gradient Boosting)下
|
机器学习/深度学习 算法 Python
机器学习算法之——梯度提升(Gradient Boosting)上
由于每个子模型要使用全部的数据集进行训练,因此 Ada Boosting 算法中没有 oob 数据集,在使用 Ada Boosting 算法前,需要划分数据集:train_test_split;
机器学习算法之——梯度提升(Gradient Boosting)上
|
机器学习/深度学习 算法
梯度下降算法原理 神经网络(Gradient Descent)
梯度下降算法原理 神经网络(Gradient Descent)
203 0
梯度下降算法原理 神经网络(Gradient Descent)
|
机器学习/深度学习 PyTorch 算法框架/工具
【26】pytorch中的grad求导说明以及利用backward获取梯度信息
【26】pytorch中的grad求导说明以及利用backward获取梯度信息
430 0
【26】pytorch中的grad求导说明以及利用backward获取梯度信息