O que alimentar a entrada da rede neural? Suas ideias... - página 81

 
Ivan Butko #:

O problema dos números.

...

...


... E o peso, que tentará enfraquecer (anular) o valor de entrada 0,9, também enfraquecerá ainda(!) mais fortemente(!) os outros valores na faixa inferior desse número de entrada (que mais tarde podem ser mais importantes para o desempenho do sistema), devido à sua natureza estática, pois os pesos não mudam em um NS treinado.
...
...


Evgeny Shevtsov#:

Amostras, cada um dos n números, fornecidos às entradas X[0 ... n-1] durante o treinamento, deve ser pré-treinado (normalizado) de forma que eles sejam IGUAIS entre si, mantendo-se as outras coisas iguais.

...

Novamente :

Acredito que o treinamento não deva ser feito com todas as amostras k disponíveis, mas somente com aquelas que tenham uma pontuação "decente" (eu uso essa palavra) d[k].

Entretanto, para criar uma amostra de amostras "dignas", ainda precisamos ter todas as amostras k com suas pontuações d[k].

...


Uma das opções (apenas um exemplo) de como formalizar as informações em um gráfico em algum número sem prazo (dotando-as de algum fator de força objetivo em relação a outras informações gráficas) são os níveis de suporte e resistência. Vamos supor que eles estejam formalizados. E o preço salta ou rompe esses níveis.

Nesse caso, os números que indicam cada preço sucessivo no gráfico serão a mesma janela MinMax, mas o valor máximo será esse mesmo nível C/R. Se o preço estiver próximo a ele, então 0,9 (-0,9) e mais próximo de 1.




Se o preço estiver longe dele, estará mais próximo de 0. Se um preço estiver em um lado do nível e o outro estiver do outro lado, mudaremos a polaridade de cada lado: de um lado, mais próximo do nível - esses são máximos negativos, e do outro lado - máximos numéricos positivos. Isso é apenas um esboço, um exemplo do que os números devem ser. Não apenas uma posição relativa a outros números.


Não apenas uma posição relativa a outros números na janela, mas um reflexo de algum contexto de mercado. Outra opção: expressamos padrões por meio de números. E aqui temos um padrão de vela A de uma vela, após o qual o preço sobe 55 vezes de 100 no histórico. O próximo padrão AB (combinação de velas de 2 velas) é seguido por 48 para cima e 52 para baixo.

A terceira combinação de candlestick ABC (uma combinação de três candlesticks) resulta em 53 para cima e 47 para baixo. E aqui temos um padrão com um excesso de peso histórico para cima, o outro com excesso de peso para baixo, o terceiro para cima: 5, -1, 3. Combinamos em uma janela, normalizamos no intervalo de -1...1 e teremos números para a entrada do NS:



1, -1 e0,4286. Esse é um exemplo do fato de que o fator quantitativo, que é decisivo para o NS matemático, carrega informações objetivas sobre o mercado e a tarefa do NS é escolher quais dessas informações objetivas podem ser úteis para uma negociação estável. E não extrair freneticamente algo do lixo absoluto, que é o conjunto numérico médio para a entrada do NS.

 

Normalizações L1, L2. (regularizações) são descritas. Normalmente, elas já estão incorporadas ao MO.

Se houver muito mais lixo do que bons exemplos (o que é típico de um conjunto de dados forex típico), nenhuma abordagem ajudará.

 
Ivan Butko #:



É obrigatório que eu descreva a teoria: o objetivo do NS é filtrar os TSs brutos que mostram alguma coisa.







E descrevi a abordagem: procurar manualmente qualquer TS que mostre resultados, pelo menos um pouco, e filtrá-la com NS. Aqui está a TS original.

Inadequado para negociação, mas mostrando sinais de vida .


E aqui está o mesmo, apenas filtrado pelo Python NS: LSTM-key.

Se ele não aparecer na vida real, mas for retirado do testador, ainda assim será superajustado.

 




E aqui está como a convolução se comporta (CNN) Backtest do TC simples e bruto original: 2000-2021



Seu avanço é



Método de trabalho: - procurar algum TS, verificá-lo no forward: ele deve, pelo menos, não drenar.


A valiar subjetivamente seu trabalho: - antes de abrir uma posição, registramos informações do gráfico (experimentalmente - qualquer uma) - no conjunto de entrada (fiz isso com um script) - registramos o resultado da operação no alvo para o conjunto de entrada registrado anteriormente - passamos por todo o período de treinamento.



- enviamos para o NS e o treinamos - adicionamos "if (.... && out > Open_level)" à condição de abertura da posição - otimizamos no MT5: giramos e giramos o relé de limiar (o único parâmetro a ser otimizado no otimizador do testador do MT5) - escolhemos o conjunto que você gosta, por exemplo, abaixo - o mesmo gráfico que o primeiro acima, mas "filtrado" pelo NS.



- verifique o forward 2021-2025





Para comparação, BiLSTM ( tentativa anterior).




C omo entrada: 1000 (!) preços normalizados. (Continuo sonhando com a ideia de formular e projetar um contexto de mercado para o NS. E a primeira coisa que ele deve conter: muitas unidades de informação.




)O método acima era simples de explorar o NS até descobrirmos como ensiná-lo a procurar TCs por conta própria. Acho que teremos que mergulhar na seção do MOE sobre aprendizado sem professor, datamining e assim por diante.




A verdade está enterrada lá em algum lugar. Observações sobre NS: o retreinamento é 99% do trabalho. Ou seja, para chegar a esse resultado (acima), você teve que passar metade do dia configurando a arquitetura. Não há nenhum tipo de controle sobre as configurações de hiperparâmetros.

E há dezenas e centenas de maneiras de "ajustar" algo, não é possível aprender tudo, mas no processo de escolha você entende ou sente o vetor de direção do pensamento.




No momento atual, olhando para todos os muitos anos de esforço com essas redes, uma coisa posso dizer com certeza: não há funcionalidade suficiente para selecionar modelos. 1) Inicialize os pesos aleatoriamente.





Ok. 2) O treinamento é iniciado e aqui está a parte mais interessante: 3)Cada conjunto de pesos deve ser verificado no avanço por critérios definidos pelo usuário: por exemplo, pelo fator de recuperação. 4) Assim que o avanço tiver melhorado, salve automaticamente (autosave) o modelo com o gráfico de lucro exibido na tela.

T odos os gráficos salvos devem ser visíveis e roláveis para que o usuário possa visualizar o progresso paralelamente. 5) Na próxima iteração, se o modelo tiver se deteriorado (o aprendizado excessivo começou ou apenas um conjunto de pesos malsucedido) - volte ao modelo anterior e altere a taxa de aprendizado.

Continuamos até que as taxas de aprendizagem melhorem. 6) Se as taxas de aprendizagem não melhorarem ou se o usuário não gostar do vetor de progresso dos resultados da aprendizagem, interrompa o treinamento e comece-o novamente com uma nova inicialização dos pesos.

7) Modificamos esse processo básico com funcionalidades adicionais sob demanda: por exemplo, introduzimos a adição automática de neurônios em novas camadas de treinamento, alteramos funções de ativação ou funções de perda, funções de otimização (Adam para BFG+momentum e outras) e assim por diante.







Ou seja, criamos um mecanismo de busca extremamente útil para encontrar um modelo funcional. E não fazemos tudo isso manualmente. O espaço de pesos é um mapa do espaço, no qual há um número infinito de pontos brancos.

Com cada novo peso, o número de combinações possíveis de resultados de multiplicação nas mesmas combinações infinitas de números de entrada excede a marca do número de estrelas no céu. Cada inicialização é um ponto nesse mapa, um ponto de tamanho infinitamente pequeno. E o aprendizado é uma caminhada até os pontos vizinhos. Se um determinado grupo de pontos estiver muito distante do ponto de "granizo", é melhor eliminá-lo imediatamente e começar a aprender novamente. Uma nova inicialização de escalas é outro ponto aleatório nesse enorme mapa.

E um novo treinamento é uma nova "sondagem" do espaço ao redor. Uma fórmula (método) ideal para encontrar o conjunto necessário para NS (de alguma forma analisando esse mapa) é algo da seção de ficção.

E como alimento para o pensamento, como resolver ou como contornar essas limitações quantitativas. E a reinicialização constante com um novo início de treinamento é, pelo menos, o método mais simples e mais acessível para abordar a melhor configuração de rede neural.

 
Ivan Butko #:

No momento, olhando para trás, para todos os anos de esforço com essas redes, uma coisa posso dizer com certeza: não há funcionalidade suficiente para a seleção de modelos.

Bem, sim, essa é a próxima etapa do problema - depois, o desvio de dados e o critério de parada do TC.

 
Maxim Dmitrievsky #:

Normalizações L1, L2. (regularizações) são descritas. Geralmente já incorporadas ao MO.



As normas L1/L2 podem suprimir padrões fracos, mas estatisticamente significativos.Não é diferente de atribuir sem fundamento valores de potência aleatórios antigos a novos valores de potência aleatórios (desde que haja algo para resumir em ns-ka).
 
Aleksey Vyazmikin #:

Bem, sim, essa é a próxima etapa do problema - depois, o desvio de dados e o critério de parada do TC.



Se obtivermos um resultado que garanta que o modelo treinado (grupo de modelos) funcionará nos próximos +-~N períodos, o problema será resolvido simplesmente com o desligamento antecipado e o treinamento adicional. Ou seja, a solução do problema primário também resolverá essencialmente o problema secundário.
 
O método matemático só funciona aqui, ou seja, a filtragem dos valores de entrada por prioridade, sem alterar os valores e o número deles.Dois modelos síncronos devem ser, um é um filtro e o outro é um preditor.O fato de você perseguir incessantemente esses ruídos nunca fará nenhum bem.Você precisa combinar tudo o que for possível e mais nesse método.Não tenho ideia de como colocá-lo em uma implementação adequada, mas o fato de que as informações são precisas está fora de questão.Se você acredita ou não, depende de você.
 
Рaра Нoth #:
O método matemático só funciona aqui, ou seja, a filtragem dos valores de entrada por prioridade, sem alterar os valores e seu número. Dois modelos síncronos devem ser, um é um filtro e o outro é um preditor. O fato de você perseguir incessantemente esses ruídos nunca será bom. Você precisa combinar tudo o que for possível e muito mais nesse método. Não tenho ideia de como fazer uma implementação adequada, mas o fato de as informações serem precisas está fora de questão.
Expanda o pensamento.

Não estou entendendo nada.
 
Ivan Butko #:
Expandir o pensamento.

Nada é claro
Um modelo divide os valores de entrada por prioridade, o segundo modelo faz uma previsão somente com base nesses valores de prioridade do primeiro modelo. A questão é que as entradas são divididas em harmônicas e todo o ruído é removido delas, e o restante está sujeito a um treinamento preciso, pois não tem ruído. Em qualquer dado, o ruído nem sempre é constante, portanto, as redes neurais padrão nunca funcionarão nesse caso.