0

我有一个音频处理应用程序,它接受输入音频文件,对其进行处理,然后输出修改后的输出音频文件。此音频处理应用程序有 10-15 个参数,这些参数会影响其处理音频的方式,从而影响输出音频文件的内容(例如,它可能具有不同的频率响应、更响亮、更安静等)。所有这些参数都有限制范围(例如,x0 必须 < 1 和 > -1)。

输出音频文件由一个给它打分的工具评估。这个工具知道“理想”的输出应该是什么样子,并相应地对输出文件进行评分。1.0 分意味着输出是理想的,即输入文件是用最好的参数集处理的。0 分意味着输出完全错误。

因此,使用 10-15 个参数及其有效范围,组合是无穷无尽的!我会一直坐在这里手动调整这些参数,直到我得到最好的解决方案。我已经检查了一些 LP/MIP 求解器(CBC、MS Solver Foundation、GKLP),但这些求解器使用数学方程作为目标函数......据我所知,您不会“插入”外部评估函数.

LP/MIP 求解器是帮助参数调整的正确工具吗?有任何想法吗?

谢谢,

阿克万

4

3 回答 3

1

您可以使用一般启发式方法,例如模拟退火或遗传算法。您的评估过程将是适应度/目标函数。

于 2011-08-05T17:33:58.723 回答
0

如果您有目标函数,那么是的,LP 将是理想的方法(并且会给出理想的答案);解决方案将是纯粹的分析。但是在没有该函数的情况下,您似乎已经正确理解了问题变成了整数规划问题。我对整数编程知之甚少,但我相信这也需要一个目标函数来解决。即使使用该函数,整数程序也是 NP-hard

因此,您似乎需要使用蛮力来检测局部最大值,然后对其进行调整。我意识到这正是你不想做的,但这就是我想到的。

于 2011-08-05T17:30:13.310 回答
0

您可以使用SPOT数据包(R 编程语言)。它允许您使用比蛮力少得多的运行来找到(接近)最佳参数设置。您可以为您的健身功能代码使用任何编程语言,SPOT 有一个适配器,并提供默认设置的自动模式(您不必担心设计类型和预测模型)。它有一个陡峭的学习曲线,但是一旦你了解了基础知识,它就是一个强大的工具。是一个快速指南;第 2.6 章提供了一个具体的例子。SPOT 包附带了几个示例。

于 2012-11-29T20:22:58.900 回答