gpt4 book ai didi

python - python 中的优化函数

转载 作者:行者123 更新时间:2023-11-30 09:32:16 25 4
gpt4 key购买 nike

当我在 Python 中遇到两个优化函数时,我正在训练我的多类分类器,其中一个是 scipy.optimize.fmin_cg其他是scipy.optimize.minimize 。我阅读了文档但无法弄清楚太多。这两者之间的基本区别是什么?我应该在哪些特定情况下使用它们?

最佳答案

如果您查看 minimize 函数 ( doc ) 的文档,在参数列表之后,将通过对描述详细信息的文章的引用来指定方法。

您实际上可以在那里找到以下行:“方法 CG 使用非线性共轭梯度算法”,这正是 fmin_cg 的作用。所以 minimize 是一个更通用的函数,它可以使用不同的函数,通过选择 cg 它将执行与更具体的 fmin_cg 函数相同的操作。 (在fmin_cg的文档中,您可以准确地阅读以下内容:“所有 scipy.optimize 算法的通用接口(interface),用于无约束和约束最小化多元函数。它提供了一种调用 fmin_cg 的替代方法,通过指定 method= “CG”。”)

那么,什么时候应该使用fmin_cg?文档中也给出了答案:“共轭梯度法在以下情况下往往效果更好:

  • f 具有唯一的全局最小点,并且没有局部极小值或其他驻点,
  • f 至少在局部可以很好地近似为变量的二次函数,
  • f 是连续的并且具有连续的梯度,
  • f' 不太大,例如范数小于 1000,
  • 初始猜测 x0 相当接近 f 的全局最小化点 xopt。”

什么时候应该使用最小化? Minimize 只是优化算法的集合。所以真正的问题是你什么时候应该使用其他东西。好吧,阅读文档中方法的描述并尝试找出答案。可能会找到 minimize 将调用的具体方法(例如本例中的 fmin_cg),以获取更详细的描述。

关于python - python 中的优化函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53458248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com