当前位置:文档之家› 梯度下降法、牛顿迭代法、共轭梯度法

梯度下降法、牛顿迭代法、共轭梯度法

梯度下降法、牛顿迭代法、共轭梯度法
(参见:神经网络->PGM-ANN-2009-C09性能优化)
优化的目的是求出目标函数的最大值点或者最小值点,这里讨论的是迭代的方法
梯度下降法
首先,给定一个初始猜测值 ,然后按照等式
k k k k ΡαΧ+=X +1 (1)

k
k k k k P =X -X =∆X +α)(1 (2)
逐步修改猜测。

这里向量 k
P 代表一个搜索方向,一个大于零的纯量
k
α 为学习
速度,它确定了学习步长。

当用 k k k k ΡαΧ+=X +1 进行最优点迭代时,函数应该在每次迭代时都减小,即
)
()(1k k F F X <X +
考虑
+-∇-+-∇+=X
=X X
=X )()
()(2
1
)
()()()(*2****
*
x x x F x x x x x F x F x F T T
(3)
的)(X F 在k X 的一阶泰勒级数展开:
k
T
k k k k k g F F F ∆X +X ≈∆X +X =X +)()()(1
(4)
其中,T
k g 为在旧猜测值k X 处的梯度
k
F g k X =X X ∇≡)( (5) 要使
)
()(1k k F F X <X +
只需要(4)中右端第二项小于0,即
<P =∆X k T k
k k T k g g α (6)
选择较小的正数k α。

这就隐含0<k T
k P g 。

满足0<k T
k P g 的任意向量成为一个下降方向。

如果沿着此方向取足够小步长,函数一
定递减。

并且,最速下降的情况发生在k T k P g 最小的时候,容易知道,当k k -g P =时k T
k P g 最小,此时,方向向量与梯度方向相反。

在(1)式中,令k k -g P =,则有
k k k k g αΧ-=X +1 (7)
对于式(7)中学习速率k α的选取通常有两种方法:一种是选择固定的学习速率k α,另一种方法是使基于学习速率k α的性能指数或目标函数)(1k +X F 在每次迭代中最小化,即沿着梯度反方向实现最小化:k k k k g X X α-=+1。

注意:
1、对于较小的学习速度最速下降轨迹的路径总是与轮廓线正交,这是因为梯度与轮廓线总是正交的。

2、如果改变学习速度,学习速度太大,算法会变得不稳定,振荡不会衰减,反而会增大。

3、稳定的学习速率
对于任意函数,确定最大可行的学习速度是不可能的,但对于二次函数,可以确定一个上界。

令特征函数为:
c X
d AX X F T T
++=
2
1)x ( (8)
那么梯度为 d AX X F +=∇)( 代入最速下降法公式(7)中
d a X A a I d AX a X g a X X k k k k k k k k k k --=+-=-=+)()(1 (9)
在动态系统中,如果矩阵][aA I -的特征值小于1,则该系统是稳定的。

可用赫森矩阵
A 的特征值来表示该矩阵的特征值,假设A 的特征值和特征向量分别为{}n 21λλλ ,
,和{}n z z z ,,21,那么
[]i i i z a I z aA I )(λ-=- (10)
于是,最速下降法的稳定条件为
1<-i a I λ (11) 如果二次函数有一个强极小点,则其特征值为正数,上式可以化为i
a λ2
<
由于该式对于赫森矩阵的所有特征值都成立则 m ax
2
λ<
a (12)
分析:最大的稳定学习速度与二次函数的最大的曲率成反比。

曲率说明梯度变化的快慢。

如果梯度变化太快,可能会导致跳过极小点,进而使新的迭代点的梯度的值大于原迭代点的梯度的值(但方向相反)。

这会导致每次迭代的步长增大。

4、沿直线最小化 选择学习速率的另一种方法是k a 使得每次迭代的性能指数最小化,即选择k a 使得下式最小: )(k k k P a X F +
对任意函数的这种最小化需要线性搜索。

对二次函数解析线性最小化是可能的。

上式对k a 的导数为:
k X X T k k k X X T k k k k
P X F P a P X F P a X F da d
k k ==∇+∇=+|)(|)()(2 (13) 令式(13)导数为零求得 T
k k k k
T k k X X T k X X T k P A P P g P X F P P X F a k
k k -=∇∇-
===|)(|)(2 (14) 这里k A 为k X 的赫森矩阵:k X X k X F A =∇=|)(2
牛顿法
牛顿法基于二阶泰勒级数:
k k T
k k T k k k k k X A X X g X F X X F X F ∆∆+∆+≈∆+=+2
1)()()(1 (15)
牛顿法的原理是求)(X F 的二次近似的驻点,求这个二次函数对k X ∆的梯度并令它等于0,则有
0=∆+k k k X A g (16) 解得: k T
g A X k -=∆k
于是,牛顿法定义为 k k k g A X X 1
1k -+-= (17)
注意:牛顿法总是用一个二次函数逼近)(X F ,然后求其驻点,因此此方法总能够一步找到二次函数的极小点,如果原函数为二次函数(有强极小点),它就能够实现一步极小化
如果)(X F 不是二次函数,则牛顿法一般不能在一步内收敛,是否收敛取决于具体的函数和初始点
尽管牛顿法的收敛速度通常比最速下降法快,但其表现很复杂,除了收敛到鞍点的问题外,算法还可能震荡和发散,如果学习速率不太快或每步都实现线性极小化,最速下降法能保证收敛
牛顿法的另一个问题是需要对赫森矩阵及其逆阵的计算和存储
共轭梯度法
牛顿法有一个性质成为二次终结法(quadratic temination ),即它能在有限迭代次数内使得二次函数极小化,但这需要计算和存储二阶导数,当参数个数很大时,计算所有二阶导数是很困难的。

假定对下述二次函数确定极小点:
c X
d AX X F T T
++=
2
1)x ( (18)
当且仅当j k AP P j T
k ≠=,0时,称向量集合{}k P 对于一个正定赫森矩阵A 两两共轭。

因为对称矩阵的特征向量是两两正交的。

已经证明,如果存在沿着一个共轭方向集{}
,,2,1n P P P 的精确线性搜索序列,就能够在最多n 此搜索内实现具有n 个参数的二次函数的精确极小化。

注意到对于二次函数,有
A
X F d AX X F =∇+=∇)()(2 (19)
由于k k k k X A g g g ∆=-=∆+1,又有k k k k k P a X X X =-=∆+)(1,选择k a 使函数)(X F 在k P 方向上极小化,则共轭条件可重写称
j k P g AP X AP P a j T
k j T
k j T
k k ≠=∆=∆=,0 (20) 注意,第一次搜索方向0P 是任意的,而1P 是与0g ∆垂直的任意向量。

所以共轭向量集的数量是无限的。

通常从最速下降法的方向开始搜索:00g P -=
每次迭代都要构造一个与{}n g g g ∆∆∆ ,,10正交的向量k P 。

可以将迭代形式简化为 1-+-=k k k k P g P β (21) 通常选择
1
-1-k T
k
T k P g g g k k ∆∆=
β或1
-1-k T
k T k g g g g k k =
β或1
-1-1-k T
k
T k g g g g k k ∆=
β
综上,算法可以归纳为:
1、选择如00g P -=的与梯度相反的方向作为第一次搜索方向
2、根据k k k k k P a X X X =-=∆++)(11进行下一步搜索,确定k a 以使函数沿搜索方向极小化
3、根据k k k k P g P 111++++-=β确定下一个搜索方向,计算1+k β
4、如果算法不收敛,回到第2步
算法比较
梯度下降法形式简单,一般情况下都能够保证收敛,但是收敛速度慢 牛顿法对于二次目标函数收敛速度快,但是不能够保证收敛,而且需要对赫森矩阵及其逆阵的计算和存储
共轭梯度法结合了前面两种方法的性质,收敛速度快,不需要对赫森矩阵及其逆阵的计算和存储,但是形式比前两者复杂
Welcome !!! 欢迎您的下载,资料仅供参考!。

相关主题