非负可微凸函数的近似零梯度是否意味着近似全局最小值?
嘿,这个问题问得特别有意思——乍一看好像有点反直觉,但咱们结合凸函数的性质一步步捋,就能把事儿说透。
先把问题的核心前提再明确下:
- 咱们有个非负、可微的凸函数 ( f: \mathbb{R}^{n} \rightarrow \mathbb{R}_{+} )
- 它在某个非空凸集 ( \Omega ) 上取值为0(说白了,Ω就是f的全局最小值点集合,毕竟f是非负的嘛)
- 用拟牛顿法近似极小化f时,得到了点序列 ( {x^{k}}{k \in \mathbb{N}} ),已经证实这个序列的梯度范数会趋近于0:( \lim{k \rightarrow \infty}|\nabla f (x^{k})| = 0 )
- 现在疑惑的是:能不能保证函数值也趋近于0?会不会出现梯度越来越小,但点反而离最小值集合越来越远的情况?
答案是肯定能保证函数值趋近于0,不会出现那种奇怪的情况,下面给你掰扯清楚原因:
首先,回忆凸函数的核心不等式:对于可微凸函数,对任意两个点x和y,总有
( f(x) \geq f(y) + \nabla f(y)^T(x - y) )
咱们从Ω里随便拿一个全局最小值点 ( x^* )(因为Ω非空,肯定能拿到),那 ( f(x^) = 0 )。把这个代入上面的不等式,对每个k都有:
( f(x^k) \geq \nabla f(xk)T(x^k - x^) )
接下来分两步分析:
序列{xᵏ}不可能趋向无穷远
假设{xᵏ}趋向无穷远,那沿着从x指向xᵏ的射线看,f在这条射线上的限制是个一维凸函数,非负且在x处取0。凸函数的导数是单调非减的,如果射线远离x*时f(x)不趋向0,那它必然趋向+∞(因为凸函数要么一直平着,要么往上涨),这时候导数(也就是梯度在射线方向的分量)会趋向某个正数c>0,梯度范数也就不可能趋向0了——这和题设矛盾!所以{xᵏ}一定是有界的。有界序列必有收敛子序列,进而推出函数值趋向0
既然{xᵏ}有界,那肯定能找到一个子序列 ( {x^{k_j}} ) 收敛到某个点 ( \bar{x} )。因为f是可微的,所以f连续,子序列的函数值会趋向 ( f(\bar{x}) )。
再看梯度:已知 ( |\nabla f(x^{k_j})| \rightarrow 0 ),结合凸函数梯度的单调性(( (\nabla f(a)-\nabla f(b))^T(a-b) \geq 0 ) 对任意a,b),可以推出 ( \nabla f(\bar{x}) = 0 )。而凸函数中梯度为0的点就是全局最小值点,所以 ( f(\bar{x}) = 0 ),也就是子序列的函数值趋向0。
要是假设原序列有子序列函数值不趋向0,那和这个结论矛盾,所以整个序列的函数值必然趋向0。
说白了,凸函数的性质就把“梯度趋近0”和“函数值趋近全局最小值”牢牢绑在一起了,不会出现那种梯度越来越小但离最小值越来越远的诡异情况~
备注:内容来源于stack exchange,提问作者R. W. Prado

