首页 > 其他分享 >可扩展机器学习——梯度下降(Gradient Descent)

可扩展机器学习——梯度下降(Gradient Descent)

时间:2023-06-14 20:32:52浏览次数:42  
标签:Descent Gradient 梯度 下降 如下 步长 wi 最优


注:这是一份学习笔记,记录的是参考文献中的可扩展机器学习的一些内容,英文的PPT可见参考文献的链接。这个只是自己的学习笔记,对原来教程中的内容进行了梳理,有些图也是引用的原来的教程,若内容上有任何错误,希望与我联系,若内容有侵权,同样也希望告知,我会尽快删除。这部分本应该加上实验的部分,实验的部分在后期有时间再补上。

可扩展机器学习系列主要包括以下几个部分:

概述
- Spark分布式处理
- 线性回归(linear Regression)
- 梯度下降(Gradient Descent)
- 分类——点击率预测(Click-through Rate Prediction)
- 神经科学

四、梯度下降(Gradient Descent)

1、线性回归的优化问题

对于线性回归来说,其目标是找到一组w∗使得下面的函数f(w)达到最小:



f(w)=∥Xw−y∥22

2、梯度下降法的流程

梯度下降法是一种迭代型的优化算法,根据初始点在每一次迭代的过程中选择下降法方向,进而改变需要修改的参数,梯度下降法的详细过程如下:

  • Start at a random point
  • Repeat
  • Determine a descent direction
  • Choose a step size
  • Update
  • Until stopping criterion is satisfied

具体过程如下图所示:

在初始时,在点w0处,选择下降的方向,选择步长,更新,此时到达w1处,判断是否满足终止的条件,发现并未到达最优解,重复上述的过程,直至到达w∗。

3、凸优化与非凸优化

简单来讲,凸优化问题是指只存在一个最优解的优化问题,即任何一个局部最优解即为全局最优解,可以由下图表示:

非凸优化是指在解空间中存在多个局部最优解,而全局最优解是其中的某一个局部最优解,可以由下图表示:

最小二乘(Least Squares),岭回归(Ridge Regression)和Logistic回归(Logistic Regression)的损失函数都是凸优化问题。

4、梯度下降法的若干问题

1、选择下降的方向

为了求解优化问题f(w)的最小值,我们希望每次迭代的结果能够接近最优价w∗,对于一维的情况,如下图所示:

若当前点的斜率(梯度)为正,则选择的方向向左,若当前的斜率(梯度)为负,则选择的梯度的方向是向右。

负的斜率即为下降的方向。

对于上述的一维的情况,有下述的更新规则:

其中,αi称为步长。对于二维的情况,如下图所示:

其中,函数值由黑白色表示,黑色表示更大的值,箭头表示的是梯度。

负的梯度是最快的下降的方向。

此时更新的规则如下:

2、最小二乘中的梯度下降

梯度下降法的更新规则如上所示,对于最小二乘法,有如下的损失函数的表示:



f(w)=∥wx−y∥22=∑j=1n(wx(j)−y(j))2

在利用梯度下降法的过程中需要求解梯度,即:



dfdw(w)=2∑j=1n(wx(j)−y(j))x(j)

则根据更新公式,有如下的更新步骤:



wi+1=wi−αi∑j=1n(wx(j)−y(j))x(j)

对于向量形式,有:



wi+1=wi−αi∑j=1n(wTix(j)−y(j))x(j)

3、步长的选择

对于步长α的选择,若选择太小,会导致收敛的速度比较慢;若选择太大,则会出现震荡的现象,即跳过最优解,在最优解附近徘徊,上述两种情况如下面的两张图所示:

因此,选择合适的步长对于梯度下降法的收敛效果显得尤为重要。

在实践的过程中,人们发现了不同的步长形式,一种通用的步长设置方法如下:



αi=αni√

其中,α是一个常数,n表示的是训练数据中特征的个数,i表示的是迭代的代数。

4、梯度下降法的优缺点

对于梯度下降法,有如下的一些优缺点:

  • 优点
  • 容易并行
  • 每次迭代过程中开销较小
  • 随机梯度下降的开销更小
  • 缺点
  • 收敛速度较慢
  • 需要在节点之间进行通信

5、并行梯度下降

对于梯度下降法中的更新规则:



wi+1=wi−αi∑j=1n(wTix(j)−y(j))x(j)

并行的计算方法如下:

若需要PDF版本,请关注我的新浪博客@赵_志_勇,私信你的邮箱地址给我。

参考文献

scalable-machine-learning


标签:Descent,Gradient,梯度,下降,如下,步长,wi,最优
From: https://blog.51cto.com/u_16161414/6480441

相关文章

  • 随机森林RandomForest&梯度提升决策树GBDT
    模型亮点随机森林,初始测试集上评分为0.53,调参后测试集上评分为0.85梯度提升决策树,初始测试集上评分为0.56,调参后测试集上评分为0.88-----------------------------------------以下为模型具体实现-----------------------------------------Step1.数据读取importpandasa......
  • CSS实现兼容性的渐变背景(gradient)效果
    一、有点俗态的开场白要是两年前,实现“兼容性的渐变效果”这个说法估计不会被提出来的,那个时候,说起渐变背景,想到的多半是IE的渐变滤镜,其他浏览器尚未支持,但是,在对CSS3支持日趋完善的今天,实现兼容性的渐变背景效果已经完全成为可能,本文就将展示如何实现兼容性的渐变背景效果。在众......
  • python版本的“共轭梯度法”算法代码
    在看代码的过程中遇到了共轭梯度法这个概念,对这个算法的数学解释看过几遍,推导看过了,感觉懂了,然后过上一些日子就又忘记了,然后又看了一遍推导,然后过了一些日子也就又忘记了,最后想想这个算法的数学解释就不要再取深究了,毕竟平时也不太会用到,偶尔用到了只要保证代码会写也就OK了。  ......
  • 强化学习基础篇【1】:基础知识点、马尔科夫决策过程、蒙特卡洛策略梯度定理、REINFORCE
    强化学习基础篇【1】:基础知识点、马尔科夫决策过程、蒙特卡洛策略梯度定理、REINFORCE算法1.强化学习基础知识点智能体(agent):智能体是强化学习算法的主体,它能够根据经验做出主观判断并执行动作,是整个智能系统的核心。环境(environment):智能体以外的一切统称为环境,环境在与智能体......
  • Python进行多输出(多因变量)回归:集成学习梯度提升决策树GRADIENT BOOSTING,GBR回归训练
    原文链接: http://tecdat.cn/?p=25939最近我们被客户要求撰写关于多输出(多因变量)回归的研究报告,包括一些图形和统计输出。在之前的文章中,我们研究了许多使用多输出回归分析的方法。在本教程中,我们将学习如何使用梯度提升决策树GRADIENTBOOSTINGREGRESSOR拟合和预测多输出回归......
  • 系数矩阵为Hessian矩阵时的使用Pearlmutter trick的共轭梯度解法
    共轭梯度法已经在前文中给出介绍:python版本的“共轭梯度法”算法代码  =======================================  使用共轭梯度法时,如果系数矩阵为Hessian矩阵,那么我们可以使用Pearlmuttertrick技术来减少计算过程中的内存消耗,加速计算。 使用Pearlmuttertrick的......
  • python版本的“共轭梯度法”算法代码
    在看代码的过程中遇到了共轭梯度法这个概念,对这个算法的数学解释看过几遍,推导看过了,感觉懂了,然后过上一些日子就又忘记了,然后又看了一遍推导,然后过了一些日子也就又忘记了,最后想想这个算法的数学解释就不要再取深究了,毕竟平时也不太会用到,偶尔用到了只要保证代码会写也就OK了。 ......
  • 深入分析:近端梯度下降法、交替方向乘子法、牛顿法
    写在前面本文主要围绕近端梯度下降法(ProximalGradientDescent)、交替方向乘子法(AlternatingDirectionMethodofMultipliers)、牛顿法来结合实际的案例进行推导分析,主打一个面向对象。近端梯度下降法**PGD(ProximalGradientDescent)**,称为近端梯度优化法,近端指的是局部区......
  • 深入分析:矩阵梯度类实例研究
    写在前面本文主要用于围绕矩阵类求梯度等问题进行证明与分析,由于笔者的数理基础浅薄,下面的证明过程若存在错误,欢迎评论指正。矩阵梯度的通用方法:先将矩阵写成微分形式,\(df=tr(GdX)\),然后得到$\nablaf=G^T$案例1\(\begin{array}{ll}\min_{U}&\dfrac{1}{2}\left\|\boldsymbol{......
  • Uncovering the Representation of Spiking Neural Networks Trained with Surrogate
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! PublishedinTransactionsonMachineLearningResearch(04/2023)......