【问题标题】:Automatic parameter tuning自动参数调整
【发布时间】:2011-08-05 17:01:31
【问题描述】:

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

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

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

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

谢谢,

阿克万

【问题讨论】:

    标签: c# .net optimization constraint-programming ms-solver-foundation


    【解决方案1】:

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

    【讨论】:

    • 我现在正在使用模拟退火......特别是来自 C 中的数值配方的第 10 章。这绝对是正确的方法,尽管我必须找出向算法添加约束的最佳方法。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-18
        • 2011-03-15
        • 1970-01-01
        • 2012-01-05
        • 1970-01-01
        • 1970-01-01
        • 2016-11-20
        相关资源
        最近更新 更多