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

 
大城市

 

其中似乎没有什么复杂的 lbfgs 功能。

还没有尝试过 adam 和rmsprop,它们被认为是更高级的。但既然这两个软件可以,它们肯定也能做到。

 
Maxim Dmitrievsky #:
大城市

Maxim Dmitrievsky#:
其中似乎没有什么复杂的 lbfgs。

你既没有提供测试台源代码,也没有提供 lbfgs,所以没什么好说的。没有人会在这里对 python 及其模块进行深入研究。本文提供了所有 MQL5 源代码(现在在文章的评论中也提供了),以便重现结果。

 
Andrey Dik #:

你既没有提供测试台源代码,也没有提供 lbfgs,所以没什么好谈的。没有人会在这里揭开 python 及其模块的内幕。本文(以及现在的文章评论)提供了所有 MQL5 源代码,以便重现结果。

https://colab.research.google.com/drive/1bF0rFG94phR-au51wpAhi_0WLUUfgNIy?usp=sharing

多按几次 "播放 "按钮

我不是写文章的人,所以我不会故意破解任何东西。我们使用了可靠的公认库,尤其是SciPy

Optimization and root finding (scipy.optimize)#
  • docs.scipy.org
Optimization and root finding ()# SciPy provides functions for minimizing (or maximizing) objective functions, possibly subject to constraints. It includes solvers for nonlinear problems (with support for both local and global optimization algorithms), linear programming, constrained and nonlinear least-squares, root finding, and curve fitting...
 

巨城的亚当住进了顶楼。

在记事本中添加了代码。如果需要,我稍后会添加更多梯度求解器。



 
Andrey Dik #:

这是一个新的测试功能类内核(文章存档中有):

只需将任意维度的多维数组(我的意思是--在数组的一个维度上有许多单元格,即多维空间)抛入 args,该方法就会将数组中的参数分散到二维函数中。很明显,如果你抛出一个奇数维度的数组,其中一个单元格将被丢弃,不会参与计算。也就是说,这是一个具有偶数维数的多维测试函数。

稍后,我将在一维的基础上发布它,这样会更实用,而且可以更清晰地构建图形。

注释代码是将函数旋转一定角度的功能。这对许多 AO 来说都是个难题。目前还没有在任何地方使用。

也没心思考虑那么久。你需要一些类似文章中的函数来重现结果。

我觉得完全没有问题。只是问题的计算复杂度会增加。
 

Megacity 中的边界取值不正确。正确的 Megacity 应该是这样的,图像是在 MQL5 中构建的(表中的算法是在 MQL5 上测试的):

此外,二维函数的结果并不是一个指标。此外,您需要计算平均值(即使使用种群模拟,您也需要查看所有种群之间的平均值--单独测试)。在您的测试中,FF 运行的次数也不受限制。

看看 上面的代码,那里有一个测试梯度方法的正确方案。

 
Andrey Dik #:

Megacity 中的边界取值不正确。正确的 Megacity 应该是这样的,图像是在 MQL5 中构建的(表中的算法就是在 MQL5 中测试的):

此外,二维函数的结果并不是一个指标。此外,您需要计算平均值(即使使用种群模拟,您也需要查看所有种群之间的平均值--单独测试)。在您的测试中,FF 运行的次数也不受限制。

看看 上面的代码,那里有一个测试梯度方法的正确方案。

在文章中,绘制的正是我所优化的 ph-i 图。我不觉得从一种方法换到另一种方法有什么意义。这个看起来更简单。为什么他们说的是 1000 维 f-i,却总是优化三维 f-i?
 
Maxim Dmitrievsky #:
在文章中,绘制的正是我所优化的函数的图形。我看不出从一种东西换到另一种东西有什么意义。这个看起来更简单。为什么说的是 1000 维的 f-iie,而优化的却总是三维的 f-iie?

这个

与此完全不符:


关于 "1000 维 f-i",请参见本讨论的前一篇文章

由于二维函数是反复复制的,您可以绘制二维函数的三维结果(1000 维空间无法可视化),并在相应的三维空间中绘制多维空间中的点。

Обсуждение статьи "Методы оптимизации библиотеки Alglib (Часть II)" - Скиньте код сложной ф-ии на 1000 параметров. Используйте скрипт из этой статьи, чтобы имитировать популяцию. Запустите 50 раз градиентные методы с
Обсуждение статьи "Методы оптимизации библиотеки Alglib (Часть II)" - Скиньте код сложной ф-ии на 1000 параметров. Используйте скрипт из этой статьи, чтобы имитировать популяцию. Запустите 50 раз градиентные методы с
  • 2024.11.01
  • Maxim Dmitrievsky
  • www.mql5.com
Повышение размерности можно достичь путем дублирования одномерных бенчмарков или двумерных полученная сумма делится на количество тестовых функций. таком образом всегда известны мин и макс тестовой функции независимо от размерности
 
Andrey Dik #:

这个

和这个完全不一样


关于 "1000 维 f-i",请参见本讨论的上一篇文章

由于二维函数是反复复制的,您可以绘制二维函数的三维结果(1000 维空间无法可视化),并在相应的三维空间中绘制多维空间中的点。

在这里 查看了测试函数。通过图片,它们不谋而合。

我还不明白多维函数的窍门,我需要弄清楚。

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