type
status
date
slug
summary
tags
category
icon
password
Property
目标函数为一元单值函数 时的最小优化问题的迭代求解方法,称为一维搜索法,也称为线性搜索法。
迭代算法从初始搜索点 出发,产生一个迭代序列 。在第 次迭代中,通过当前迭代点 和目标函数 构建下一个迭代点 。算法可能只需要迭代点处的目标函数值,还可能用到目标函数的一阶导数,甚至二阶导数。
一维搜索算法包括(但不限于):
- 黄金分割法(只使用目标函数值)
- 斐波那契数列法(只使用目标函数值)
- 二分法(只使用目标函数的一阶导数)
- 割线法(只使用目标函数的一阶导数)
- 牛顿法(同时使用目标函数的一阶导数和二阶导数)
黄金分割法
type
status
date
slug
summary
tags
category
icon
password
Property
水平集指的是能够满足的所有组成的集合,为常数。因此,对于点 , 如果则可以说该点是水平为的水平集中的元素。
如果函数在处的梯度不是零向量,那么它与水平集中任意一条经过处的光滑曲线的切向量正交。因此,一个实值可微函数在某点处函数值增加最快的方向正交于经过该点的函数水平集。也就是说,在梯度方向上,自变量的细微变动,所导致的目标函数值的增加幅度要超过其他任意方向。
证明:
函数在点 处,在方向上增长率记为: ,。由于,由柯西-施瓦茨不等式可得:
若令 ,则有:
可看出,梯度方向 就是函数 在 处增加最快的方向。反之,梯度负方向就是函数在处减少最快的方向。在梯度方向上,自变量的细微变动,所导致的目标函数值的增加幅度超过其他任意方向。如果需要搜索函数极小点,梯度负方向是优选方向。
令作为初始搜索点,并沿着梯度负方向构造一个新点 ,由泰勒定理可得
如果那么当 足够小时,有:
这意味着,从搜索目标函数极小点的角度来看,相对于 有所改善。
给定一搜索点 ,由此点出发,根据向量 指定的方向和幅值运动构造新点 。其中, 是一个正实数,称为步长。可得迭代公式:
称为梯度下降法。
type
status
date
slug
summary
tags
category
icon
password
Property
在确定搜索方向时,最速下降法只用到了目标函数的一阶导数(梯度),这种方式并非总是最高效的。在某些情况下,如果能够在迭代方法中引人高阶导数,其效率可能将优于最速下降法。牛顿法同时使用一阶和二阶导数来确定搜索方向,当初始点与目标函数的极小点足够接近时,效率要优于最速下降法。
牛顿法的基本思路:给定一个迭代点之后,首先构造一个二次型函数其与目标函数在该点处的一阶和二阶导数相等,以此可以作为目标函数的近似表达式;接下来求该二次型函数的极小点,以此作为下一次迭代的起始点。重复以上过程,以求得目标函数的极小点。如果目标函数本身就是二次型函数,那么构造的近似函数与目标函数完全一致;如果目标函数不是二次型函数,那么近似函数得到的极小点是目标函数极小点所在的大体位置
当目标函数 二阶连续可微时,将函数在点处进行泰勒展开(忽略三次以上的项),可得到二次型近似函数
令,应用函数的局部极小点的一阶必要条件,得
如果,牛顿迭代公式为
在一次迭代中 (令迭代次数序号为 ),牛顿法可以分为两步:
- 求解,得到
type
status
date
slug
summary
tags
category
icon
password
Property
牛顿法是一种具有较高实用性的优化问题求解方法,如果收敛,则收敛阶数至少是2。但是,当目标函数为一般性的非线性函数时,牛顿法不能保证能从任意起始点收敛到函数的极小点。如果初始点 不足够接近极小点,那么牛顿法可能不具有下降特性,即对于某些 ,
牛顿法的基本思路:在每次迭代中, 利用二次型函数来局部近似目标函数,并求解近似函数的极小点作为下一个迭代点,迭代公式为:
对上式进行适当修正,可以保证牛顿法具有下降特性:
为步长,合理地确定步长,使得
比如,可令
通过在方向上进行一维搜索,即可确定 。
一维搜索的过程实际上就是求一元实值函数 的极小点,看起来比较简单, 实际计算过程却不容易。
type
status
date
slug
summary
tags
category
icon
password
Property
最小二乘分析
考虑线性方程组:
末知数的数量不大于方程的数量,因此, 如果不属于矩阵 的值域空间,即,则称该方程是矛盾的或过定的,这种情况下方程组无解。求解该方程就变成了寻找一个(组) 向量,使得 达到最小。这是非线性最小二乘问题的一个特例。
如果向量 能够使达到最小,即对于所有 ,都有
则称 为的最小二乘解。若 有解时,其解自然是一个最小二乘解;若无解,则只能寻求其最小二乘解,即能使和 之间差值的范数达到最小的向量。
矩阵 ,当且仅当 (即方阵 非奇异)时, 。在定义方程组模型时,已经要求,那么逆矩阵存在。
type
status
date
slug
summary
tags
category
icon
password
Property
神经网络的核心是是神经元之间的连接权重,确定权重的过程称为训练或学习。
神经网络训练方法为反向传播算法,该算法基于无约束的优化问题,并利用梯度算法进行求解。
每个神经元表示一个映射,通常是多输入单输出。神经元的输出是输入之和的函数,该函数通常称为激活函数。某个神经元的输出可以用作多个其他神经元的输入。
神经网络包括多个相互连接的神经元,各神经元的输入为其他神经元的输出的加权。在前馈神经网络中,神经元按照不同的层次进行连接。每个神经元只接受来自上一层次神经元的输出,是上一层次神经元输出的加权。
网络的第一层称为输入层,最后一层称为输出层,输入层和输出层之间为中间层(隐藏层)。
给定一个映射 ,可以采用特定结构的神经网络实现。
确定数据对 ,其中, 为映射的输出,对应输入为 ,即 ,以数据对 作为训练集对神经网络进行训练。利用训练算法,以网络实际输出和制定输出之间的误差,即 和神经网络在输入 下的输出之间的差值为依据,对连接权重进行调整。
神经网络训练问题可归纳为优化问题。
type
status
date
slug
summary
tags
category
icon
password
Property
前面讨论的一些迭代算法,包括梯度方法、牛顿法、共辄梯度法和拟牛顿法等,能够从初始点出发,产生一个迭代序列。在很多时候,这一迭代序列往往只能收敛到局部极小点。因此,为了保证算法能够收敛到全局极小点,有时需要在全局极小点附近选择初始点。此外,这些方法需要计算目标函数的一阶导数(牛顿法还需要计算二阶导数)。
这里讨论一些全局意义上的搜索方法,它们能够在整个可行集中开展搜索,以找到极小点。这些方法只需要计算目标函数值,不需要对目标函数求导。因此,它们的适用面更为广阔。在某些情况下,这些方法产生的解,可以作为如梯度方法、牛顿法等迭代方法的"较好"的初始点。某些方法(具体而言,就是随机搜索方法)还可用于求解组合优化问题。在组合优化问题中,可行集是有限的(离散的) ,但通常会非常大。
Nelder-Mead 单纯形法
该方法是由Spendley, Hext and Himsworth 于1962年提出的,Nelder and Mead 在 1965 年对其进行了完善,现在通常称为 Nelder-Mead 单纯形法。
Nelder-Mead 单纯形法引入了单纯形的概念,不需要计算目标函数的梯度。所谓单纯形,指的是由维空间中的 个点 构成的几何形状,且满足
这一条件的含义为:中的两个点不重合, 中的三个点不共线, 中的四个点不共面,以此类推。因此, 中单纯形是一条线段, 的单纯形是一个三角形, 的单纯形是一 个四面体。这说明,单纯形包围的维空间具有有限的体积。
针对函数 的最小化问题,首先选择 个点,使其构成一个初始单纯形。Jang, Sun and Mizutani 提出了一种构造单纯形的方式 。具体方式为选定初始点,按照下式产生其他点:
其中, 表示一组单位向量,是空间 的标准基;系数为正数,可以按照优化问题的规模确定其大小。按照这种方式产生的 个点,正好能够构成一个单纯形。初始单纯形确定之后,接下来就是一步步对其进行修改,使得 产生的单纯形能够朝着函数极小点收敛。在每次迭代中,都要针对单纯形的每个点计算目标函数值。对于函数 最小化的优化问题而言,目标函数值最大的点将被另外的点代替。 持续开展这一迭代过程,直到单纯形收玫到目标函数的极小点。