18 我只是在学习优化,而难以理解凸优化和非凸优化之间的区别。根据我的理解,凸函数是“函数图上任意两点之间的线段位于图的上方或上方”的凸函数。在这种情况下,可以使用梯度下降算法,因为存在一个最小值,并且梯度将始终使您达到该最小值。 但是,该图中的功能如何: 此处,蓝线段在红色功能下方交叉。但是,该函数仍具有一个最小值,因此梯度下降仍将您带到该最小值。 所以我的问题是: 1)该图中的函数是凸的还是非凸的? 2)如果不是凸的,那么是否仍然可以使用凸优化方法(梯度下降)? optimization — 卡尼瓦龙 source
21 您绘制的函数确实不是凸函数。但是,它是拟凸的。 X1个,X2,…X1个,X2,…F(x1个)> f(x2)> …F(X1个)>F(X2)>… 梯度下降最终将收敛到函数的固定点,而与凸度无关。如果函数是凸的,则这将是全局最小值,否则,可能是局部的最小值甚至是鞍点。 F(x )= x3F(X)=X3 — 保罗 source
5 保罗已经提到了一个重要的观点: 如果f是凸的,则没有鞍点,并且所有局部最小值也是全局的。因此,GD(具有适当的步长)可以保证找到全局最小化器。 使非凸优化困难的是鞍点和局部极小值的存在,其中梯度为(0,...,0),并且具有任意不好的目标值。 在这样的情况下找到全局最小化器通常是NP困难的,而是以找到局部最小化器为目标。 但是,请注意: GD卡在鞍座上的概率实际上为0(请参阅此处)。 但是,鞍点的存在可能会严重降低GD的下降速度,因为低曲率的方向利用得太慢了(请参阅此处) 因此,根据您问题的维度,建议您进行二阶优化例程。 — 乔纳森 source