Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 521

 
Grigoriy Chaunin:

Leia sobre as funções de ativação de neurônios. Você pode fornecer os valores que quiser para a saída, mas a função de ativação errada irá produzir valores negativos. Esta é normalmente uma tangente hiperbólica. A função de perda de softmax não funcionará corretamente com ela. Embora muito dependa da biblioteca e da implementação da função de perda. Por exemplo, no Tensorflow em neurônios de saída para função de perda, o softmax não deve ter nenhuma função de ativação. E para o uso correto da rede treinada, devemos adicionar a ativação do softmax. Eunão trabalhei como ALGLIB, talvez eles tenham feito algo errado. Em qualquer caso, uma rede treinada com softmax não deve dar valores negativos.

Softmax não é uma função de perda. Você está confuso com alguma coisa. Softmax é uma função de ativação da camada de saída para tarefas de classificação. Não confunda o homem, ele próprio ficará confuso.

Você usa Alglib por sua própria conta e risco. Faz tudo no Rstudio.

Boa sorte.

 
Dr. Trader:

Este é o caso quando uma das turmas tem um número muito grande de exemplos de formação em comparação com as outras turmas. Por exemplo, 2000 exemplos de treino para comprar e apenas 1000 para vender. O neurônio pode sempre retornar "Comprar" e, neste caso, estará certo 66% do tempo. É melhor tornar igual o número de exemplos de treinamento de cada classe.

Classe NA - irá prevalecer, desde 50% nas trocas frequentes, até 99% nas raras trocas. Mas eu tenho o terceiro, e tenho a classe 1 de NA encravada.

Estou me perguntando por que os artigos não usam exemplos de treinamento para momentos em que nada precisa ser feito? Porque não fazer nada nos momentos certos também é importante, geralmente esses momentos são quando o negócio vai levar a uma perda.
Sem aprender a fazer uma pausa, NS pode começar a negociar e perder o depósito.

 
Vladimir Perervenko:

Softmax não é uma função de perda. Você está confuso com alguma coisa. Softmax é uma função de ativação da camada de saída para tarefas de classificação. Não confundas o homem, ele vai confundir-se a si próprio.

Você usa Alglib por sua própria conta e risco. Faz tudo no Rstudio.

Boa sorte.


Para ser mais preciso, a função de perda é chamada de "softmax crossentropy". Sim, eu não fui claro.

 
Vladimir Perervenko:

Softmax não é uma função de perda. Você está confuso com alguma coisa. Softmax é uma função de ativação da camada de saída para tarefas de classificação. Não confundas o homem, ele vai confundir-se a si próprio.

Você usa Alglib por sua própria conta e risco. Faz tudo no Rstudio.

Boa sorte.

Muito provavelmente usarei a ligação R após o seu próximo artigo (onde haverá uma ligação com o terminal).
 

A propósito, é interessante que a partir do exemplo acima

Comprar Vender NA
0.10302356, 0.01091621, 0.88606040
0.09705416, 0.01083526, 0.89211080
0.08283979, 0.12548789, 0.79167247
1.02522414,-0.00119697,-0.02403573
0.09498582, 0.01529507, 0.88971917
1.01878489,-0.00111341,-0.01767998
0.07906346, 0.05960769, 0.86132762
0.00201949, 0.00497863, 0.99300189

A soma de cada linha é 1. (os 4 primeiros verificados). Isto é, alguma analogia com softmax, onde a soma (isto é, probabilidade) também = 1. Mas isto foi feito por NS - regressão com saída linear.

 
elibrarius:

Classe NA - irá prevalecer, desde 50% nas trocas freqüentes, até 99% nas trocas pouco freqüentes.

É muito perigoso distribuir as aulas a um professor ao acaso, como levar algum indicador para criar aulas para professores e depois substituir alguns dos valores por NA também.

Mesmo que existam bons preditores e boas aulas para ensinar e o modelo tenha bons resultados em novos dados - qualquer tentativa de ajustar os valores das aulas pode quebrar completamente o modelo. Encontrar indicadores para preditores e um indicador para as classes que manterão o modelo rentável em novos dados é um grande sucesso.

Eu recomendaria duas aulas simples para começar - a cor do próximo bar (ou seja, comprar/vender). Pegue pelo menos 10000 exemplos de treinamento (barra de história), treine o modelo e avalie o resultado nas próximas 10000 barras da história (que eram desconhecidas pelo modelo durante o treinamento). Quando conseguimos encontrar preditores que manterão a precisão do modelo no mesmo nível em dados antigos e novos - você pode começar a selecionar um indicador para as aulas de um professor. E vai acontecer que o modelo não vai manter a precisão dos novos dados só por tomar o primeiro indicador disponível. Por que alguns indicadores podem servir para um professor e outros não - eu não sei.

 
elibrarius:

Há algo de errado com a versão SOFTMAX da NS no ALGLIB. Todas as respostas são distorcidas para a primeira saída (para mim é COMPRAR).
Nos mesmos dados NS - a regressão com 3 saídas (com ativação linear) dá resultados mais confiáveis:

Comprar Vender NA
0.10302356, 0.01091621, 0.88606040
0.09705416, 0.01083526, 0.89211080
0.08283979, 0.12548789, 0.79167247
1.02522414,-0.00119697,-0.02403573
0.09498582, 0.01529507, 0.88971917
1.01878489,-0.00111341,-0.01767998
0.07906346, 0.05960769, 0.86132762
0.00201949, 0.00497863, 0.99300189

em >0.5 dará respostas plausíveis.

A propósito, a Lesa também inclinou na 1ª saída.


Não sei, funcionou bem para mim, sem enviesamentos. Eu gostei do softmax.

E sim, como eu me lembro para softmax racionei as entradas de 0 a 1

As florestas em geral funcionam sempre claramente para a regressão e classificação. Às vezes recebo sinais apenas para comprar ou vender, mas depois cavei uma amostra de treino e houve alguma inclinação nos exemplos, por isso não admira (porque eles se retraem em certos intervalos e não sei de antemão o que pode aparecer na amostra). Além disso, não se esqueça que o andaime não pode extrapolar. Você tem que ensinar todos os futuros valores conhecidos.

 

A propósito, nem parece ser necessário:

Pré-processamento de dados

Para melhorar a velocidade de convergência e a qualidade das soluções ALGLIB implementa o pré-processamento de dados (padronização do conjunto de treinamento). O pré-processamento é implicitamente realizado para o usuário - antes de os dados serem transferidos para a rede neural, eles são automaticamente pré-processados, o resultado da rede é transferido para a rede.

 

Aqui está uma verificação NS na tabela de multiplicação

Eu fiz o mesmo para os andaimes e funciona bem.

Библиотеки: ALGLIB - библиотека численного анализа
Библиотеки: ALGLIB - библиотека численного анализа
  • 2012.10.12
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: ALGLIB - библиотека численного анализа
 
Maxim Dmitrievsky:

Não sei, funcionou bem para mim, sem enviesamentos. Eu gostei do softmax.

E sim, até onde me lembro para softmax racionei as entradas de 0 a 1

As florestas em geral funcionam sempre claramente para a regressão e classificação. Às vezes recebo sinais apenas para comprar ou vender, mas depois cavei uma amostra de treino e houve alguma inclinação nos exemplos, por isso não admira (porque se retraem em certos intervalos e não sei de antemão o que pode aparecer na amostra). Além disso, não se esqueça que os andaimes não podem extrapolar. Você precisa de treinar todos os valores conhecidos no futuro.

Eu tenho soma de 3 saídas=1, ou melhor, não soma, mas apenas 1 das saídas =1, o resto=0.
Eu não normalizei as entradas, você confirmou abaixo que não é necessário. Eu verifiquei a tabela de multiplicação (mas não é um softmax).
Se o softmax funcionou para você - eu tentarei girá-lo novamente, talvez funcione (embora na regressão de dados absolutamente a mesma regressão com lin. outputs funcione como deveria).