Discusión sobre el artículo "Métodos de optimización de la biblioteca ALGLIB (Parte II)" - página 3

 
Megaciudad

 

No parece haber nada complicado para lbfgs en ella.

No he probado adam y rmsprop todavía, que se consideran más avanzados. Pero ya que este lo hace, que sin duda puede hacerlo.

 
Maxim Dmitrievsky #:
Megaciudad

Maxim Dmitrievsky #:
No parece haber nada complicado para lbfgs en él.

No has proporcionado ni fuentes del banco de pruebas ni lbfgs, así que no hay nada de qué hablar. Nadie va a destripar python y sus modulos aqui. En este artículo (y ahora en los comentarios al artículo) se proporcionan todos los códigos fuente de MQL5 para reproducir los resultados.

 
Andrey Dik #:

No has proporcionado ni fuentes de bancos de pruebas ni lbfgs, así que no hay nada de qué hablar. Nadie va a descubrir aquí las entrañas de python y sus módulos. Todos los códigos fuente MQL5 se proporcionan en este artículo (y ahora en los comentarios al artículo) para reproducir los resultados.

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

pulsa el botón "play" varias veces

No soy yo quien escribe los artículos, así que no voy a crackear nada a propósito. Se utilizan librerías reconocidas y fiables, en particular 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...
 

Adam en Megacity se ha instalado en el último piso.

Añadido el código al bloc de notas. Voy a añadir algunos más solucionadores de gradiente más tarde, si se desea.



 
Andrey Dik #:

aquí es un fresco (el artículo lo tiene en el archivo) núcleo de clase de función de prueba:

Simplemente lanza un array multidimensional (quiero decir - en una dimensión del array hay muchas celdas, espacio multidimensional) de cualquier dimensionalidad en args, el método dispersará los argumentos del array a funciones bidimensionales. Está claro que si lanzas un array con dimensionalidad impar, una celda será descartada y no participará en los cálculos. Es decir, se trata de una función de prueba multidimensional con un número par de dimensiones.

Más adelante la lanzaré en base a unidimensionales, será más práctica y se podrán construir gráficos de forma más clara.

El código comentado es la posibilidad de rotar la función en algún ángulo. Esto es un rompe cabezas para muchos AOs. Todavía no se utiliza en ninguna parte.

No hay ganas de pensar en ello durante mucho tiempo. Se necesita alguna función como la del artículo para reproducir los resultados.

No veo ningún problema en absoluto. Sólo aumentará la complejidad computacional del problema.
 

Los límites se toman incorrectamente en Megacity. Un Megacity correcto debería tener este aspecto, la imagen está construida en MQL5 (en el que se prueban los algoritmos de la tabla):

Además, los resultados en una función de dos dimensiones no son un indicador. Además, es necesario contar los promedios (incluso si se utiliza la simulación de la población, es necesario mirar el valor medio entre todas las poblaciones - pruebas separadas). El número de ejecuciones de FF tampoco está limitado en tus pruebas.

Mira el código de arriba, hay un esquema correcto de pruebas de métodos de gradiente allí.

 
Andrey Dik #:

Los límites se toman incorrectamente en Megacity. Un Megacity correcto debería tener este aspecto, la imagen está construida en MQL5 (en el que se prueban los algoritmos de la tabla):

Además, los resultados en una función de dos dimensiones no son un indicador. Además, es necesario contar los promedios (incluso si se utiliza la simulación de la población, es necesario mirar el valor medio entre todas las poblaciones - pruebas separadas). El número de ejecuciones de FF tampoco está limitado en tus pruebas.

Mira el código de arriba, hay un esquema correcto de pruebas de métodos de gradiente allí.

En los artículos se dibuja la gráfica de exactamente el ph-i que he optimizado. No veo el sentido de cambiar de una cosa a otra. Este parece aún más sencillo. ¿Cómo es que dicen de una f-iie de 1000 dimensiones pero siempre optimizan una tridimensional?
 
Maxim Dmitrievsky #:
En los artículos se dibuja la gráfica de exactamente la función que he optimizado. No veo el sentido de cambiar de una cosa a otra. Esta parece aún más fácil. ¿Cómo es que se habla de una f-iie de 1000 dimensiones, pero siempre es una tridimensional la que se optimiza?

Esta

no corresponde a esto de ninguna manera:


Sobre la "f-i de 1000 dimensiones", véase el post anterior en esta discusión.

Dado que una función 2D se duplica repetidamente, se puede trazar el resultado 3D de una función 2D (el espacio de 1000 dimensiones no se puede visualizar) y trazar puntos del espacio multidimensional en el espacio 3D correspondiente.

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

Este:

No coincide con esto de ninguna manera:


Sobre la "f-i de 1000 dimensiones", ver el post anterior en esta discusión.

Dado que una función 2D se duplica repetidamente, puedes trazar el resultado 3D de una función 2D (el espacio de 1000 dimensiones no se puede visualizar) y trazar puntos del espacio multidimensional en el espacio 3D correspondiente.

He mirado las funciones de prueba aquí. Por imágenes coinciden.

Todavía no he entendido el truco con las multidimensionales, tengo que averiguarlo.

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