问题:

我想就人们如何在无法对groundtruth进行验证的情况下设置算法参数展开讨论(也许是因为groundtruth无法获得或很难/乏味地获得)。

我阅读了许多论文并实现了底层算法,其中---据说一组参数是“凭经验设置的” ---而且我经常发现这些参数会影响算法的通用性(即使该方法所基于的理论是优雅,诱人且稳健的)。并且,此问题没有正确或错误的答案。我只想知道,其他人如何处理这个问题。

背景/问题来源:

我是从事图像分析领域的计算机科学家,计算机视觉,机器学习和这个问题已经让我回想了一段时间,因为每当我设计一种新算法并发现自己花费大量时间来调整参数时,我就一次又一次地遇到这个难题。

此外,我想,我的问题对于涉及计算算法的任何领域都比较笼统,我想邀请所有相关领域的人们的想法。

我想给您一个具体的例子,以帮助您思考:

---以特征检测为例(让我们说圆形斑点或显着点)。您以不同的比例(比例参数)运行一些过滤器(需要参数),并可能将响应设置为阈值(阈值参数)。在这种情况下,通常无法获得验证的依据,从而无法自动调整参数。

---采用任何涉及大量信号处理组件的计算框架。总是有需要调整的参数,通常没有基本参数,当您主观调整数据集的随机小子集时,总有一天会遇到无法推广的情况。

此参数魔鬼是在为算法中的某些中间步骤设置参数时,麻烦会更大。

我经常发现,不可能将为这些参数找到合适值的问题作为具有目标函数的优化问题,您可以对其求导并使用标准优化算法找到好的价值。

另外,在许多情况下,也不要将这些参数暴露给最终用户,因为我们经常为非计算最终用户(例如生物学家,医生)开发应用程序/软件,通常除非他们非常直观(例如大约对象的大小),否则请让他们进行调优。

请分享您的想法。

评论

我想开始讨论的开头...确实很好地表明您要问的内容不适合* .SE格式。

#1 楼

假设存在一个基本事实,(至少在理论上)克服“乏味”问题的一种可能方法是“自举”创建基本事实。如果您已经有一个不错的算法可以在大约80%-90%的情况下完成任务,则可以在大量实例上运行算法,并要求用户仅标记错误。这种方法有其自身的缺陷,例如偏向于您的算法。例如,需要图像处理系统来输出清晰,色彩准确,无噪声的图像。显然,您不能同时拥有它们。在这种情况下,您应该使用可以根据系统结果计算的客观指标。 (有关图像处理,请参阅DXO分析仪Imatest)。

一旦有了这些,就有许多多目标优化方法可以创建从权衡(对用户来说是显而易见的)到固有参数的映射。 />无论如何,永远不要给用户一个他无法理解的参数。如果全部失败,只需对参数进行硬编码。

#2 楼

这是一个非常非常困难的问题,但是该领域有很多工作要做。例如,请看Ramani&Fessler撰写的有关SURE方法的论文。简介对参数选择方法进行了很好的概述,请务必查看它们的参考。