讨论寻找凸路径时可能会遇到的临界点。
1 临界点类型:
为了最小化函数一般是梯度下降(假定所有的函数都是可微的)
当梯度等于0的时候,该点为临界点,也就是局部最优解,对于强凸函数,也就是全局最小点。
对于非凸函数,例如,当x=(0,0) 时,梯度为0 向量,很明显此点不是局部最小值点,这种情况下,(0,0) 叫做该函数的鞍点。
为了区分这种情况,需要考虑二阶导数,,n*n 的矩阵,称为Hessian 矩阵,当Hessian 正定时,x有局部最小值点,当Hessian 负定是,此点是一个局部最大值,同时有正负特征时,此点是鞍点。
2 如何优化算法避开鞍点:
因为大多数自然目标函数都有指数级的鞍点。
许多学习问题都可以被抽象为寻找k 个不同的分量(比如特征,中心)。例如在聚类问题中,有n个点,我们要寻找k个簇,使得各个点离它们最近的簇的距离之和最小,又如在一个两层的神经网络中,我们试图在中间寻找一个含有k个不同神经元的网络。
最流行的方法是设计一个目标函数: 设x1,x2,...,xk 表示所求的中心,让目标函数f(x1,...,x) 来衡量函数解的可行性。当向量x1,x2,...,xk 是我们需要的k的分量时,此函数值会达到最小。所有相似解的排列指数级的全局最优解,鞍点自然会在连接这些孤立的局部最小值点上1出现。
3 避开鞍点
3.1 优化函数在鞍点处也要向最优解前进,最简单的方法是二阶泰勒展开式。
3.2 一阶方法避开鞍点: 一阶导数在鞍点为0,非常不稳定,为了 形式化这种直觉,我们尝试使用一个带有噪声嗯但梯度下降法,
这里的是均值为0的噪声向量,这种额外的噪声会提供初步的推动。使得球顺着斜坡滚落。
计算噪声梯度通常比计算真正的梯度更加省时,噪声并不会干扰凸优化的收敛,反而有助于收敛。
3.3 复杂鞍点:
非凸函数的外形更加复杂,含有退化鞍点(hessian 矩阵是半正定的,有0 特征值,这种退化结构往往展示了一个更为复杂的鞍点)
http://arxiv.org/abs/1602.05908 提出了一种算法可以处理这些退化的鞍点。