1.上溢和下溢
(1)舍入误差:指运算得到的近似值和精确值之间的差异。如果在一系列运算中的一步或者几步产生了舍入误差,在某些情况下,误差会随着运算次数增加而积累得很大,最终得出没有意义的运算结果。
(2)下溢
当接近0的数被四舍五入为零时发生下溢。若使用此类数作为除数或取其对数时(会产生无穷大的数,进一步计算)可能会返回非数字的结果。
(3)上溢
当大量级的数被近似为∞或-∞时发生上溢。进一步的运算会导致这些无限值变为非数字。
2.病态条件
(1)条件数
反映了函数对于输入的微小变化的敏感程度。
对于方程组Ax=b,其条件数定义为(即对A及A的逆求某一种范数并相乘),反映了矩阵A的变化对解x的影响
(2)病态系统
如果输入的微小变化会使得输出发生巨大变化,输入中预先存在的误差就会被放大,这样的函数就是病态的。
条件数越大,病态问题越严重。
3.基于梯度的优化问题
(1)优化
通常以最小化指代最小化优化问题,而以最小化
指代最大化优化问题
- 目标函数(准则):需要最小化或最大化的函数
- 代价函数(误差函数、损失函数):需要进行的最小化的函数
- 通常使用梯度下降的方法实现函数的最小化,但可能无法找到全局最小点,通常采用近似最小化出代价函数显著低的值
- 临界点(驻点):导数等于0的点。包括极小值点、极大值点、鞍点
(2)多维输入函数的优化
①偏导数:衡量点
处只有
增加时
如何变化
②梯度:是相对于一个向量求导的导数,该导数是一个包含所有偏导数的向量,其第i个元素是f关于
的偏导数。梯度向量指向函数增加最快的方向。
临界点是梯度中所有元素多为零的点
③方向导数:函数f在(单位向量)方向的方向导数是函数f在
方向的斜率,就是函数
在
时的导数,即
④二阶导数:可以体现函数在某点的曲率,若二阶导数的值为负,说明该处函数为负曲率(函数表现为向上突出),若二阶导数的值为正,说明该处函数为正曲率(函数表现为向下突出)
⑤最速下降法(梯度下降)
a.推导过程
函数f在点处关于方向
的方向导数为
(其中
为单位向量,按点乘公式展开,
为
与梯度方向的夹角),又因为当函数在某点处的梯度为一确定向量,因此
即当沿着梯度方向时方向导数最大,函数增长速度最快。为了使函数减小最快,则需要沿着函数的负梯度方向前进,则有更新点的公式(其中
为学习率,是一个确定步长大小的正标量)
b.最速下降法在梯度的每一个元素为零时收敛
c.最速下降法只适用于连续空间中的优化算法,离散空间的优化可以使用爬山法
(3)Jacobian矩阵和Hessian矩阵
①Jacobian矩阵
对于函数(这个函数由m个实函数构成,即
,…,
,也可以将函数的输入看为m维向量,输出看为n维向量),f的Jacobian矩阵
定义为
(其中i表示第i个实函数,j表示输入的第j个元素)
若是
中的一点,F在
点可微,
即F在点
处的导数。若点
距离点
足够近,则F在其附近的最优线性逼近可以表示为
② Hessian矩阵
对于函数,其Hessian矩阵
定义为
(其中i表示输入的第i个元素,j表示输入的第j个元素)
Hessian矩阵等价于梯度的Jacobian矩阵(对于一个实函数,其梯度为
,Hessian矩阵是
到
的Jacobian矩阵)
a.微分算子在任何二阶偏导连续的点处可交换,因此i,即Hessian矩阵是实对称的,因此可将其分解为一组实特征值和一组正交的特征向量(实对称矩阵不同的特征值的特征向量是正交的)。其最大特征值确定最大二阶导数,最小特征值确定最小二阶导数。
b.多元函数f在某个方向上的二阶导数可以写成
。当
为H的一个特征向量时,该特征向量对应的特征值即为该方向二阶导数的值。
推导过程:由于是H的特征向量所以有
,所以有
c.当不是H的特征向量时,
(即该方向的二阶导数)的值是H的所有特征值的加权平均值(特征值对应特征向量与
的夹角越小的特征值权重越大,因此当
为特征向量时可看做特殊情况,即
与某一特征向量夹角为0,该特征向量对应权重为1,其余特征值对应权重均为0)
d.使用二阶导数预期梯度下降的表现
函数在
处的近似二阶泰勒级数为
(其中是梯度,H是
的hessian矩阵)
使用学习率对输入进行更新,可得
(其中第一项为函数的原始值、第二项为函数斜率导致的预期改善、第三项为函数曲率导致的矫正)
Hessian矩阵的特征值决定了学习率的量级
e.在临界点处通过Hessian的特征值来判断临界点是局部极大点、局部极小点还是鞍点。当Hessian矩阵是正定的(所有特征值都为正),该临界点是一个局部极小点;当Hessian矩阵是负定的,该临界点是一个局部极小点;当Hessian矩阵的特征值有正有负,说明该点在某些横截面是局部极小点,在某些横截面是局部极大点(鞍点);当Hessian矩阵特征值同号且有部分为0时,该临界点性质不能确定。
f.某个点的Hessian矩阵的条件数可以衡量该点各个方向上二阶导数的变化范围,当条件数很大时,难以选择合适的步长。
g.使用Hessian矩阵的信息来指导搜索——牛顿法
(参考https://blog.csdn.net/xbinworld/article/details/79113218?ref=myread)
通过迭代下式可求得函数的临界点
仅使用梯度信息的优化算法被称为一阶优化算法,如梯度下降;使用Hessian矩阵的优化算法被称为二阶最优化算法,如牛顿法
③对函数添加限制以得到好的特性
a.限制函数满足Lipschitz连续或其导数Lipschitz连续可以认为梯度下降等算法导致的输入的微小变化对应输出也只会产生微小变化
b.凸优化:只适用于凸函数(即Hessian矩阵处处半正定的函数),凸优化保证函数没有鞍点并且所有局部极小点必然是全局最小点
4.约束优化
不是十分理解,等再补充一点知识后回来补T T