文章 "随机数生成器质量对优化算法效率的影响" - 页 5

 

要解决优化过程中发现的解决方案的稳定性评估问题,有两种方法:理论和实践。

理论方法意味着沉浸在文章的数学计算中,这些文章的标题通常带有稳定性和优化的字样。

实用性可以通过不同的方式实现,但归根结底是文章作者在第一点上所做的研究工作。例如, 在每个行进点附近进行 N 次冗余 FF 调用,以估算局部导数,并根据导数按一定的惩罚标准调整性能。或者,您也可以在优化过程中对坐标和/或 FF 值进行噪点处理--这是最便宜的方法(无需对优化算法本身的基础进行任何更改)。还有一种方法是对优化结果 进行聚类,找出条件式(指数-FF)/(传播-指标-FF)*(参数最小离散度)中最大值的点。在这个点上,一个好的结果将落在这个点上,这个点的分散度为零,应被视为不满意。

 
Stanislav Korotky 结果 进行聚类,找出条件式(指数-FF)/(传播-指标-FF)*(参数最小离散度)中最大值的点。在这个点上,一个好的结果将落在这个点上,这个点的分散度为零,应被视为不满意。

你的文章有点超前了。这不是坏事,但却无助于回答讨论中出现的一些问题。

萨博已经回答了我的问题,请您斯坦尼斯拉夫再多回答一些,让我们等待安德烈的回答。让我提醒您一下问题:

安德烈-迪克 #:

假设我们有机会对系统参数进行一次完整的枚举。我们用所有可能的原则参数对系统历史进行一次运行。现在,请回答以下问题:"您是否有办法从所有可能的参数中选择一组(或几组)参数,并将其用于新数据的系统运 行?

然后,我们就能最全面地揭示这些问题中存在问题的地方。

请注意:在这个问题的表述中,没有关于优化算法的内容。

 
Andrey Dik #:

萨博已经回答了我的问题,请回答斯坦尼斯拉夫,让我们等待安德烈的回答。让我提醒您一下问题:

在我看来,我刚刚回答了这个问题--一目了然的 3 个选项(有人可以想到更多):计数导数(*/**)、聚类(**)、噪声(*)--(一个星号--在优化过程中,两个星号--在优化结果上)。任一选项都会导致 FF 分数的调整。接下来,像往常一样选择最佳集,但它将不再是最大 FF,而是经过稳定性修正的。

 
Andrey Dik #:

不过,我们还是从这里说起吧。所以,还是假设我们可以完整搜索系统参数。原则上,我们用所有可能的参数对系统历史进行一次运行。现在,请回答这个问题:"您是否有办法从所有可能的参数中选择一组(或几组)您愿意用于在新数据上运行系统的参数?这个问题不仅是问你,也是问所有愿意回答这个问题的人。正如我们所看到的,现在我们讨论的根本不是任何优化算法,而只是选择一组参数在未知数据上运行系统。

就让它成为其中一座山的山顶吧。但我马上又规定:"'最佳'的定义是另一个有趣的问题"。

最终结果应考虑到一定半径范围内的通行结果。

在 3d 图上,这将是一个比其他山丘高的山顶,或者是稍低但坡度较缓的山顶。

从 TC 的角度来看,这将是 TC 在其每个参数的某个取值范围内的综合结果。

 
任务是在不进行全面搜索的情况下找到这个区域。
 
Stanislav Korotky #:

在我看来,我刚刚回答了这个问题--大概有 3 个选项(有人还能想到更多):计数导数(*/**)、聚类(**)、噪声(*)--(一个星号--在优化过程中,两个星号--在优化结果上)。任一选项都会导致 FF 分数的调整。接下来,像往常一样选择最佳集,但它将不再是最大 FF,而是经过稳定性修正的。

您帖子中的第一行

Stanislav Korotky#:

我认为有两种方法可以解决优化 过程中发现的解决方案的稳定性评估问题:理论和实践。

到目前为止,我们并没有进行优化,而是对参数进行了全面枚举。

 
Andrey Khatimlianskii #:

就让它成为其中一座山的山顶吧。但我马上规定:"'更好'的定义是一个有趣的单独问题"。

最终结果应考虑到一定半径范围内的通行结果。

在三维图上,这将是一个山顶,它比其他山顶高,或者略低,但坡度较缓。

从 TC 的角度来看,这将是 TC 运算在其每个参数的某个取值范围内的汇总结果。

Andrey Khatimlianskii#:
我们的任务是在不完全搜索的情况下找到这一区域。

那么,是否有办法从全面搜索结果中的所有可能参数中选出我们将用于陌生数据的参数集呢?我们已经进行了全面搜索,这里没有优化。

现在,回答这个问题非常重要。

 
Andrey Khatimlianskii #:
问题是如何在不进行全面搜索的情况下找到这一区域。

我相信这样的问题经常被提出来,因此也有一些已公布的解决方案。

顺便提一下,如果已经计算出了数万亿点的 FF 值(完全搜索),那么在这些点中寻找多维山丘就是一个优化问题。

因此,无论如何都要进行优化。


我提出了一种迭代方法,即在每次迭代之前,将(上一次迭代时)找到的顶点的区域戳出来,作为另一次 GA 运行。

 
感谢您的评论,亲爱的 Fxsaber、Stanislav 和 Andrey。尊重你们在开发和其他领域的丰富经验,请允许我就与 "优化 "概念相关的方面表达我的观点。我的目标绝不是 "教书",而是想表达我作为一个拆解过数百种别人的优化算法并设计过几种自己的算法的人的观点。

如果我能把我的想法传达给大家,就能让大家从一个略有不同的角度来看待优化问题,这无疑会丰富大家已经非常丰富的经验和知识,同时也能在讨论的过程中增加我的经验。

"如果"--因为在这篇文章的讨论主题中,有一些外部影响因素阻止了这种情况的发生。到目前为止,这些影响已经被成功抵消,但这并不能保证永远如此。
 
Andrey Dik #:

你帖子的第一行

我们还没有进行任何优化,我们已经进行了全面的参数枚举。

这是术语游戏吗?我提出了 3 种选择最佳集合的方法--它们也适用于在所有可能的组合中对历史进行全面运行的情况。

例如,这样一个众所周知的问题:有一个 NS(比方说,根据价格增量进行交易),优化被用来找到这个网络的权重。如果我们直接使用您的算法,就会得到一个训练过度的 NS,它将无法处理新数据。因此,关键是要将原始数据集一分为二,在对一半数据集进行优化的同时,控制另一半数据集的质量。