资讯专栏INFORMATION COLUMN

机器学习:梯度下降

LittleLiByte / 1295人阅读

摘要:学习速率的取值问题当取值较大时,即梯度下降迭代的步长较大,梯度下降迭代过程较快。在处的次梯度集称为微分集并表示为。在随机梯度下降中,我们不要求更新方向完全基于梯度。相反,我们允许方向为随机向量,并要求其期望值为当前向量处函数的次梯度。

1,概述

1.1,梯度下降法

假定给定函数: ,求解该函数的极小值时,k的取值是多少?

通常做法:对  求导,然后令导数=0,求解 k 值即为所求:

1.2,迭代与梯度下降求解

求导解法在复杂实际问题中很难计算。迭代法通过从一个初始估计出发寻找一系列近似解来解决优化问题。其基本形式如下:

其中  被称为学习效率。

假设初始化  ,为了通过迭代让  趋近最优解2, 要满足两个条件:

  •  要能使  向最优解逼近。
  • 当  达到最优解时, 要等于0。当  达到最优解的时候, 要等于 ,即:

因此,我们的核心问题:寻找  满足上述两个要求。

1.3,求解思路

随着迭代的不断进行, 可以使  向最优值逼近。而且,当  离最优值越近时, 的绝对值就越来越小。当达到最优解时,。

学习速率的取值问题:

  • 当  取值较大时,即梯度下降迭代的步长较大,梯度下降迭代过程较快。可以快速迭代到最优解附近,但是可能一直在最优解附近徘徊,无法找出最优解。
  • 当  取值较小时,即梯度下降迭代的步长较小,梯度下降迭代过程较慢。

梯度优化:方向+步长

2,梯度下降

2.1,可微函数的梯度

可微函数的梯度  : 在  处, 表示为是  的偏导数的向量,即:

梯度下降是一种迭代算法:

  • 从初始值  开始。
  • 在每次迭代中,我们沿着当前点梯度的负方向迈出下一步:

其中, 为学习率。直观地说,该算法在梯度点的相反方向上迈出了一小步,从而降低了函数的值。在  次迭代之后,算法输出最后一个向量 。

输出也可以是平均向量 。取平均值是非常有用的,特别是当我们将梯度下降推广到不可微函数和随机情况时。

【证明】即:梯度不断下降。

由于,。

由于 ,学习率 ,所以 ,故:

2.2,梯度下降算法的收敛速率

Lipschitz连续:对于在实数集的子集的函数 ,若存在常数 ,使得  ,则称函数 符合利普希茨条件。

为了分析GD算法的收敛速度,我们仅限于凸 Lipschitz 函数的情况。 是  在 条件下的最小值的点坐标。

  • 假设:
  • 求证: 有界

2.3,凸函数性质 

凸函数性质(1):

证明方法(1):

即,判断上述关系即可:

从图上可以看出,,且趋近于0时取等号。

故,

凸函数性质(2):

证明:将  进行泰勒展开可得:

 ,且  处为偏导最小处,即  。

 ,且  处为偏导最小处,即  。

即:

故:

因此:

 

合体证明性质(1)(2):

2.4,求解收敛速率

设  是向量的任意序列。任何具有初始化  和以下形式的更新规则的算法:

满足:

前提(1):

前提(2):

证明:

即:

特别的,对每个  ,如果对所有的  都存在  使得  ,且对每个  且 ,都存在:

证明:由前面可得

 

  ,可得  得极小值,因此也是T的最小值。

且:

,当且仅当  

在允许一定误差的情况下:对任意的  ,使得:

则必须满足:

即:,T 存在最小值。

3,子梯度

3.1,为何需要子梯度

次梯度方法是传统的梯度下降方法的拓展,用来处理不可导的凸函数。它的优势是比传统方法处理问题范围大,劣势是算法收敛速度慢。

对于光滑的凸函数而言,我们可以直接采用梯度下降算法求解函数的极值,但是当函数不处处光滑、处处可微的时候,梯度下降就不适合应用了。因此,我们需要计算函数的次梯度。对于次梯度而言,其没有要求函数是否光滑,是否是凸函数,限定条件很少,所以适用范围更广。

允许  是一个开凸集。 函数  是一个凸函数。满足下列条件的向量 :

称为  在  处的次梯度。 在 处的次梯度集称为微分集并表示为 。 

3.2,计算次梯度

【定义法】如果  在  处可微,那么  包含一个元素  在  处的梯度为 。例如: 。

 由于  在  处不可导,因此根据定义:

 

即:

【对比法】令  关于  的凸可微函数  。存在某些  使得  ,则  。

此时,取值C,D处作为次梯度点。

证明:

前提:

选择 C 作为次梯度点:

即,可得:

可得:

选择 B  作为次梯度点:

即,可得:

 此时, 无解,故不可作为次梯度点。

4,随机梯度下降

4.1,核心思想

在随机梯度下降中,我们不要求更新方向完全基于梯度。相反,我们允许方向为随机向量,并要求其期望值为当前向量处函数的次梯度。

在随机梯度下降中,我们不要求更新方向完全基于梯度。相反,我们允许方向为随机向量,并要求其期望值为当前向量处函数的次梯度。

SGD伪码:在学习问题的背景下,很容易找到期望值为风险函数次梯度的随机向量。例如,每个样本的风险函数梯度。

4.2,使用SGD实现SVM

机器学习:支持向量机(SVM)_燕双嘤-CSDN博客1,算法描述支持向量机(SVM)是用来解决分类问题的。作为数据挖掘领域中一项非常重要的任务,分类目前在商业上应用最多(比如分析型CRM里面的客户分类模型、客户流失模型、客户盈利等,其本质上都属于分类问题)。而分类的目的则是构造一个分类函数或分类模型,该模型能吧数据库中的数据项映射到给定类别中的某一个,从而可以用来预测未知类别。先考虑最简单的情况,比如豌豆和米粒,用筛子很快可以分离它们,小颗粒漏下去,大颗粒保留。用函数来表示就是当直径d大于某个值D,就判定其为豌豆,小于D就是米粒。在数轴上就是D左边https://shao12138.blog.csdn.net/article/details/121164645当最优化时的函数不是全区间可微时,无法通过对偶问题解决,此时可以使用SGD实现SVM。

为了应用SGD,我们必须将上式中的优化问题转化为无约束问题:

更新规则:

求梯度可得:

:在迭代  选择的随机例子上, 处损失函数的次梯度。

4.3,SGD的收敛速度

 特别的,对每个  ,如果对所有的  都存在  使得  ,且对每个  且 ,都存在:

证明:

由2.3节证明的性质可得:

下面过程同2.4节,得:

故:

即证明:

同理,如果使得  都成立,则要求:

即:,T 存在最小值。

4.4,投影步骤

在之前对GD和SGD算法的分析中,我们要求  ,这相当于对  划定了一个半径为  的区间,然后进行选择。

但大部分时候我们无法保证全部的   的时候,可以采用增加投影的方法求解问题: 

,不考虑范围求得一个值。

,然后投影到  上。

我们可以求得,D为最近的点,即投影点,B,E也是,但是不是最小的投影点。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/123509.html

相关文章

  • 机器学习(三)-单变量线性回归算法

    摘要:在大量对象上应用了回归分析甚至包括人的身高。孩子的高度向着平均高度回退回归。回归的目的是预测数值型的目标值。这就是监督学习算法的一个例子。 @toc 1 预测数值型数据:回归 1.1 什么是回归? 大自然让我们回归到一定的区间范围之内;反过来说就是,有一个平均的水平,可以让突出的事物能向他靠拢。 回归是由达尔文(Charles Darwin)的表兄弟Francis Galton发明的...

    CoderDock 评论0 收藏0
  • 机器学习(三)-单变量线性回归算法

    摘要:在大量对象上应用了回归分析甚至包括人的身高。孩子的高度向着平均高度回退回归。回归的目的是预测数值型的目标值。这就是监督学习算法的一个例子。 @toc 1 预测数值型数据:回归 1.1 什么是回归? 大自然让我们回归到一定的区间范围之内;反过来说就是,有一个平均的水平,可以让突出的事物能向他靠拢。 回归是由达尔文(Charles Darwin)的表兄弟Francis Galton发明的...

    ZHAO_ 评论0 收藏0
  • 机器学习Ng课程笔记——线性回归算法

    摘要:在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析如果回归分析中包括两个及以上个自变量,且因变量和自变量直接是线性关系,则称之为多元线性回归分析。参考斯坦福大学机器学习公开课 定义 假设函数与代价函数(损失函数) 特征量放缩 最小化代价函数 收敛判定 1.什么是线性回归 在统计学中,线性回归是利用被称为线性回归方程的最小平...

    Chaz 评论0 收藏0

发表评论

0条评论

LittleLiByte

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<