O "New Neural" é um projecto de motor de rede neural Open Source para a plataforma MetaTrader 5. - página 15

 
TheXpert:

Eu não acredito :)

E pense nisso, como os neurônios usam memória comum, atribuindo um valor a uma célula, ela (valor) torna-se imediatamente disponível em todos os neurônios conectados, então segue-se que toda a diferença na aprendizagem está na escrita da fórmula ao contrário do ativador, o resto é o mesmo para todos, a diferença é movimento para frente ou para trás. Uma lista bastante escassa de diferenças :o)

A fórmula de ativação e sua derivada é prescrita ao criar um neurônio (ou melhor, ao selecionar um tipo dentre os disponíveis), a direção do caminho de aprendizado também é escolhida ao criar a rede.

 
Avals:

Sim, você poderia fazer isso, mas é exagerado))))

Hum, como é que não é exagerado?

________________

Nikolai, a forma mais simples, óbvia e rápida de representar é através da ligação de vectores e matrizes.

 
TheXpert:

Hum, como é que não é exagerado?

________________

Nikolai, a forma mais simples, óbvia e rápida de representar é através da ligação de vectores e matrizes.

Mas está fortemente ligada à topologia, ou (se você zerar algumas células, o que lhe dá versatilidade) é uma sobrecarga de memória.

Como você pode usar uma matriz para representar uma bacia eco 1000x1000, 95% das quais não existem? A questão é retórica, é claro que criando tal bacia por método de matriz todo neurônio deve ser capaz de se conectar a qualquer neurônio, que é 1000000 conexões potenciais por neurônio, multiplicar por 1000000 neurônios e você tem 10^6 x 10^6 mql de matriz que não vai funcionar.

 
TheXpert:

Hum, como é que isso não passa por uma coisa?

Bem, para que não tenhamos de inventar um algoritmo de treino para uma variante específica de TS com NS. Ou seja, para que isso aconteça automaticamente: existe um Expert Advisor com a NS e, ao executar o treinamento da NS, não nos importamos como ele será implementado, mas não precisaremos coletar valores de insumos em alguma vizinhança por nós mesmos, etc. Pode ser, que no exemplo que consideramos o algoritmo seja o mesmo que você descreveu, e se, por exemplo, o NS é outra parte do sistema, seria diferente. Em geral, quero que faça parte da formalização e seja escondida do usuário. Provavelmente, trata-se do pré-processamento dos dados de saída dos NS ou em outros casos - a entrada, mas pode ser automatizada na maioria dos casos, e não transmitida sobre os ombros delicados do usuário)))) Eu não sei como formalizá-lo :)
 
Avals:

De modo a não inventar um algoritmo de aprendizagem para uma versão particular de TC com NS.

Você não pode fazer assim :) No mínimo, você precisa saber o que tomar, o que ensinar e como avaliar. E estas são as coisas que tens de organizar com as tuas mãos.

Em geral, eu queria que isso fizesse parte da formalização e fosse escondido do usuário. Não sei como formalizá-lo :)

Exactamente. Eu também não sei. Não só isso, há conjuntos que são muito difíceis de combinar. A Neurônica é apenas uma ferramenta. Em mãos habilidosas (por exemplo, Leonid), é até muito poderoso.

Será que ele estaria disposto a dar alguns conselhos?

 
TheXpert:

Você tem que saber ao menos o que tomar, o que ensinar e como avaliar. E estas são as coisas que tens de organizar com as tuas mãos.

Exacto. E eu não sei. Não só isso, há conjuntos que são muito difíceis de combinar. Os neurónios são apenas uma ferramenta. Em mãos capazes (veja o Leonid, por exemplo) muito poderosas.

Pelo menos considere as opções padrão (por exemplo, a discutida na página anterior). Você sugeriu uma solução formal. Porque achas que não há um para o resto de nós?

É possível que todos se reduzam a uns poucos do mesmo tipo.

 
Avals:
Por que você acha que não há filtro para outros?

Sim, há :), mas é tudo uma questão de entradas e saídas :) a rede é secundária. Você pode reconhecer cartas da maneira que quiser, MLP, PNN, SOM, echo grid, mas o princípio será quase idêntico.

Avals:

Provavelmente, tudo se resume a uns poucos do mesmo tipo.

Aqui está um exemplo de como é fácil organizar um filtro de negócios.

E alimentar um simples TS não é uma tarefa para mentes medianas. E o primeiro é quase 100% compatível.

 
TheXpert:

Sim, há :), mas é tudo uma questão de entradas e saídas :) a rede é secundária. Você pode reconhecer as cartas como quiser, MLP, PNN, SOM, echoset, mas o princípio será quase idêntico.

Então sim, o pré-processamento e o pós-processamento de dados NS é a coisa mais delicada e demorada. Se isto for sistematizado e parcialmente automatizado sob variantes típicas de TC, é uma vantagem sobre pacotes de terceiros. Caso contrário, é mais fácil fazer tudo neles (pois são mais especializados para trabalhar com NS de qualquer forma), e os modelos já prontos são transferidos para o MT5
 

Alguns correios sobre a organização da classe utilizada nas EAs:

Propriedades:

1. número mínimo de imagens que a rede é treinada para usar depois dela.

2. Número máximo de imagens. Quando uma nova imagem é adicionada ao conjunto de treino, a antiga é removida, a rede é re-treinada.

Métodos externos:

1. enviar a imagem para ser treinada. Quando usado na EA, é possível dar uma nova imagem à rede de acordo com os sinais indicadores .

2. Pergunte à rede se ela está pronta ou não. Se a rede é treinada para um número suficiente de imagens.

3. método básico. Envie uma imagem para a rede e receba um resultado.


Quando uma nova imagem é enviada para a rede para treinamento, realize seu pré-processamento:

1. Escalda-a.

2. Verifique a correlação, para que não haja duas imagens opostas com a mesma saída, nem duas imagens idênticas com saída diferente.


Tudo isso é rapidamente adicionado ao Expert Advisor; conforme os indicadores sinalizam, a rede recebe imagens, assim que o número suficiente de imagens é acumulado, a rede é treinada e então, quando o sinal para abrir uma posição aparece, pedimos à rede para confirmar ou não. Isto é feito no testador. Se por conta, a rede deve ser treinada após os testes e deve haver um meio de salvar a rede e o carregamento.

As imagens enviadas para a rede são a escolha do utilizador - preço, indicador ou verdadeiro/falso. Os parâmetros da rede (número de camadas, entradas, saídas) são definidos durante a inicialização da rede.

 

O construtor gráfico da rede também pode ser feito em mql5.

Eu acho que pode haver diferentes neurônios em uma camada, não é um problema, como treinar tal rede é outra questão.

Um neurônio em uma camada? Qual é o objectivo? A menos que seja uma camada adicional contornada.

Razão: