码迷,mamicode.com
首页 > 其他好文 > 详细

梯度下降法

时间:2014-11-05 10:32:40      阅读:516      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   os   使用   sp   strong   

 一、基本概念

梯度下降法,就是利用负梯度方向来决定每次迭代的新的搜索方向,使得每次迭代能使待优化的目标函数逐步减小。梯度下降法是2范数下的最速下降法。 最速下降法的一种简单形式是:x(k+1)=x(k)-a*g(k),其中a称为学习速率,可以是较小的常数。g(k)是x(k)的梯度。

二、导数

(1)定义

 

 

设有定义域和取值都在实数域中的函数 bubuko.com,布布扣。若 bubuko.com,布布扣 在点 bubuko.com,布布扣 的某个邻域内有定义,则当自变量 bubuko.com,布布扣 在 bubuko.com,布布扣 处取得增量 bubuko.com,布布扣(点 bubuko.com,布布扣 仍在该邻域内)时,相应地函数 bubuko.com,布布扣 取得增量 bubuko.com,布布扣;如果 bubuko.com,布布扣 与 bubuko.com,布布扣 之比当 bubuko.com,布布扣 时的极限存在,则称函数 bubuko.com,布布扣 在点 bubuko.com,布布扣 处可导,并称这个极限为函数 bubuko.com,布布扣 在点 bubuko.com,布布扣 处的导数,记为 bubuko.com,布布扣,即:

 

bubuko.com,布布扣

也可记作 bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣或 bubuko.com,布布扣

对于一般的函数,如果不使用增量的概念,函数 bubuko.com,布布扣 在点 bubuko.com,布布扣 处的导数也可以定义为:当定义域内的变量 bubuko.com,布布扣 趋近于 bubuko.com,布布扣 时,

bubuko.com,布布扣

的极限。也就是说,

bubuko.com,布布扣

 

 

 

 

导数反应的变化率

一个函数在某一点的导数描述了这个函数在这一点附近的变化率。导数的本质是通过极限的概念对函数进行局部的线性逼近。当函数bubuko.com,布布扣的自变量在一点bubuko.com,布布扣上产生一个增量bubuko.com,布布扣时,函数输出值的增量与自变量增量bubuko.com,布布扣的比值在bubuko.com,布布扣趋于0时的极限如果存在,即为bubuko.com,布布扣bubuko.com,布布扣处的导数,记作bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣

 

(2)几何意义:

 

 

bubuko.com,布布扣 

一个实值函数的图像曲线。函数在一点的导数等于它的图像上这一点处之切线的斜率,导数是函数的局部性质。不是所有的函数都有导数,一个函数也不一定在所有的点上都有导数。若某函数在某一点导数存在,则称其在这一点可导,否则称为不可导。如果函数的自变量和取值都是实数的话,那么函数在某一点的导数就是该函数所代表的曲线在这一点上的切线斜率。

具体来说:

当函数定义域和取值都在实数域中的时候,导数可以表示函数的曲线上的切线斜率。如下图所示,设bubuko.com,布布扣为曲线上的一个定点,bubuko.com,布布扣为曲线上的一个动点。当bubuko.com,布布扣沿曲线逐渐趋向于点bubuko.com,布布扣时,并且割线bubuko.com,布布扣的极限位置bubuko.com,布布扣存在,则称bubuko.com,布布扣为曲线在bubuko.com,布布扣处的切线。

若曲线为一函数bubuko.com,布布扣的图像,那么割线bubuko.com,布布扣(蓝色)的斜率为:

bubuko.com,布布扣

bubuko.com,布布扣处的切线bubuko.com,布布扣(红色),即bubuko.com,布布扣的极限位置存在时,此时bubuko.com,布布扣bubuko.com,布布扣,则bubuko.com,布布扣的斜率bubuko.com,布布扣为:

bubuko.com,布布扣

上式与一般定义中的导数定义完全相同,也就是说bubuko.com,布布扣,因此,导数的几何意义即曲线bubuko.com,布布扣在点bubuko.com,布布扣处切线的斜率 

 

bubuko.com,布布扣

(3)导函数

 

 导数是一个数,是指函数 bubuko.com,布布扣 在点 bubuko.com,布布扣 处导函数的函数值,若函数 bubuko.com,布布扣 在其定义域包含的某区间 bubuko.com,布布扣 内每一个点都可导,那么也可以说函数bubuko.com,布布扣 在区间 bubuko.com,布布扣 内可导,这时对于 bubuko.com,布布扣 内每一个确定的bubuko.com,布布扣 值,都对应着 bubuko.com,布布扣 的一个确定的导数值,如此一来就构成了一个新的函数bubuko.com,布布扣,这个函数称作原来函数 bubuko.com,布布扣 的导函数,记作:bubuko.com,布布扣bubuko.com,布布扣 或者 bubuko.com,布布扣,通常也可以说导函数为导数

 

 

 

 

 

 3、一元函数微分

微分和导数是两个不同的概念。但是对一元函数来说,可微与可导是完全等价的概念。可微的函数,其微分等于导数乘以自变量的微分bubuko.com,布布扣,换句话说,函数的微分与自变量的微分之商等于该函数的导数。因此,导数也叫做微商。于是函数bubuko.com,布布扣的微分又可记作bubuko.com,布布扣[

 

(1)微分反应的变化率

微分可以近似地描述当函数自变量的取值作足够小的改变时,函数的值是怎样改变的。当某些函数bubuko.com,布布扣的自变量bubuko.com,布布扣有一个微小的改变bubuko.com,布布扣时,函数的变化可以分解为两个部分。一个部分是线性部分:在一维情况下,它正比于自变量的变化量bubuko.com,布布扣,可以表示成bubuko.com,布布扣和一个与bubuko.com,布布扣无关,只与函数bubuko.com,布布扣bubuko.com,布布扣有关的量的乘积;在更广泛的情况下,它是一个线性映射作用在bubuko.com,布布扣上的值。另一部分是比bubuko.com,布布扣更高阶的无穷小,也就是说除以bubuko.com,布布扣后仍然会趋于零。当改变量bubuko.com,布布扣很小时,第二部分可以忽略不计,函数的变化量约等于第一部分,也就是函数在bubuko.com,布布扣处的微分,记作bubuko.com,布布扣bubuko.com,布布扣。如果一个函数在某处具有以上的性质,就称此函数在该点可微。

(2)定义

 

设函数bubuko.com,布布扣在某区间bubuko.com,布布扣内有定义。对于bubuko.com,布布扣内一点bubuko.com,布布扣,当bubuko.com,布布扣变动到附近的bubuko.com,布布扣(也在此区间内)时。如果函数的增量bubuko.com,布布扣可表示为 bubuko.com,布布扣(其中bubuko.com,布布扣是不依赖于bubuko.com,布布扣的常数),而bubuko.com,布布扣是比bubuko.com,布布扣高阶的无穷小,那么称函数bubuko.com,布布扣在点bubuko.com,布布扣是可微的,且bubuko.com,布布扣称作函数在点bubuko.com,布布扣相应于自变量增量bubuko.com,布布扣的微分,记作bubuko.com,布布扣,即bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣线性主部[1]:141

通常把自变量bubuko.com,布布扣的增量bubuko.com,布布扣称为自变量的微分,记作bubuko.com,布布扣,即bubuko.com,布布扣

 

(3)几何意义

 

 

 

函数在一点的微分。其中红线部分是微分量bubuko.com,布布扣,而加上灰线部分后是实际的改变量bubuko.com,布布扣

 

bubuko.com,布布扣

 

 

bubuko.com,布布扣是曲线bubuko.com,布布扣上的点bubuko.com,布布扣在横坐标上的增量,bubuko.com,布布扣是曲线在点bubuko.com,布布扣对应bubuko.com,布布扣在纵坐标上的增量,bubuko.com,布布扣是曲线在点bubuko.com,布布扣的切线对应bubuko.com,布布扣在纵坐标上的增量。当bubuko.com,布布扣很小时,bubuko.com,布布扣bubuko.com,布布扣要小得多(高阶无穷小),因此在点bubuko.com,布布扣附近,我们可以用切线段来近似代替曲线段。

 

 

(4)关于无穷小量

 

A)

如果一个序列 bubuko.com,布布扣 如果满足如下性质:

 

用极限符号把上述性质简记为

bubuko.com,布布扣

则序列 bubuko.com,布布扣 被称为 bubuko.com,布布扣 时的无穷小量[

B)阶的比较

设 bubuko.com,布布扣 , bubuko.com,布布扣 为两个序列,而且都是 bubuko.com,布布扣时的无穷小量。虽然它们在 bubuko.com,布布扣 趋于无穷时都趋于零,但趋于零的速度是有区别的。可以用如下方式比较它们的速度:

  • 若对于任意正实数 bubuko.com,布布扣 ,存在正整数 bubuko.com,布布扣 使得

 

bubuko.com,布布扣


在 bubuko.com,布布扣 时总是成立,则称 bubuko.com,布布扣 是 bubuko.com,布布扣 的高阶无穷小,记作

 

bubuko.com,布布扣


其中的 bubuko.com,布布扣 有时也被省略不写。

在上述定义中,也可以说无穷小量 a 的阶要比 b 的要高,或者说 a 比 b 更快地趋于零

 


 4、多元函数微分

(1) 欧几里得空间

 

bubuko.com,布布扣表示实数域。对任意一个正整数n,实数的n元组的全体构成了bubuko.com,布布扣上的一个n维向量空间,用bubuko.com,布布扣来表示。有时称之为实数坐标空间bubuko.com,布布扣中的元素写作bubuko.com,布布扣,这里的bubuko.com,布布扣都是实数。bubuko.com,布布扣作为向量空间,其运算是这样定义的:

bubuko.com,布布扣bubuko.com,布布扣

 欧几里得空间,则是在bubuko.com,布布扣上再添加一些内容:欧几里得结构。
为了做欧氏几何,人们希望能讨论两点间的距离,直线或向量间的夹角。一个自然的方法是在bubuko.com,布布扣上,对任意两个向量bubuko.com,布布扣bubuko.com,布布扣,引入它们的“标准内积”bubuko.com,布布扣(一些文献上称为点积,记为bubuko.com,布布扣):

bubuko.com,布布扣

也就是说,bubuko.com,布布扣中的任意两个向量对应着一个实数值。 我们把bubuko.com,布布扣及这样定义的内积,称为bubuko.com,布布扣上的欧几里得结构;此时的bubuko.com,布布扣也被称为n维欧几里得空间,内积"<,>"称为欧氏内积

利用这个内积,可以建立距离、长度、角度等概念:

  • 向量bubuko.com,布布扣的长度:
bubuko.com,布布扣

这里的长度函数满足范数所需的性质,故又称为bubuko.com,布布扣上的欧氏范数

  • bubuko.com,布布扣bubuko.com,布布扣所夹的内角以下列式子给出
bubuko.com,布布扣

这里的bubuko.com,布布扣为反余弦函数。

  • 最后,可以利用欧氏范数来定义bubuko.com,布布扣上的距离函数,或称度量
bubuko.com,布布扣

这个距离函数称为欧几里得度量,它可以看作勾股定理一种形式。

这里的bubuko.com,布布扣仅指实数向量空间,而加入了如上定义的欧几里得结构后才称为欧氏空间;有些作者会用符号bubuko.com,布布扣来标记之。欧氏结构使bubuko.com,布布扣具有这些空间结构:内积空间、希尔伯特空间、赋范向量空间以及度量空间。

 

 

(2)开集

开集是指不包含自己边界点的集合。或者说,开集把它所包含的任何一点的充分小的邻域也包含在其自身之中。开集的概念一般与拓扑概念是紧密联系着的,通常先公理化开集,然后通过其定义边界的概念。

 

函数分析

在Rn中点集是开集,如果在这个集合的所有点P都是内部点。

 

 

内点

令 S 为欧几里得空间的子集。若存在以 x 为中心的开球被包含于 S,则 x 是 S 的内点。

这个定义可以推广到度量空间 X 的任意子集 S。具体地说,对具有度量 d 的度量空间 Xx 是 S 的内点,若对任意 r > 0,存在 y 属于 S,且 d(xy) < r

 

 点 x 是 S 的内部点,因为它包含在 S 内并有一个开球围绕着它。点 y 在 S 的边界上

 

bubuko.com,布布扣

欧几里得空间

n维欧几里得空间Rn的子集U是开集,如果给定任何在U中的点x,存在一个实数ε > 0使得,如果给定任何Rn中点y,有着从x到它的欧几里得距离小于ε,则y也属于U。等价的说,U是开集,如果所有U中的点有包含在U中的邻域。

 

 

(3)定义

bubuko.com,布布扣是从欧几里得空间Rn(或者任意一个内积空间)中的一个开集bubuko.com,布布扣射到Rm的一个函数。对于bubuko.com,布布扣中的一点bubuko.com,布布扣及其在bubuko.com,布布扣中的邻域bubuko.com,布布扣中的点bubuko.com,布布扣。如果存在线性映射bubuko.com,布布扣使得对任意这样的bubuko.com,布布扣,

bubuko.com,布布扣

那么称函数bubuko.com,布布扣在点bubuko.com,布布扣处可微。线性映射bubuko.com,布布扣叫做bubuko.com,布布扣在点bubuko.com,布布扣处的微分,记作bubuko.com,布布扣

如果bubuko.com,布布扣在点bubuko.com,布布扣处可微,那么它在该点处一定连续,而且在该点的微分只有一个。为了和偏导数区别,多元函数的微分也叫做全微分全导数

当函数在某个区域的每一点bubuko.com,布布扣都有微分bubuko.com,布布扣时,可以考虑将bubuko.com,布布扣映射到bubuko.com,布布扣的函数:

bubuko.com,布布扣

这个函数一般称为微分函数

 

bubuko.com,布布扣

 

 

 

 

全微分(英语:total derivative)是微积分学的一个概念,指多元函数的全增量bubuko.com,布布扣的线性主部,记为bubuko.com,布布扣。例如,对于二元函数bubuko.com,布布扣,设f在点bubuko.com,布布扣的某个邻域内有定义,bubuko.com,布布扣为该邻域内的任意一点,则该函数在点bubuko.com,布布扣的全增量可表示为

bubuko.com,布布扣

其中bubuko.com,布布扣bubuko.com,布布扣仅与bubuko.com,布布扣bubuko.com,布布扣有关,而与bubuko.com,布布扣bubuko.com,布布扣无关,bubuko.com,布布扣。若bubuko.com,布布扣是当bubuko.com,布布扣时的高阶无穷小,则称此函数bubuko.com,布布扣在点 bubuko.com,布布扣可微分,而bubuko.com,布布扣即为函数bubuko.com,布布扣在点bubuko.com,布布扣的全微分,记作

bubuko.com,布布扣

bubuko.com,布布扣

 

 

 

 

 

 

(4)邻域

是拓扑空间中的基本概念。直觉上说,一个点的邻域是包含这个点的集合,并且该性质是外延的:你可以稍微“抖动”一下这个点而不离开这个集合。

 

在平面上集合 V 是点 p 的邻域,如果围绕 p 小圆盘包含在 V 中

 

bubuko.com,布布扣

 

如果 X 是拓扑空间 而 p 是 X 中的一个点,p 的邻域是集合 V,它包含了包含 p 的开集 U

bubuko.com,布布扣

注意 V 自身不必须是开集。如果 V 是开集则它被称为开邻域。某些作者要求邻域是开集,所以注意约定是很重要的。

一个点的所有邻域的集合叫做在这点上的邻域系统。

如果 S 是 X 的子集,S 的邻域是集合 V,它包含了包含 S 的开集 U。可得出集合 V 是 S 的邻域,当且仅当它是在 S 中的所有点的邻域。

 

 

 

在度量空间 M = (X,d) 中,集合 V 是点 p 的邻域,如果存在以 p 为中心和半径为 r 的开球,

bubuko.com,布布扣

它被包含在 V 中。

V 叫做集合 S 的一致邻域,如果存在正数 r 使得对于 S 的所有元素 p

bubuko.com,布布扣

被包含在 V 中。

对于 r>0 集合 S 的 r-邻域 bubuko.com,布布扣 是 X 中与 S 的距离小于 r 的所有点的集合(或等价的说 bubuko.com,布布扣 是以 S 中一个点为中心半径为 r 的所有开球的并集)。

可直接得出 r-邻域是一致邻域,并且一个集合是一致邻域当且仅当它包含对某个 r 值的 r-邻域。

bubuko.com,布布扣

平面上的集合 S 和 S 的一致邻域 V

 

 

五、梯度

1、相关概念

假如一个空间中的每一点的属性都可以以一个标量来代表的话,那么这个场就是一个标量场。

假如一个空间中的每一点的属性都可以以一个向量来代表的话,那么这个场就是一个向量场

标量场中某一点上的梯度指向标量场增长最快的方向,梯度的长度是这个最大的变化率。

梯度一词有时用于斜度,也就是一个曲面沿着给定方向的倾斜程度。

2、计算

一个标量函数bubuko.com,布布扣的梯度记为:

bubuko.com,布布扣 或 bubuko.com,布布扣

其中bubuko.com,布布扣(nabla)表示矢量微分算子。

在三维情况,该表达式在直角坐标中扩展为

bubuko.com,布布扣

 

 

六、梯度下降法

梯度下降法,基于这样的观察:如果实值函数 bubuko.com,布布扣 在点 bubuko.com,布布扣 处可微且有定义,那么函数 bubuko.com,布布扣在 bubuko.com,布布扣 点沿着梯度相反的方向 bubuko.com,布布扣 下降最快。

因而,如果

bubuko.com,布布扣

对于 bubuko.com,布布扣 为一个够小数值时成立,那么 bubuko.com,布布扣

考虑到这一点,我们可以从函数 bubuko.com,布布扣 的局部极小值的初始估计 bubuko.com,布布扣 出发,并考虑如下序列 bubuko.com,布布扣 使得

bubuko.com,布布扣

因此可得到

bubuko.com,布布扣

如果顺利的话序列 bubuko.com,布布扣 收敛到期望的极值。注意每次迭代步长 bubuko.com,布布扣 可以改变。

 

 

梯度下降法

标签:style   blog   http   io   ar   os   使用   sp   strong   

原文地址:http://www.cnblogs.com/dawulong/p/4075446.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!