Discussão do artigo "Redes neurais de maneira fácil (Parte 13): normalização em lote" - página 2

 
Dmitry Nazarov rede treinada depois de carregar o arquivo de treinamento.

As entradas são unidades por segundo.

Ao ler a rede a partir do arquivo, a função de geração de pesos aleatórios não deve ter nenhum valor. Os pesos são lidos do arquivo. Mas em sua função, a geração não é aleatória e cria os mesmos pesos a cada reinicialização, por isso o resultado converge. Verifique seu código. Parece que, após a leitura, você sobrescreve a rede treinada com pesos aleatórios.

 

Olá , Dmitriy

Por favor, você teria um exemplo de código de um LSTM com a versão do arquivo neuronet.mqh do artigo 13?

Tentei usar o arquivo fractal_lstm.mq5 do artigo 4, mas sem sucesso... ocorre um erro no treinamento...


Parabéns

 
Olá, essa série sobre redes neurais é muito boa. Parabéns!

Para mim, que sou iniciante em NN, foi muito esclarecedor. Quero usar suas propostas para codificar um EA. Ele deve ser um conjunto de construções para que a DNN experimente diferentes funções e topologias e aprenda quais são as melhores.

Então, modifiquei seu último exemplo (MLMH + Convolucional).
Acrescentei muitas funções de ativação diferentes (32 funções - gaussiana, SeLU, SILU, Softsign, Symmetric Sigmoid,...) e suas derivadas,
. Alterei o cálculo de erro/sucesso (Buy, Sell, DontBuySell) porque acho que "Don't trade" não é indefinido. Portanto, se o NN reconhecer que não há compra nem venda e isso estiver correto na realidade, ele deverá ser recompensado no ciclo de feedback.

Talvez alguém já tenha soluções ou possa ajudar com as perguntas a seguir:

Não estou conseguindo criar funções que precisem dos pesos de toda a camada: Softmax, Maxout, PRelu com alfa aprendido.
Também não consigo fazer otimizações diferentes (AdaBound, AMSBound, Momentum).
Estou pensando em um DNN-Builder-EA para testar e encontrar a melhor topologia de rede.

1. como posso encontrar a contagem de entrada/saída de neurônios e pesos por camada?

2. qual topologia você sugere? Tentei muitas variações:
A) Algumas camadas de neurônios com contagem=19000 e contagem decrescente nas próximas camadas *0,3
B) 1 convolucional + 12 camadas MLMH com cada 300 neurônios
C) 29 camadas com cada 300 neurônios
D) 29 camadas com cada 300 neurônios e normalização entre cada camada.
Obtenho previsões de no máximo 57%, mas acho que pode/deve ser melhor.
Deveria haver camadas com contagem crescente de neurônios e depois descendente novamente?

3. Como posso fazer um backtest? Há uma condição para retornar falso quando no modo de teste - tentei observá-la, mas não obtive sucesso.
Há muitas explicações bem detalhadas, mas não entendo uma visão geral.

4. Qual camada depois de qual? Onde devem estar as camadas BatchNorm?

5. Quantos neurônios de saída têm convolucional ou todos os multihead como MLMH quando as camadas=x, step=y, window_out=z? Tenho que calcular a contagem da próxima camada de neurônios. Quero evitar camadas muito grandes ou gargalos.

6. E quanto ao LSTM_OCL? Ele é muito fraco em relação à atenção/MH, MHML?

7. Quero implementar eta para cada camada, mas não tive sucesso (falta de conhecimento sobre classes - sou um bom codificador de terceira geração).

8. O que deve ser modificado para obter uma taxa de erro < 0,1. Tenho uma constante de 0,6+.

9. E quanto aos neurônios de polarização nos layouts de camada existentes?

Já estudei muitos sites durante semanas, mas não encontrei respostas para essas perguntas.
Mas estou ansioso para resolver isso, devido ao feedback positivo de outras pessoas que já obtiveram sucesso.

Talvez esteja chegando a parte 14 com soluções para todas essas questões?

Atenciosamente
e muito obrigado desde já
 

OLÁ. Estou recebendo este erro

FUNÇÃO CANDIDATA INVIÁVEL: NENHUMA CONVERSÃO CONHECIDA DE 'DOUBLE __ATTRIBUTE__((EXT_VECTOR_TYPE92000' PARA 'HALF4' PARA O 1º ARGUMENTO

2022.11.30 08:52:28.185 Fractal_OCL_AttentionMLMH_b (EURJPY,D1) Falha na criação do programa OpenCL. Código de erro=5105

2022.11.30 08:52:28.194 Fractal_OCL_AttentionMLMH_b (EURJPY,D1) Erro da função feedForward: 4401
2022.11.30 08:52:28.199 Fractal_OCL_AttentionMLMH_b (EURJPY,D1) invalid pointer access in 'NeuroNet.mqh' (2271,16)

ao usar o EA desde os exemplos da parte 10 do artigo

Por favor, algum palpite???

Obrigado, senhor

 
MrRogerioNeri de ponteiro inválido em 'NeuroNet.mqh' (2271,16)

ao usar o EA desde o artigo parte 10 exemplos

Por favor, algum palpite???

Obrigado pela atenção

Olá, você pode enviar o registro completo?

 

Olá. Obrigado pela ajuda

Rogerio

Arquivos anexados:
20221201.log  7978 kb
 
MrRogerioNeri #:

Olá. Obrigado pela ajuda

Rogerio

Olá, Rogério.

1. Você não está criando um modelo.

CS      0       08:28:40.162    Fractal_OCL_AttentionMLMH_d (EURUSD,H1) EURUSD_PERIOD_H1_ 20 Fractal_OCL_AttentionMLMH_d.nnw
CS      0       08:28:40.163    Fractal_OCL_AttentionMLMH_d (EURUSD,H1) OnInit - 130 -> Error of read EURUSD_PERIOD_H1_ 20 Fractal_OCL_AttentionMLMH_d.nnw prev Net 5004

2. Sua GPU não é compatível com double. Por favor, carregue a última versão do artigo https://www.mql5.com/ru/articles/11804

CS      0       08:28:40.192    Fractal_OCL_AttentionMLMH_d (EURUSD,H1) OpenCL: GPU device 'Intel HD Graphics 4400' selected
CS      0       08:28:43.149    Fractal_OCL_AttentionMLMH_d (EURUSD,H1) 1:9:26: error: OpenCL extension 'cl_khr_fp64' is unsupported
CS      0       08:28:43.149    Fractal_OCL_AttentionMLMH_d (EURUSD,H1) 1:55:16: error: no matching function for call to 'dot'
CS      0       08:28:43.149    Fractal_OCL_AttentionMLMH_d (EURUSD,H1) c:/j/workspace/llvm/llvm/tools/clang/lib/cclang\<stdin>:2199:61: note: candidate function not viable: no known conversion from 'double4' to 'float' for 1 st argument
Нейросети — это просто (Часть 34): Полностью параметризированная квантильная функция
Нейросети — это просто (Часть 34): Полностью параметризированная квантильная функция
  • www.mql5.com
Продолжаем изучение алгоритмов распределенного Q-обучения. В предыдущих статьях мы рассмотрели алгоритмы распределенного и квантильного Q-обучения. В первом мы учили вероятности заданных диапазонов значений. Во втором учили диапазоны с заданной вероятностью. И в первом, и во втором алгоритме мы использовали априорные знания одного распределения и учили другое. В данной статье мы рассмотрим алгоритм, позволяющей модели учить оба распределения.
 

Oi Dmitriy

Você escreveu: Você não cria um modelo.

Mas como faço para criar um modelo? Eu compilo todas as fontes do programa e executo o EA.

O EA cria um arquivo na pasta 'files' com a extensão nnw. Esse arquivo não é o modelo?

Obrigado pela atenção

 

Olá, professor Dmitriy

Agora nenhum dos .mqh compila

Por exemplo, quando tento compilar o vae.mqh, recebo este erro

'MathRandomNormal' - identificador não declarado VAE.mqh 92 8

Vou tentar começar do início novamente.

Mais uma pergunta: quando você coloca uma nova versão do NeuroNet.mqh, essa versão é totalmente compatível com os outros EA mais antigos?

Obrigado, senhor

rogerio

PS: Mesmo excluindo todos os arquivos e diretórios e começando com uma nova cópia da PARTE 1 e 2, não consigo mais compilar nenhum código.

Por exemplo, quando tento compilar o código em fractal.mq5, obtenho este erro:

cannot convert type'CArrayObj *' to reference of type 'const CArrayObj *' NeuroNet.mqh 437 29

Desculpe, eu realmente queria entender seus artigos e códigos.

PS2: OK, removi a palavra 'const' em 'feedForward', 'calcHiddenGradients' e 'sumDOW' e agora consegui compilar o Fractal.mqh e o Fractal2.mqh