Discussão do artigo "Redes neurais de maneira fácil (Parte 88): Codificador denso de séries temporais (TiDE)"
Olá, Dmitriy,
Usar o MLP em vez de outras redes mais complexas é bastante interessante, especialmente porque os resultados são melhores.
Infelizmente, encontrei vários erros ao testar esse algoritmo. Aqui estão algumas das principais linhas do registro:
2024.11.15 00:15:51.269 Core 01 Iterations=100000
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 TiDEEnc.nnw
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 Criar novo modelo
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 OpenCL: Dispositivo de GPU 'GeForce GTX 1060' selecionado
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 Erro de execução do kernel bool CNeuronBaseOCL::SumAndNormilize(CBufferFloat*,CBufferFloat*,CBufferFloat*,CBufferFloat*,int,bool,int,int,int,float) MatrixSum: erro desconhecido de OpenCL 65536
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 Train -> 164
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 Trem -> 179 -> Codificador 1543.0718994
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00:00 Função ExpertRemove() chamada
Você tem alguma ideia do que poderia ser o motivo?
Antes, o OpenCL funcionava muito bem.
Chris.
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 Train -> 164
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00 Train -> 179 -> Encoder 1543.0718994
2024.11.15 00:15:51.269 Core 01 2024.01.01 00:00:00:00 Função ExpertRemove() chamada
Você tem alguma ideia do que poderia ser o motivo?
Antes, o OpenCL funcionava muito bem.
Chris.
Oi, Chris.
Você fez algumas alterações na arquitetura do modelo ou usou modelos padrão do artigo?
Oi, Chris.
Você fez algumas alterações na arquitetura do modelo ou usou modelos padrão do artigo?
Olá. Não foram feitas alterações. Simplesmente copiei a pasta "Experts" por completo e executei os scripts como estavam, após a compilação, nesta ordem: "Research", "StudyEncoder", "Study" e "Test". Os erros apareceram no estágio "Test". A única diferença foi o instrumento, ou seja, a mudança de EURUSD para EURJPY.
Chris
Dmitriy, tenho uma correção importante. O erro apareceu depois de iniciar o StudyEncoder. Aqui está outro exemplo:
2024.11.18 03:23:51.770 Core 01 Iterations=100000
2024.11.18 03:23:51.770 Core 01 2023.11.01 00:00:00 TiDEEnc.nnw
2024.11.18 03:23:51.770 Core 01 2023.11.01 00:00:00:00 Criar novo modelo
2024.11.18 03:23:51.770 Core 01 opencl.dll successfully loaded
2024.11.18 03:23:51.770 Core 01 device #0: GPU 'GeForce GTX 1060' com OpenCL 1.2 (10 unidades, 1771 MHz, 6144 Mb, versão 457.20, classificação 4444)
2024.11.18 03:23:51.770 Core 01 2023.11.01 00:00:00 OpenCL: dispositivo de GPU 'GeForce GTX 1060' selecionado
2024.11.18 03:23:51.770 Core 01 2023.11.01 00:00:00 Erro de execução do kernel bool CNeuronBaseOCL::SumAndNormilize(CBufferFloat*,CBufferFloat*,CBufferFloat*,CBufferFloat*,int,bool,int,int,int,float) MatrixSum: erro desconhecido de OpenCL 65536
2024.11.18 03:23:51.770 Core 01 2023.11.01 00:00:00 Train -> 164
2024.11.18 03:23:51.770 Core 01 2023.11.01 00:00:00 Train -> 179 -> Encoder 1815.1101074
2024.11.18 03:23:51.770 Core 01 2023.11.01 00:00:00 ExpertRemove() function called
Chris
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Redes neurais de maneira fácil (Parte 88): Codificador denso de séries temporais (TiDE) foi publicado:
O desejo de obter previsões mais precisas leva os pesquisadores a complicar os modelos de previsão. Isso, por sua vez, aumenta os custos de treinamento e manutenção do modelo. Mas será que isso sempre é justificado? Neste artigo, proponho que você conheça um algoritmo que utiliza a simplicidade e a velocidade dos modelos lineares, e demonstra resultados no nível dos melhores com uma arquitetura mais complexa.
Como em vários artigos anteriores, o modelo de Codificação do estado do ambiente não depende do saldo da conta nem das posições abertas. Portanto, podemos treinar o modelo mesmo em um conjunto de dados de treinamento com uma única passagem de interação com o ambiente, até atingir a precisão desejada na previsão dos estados futuros. Naturalmente, a "precisão desejada da previsão" não pode exceder as capacidades do próprio modelo. Você deve lembrar que "não se pode pular mais alto do que a própria cabeça".
Após o treinamento do modelo de previsão dos estados do ambiente, passamos para a segunda etapa — o treinamento da política de comportamento do Ator. Nesta fase, treinamos iterativamente os modelos do Ator e do Crítico, com a atualização periódica do buffer de reprodução de experiência.
Lembro que, por atualização do buffer de reprodução de experiência, nos referimos ao descarte adicional da experiência de interação com o ambiente, levando em consideração a política de comportamento atualizada do Ator. Afinal, o ambiente financeiro que estamos estudando é bastante multifacetado. E não podemos coletar completamente todas as suas manifestações no buffer de reprodução de experiência. Fazemos apenas um pequeno corte em uma pequena vizinhança das ações da política atual do Ator. Analisando esse corte, damos um pequeno passo no caminho da otimização da política de comportamento do nosso Ator. E, ao nos aproximarmos dos limites desse corte, precisamos coletar dados adicionais, expandindo a área visível nas proximidades da política atualizada do Ator.
Como resultado dessas iterações, consegui treinar uma política de Ator capaz de gerar tanto na amostra de treinamento quanto na amostra de teste.
No gráfico acima, vemos uma operação com prejuízo no início, que é seguida por uma tendência claramente lucrativa. Sim, a proporção de operações lucrativas é inferior a 40%. Praticamente, para cada operação lucrativa, há duas operações com prejuízo. No entanto, observamos que as operações com prejuízo são significativamente menores que as operações lucrativas. A operação lucrativa média é quase duas vezes maior que a operação com prejuízo média. Tudo isso permite que o modelo obtenha lucro no período de teste. Ao final do teste, o fator de lucro foi de 1,23.
Autor: Dmitriy Gizlyk