文章 "ALGLIB 库优化方法(第二部分)" - 页 5

 
fxsaber #:

在某些情况下,完全暴力搜索无法找到最佳值,因为暴力网格的节点不在最佳值上。

我想我不知道
 

Maxim Dmitrievsky #:
1. Какой-нибудь конкретный критерий оценки кач-ва оптимизации есть?)

2. 如果算法需要更多的迭代次数,是不是就不好了?


3.将找到最佳值的速度与全面搜索进行比较是正常的比较。

1. 10 000 次访问的限制并不是 "天花板"。MetaTrader 5 优化器从实际角度出发,将这一数字作为最佳值。这个数字被用作实用性的参考界限。您可以进行更多调用,但如果您可以使用更强大的算法并更快地实现相同的结果,为什么还要浪费时间和资源呢?这个数字是一个阈值,用于比较不同的算法。

这说明了应考虑的算法质量

收敛的准确性

结果的可重复性(稳健性)

可扩展性(随着问题维度的增加而继续高效工作的能力)。

2.2. 如果使用随机点生成,是否需要大量调用 FF?

3. 如果在一次完整搜索中对 FF 的访问次数在合理范围内,那么就应该使用它。例如,如果只需要 200 次访问,为什么还需要 AO?

Популяционные алгоритмы оптимизации
Популяционные алгоритмы оптимизации
  • www.mql5.com
Вводная статья об алгоритмах оптимизации (АО). Классификация. В статье предпринята попытка создать тестовый стенд (набор функций), который послужит в дальнейшем для сравнения АО между собой, и, даже, возможно, выявления самого универсального алгоритма из всех широко известных.
 
fxsaber #:

在某些情况下,完全暴力搜索无法找到最佳值,因为暴力网格的节点不在最佳值上。

完全正确。而网格的缩小将导致对 FF 的调用逐步增加。这就是在时间和资源限制下,AO 在现实生活中的实际应用领域。

 
我们甚至无法确定 alglib 优化器的使用是否正确。也不确定是否有人在这些任务中使用了优化器。

如果你的任务是优化某个函数,那么你就会优化它,并得到一个正常的结果。这个函数很复杂,所以它可以正常优化。

也许应该以其他方式使用它们,比如先降低维度
 
Maxim Dmitrievsky #:
1.

2.您的任务是优化某个函数 - 您进行了优化并得到了正常结果。函数很复杂,所以优化正常。

1.你可以质疑任何事情,但从完整的源代码和正确的可重复测试的角度出发,总是更有建设性。

2.如果你让 90 亿人随机地把手指伸进一张白纸上,函数的表面就隐藏在白纸后面,那么你就可以在二维巨城上得到一个最优结果(其中一个人最后肯定会非常接近全局,并会说他是成功解决了这个问题的人)。但是,我们需要找到最优解,而不是在 90 亿次尝试中随意捅一捅,而是在 10000 次尝试中使用一种策略。

在一系列独立测试中,平均结果越高(结果的稳定性、可重复性),在特定类型的问题上,所测试的方法与随机捅解相比就越高(在某些问题上,某些方法与随机捅解没有太大区别,而在另一些问题上,它们却非常有效)。

这就是测试和比较不同算法的意义所在。对于不同的算法,不是只用一个测试函数,而是用三个不同性质的测试函数作为基准,这样就能清楚地看到不同算法在不同任务中的适用性,以及它们在不同任务中的局限性和能力。这样就能以一种有意义的方式来解决优化问题。

今后,我更愿意回答有关文章内容和代码的具体问题。

 

我们采用局部优化方法,将其应用于全局问题,并与全局优化方法进行比较。这就是我要说的。

我说的是如何将这些方法用于全局优化。最简单的方法就是增加初始化的次数。

 

如果我没理解错的话,亚当等人是为了提高速度而不是质量。

如果以时间而不是迭代次数为限制,看看评分结果会很有趣。

 
Rorschach #:

如果我没理解错的话,亚当等人追求的是速度,而不是质量。

如果以时间而不是迭代次数为限制,看看评分结果会很有趣。

ADAM 系列算法(AdamW、RAdam、AdaBelief 等)以及 SGD、SGRAD 和其他算法(有很多)是作为经典梯度法的现代替代方法而开发的,旨在解决大维度问题,无需了解分析公式,通常用于训练神经网络(它们各有优缺点)。谷歌(2023 年)也推出了一些有趣的雄狮方法,还有其他一些最新方法。这个话题非常值得研究,尤其是在训练神经网络的背景下,在一些简单的例子(也可能是复杂的例子)上建立一个目标曲面并进行实验(解析其内部结构、深入研究各种方法的特性、仔细评估它们的能力--一切随心所欲)将会非常有用,而且信息量很大。

有了时间限制,就没有什么可约束的了。在这种情况下,我们如何比较算法呢?这就是为什么我们使用命中次数限制,并在此限制内比较效率的原因。

 
Andrey Dik #:

有了时间限制,就没有什么可绑定的了。在这种情况下,我们如何比较他们之间的算法?这就是为什么我们使用命中次数限制,并在此限制内比较效率的原因。

绑定作者的 PC。以 ANS 的 10000 次迭代时间为基础。

我在 fxsaber代码 上的结果:


pso 72 秒 40.8 KB、 最佳结果 = -14.0: TPdist = 0.41、 SLdist = 0.68

bga 22 秒 38.5 KB、 最佳结果 = -14.0: TPdist = 0.32、 SLdist = 1.04
4 pOeS 23 秒 19.9 KB、 最佳结果 = -14.0: TPdist = 0.54、 SLdist = 1.12
6 sdsm 23 秒 21.1 KB、 最佳结果 = -14.0: TPdist = 0.42、 SLdist = 1.28

sds 22 秒 14.5 KB、 最佳结果 = -14.0: TPdist = 0.89、 SLdist = 1.34
8 时间 22 秒 23.3 KB、 最佳结果 = -14.0: TPdist = 0.82、 SLdist = 0.36
9 sia 23 秒 19.2 KB、 最佳结果 = -14.0: TPdist = 0.82、 SLdist = 1.02
13 22 秒 13.3 KB、 最佳结果 = -14.0: TPdist = 0.6 、 SLdist = 0.74
16 hs -
16.5 KB


17 ssg 22 秒 22.7 KB、 最佳结果 = -14.0: TPdist = 0.57、 SLdist = 0.4
20 23 秒 18.8 KB、 最佳结果 = -14.0: TPdist = 0.42、 SLdist = 2.0
26 acom 22 秒 21.3 KB、 最佳结果 = -14.0: TPdist = 0.46、 SLdist = 0.98
27 bfoga 30 秒 22.9 KB、 最佳结果 = -14.0: TPdist = 0.1 、 SLdist = 0.2
32 mec 22 秒 23.7 KB、 最佳结果 = -14.0: TPdist = 0.91、 SLdist = 0.58
33 iwo 23 秒 25.4 KB、 最佳结果 = -14.0: ???
34 mais 23 秒 21.0 KB、 最佳结果 = -14.0: TPdist = 0.54、 SLdist = 1.44
35 库姆 22 秒 16.9 KB、 最佳结果 = -14.0: TPdist = 0.32、 SLdist = 1.96
36 sdom 22 秒 13.9 KB、 最佳结果 = -14.0: TPdist = 0.72、 SLdist = 2.0
37 nmm 22 秒 32.9 KB、 最佳结果 = -14.0: TPdist = 1.0 、 SLdist = 1.58
38 ...家庭 22 秒 17.3 KB、 最佳结果 = -14.0: TPdist = 0.83、 SLdist = 0.48
39 gsa 22 秒 23.1 KB、 最佳结果 = -14.0: TPdist = 0.83、 SLdist = 1.44
40 bfo 22 秒 19.5 KB、 最佳结果 = -14.0: TPdist = 0.62、 SLdist = 1.6
41 abc - (错误) 32.0 KB


42 ba 23 秒 20.0 KB、 最佳结果 = -14.0: TPdist = 0.49、 SLdist = 1.18
44 sa 23 秒 12.5 KB、 最佳结果 = -14.0: TPdist = 0.8 、 SLdist = 1.6
45 iwdm 23 秒 27.3 KB、 最佳结果 = -14.0: TPdist = 0.32、 SLdist = 0.72

pso 23 秒 12.8 KB、 最佳结果 = -14.0: TPdist = 0.74、 SLdist = 1.42

ma 22 秒 18.0 KB、 最佳结果 = -14.0: TPdist = 0.88、 SLdist = 0.62

sfl -
29.8 KB



fss 22 秒 24.5 KB、 最佳结果 = -14.0: TPdist = 0.78、 SLdist = 1.96

rnd -
16.6 KB



gwo 22 秒 17.0 KB、 最佳结果 = -14.0: TPdist = 0.72、 SLdist = 1.56

css 22 秒 17.2 KB、 最佳结果 = -14.0: TPdist = 0.74、 SLdist = 1.3

em -
17.7 KB



扫描 23 秒 18.8 KB、 最佳结果 = -14.0: TPdist = 0.51、 SLdist = 1.3


PS 代码大小作为附加指标(算法实现的复杂程度)