Discussão do artigo "Métodos de otimização da biblioteca Alglib (Parte II)" - página 3

[Excluído]  
Megacidade

[Excluído]  

Não parece haver nada complicado para lbfgs nele.

Ainda não experimentei o adam e o rmsprop, que são considerados mais avançados. Mas, como este faz isso, eles definitivamente podem fazer.

 
Maxim Dmitrievsky #:
Megacidade

Maxim Dmitrievsky #:
Parece não haver nada complicado para o lbfgs.

Você não forneceu nem os códigos-fonte do banco de testes nem o lbfgs, portanto, não há nada sobre o que conversar. Ninguém vai usar o python e seus módulos aqui. Todos os códigos-fonte MQL5 são fornecidos nesse artigo (e agora nos comentários do artigo) para reproduzir os resultados.

[Excluído]  
Andrey Dik #:

Você não forneceu nem os códigos-fonte do banco de testes nem os lbfgs, portanto, não há nada sobre o que conversar. Ninguém vai descobrir o interior do python e seus módulos aqui. Todos os códigos-fonte MQL5 são fornecidos neste artigo (e agora nos comentários do artigo) para reproduzir os resultados.

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

pressione o botão "play" várias vezes

Não sou eu quem está escrevendo os artigos, portanto, não vou quebrar nada de propósito. São usadas bibliotecas reconhecidas e confiáveis, em especial a 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...
[Excluído]  

O Adam em Megacity passou a residir no último andar.

Adicionei o código ao bloco de notas. Adicionarei mais alguns solucionadores de gradiente posteriormente, se desejar.



[Excluído]  
Andrey Dik #:

Aqui está um novo núcleo de classe de função de teste (o artigo o tem no arquivo):

Basta lançar uma matriz multidimensional (quero dizer, em uma dimensão da matriz há muitas células, espaço multidimensional) de qualquer dimensionalidade em args, e o método espalhará os argumentos da matriz para funções bidimensionais. É claro que, se você lançar uma matriz com dimensionalidade ímpar, uma célula será descartada e não participará dos cálculos. Ou seja, essa é uma função de teste multidimensional com um número par de dimensões.

Mais tarde, eu a lançarei com base em funções unidimensionais, será mais prático e será possível criar gráficos com mais clareza.

O código comentado é a capacidade de girar a função em algum ângulo. Isso é um problema para muitos AOs. Ele ainda não é usado em lugar algum.

Não há vontade de pensar nisso por muito tempo. Você precisa de alguma função como a do artigo para reproduzir os resultados.

Não vejo nenhum problema. Apenas a complexidade computacional do problema aumentará.
 

Os limites são tomados incorretamente no Megacity. Um Megacity correto deve ter a seguinte aparência: a imagem foi criada em MQL5 (na qual os algoritmos da tabela foram testados):

Além disso, os resultados em uma função bidimensional não são um indicador. Além disso, é preciso contar as médias (mesmo que você use a simulação de população, é preciso observar o valor médio entre todas as populações - testes separados). O número de execuções de FF também não é limitado em seus testes.

Observe o código acima, pois há um esquema correto de teste de métodos de gradiente.

[Excluído]  
Andrey Dik #:

Os limites são tomados incorretamente no Megacity. Um Megacity correto deve ter a seguinte aparência: a imagem é construída em MQL5 (na qual os algoritmos da tabela são testados):

Além disso, os resultados em uma função bidimensional não são um indicador. Além disso, é necessário contar as médias (mesmo que você use a simulação de população, é necessário observar o valor médio entre todas as populações - testes separados). O número de execuções de FF também não é limitado em seus testes.

Observe o código acima, pois há um esquema correto de teste de métodos de gradiente.

Nos artigos, o gráfico de exatamente o ph-i que otimizei é desenhado. Não vejo sentido em mudar de uma coisa para outra. Este parece ainda mais simples. Por que eles falam de uma f-iie de 1000 dimensões, mas sempre otimizam uma tridimensional?
 
Maxim Dmitrievsky #:
Nos artigos, é desenhado o gráfico exatamente da função que otimizei. Não vejo sentido em mudar de uma coisa para outra. Este parece ainda mais fácil. Por que se fala de uma f-iie de 1000 dimensões, mas é sempre uma tridimensional que é otimizada?

Este aqui:

não corresponde a isso de forma alguma:


Sobre a "f-i de 1000 dimensões", consulte a postagem anterior desta discussão.

Como uma função 2D é repetidamente duplicada, você pode plotar o resultado 3D de uma função 2D (o espaço de 1000 dimensões não pode ser visualizado) e plotar pontos do espaço multidimensional no espaço 3D correspondente.

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

Este aqui:

Não corresponde a este de forma alguma:


Sobre o "f-i de 1000 dimensões", consulte a postagem anterior nesta discussão.

Como uma função 2D é repetidamente duplicada, você pode plotar o resultado 3D de uma função 2D (o espaço de 1000 dimensões não pode ser visualizado) e plotar pontos do espaço multidimensional no espaço 3D correspondente.

Dei uma olhada nas funções de teste aqui. Por imagens, elas coincidem.

Ainda não entendi o truque com as multidimensionais, preciso descobrir isso.

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