Discusión sobre el artículo "Métodos de optimización de la biblioteca ALGLIB (Parte II)" - página 5
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Hay situaciones en las que una búsqueda de fuerza bruta completa no encontrará un óptimo porque los nodos de la cuadrícula de fuerza bruta no caen en él.
Maxim Dmitrievsky #:
1. Какой-нибудь конкретный критерий оценки кач-ва оптимизации есть?)
2. si el algoritmo necesita más iteraciones, ¿es malo?
1. El límite de 10 000 accesos no se toma "del techo". El optimizador de MetaTrader 5 utiliza este número como el óptimo desde el punto de vista práctico. Este número se utiliza como un límite de referencia de la practicidad. Usted puede hacer más llamadas, pero ¿por qué perder tiempo y recursos cuando se puede utilizar un algoritmo más potente y lograr los mismos resultados más rápido. Este número es un umbral y se utiliza al comparar distintos algoritmos.
Describe las cualidades de los algoritmos que deben tenerse en cuenta:
Precisión de convergencia
Repetibilidad de los resultados (robustez)
Escalabilidad (capacidad de seguir trabajando eficientemente a medida que aumenta la dimensionalidad del problema).
2. Si se utiliza la generación aleatoria de puntos, ¿sería malo que se requiriera un gran número de llamadas al FF?
3. Si el número de accesos al FF en una búsqueda completa está dentro de unos límites razonables, entonces debería utilizarse. ¿Por qué necesitamos AO si sólo se requieren 200 accesos, por ejemplo?
Hay situaciones en las que una búsqueda de fuerza bruta completa no encontrará un óptimo porque los nodos de la cuadrícula de fuerza bruta no caen en él.
Exacto. Y la reducción de la rejilla conducirá a un aumento gradual de las llamadas a FF. Aquí es donde comienza el área de la aplicabilidad práctica de AO bajo limitaciones de tiempo y recursos en la vida real.
1. Todavía no es un hecho que los optimizadores de alglib se utilicen correctamente.
1. Puedes cuestionar cualquier cosa, pero siempre es mucho más constructivo hablar desde la posición de códigos fuente completos y pruebas correctas reproducibles.
2. Se puede obtener un resultado óptimo en una Megaciudad bidimensional si se pide a 9.000 millones de personas que introduzcan sus dedos al azar en una hoja de papel en blanco, tras la cual se oculta la superficie de la función (una de ellas acabará sin duda muy cerca de la global y dirá que es la que ha resuelto con éxito el problema). Pero tenemos que encontrar la solución óptima no en 9.000 millones de intentos pinchando al azar, sino en 10.000 utilizando una estrategia.
Cuanto más alto sea el resultado medio de una serie de pruebas independientes (estabilidad, repetibilidad de los resultados), más alto será el método probado en comparación con el aporreo aleatorio para un tipo concreto de problema (para algunos problemas algunos métodos no difieren mucho del aporreo aleatorio, y para otros son muy eficaces).
Este es el sentido de probar y comparar diferentes algoritmos, para lo cual no se toma como referencia una sola función de prueba, sino tres diferentes con diferentes propiedades, de forma que se pueda ver claramente la aplicabilidad de diferentes algoritmos en diferentes tareas, sus limitaciones y capacidades en diferentes tareas. Esto permite abordar la solución de problemas de optimización de una manera significativa.
En el futuro, prefiero responder a preguntas concretas sobre el contenido del artículo y sobre los códigos.
Tomamos los métodos de optimización local, los aplicamos al problema global y los comparamos con los métodos de optimización global. A eso me refiero.
Estoy hablando de cómo podemos adaptar estos métodos para la optimización global. La opción más sencilla es aumentar el número de inicializaciones.
Si no he entendido mal, Adam, etc. se perfeccionan en función de la velocidad, no de la calidad.
Sería interesante ver la puntuación cuando se limita por el tiempo en lugar de por el número de iteraciones.
Si no he entendido mal, Adam y otros se centran en la velocidad, no en la calidad.
Sería interesante ver la clasificación cuando se limita por el tiempo en lugar de por el número de iteraciones.
La familia de algoritmos ADAM (AdamW, RAdam, AdaBelief y otros) así como SGD, SGRAD y otros (hay muchos de ellos) se desarrollan como un reemplazo moderno de los métodos de gradiente clásicos y están diseñados para resolver problemas de grandes dimensiones sin conocimiento de la fórmula analítica, a menudo para el entrenamiento de redes neuronales (todos ellos tienen sus ventajas y desventajas). También son interesantes los métodos de León de Google (2023) y algunos otros muy recientes. Este tema es muy interesante para estudiar, especialmente en el contexto de la formación de redes neuronales, donde será útil e informativo para construir una superficie de destino en algún ejemplo simple (o tal vez complejo) y llevar a cabo experimentos (con el análisis de sus entrañas, con un estudio profundo de las propiedades de los métodos, la evaluación cuidadosa de sus capacidades - todo lo que nos gusta).
Con las limitaciones de tiempo, no hay nada a lo que estar atado. Un usuario hará 1 millón de accesos al objetivo en 1 minuto, y otro hará 1.000 millones. ¿Cómo podemos comparar algos en tales condiciones? Por eso utilizamos un límite en el número de accesos y comparamos la eficacia dentro de este límite.
Con limitaciones de tiempo, no hay nada a lo que vincularse. Un usuario hará 1 millón de accesos al objetivo en 1 minuto, mientras que otro hará 1.000 millones. ¿Cómo podemos comparar algos entre ellos en esas condiciones? Por eso utilizamos un límite en el número de accesos y comparamos la eficacia dentro de ese límite.
Vinculación al PC del autor. Tome el tiempo de 10000 iteraciones de ANS como base.
Mis resultados en el código de fxsaber:
Tamaño del código PS como métrica adicional (grado de complejidad de la implementación del algoritmo)