Discussão do artigo "Redes neurais de maneira fácil (Parte 36): Modelos relacionais de aprendizado por reforço"

 

Novo artigo Redes neurais de maneira fácil (Parte 36): Modelos relacionais de aprendizado por reforço foi publicado:

Nos modelos de aprendizado por reforço discutidos anteriormente, usamos diferentes variantes de redes convolucionais, que são capazes de identificar diferentes corpos nos dados brutos. A principal vantagem das redes convolucionais é sua capacidade de identificar objetos independentemente de sua localização. No entanto, as redes convolucionais nem sempre são capazes de lidar com as diversas deformações e ruídos que os objetos apresentam. Mas esses problemas podem ser resolvidos pelo modelo relacional.

A principal vantagem dos modelos relacionais é a capacidade de estabelecer relações entre objetos, possibilitando a estruturação de dados brutos. O modelo relacional pode ser mais claramente ilustrado na forma de gráficos. Os objetos e eventos são representados como nós. E as conexões evidenciam as dependências entre os objetos e eventos pertinentes.

Gráfico

O uso de gráficos nos possibilita estabelecer de forma clara a estrutura das dependências entre os objetos. Por exemplo, se desejamos descrever um padrão de ruptura de canal, construiremos um gráfico cujo topo seja a formação do canal. A descrição da formação do canal também pode ser apresentada na forma de um gráfico. Em seguida, criaremos 2 nós de ruptura do canal (limite superior e inferior). Ambos os nós terão as mesmas conexões com o nó de formação do canal anterior, mas não estão conectados entre si. Para prevenir a entrada na posição durante uma falsa ruptura, podemos aguardar um retrocesso até a borda do canal. Estes serão mais dois nós de retrocesso para os limites superior e inferior do canal, que terão conexões para os nós que rompem o limite do canal correspondente. Mas, novamente, eles não terão conexões entre si.

A estrutura descrita se ajusta bem ao gráfico e proporciona uma organização clara dos dados e da sequência de eventos. Analisamos algo semelhante ao elaborar as regras de associação. Mas isso é difícil de harmonizar com as redes convolucionais que usávamos anteriormente.

As redes convolucionais parecem ser utilizadas para identificar objetos nos dados. Podemos treinar o modelo para destacar pontos de reversão de movimento ou tendências menores. Contudo, na prática, o processo de formação do canal pode se estender ao longo do tempo com intensidades variáveis de tendências dentro do canal. E os modelos convolucionais nem sempre lidam bem com essas distorções. Além disso, nem as camadas neurais convolucionais nem as totalmente conectadas conseguem diferenciar dois padrões distintos que consistem nos mesmos objetos numa sequência diferente.

É importante salientar que as redes neurais convolucionais só conseguem detectar objetos. No entanto, não conseguem estabelecer dependências entre eles. Portanto, precisamos encontrar um outro algoritmo capaz de aprender essas dependências. E é aqui que precisamos nos lembrar dos mecanismos de atenção. São eles que permitem focar em objetos individuais, destacando-os do conjunto geral de dados.

Autor: Dmitriy Gizlyk

 
As redes neurais criadas neste artigo (modelo direto, modelo inverso) são compatíveis com o artigo anterior?
 
happy side #:
As redes neurais criadas neste artigo (modelo direto, modelo inverso) são compatíveis com o artigo anterior?

Sim

 
CS      0       15:22:10.739    Core 01 2023.01.01 00:00:00   EURUSD_PERIOD_H1_RRL-learning.nnw
CS      0       15:22:10.739    Core 01 2023.01.01 00:00:00   OpenCL not found. Error code=5103
CS      2       15:22:10.739    Core 01 2023.01.01 00:00:00   invalid pointer access in 'NeuroNet.mqh' (2876,11)
CS      2       15:22:10.739    Core 01 OnInit critical error
CS      2       15:22:10.739    Core 01 tester stopped because OnInit failed
CS      2       15:22:10.740    Core 01 disconnected
CS      0       15:22:10.740    Core 01 connection closed

Continuo recebendo o mesmo erro quando tento treinar. Também tentei criar a rede neural com o NetCreator, mas ocorreu o mesmo erro.

O que pode estar causando o problema?

 
Dmitry começou a examinar o código, o arquivo de biblioteca está faltando
 
happy side #:

Continuo recebendo o mesmo erro quando tento treinar. Também tentei criar a rede neural com o NetCreator, mas ocorreu o mesmo erro.

O que pode estar causando o problema?

ERR_OPENCL_CONTEXT_CREATE

5103

Erro ao criar o contexto do OpenCL

Antes de usar essa biblioteca, você deve instalar o OpenCL em seu PC

 
Dmitry Gizlyk # :

ERR_OPENCL_CONTEXT_CREATE

5103

Erro ao criar o contexto OpenCL

Antes de usar essa biblioteca, é necessário instalar o OpenCL em seu PC

Eu uso uma GPU Nvidia Tesla A100, que já tem o OpenCL ativado, mas ocorre o mesmo erro
 
Kekeletso Mofokeng #:
Eu uso uma GPU Nvidia Tesla A100, que já tem o OpenCL ativado, mas ocorre o mesmo erro

O OpenCL está habilitado nas opções do MetaTrader?


 
Dmitry Gizlyk # :

O OpenCL é habilitado nas opções do MetaTrader?


Sim, ele está habilitado, mas consegui identificar o problema. Meu testador de estratégia usa processador em vez de GPU, mas acho que meu processador não tem OpenCL. Como faço para que o testador use GPU em vez de CPU?

CS        0        20  : 01  : 11.215       Core 01  AMD EPYC 7  V13 64  -Core, 225278  MB 
 

Olá, Dmitry!

Trabalho maravilhoso.

Nesta parte, o treinamento de uma rede neural dura muito mais tempo do que anteriormente. Você tem as mesmas experiências?

Atenciosamente,

Tomasz

 
Olá, Dmitry, você pode me dizer como "deslizar" um arquivo binário (.nnw) para uma rede já treinada no testador de estratégia? Se entendi corretamente, no testador, novamente, é criada uma sandbox virtual e, mesmo que o arquivo seja copiado à força para esse diretório do testador, quando o testador for reiniciado, todos os arquivos dele serão excluídos. Veja este diretório como exemplo. C:\Users\ACER\AppData\Roaming\MetaQuotes\Tester\36A64B8C79A6163D85E6173B54096685\Agent-127.0.0.1-3000\MQL5\Files A rede é naturalmente construída em uma rede nova e não treinada. Ou como posso resolver esse problema de outra forma?