【发布时间】:2018-05-05 08:54:07
【问题描述】:
我正在做一个项目,我需要通过几个变量来最小化函数,比如func(input_parameters, variable_parameters) -> min(variable_parameters)。
我使用来自SciPy 的优化函数,因此最小化过程是一个灰色框:我可以在GitHub 上看到代码并阅读有关使用的算法,但我想这没关系,旨在测试我自己的项目。 不过,在这个问题中,特定的库应该无关紧要。
目前我使用几种方法:
- 创建简单示例并手动查找全局/局部最小值并创建执行优化的测试并将其解决方案与正确的解决方案进行比较
- 如果方法需要梯度,请将解析计算的梯度与测试中的数值近似值进行比较
- 对于基于
SciPy提供的迭代算法,请检查函数值序列在测试中是否单调不递增
有没有关于数学优化程序测试的书或文章?
P。 S. 我不是在谈论Test functions for optimization ,我是在询问用于测试优化过程以更快地发现错误的方法。
【问题讨论】:
-
一个很好的问题。多年来我一直在为此苦苦挣扎;你所描述的几乎就是我过去所做的,我很想听听其他建议。
标签: unit-testing testing optimization mathematical-optimization