Etiqueta de mercado ou boas maneiras em um campo minado - página 31

 
paralocus писал(а) >>

Olá Neurton! De qualquer forma, ainda não tivemos sorte com a camada dupla.

Escrevi um perceptron de uma única camada com ORO e ontem o fiz correr o dia todo. Está se comportando de forma estranha. Aprende e não aprende, e depende catastroficamente do número de épocas.

Portanto, meus resultados são os seguintes: 8 épocas - a grade não aprende, 12 épocas - a grade aprende, 13 épocas - a grade não aprende.

Em resumo, os resultados se vangloriam de que ainda não posso.

Em qualquer caso, descreverei um algoritmo que implementei. Veja se eu perdi alguma coisa.

1. O perceptron tem entradas binárias D, uma das quais é uma constante +1.

2. a BP utilizada é a incrementos seqüenciais de cotier sobre uma série de Open.

3. Todos os pesos são inicializados com pequenos valores aleatórios a partir da faixa +/-1 antes de começar.

4. O comprimento do vetor de treinamento é calculado como P = 4 * D*D/D = 4*D.

5. O vetor de treinamento é alimentado para a entrada da grade e o erro da grade é calculado como Qs = Test - OUT, onde Test é o valor de BP em n+1, ou seja, o próximo, readout, OUT é a saída da grade em n readout.

6. Para obter o valor do erro nas entradas Qs, o erro de grade Qs é multiplicado pela derivada da função de aperto (1 - OUT+OUT): Q = Qs *(1 - OUT*OUT).

7. O vetor de correção para cada peso que entra em um neurônio COR[i] += Q*D[i] é calculado e acumulado durante a época.

8. SQR[i] += COR[i]*COR[i] é calculado separadamente e acumulado durante toda a época para cada peso, incluído no neurônio.

9. No final de uma época, para cada peso é calculada a correção pessoal e adicionada a esse peso W[i] += COR[i]/SQR[i]

Tentou usar um coeficiente de (1 - j/N), assim como pesos aleatórios cujos valores absolutos cresceram mais de 20. Randomizar ajuda melhor.

P.S. corrigiu um erro no texto.

paralocus, coloque sua namorada na entrada This:

Ao invés de preços de abertura. E afixar o resultado. Se não aprender, então o erro é catastrófico e você precisa fazer uma busca séria.

P.S. Você divide por norma vetorial ou por quadrado? Eu deveria fazer isso por norma, mas o que você escreveu parece uma soma de quadrados sem tirar a raiz.

 

Obrigado, estou experimentando.

Aqui estão os resultados para AUDUSD, H4, D = 13, 33 épocas. Os testes foram realizados em uma parte da história de 2009.01.08 a 2009.05.21

Há mais alguns pontos (número de épocas: 31, 25, 14, 10, 7) obtidos com o otimizador, mas os resultados são piores neles.





P.S. Exatamente! A raiz é... quadrada... Eu esqueci de tirá-lo!

 
paralocus писал(а) >>

P.S. Exatamente! A raiz é... quadrada... Eu esqueci de tirá-lo!

Assim como naquela piada de Chapaev! :-)

 
Neutron >> :

É como aquela piada de Chapaev! :-)

-:) ... Chorando, mas afiando seu sabre...

 

Não, Petya arrancou todos os arbustos do pátio - foi-lhe pedido para encontrar a raiz quadrada:-)

Aqui, veja. Este é um Ns-ca de camada dupla com duas entradas e 8 épocas de treinamento em cada amostra. São 500 amostras no total e a probabilidade de previsão correta é calculada como a média de 10 experimentos independentes (para significância estatística dos resultados):

O vermelho mostra o resultado na amostra de treinamento, o azul na amostra de teste. Você pode ver que os resultados não são muito diferentes e isso é bom, porque mostra que a rede não está muito treinada. Muitas vezes o erro é que selecionamos um vetor de treinamento muito curto (menos do que o comprimento ideal), e quase 100% dos impactos na amostra de treinamento. Ao mesmo tempo, eles não olham para os resultados da previsão da amostra que não participou do treinamento! Neste caso, o resultado geralmente é próximo de zero. Isto é sobretreinamento, a grade acabou de aprender a lição de cor e é incapaz de se compor sozinha. Então eles se perguntam o que os faz chumbar.

 

Viva!!!

Meu depósito acabou de passar de 1K !

Neutron, e entradas binárias para a grade treinadas por sua fórmula de amostra de teste?

 

Eu divido a BP construída por esta fórmula em segmentos do mesmo incremento de preço H e tomo a primeira diferença. Eu arredondo os incrementos para +/-1 e tento prevê-los. Hn Fig. o horizonte comercial H é traçado em pips no eixo das abcissas e a probabilidade é traçada no eixo das ordenadas. Portanto, as entradas são binárias.

 

Foi assim que eu descobri. Para ver esta fórmula com meus olhos, coloquei-a no gráfico como um indicador. Coloquei todas estas coisas na entrada da grade, mas não consigo descobrir como ver os resultados.

Ou seja, não posso fazer isso com um testador. Você só pode imprimir os pesos e ver como é... vivo ou não.

Não, não é bem assim. Não decompus a BP resultante em segmentos do mesmo incremento, mas tomei incrementos consecutivos da BP em D conta.

 
paralocus писал(а) >>

Foi assim que eu descobri. Para ver esta fórmula com meus olhos, coloquei-a no gráfico como um indicador. Coloquei todas estas coisas na entrada da grade, mas não consigo descobrir como ver os resultados.

Em outras palavras, não posso fazer isso com um testador. Você só pode imprimir os pesos e ver como é... vivo ou não.

Não, não é bem assim. Eu não dividi a BP resultante em segmentos de incrementos iguais, mas tomei incrementos consecutivos de BP em D conta.

Que tal exibir os pesos via Comentário()?

 
FION >> :

Os pesos podem ser exibidos através de Comentário()?

Você pode, mas não é conveniente, porque cada chamada subseqüente de Comentário() "entupirá" os resultados da saída anterior, uma vez que será realizada usando as mesmas coordenadas gráficas que a anterior. Portanto, imprimir() é melhor;