Em geral, deve-se entender que o AG não encontra uma solução exata, mas uma solução robusta. Ou seja, uma solução que seja bem-sucedida em comparação com o campo de soluções possíveis.
As funções de teste são "derrotadas". Elas devem ser derrotadas.
As funções de teste são "derrotadas". Elas devem ser derrotadas.
Mas você está dizendo todas as coisas certas.
Sim, sim, eu não elaborei, e é por isso que elas são funções de teste, o algoritmo deve aceitá-las, caso contrário, esse algoritmo não pode ser considerado bem-sucedido.
É difícil imaginar o que o algoritmo encontrará no campo desconhecido se ele nem mesmo passar no teste.
Gostaria de saber como fazer o parafuso UGA corretamente, se precisarmos otimizar diferentes variáveis com o mesmo valor da função de adequação para minimizar o erro de aproximação? Problema clássico. Uma rede neural de duas camadas de cinco passagens com 4 neurônios, por exemplo, requer uma pesquisa de 22 coeficientes juntamente com a polarização no intervalo [-1...1] com uma precisão de 0,0001 e, simultaneamente, na mesma função de destino, a seleção de parâmetros de indicadores de entrada 5 peças*2parâmetros= 10 variáveis no intervalo 5...50. Ou separadamente, mas com um passo de 0,01.
É claro que você pode codificar os valores dos indicadores no intervalo de pesos. Mas isso é um pouco diferente.
E mais uma pergunta. É possível passar para o UGA as condições de pular genes? Ou seja, por exemplo, os genes responsáveis pelo indicador devem corresponder à condição G23< G24 G25<G26 e assim por diante.
Gostaria de saber como parafusar o UGA corretamente, se precisarmos otimizar diferentes variáveis com o mesmo valor da função de adequação para minimizar o erro de aproximação? Problema clássico. Uma rede neural de duas camadas de cinco passagens com 4 neurônios, por exemplo, requer uma pesquisa de 22 coeficientes juntamente com a polarização no intervalo [-1...1] com uma precisão de 0,0001 e, simultaneamente, na mesma função de destino, a seleção de parâmetros de indicadores de entrada 5 peças*2parâmetros= 10 variáveis no intervalo 5...50. Ou separadamente, mas com um passo de 0,01.
É claro que você pode codificar os valores dos indicadores no intervalo de pesos. Mas isso é um pouco diferente.
E mais uma pergunta. É possível passar para o UGA as condições de pular genes? Ou seja, por exemplo, os genes responsáveis pelo indicador devem corresponder à condição G23< G24 G25<G26 e assim por diante.
É isso, é isso mesmo,
há um intervalo no qual a maioria dos parâmetros funciona, o restante é simplesmente ajustado por deslocamento e escala.
Você entende que o código no artigo não é um desenvolvimento comercial polido para cada espirro do consumidor.
Há um desejo de definir intervalos para cada parâmetro, ninguém está segurando suas mãos, mas não se esqueça de que, com o número de parâmetros contado em milhares, definir intervalos manualmente se tornará muito problemático.
ter um intervalo de genes [-1;1] --> (int)NormaliseDouble( ((gene+1)/2)*45+5 ,0) --> [5;50]
Embora eu concorde que haverá muitos genes diferentes dando o mesmo resultado, aqui você pode criar um definidor de precisão para combinar genes, por exemplo, de 0 a 1000º gene com precisão de 3 dígitos, de 1000 a 1010 com precisão de 0 dígitos.
E mais uma pergunta. É possível passar as condições de pulo de genes para o UGA? Ou seja, por exemplo, os genes responsáveis pelo indicador devem atender à condição G23< G24 G25<G26 e assim por diante.
Podemos fazer isso da seguinte maneira: Parâmetro1=G23 Parâmetro2=G23+G24.
her.human: Você pode fazer isso da seguinte maneira: Parâmetro1=G23 Parâmetro2=G23+G24.
Ao converter o intervalo, é melhor fazer uma conversão com uma verificação lógica, que incluirá a quebra.
Caso contrário, não haverá conexão entre uma parte do intervalo quebrado e outra. Aqui é necessário entender que os genes são emprestados de cromossomos diferentes apenas de acordo com isso, o segundo gene pode ser emprestado apenas para a produção do segundo gene do novo cromossomo.
Se um parâmetro for representado por dois genes, não haverá conexão entre eles.
É melhor fazer uma transformação com uma verificação lógica, que incluirá a quebra.
Caso contrário, não haverá conexão entre uma parte do intervalo quebrado e outra. Deve-se entender que os genes são emprestados de cromossomos diferentes apenas de acordo com isso, o segundo gene pode ser emprestado apenas para a produção do segundo gene do novo cromossomo.
Se um parâmetro for representado por dois genes, não haverá conexão entre eles.
Talvez seja melhor assim.
Sugeri uma variante simples. O AG pode lidar com ela sem problemas.
Em geral, os genes nem sempre são emprestados, novos genes podem ser gerados.
Obrigado por seus comentários. Certamente é mais fácil codificar. Estou tentando replicar o Prediction Wizard do Neuroshell no mql. Lá, por 2-3 segundos, em um histórico de 200-2000 barras em um ciclo de 20 índices com 2-4 parâmetros, cada um no intervalo de 5...50 é formado por 2-3 segundos em um histórico de 200-2000 barras dos 20 melhores indicadores selecionados (por exemplo, 5 pcs). E tudo isso está escrito em VBbasic. Deve ser um algoritmo legal. O UGA funcionará muito bem.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
....
Em geral, deve-se entender que o AG não encontra uma solução exata, mas uma solução robusta. Ou seja, uma solução que seja bem-sucedida em comparação com o campo de soluções possíveis.
As funções de teste são "derrotadas". Elas devem ser derrotadas.
E assim, você diz tudo corretamente.
As funções de teste são "derrotadas". Elas devem ser derrotadas.
Mas você está dizendo todas as coisas certas.
Sim, sim, eu não elaborei, e é por isso que elas são funções de teste, o algoritmo deve aceitá-las, caso contrário, esse algoritmo não pode ser considerado bem-sucedido.
É difícil imaginar o que o algoritmo encontrará no campo desconhecido se ele nem mesmo passar no teste.
Obrigado a todos, está funcionando.
Eu tinha que ser tão estúpido para misturar menos e multiplicar.
Obrigado a todos, está funcionando.
Gostaria de saber como fazer o parafuso UGA corretamente, se precisarmos otimizar diferentes variáveis com o mesmo valor da função de adequação para minimizar o erro de aproximação? Problema clássico. Uma rede neural de duas camadas de cinco passagens com 4 neurônios, por exemplo, requer uma pesquisa de 22 coeficientes juntamente com a polarização no intervalo [-1...1] com uma precisão de 0,0001 e, simultaneamente, na mesma função de destino, a seleção de parâmetros de indicadores de entrada 5 peças*2parâmetros= 10 variáveis no intervalo 5...50. Ou separadamente, mas com um passo de 0,01.
É claro que você pode codificar os valores dos indicadores no intervalo de pesos. Mas isso é um pouco diferente.
E mais uma pergunta. É possível passar para o UGA as condições de pular genes? Ou seja, por exemplo, os genes responsáveis pelo indicador devem corresponder à condição G23< G24 G25<G26 e assim por diante.
Gostaria de saber como parafusar o UGA corretamente, se precisarmos otimizar diferentes variáveis com o mesmo valor da função de adequação para minimizar o erro de aproximação? Problema clássico. Uma rede neural de duas camadas de cinco passagens com 4 neurônios, por exemplo, requer uma pesquisa de 22 coeficientes juntamente com a polarização no intervalo [-1...1] com uma precisão de 0,0001 e, simultaneamente, na mesma função de destino, a seleção de parâmetros de indicadores de entrada 5 peças*2parâmetros= 10 variáveis no intervalo 5...50. Ou separadamente, mas com um passo de 0,01.
É claro que você pode codificar os valores dos indicadores no intervalo de pesos. Mas isso é um pouco diferente.
E mais uma pergunta. É possível passar para o UGA as condições de pular genes? Ou seja, por exemplo, os genes responsáveis pelo indicador devem corresponder à condição G23< G24 G25<G26 e assim por diante.
É isso, é isso mesmo,
há um intervalo no qual a maioria dos parâmetros funciona, o restante é simplesmente ajustado por deslocamento e escala.
Você entende que o código no artigo não é um desenvolvimento comercial polido para cada espirro do consumidor.
Há um desejo de definir intervalos para cada parâmetro, ninguém está segurando suas mãos, mas não se esqueça de que, com o número de parâmetros contado em milhares, definir intervalos manualmente se tornará muito problemático.
ter um intervalo de genes [-1;1] --> (int)NormaliseDouble( ((gene+1)/2)*45+5 ,0) --> [5;50]
Embora eu concorde que haverá muitos genes diferentes dando o mesmo resultado, aqui você pode criar um definidor de precisão para combinar genes, por exemplo, de 0 a 1000º gene com precisão de 3 dígitos, de 1000 a 1010 com precisão de 0 dígitos.
E mais uma pergunta. É possível passar as condições de pulo de genes para o UGA? Ou seja, por exemplo, os genes responsáveis pelo indicador devem atender à condição G23< G24 G25<G26 e assim por diante.
Você pode fazer isso da seguinte maneira: Parâmetro1=G23 Parâmetro2=G23+G24.
Ao converter o intervalo, é melhor fazer uma conversão com uma verificação lógica, que incluirá a quebra.
Caso contrário, não haverá conexão entre uma parte do intervalo quebrado e outra. Aqui é necessário entender que os genes são emprestados de cromossomos diferentes apenas de acordo com isso, o segundo gene pode ser emprestado apenas para a produção do segundo gene do novo cromossomo.
Se um parâmetro for representado por dois genes, não haverá conexão entre eles.
É melhor fazer uma transformação com uma verificação lógica, que incluirá a quebra.
Caso contrário, não haverá conexão entre uma parte do intervalo quebrado e outra. Deve-se entender que os genes são emprestados de cromossomos diferentes apenas de acordo com isso, o segundo gene pode ser emprestado apenas para a produção do segundo gene do novo cromossomo.
Se um parâmetro for representado por dois genes, não haverá conexão entre eles.
Talvez seja melhor assim.
Sugeri uma variante simples. O AG pode lidar com ela sem problemas.
Em geral, os genes nem sempre são emprestados, novos genes podem ser gerados.