Discussão do artigo "Redes Neurais de Terceira Geração: Redes Profundas" - página 14

 
Rashid Umarov:
Insira o código corretamente, por favor. Eu o corrigi
Obrigado. Não percebi de imediato qual era o botão.
 
Vladimir Perervenko:

Boa tarde.

De que roteiro estamos falando?

Você poderia descrever com um pouco mais de detalhes o que há no script?

Pelo que entendi, você conseguiu executar o script com o processo R no testador?

Se sim, isso é interessante.

Por favor, não tenha pressa e descreva com o máximo de detalhes possível. O processo R é executado em um pacote cliente-servidor ou em um único Rterm?

Sim. Ele é executado em um pacote cliente-servidor.

Como posso explicar isso da forma mais simples possível?

Transformei o código da função OnTimer() em uma função comum para OnTick() e OnTimer(). A única coisa que acrescentei foi um interruptor de modo personalizado e um contador de ticks.

Todos os outros procedimentos de inicialização permanecem os mesmos. Um pouco mais tarde, implementarei a função no script anexado ao fórum e o publicarei.

PS: A documentação da MQL4 diz que a função OnTimer() simplesmente não funciona no testador.

 
kimkarus:

Sim, é cliente-servidor.

Como posso explicar isso da forma mais simples possível?

Transformei o código da função OnTimer() em uma função comum para OnTick() e OnTimer(). A única coisa que acrescentei foi um interruptor de modo personalizado e um contador de ticks.

Todos os outros procedimentos de inicialização permanecem os mesmos. Um pouco mais tarde, implementarei a função no script anexado ao fórum e o publicarei.

PS: A documentação da MQL4 diz que a função OnTimer() simplesmente não funciona no testador.

Eu entendo OnTimer().

Você fez algum movimento adicional na conexão cliente-servidor?

Ainda não consegui fazê-la funcionar. E não só eu, a julgar pelas postagens no tópico de língua inglesa.

Boa sorte

 

Conforme prometido, anexei o SAE local à MQL4 para que funcione no testador de estratégias.

i_SAE

e_SAE

Substitua os originais, recompile o arquivo *.ex.

Inicie o testador, selecione e_SAE, defina Enable timer = false e Count ticks = 120 (para mim, foi o ideal). Iniciar.

Adicionamos velocidade, aguardamos a mensagem mágica "OPP = CLOSE...." no lado esquerdo e reduzimos a velocidade. Depois, adicione i_SAE ao gráfico com Send to server = true. Adicione um pouco mais de velocidade. Esperamos que os resultados sejam finalizados.

Meu R era a versão 3.2.2. Não se esqueça de comparar sua versão em ambos os arquivos!

Boa sorte com seus experimentos!

e_SAE

 
Olá, você encontrou uma maneira de corrigir o problema com o soquete do servidor?
 

Olá, anexo ao artigo, um especialista atualizado.

Em anexo ao artigo, um especialista atualizado .

Saia daí.

Saia daí.

Vladimir

 

Boa tarde.

Essa é boa. Muito obrigado.

Agora vamos verificar como isso funciona no testador e, em exemplos futuros com o R, incluirei esse recurso.

Em anexo ao novo artigo do DNRBM, há uma versão reformulada desse DNSAE EA com autoaprendizagem, mas sem um servidor.

Por favor, teste-o.

Boa sorte, obrigado.

 
Olá, vi que você usou 11 indicadores de oscilador como entrada. Tenho alguns indicadores no Mt4 que não são de oscilador. Como posso adicionar ou substituir esses indicadores, como no seu artigo?

Stacked RBM (DN_SRBM) https://www.mql5.com/pt/articles/1628

Deep neural network with Stacked RBM. Self-training, self-control
Deep neural network with Stacked RBM. Self-training, self-control
  • 2016.04.26
  • Vladimir Perervenko
  • www.mql5.com
This article is a continuation of previous articles on deep neural network and predictor selection. Here we will cover features of a neural network initiated by Stacked RBM, and its implementation in the "darch" package.
 
Fascinante.

É interessante observar que, se um ser humano estiver imerso em uma tarefa, ele melhorará
enquanto que, se uma máquina fizer o mesmo, ela poderá ficar em um ótimo local.

Talvez a imersão algorítmica possa evoluir de um paradigma de "Estudo" para um paradigma de "Execução".

Ótimo artigo.
 
Vladimir Perervenko:


Novamente, temos uma fase lucrativa de cerca de 5 semanas até que o modelo se deteriore.

Isso é normal. O modelo pode e deve ser reaprendido periodicamente.

Acredito que a divisão em dados de teste e de treinamento é desnecessária: podemos usar todos os dados para treinamento.

Pode. É importante lembrar alguns pontos importantes:
1. Os conjuntos de treinamento e teste não devem ser cruzados.
2. O conjunto de treinamento deve ser misto

3. Se a proporção de classes estiver desequilibrada , faça o ajuste.

Fico feliz que haja colegas usando o R.

Cordiais cumprimentos

Vladimir

Hi,

Por favor, ajude-me a esclarecer alguns de meus preconceitos negativos sobre redes neurais (NN).

  1. É correto dizer que, primeiro, você deve otimizar os indicadores a serem inseridos na NN?
  2. Em seguida, você otimiza os parâmetros da NN?
  3. Ou você otimiza os parâmetros da NN e os indicadores ao mesmo tempo?
  4. Não é verdade que quanto mais variáveis você tiver para otimizar, maior será o risco de adaptação excessiva?
  5. Se os conjuntos de dados para 1. e 2. forem os mesmos, isso não me levaria a um tipo de adaptação excessiva ao conjunto de dados?
  6. Não é exatamente isso que é indicado por"Novamente, temos uma fase lucrativa de cerca de 5 semanas até que o modelo se deteriore."
  7. a) Vamos supor que temos um conjunto de indicadores otimizados pelo testador e agora
    b) executamos uma segunda otimização pelo testador apenas para verificar quais dos indicadores otimizados precisamos(*)
    c) para que tenhamos um conjunto menor de nossos indicadores otimizados
    d) para que preciso do NN?
  8. Você sabe uma estimativa do tamanho do conjunto de dados necessário para uma NN devido ao número de entradas, camadas e perceptrons?


(*) Infelizmente, se você executar o otimizador do mt4 no modo genético e quiser tentar ignorar determinados conjuntos de parâmetros (por exemplo, não testar se o "indicador-A" está "ativado") retornando de OnInit() com"INIT_PARAMETERS_INCORRECT", o algoritmo genético ainda conta isso como uma passagem válida e isso reduz o número de passagens realmente executadas antes que esse algoritmo pare devido ao número de passagens, que é um dos critérios de encerramento.