Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Há situações em que uma pesquisa de força bruta completa não encontrará um ótimo porque os nós da grade de força bruta não caem sobre ele.
Maxim Dmitrievsky #:
1. Какой-нибудь конкретный критерий оценки кач-ва оптимизации есть?)
2. se o algoritmo precisar de mais iterações, isso é ruim?
1) O limite de 10.000 acessos não é tirado "do teto". O otimizador do MetaTrader 5 usa esse número como o ideal do ponto de vista prático. Esse número é usado como um limite de referência de praticidade. Você pode fazer mais chamadas, mas por que desperdiçar tempo e recursos se você pode usar um algoritmo mais poderoso e obter os mesmos resultados mais rapidamente. Esse número é um limite e é usado na comparação de diferentes algoritmos.
Isso descreve as qualidades dos algoritmos que devem ser consideradas:
Precisão da convergência
Repetibilidade dos resultados (robustez)
Escalabilidade (capacidade de continuar trabalhando com eficiência à medida que a dimensionalidade do problema aumenta).
2. Se a geração de pontos aleatórios for usada, seria ruim se fosse necessário um grande número de chamadas para o FF?
3) Se o número de acessos ao FF em uma pesquisa completa estiver dentro de limites razoáveis, ele deverá ser usado. Por que precisamos do AO se apenas 200 acessos são necessários, por exemplo?
Há situações em que uma pesquisa de força bruta completa não encontrará um ótimo porque os nós da grade de força bruta não caem sobre ele.
Exatamente isso. E a redução da grade levará a um aumento gradual das chamadas para o FF. É aí que começa a área de aplicabilidade prática da AO sob restrições de tempo e recursos na vida real.
1. Ainda não é um fato que os otimizadores da alglib sejam usados corretamente.
1. Você pode questionar qualquer coisa, mas é sempre muito mais construtivo falar a partir da posição de códigos-fonte completos e testes corretos e reproduzíveis.
2) É possível obter um resultado ideal em uma megacidade bidimensional se você pedir a 9 bilhões de pessoas que enfiem os dedos aleatoriamente em uma folha de papel em branco, atrás da qual a superfície da função está oculta (uma delas certamente acabará muito próxima do global e dirá que foi ela quem resolveu o problema com sucesso). Mas precisamos encontrar a solução ideal não em 9 bilhões de tentativas por meio de tentativas aleatórias, mas em 10.000 usando uma estratégia.
Quanto mais alto for o resultado médio de uma série de testes independentes (estabilidade, repetibilidade dos resultados), mais alto será o método testado em comparação com o método de busca aleatória para um tipo específico de problema (para alguns problemas, alguns métodos não são muito diferentes do método de busca aleatória e, para outros, são muito eficazes).
Esse é o objetivo do teste e da comparação de diferentes algoritmos, para os quais não apenas uma função de teste, mas três diferentes com propriedades diferentes são tomadas como benchmarks, para que se possa ver claramente a aplicabilidade de diferentes algoritmos em diferentes tarefas, suas limitações e capacidades em diferentes tarefas. Isso permite que você aborde a solução de problemas de otimização de forma significativa.
No futuro, prefiro responder a perguntas específicas sobre o conteúdo do artigo e sobre os códigos.
Pegamos os métodos de otimização local, aplicamos ao problema global e os comparamos com os métodos de otimização global. É sobre isso que estou falando.
Estou falando sobre como podemos adaptar esses métodos para a otimização global. A opção mais simples é aumentar o número de inicializações.
Se eu entendi corretamente, o Adam etc. é aperfeiçoado para velocidade, não para qualidade.
Seria interessante ver a classificação quando limitada pelo tempo em vez do número de iterações.
Se eu entendi corretamente, Adam etc. está focado na velocidade, não na qualidade.
Seria interessante ver a classificação quando limitada pelo tempo em vez do número de iterações.
A família de algoritmos ADAM (AdamW, RAdam, AdaBelief e outros), bem como SGD, SGRAD e outros (há muitos deles) foram desenvolvidos como um substituto moderno para os métodos clássicos de gradiente e foram projetados para resolver problemas de grandes dimensões sem o conhecimento da fórmula analítica, geralmente para treinar redes neurais (todos eles têm suas vantagens e desvantagens). Há também métodos Lion interessantes do Google (2023) e alguns outros muito recentes. É muito interessante estudar esse tópico, especialmente no contexto do treinamento de redes neurais, em que será útil e informativo criar uma superfície de destino em algum exemplo simples (ou talvez complexo) e realizar experimentos (com análise de suas entranhas, com estudo profundo das propriedades dos métodos, avaliação cuidadosa de seus recursos - tudo como quisermos).
Com restrições de tempo, não há nada a que se prender. Um usuário fará 1 milhão de acessos ao alvo em 1 minuto e outro fará 1 bilhão. Como podemos comparar os algoritmos nessas condições? É por isso que usamos um limite para o número de acessos e comparamos a eficiência dentro desse limite.
Com restrições de tempo, não há nada a que se vincular. Um usuário fará 1 milhão de acessos ao alvo em 1 minuto, enquanto outro fará 1 bilhão. Como podemos comparar os algoritmos entre eles nessas condições? É por isso que usamos um limite para o número de acessos e comparamos a eficiência dentro desse limite.
Vinculação ao PC do autor. Tome como base o tempo de 10.000 iterações de ANS.
Meus resultados no código do fxsaber:
Tamanho do código PS como uma métrica adicional (quão complexa é a implementação do algoritmo)