不提供梯度的 fmincg 的有效解决方案?

数据挖掘 大数据 数据挖掘
2021-09-21 02:07:18

我正在研究具有大量特征(numFeatures > 100)的多类逻辑回归模型。使用基于成本函数和梯度的最大似然估计,fmincg 算法可以快速解决问题。但是,我也在尝试不同的成本函数并且没有梯度。

有没有加快计算过程的好方法?例如,我可以使用不同的算法或 fmincg 设置吗?

3个回答

如果您没有可用的梯度,但问题是凸的,则可以使用Nelder-Mead 单纯形法它在大多数优化包中都可用,例如在scipy.optimize中。

共轭梯度——函数最小化(非线性)共轭梯度中的 cg——要求你有一个梯度函数(或近似值),因为这是算法本身的关键部分:它需要快速找到最陡的下降方向。

fminsearch实现 Nelder-Mead,一种非线性无梯度方法。它的收敛特性远没有那么好。

你的成本函数是什么?是否存在可微分的近似值(首选两次,以便您可以使用非常强大的准牛顿方法)?

我已经能够通过模拟退火优化非常奇怪的函数,而且它不需要梯度。相反,它以非常类似于马尔可夫链蒙特卡罗的方式使用随机数,这有助于避免陷入局部最优。可以在本讲座中找到一个体面的解释,给出其背后的直觉:模拟退火scipy 0.14 在其优化模块中包含此算法:scipy.optimize.anneal