Artigo: Previsão de preços com redes neurais - página 15

 
Neutron:

Adendo.

Levava, levava e levava ;-)

Esta é a solução analítica "FINA" para as escalas de um NS não linear de camada única:

...

Isso me fez sorrir.

Mas o cálculo completo leva 1 milissegundo.

Teoricamente, qualquer NS é equivalente a um sistema de equações. E se for suficientemente simples, é mais barato escrever este sistema de forma analítica e resolvê-lo em relação aos pesos. Os problemas, e com eles a necessidade de métodos de treinamento astutos, começam a surgir à medida que a rede (ou seja, seu sistema equivalente de equações) se torna mais complexa. Foi ao perceber este fato que uma vez suspendi meu contato com as redes, comecei por interesse. Eu simplesmente decidi que primeiro deveria inventar um modelo e só depois procurar as formas mais econômicas de resolvê-lo. Ainda me parece que a aplicação dos métodos NS se justifica apenas para modelos muito complexos :) .

 
Jhonny:

Explique-me isto como "neurocientista" novato... Entendo que a rede em questão é um perceptron de várias camadas.

Qual a razão para escolher este tipo de rede, por que não Hopfield ou Kohonen, ou algo mais?

É mais uma questão filosófica. A questão é que existe um número infinito de arquiteturas NS "complexas", enquanto a mais simples é a única! É um perceptron de camada única. Neste caso, ele é implementado com uma função de ativação não linear.


para Candidato

Teoricamente, qualquer NS é equivalente a um sistema de equações. E se for suficientemente simples, é mais barato escrevê-lo de forma analítica e resolvê-lo em relação aos pesos. Os problemas, e com eles a necessidade de métodos de treinamento astutos, começam a surgir à medida que a rede (ou seja, seu sistema equivalente de equações) se torna mais complexa. Foi ao perceber este fato que uma vez suspendi meu contato com as redes, comecei por interesse. Eu simplesmente decidi que primeiro tenho que criar um modelo e só depois procurar as formas mais econômicas de resolvê-lo. Ainda me parece que a aplicação dos métodos NS se justifica apenas para modelos muito complexos :) .

Certo. Podemos também mencionar a não-estacionariedade inerente às BPs de mercado, que põe um fim aos métodos estatísticos tradicionais e dá mais um ponto a favor das NS.


A propósito, elaborei uma solução analítica de sistemas de equações para pesos NS. A figura em preto mostra o método usual de treinamento NS por propagação de erro (ORO) número de épocas 1000 e em azul a solução analítica. O treinamento da NS ocorre a cada passo, a previsão está um passo à frente.


Pode-se ver que a variante analítica na seção de tendências da BP está incorreta por razões que eu não entendo. Mas o tempo de cálculo deste problema de acordo com o método ORO é de 10 segundos, e para o método analítico é de 0,001 segundos.

O ganho de desempenho é 10.000 vezes!

Em geral, o funcionamento da rede é fascinante. Parece sentir a tendência dos preços e atrai, como um ímã, em sua previsão!

 
Neutron:
Jhonny:

Explique-me isto como "neurocientista" novato... Entendo que a rede em questão é um perceptron de várias camadas.

Qual a razão para escolher este tipo de rede, por que não Hopfield ou Kohonen, ou algo mais?

É mais uma questão filosófica. A questão é que existe um número infinito de arquiteturas NS "complexas", enquanto a mais simples é a única! É um perceptron de camada única. Neste caso, ele é implementado com uma função de ativação não linear.

...

Em geral, o funcionamento da rede é fascinante. Parece sentir a tendência dos preços e atrai a ela, como se fosse um ímã!

A questão é, evidentemente, filosófica. Sou também um principiante. Mas por que não uma rede de probabilidade, por exemplo. Especialmente depois dos conhecidos eventos do ano passado? É verdade que a tarefa é diferente lá também. Se a previsão está próxima da filtragem, a esse parâmetro observável, então a estimativa da probabilidade está mais próxima da filtragem do parâmetro não observável, mas resolve de imediato o problema da transição para o domínio das soluções.

P.S. A propósito, o tempo de funcionamento de uma rede probabilística é incomparavelmente menor do que o de um perceptron multicamadas, e a treinabilidade não é pior.

P.P.S. Quando eu estava olhando para a curva de equilíbrio de Better durante o campeonato, eu também fiquei fascinado. :-)

 
Neutron:

Eu quero cavar mais fundo... Por exemplo, quão justificada é a complexidade das NS (camadas ocultas).

Depende do que está sendo introduzido na entrada. Se tomarmos diretamente as barras (seus incrementos) do mercado - então será muito justificado.


Você não vê isso em seus exemplos, porque seus gráficos são suaves - por partes monotônicos. Você tem até mesmo uma única entrada NS "governando" lá. Isto é, o análogo do sistema comercial mais primitivo que segue as tendências. Este problema é perfeitamente resolvido sem a NS. Que redes multicamadas existem...

Neutron:

De qualquer forma, estou ficando louco! A questão é que se você representa a não linearidade da NS de uma certa forma, você pode obter uma solução analítica precisa para os pesos. Isto, por sua vez, significa que será possível eliminar o método de Propagação do Erro Inverso para treinar a rede e obter o resultado o mais preciso possível em uma única ação, sem nenhuma 1000 épocas de treinamento lá!!!

Deve ser entendido que o treinamento NS é um problema de otimização da função. E sua solução analítica é muito mais complicada do que a solução de sistemas de equações. Veja os métodos de cálculo analítico de uma função de regressão linear a partir de uma variável (análoga à do perceptron mais simples)... O que você acha? Agora imagine como seria a solução se houvesse muitas variáveis e a função fosse não-linear até o nono grau (análogo de NS multicamadas)... :-)


NS foi inventado para simplificar a vida. E não é preciso treinar a rede exatamente pela propagação de volta. É o algoritmo mais simples - mas também o mais lento. Além disso, existem algoritmos que são ordens de grandeza mais rápidas.

 
ds2:
Neutron:

Eu quero cavar mais fundo... Por exemplo, quão justificada é a complexidade das NS (camadas ocultas).

Depende do que está sendo introduzido na entrada. Se tomarmos diretamente as barras (seus incrementos) do mercado - então será muito justificado.


Você não vê isso em seus exemplos, porque seus gráficos são suaves - por partes monotônicos. Você tem até mesmo uma única entrada NS "direção" lá. Isto é, o análogo da tendência mais primitiva que segue o sistema comercial. Este problema é perfeitamente resolvido sem a NS. Que redes multicamadas existem...

ds2, você poderia dar uma razão a favor do perceptron de várias camadas em comparação com o de camada única, usado para as necessidades de previsão da BP como as de preço, se sua profundidade de imersão for a mesma. Eu gostaria de ver o argumento na forma de um gráfico de capacidade de previsão.

 
Neutron:
ds2:

Depende do que está sendo alimentado na entrada. Se você colar barras retas (seus incrementos) do mercado - isso será muito justificado.

Você não vê isso em seus exemplos porque seus gráficos são lisos - por partes monotônicos.

ds2, você poderia fazer um caso para um perceptron de várias camadas em comparação com uma única camada utilizada para as necessidades de previsão de preços do tipo BP, se sua profundidade de imersão for a mesma. Eu gostaria de ver o argumento na forma de um gráfico de capacidade de previsão.

Bem, é óbvio se você entender como funciona a rede. Uma rede de camada única só pode descrever dependências monotônicas, enquanto uma rede multicamadas pode descrever qualquer dependência.


Se compararmos as capacidades dos tipos NS e MTS conhecidos, uma rede de uma única camada pode imitar a operação MACD, mas somente uma rede multicamadas pode reconhecer padrões Pessavento.


Você pode experimentar e ver por si mesmo. Você tem todas as ferramentas e dados para isso.

 

Alguém escreveu na MQL o critério Kolmogorov-Smirnov para estimar as entradas e a correlação de classificação Spearman?

 
Ainda não cheguei ao teste, e a correlação de classificação não é muito o que procurar - "Coeficiente de Correlação de Rank do Spearman".
 
Curioso para ver se alguém o tem? Ou esta informação já foi mencionada e eu perdi-a? Clique no link, por favor.

Este link não é sequer acessível quando você se registra. Ou talvez descreva o caminho para o Graal ;-).


_COPY14〈=pt PDF 274kb

UMA ESTRUTURA DE REDE NEURAL PARA MODELAGEM DE UMA FUNÇÃO COMPLEXA DE MUITAS VARIÁVEIS SOBRE DADOS AMOSTRADOS
Е. V. Gavrilova, O. A. Mishulina, M. V. Shcherbinina Izvestia RAN. Teoria e sistemas de controle nº 1, janeiro-fevereiro de 2007, pp. 73-82

Consideramos o problema da aproximação da função de muitas variáveis, que é medida contra o ruído aditivo e caracterizada por propriedades dinâmicas qualitativamente diferentes em certos subdomínios de sua definição. Propomos a solução para este problema utilizando a estrutura modular especializada de rede neural LINA. As regras para seu treinamento e funcionamento são formuladas.
 

Quando se treina na Anfisedit, um erro é continuamente exibido:

??? Erro usando ==> anfisedit
Objeto de cabo inválido.

??? Erro ao avaliar o uicontrol Callback.

Preparou os dados, mas não pela taxa absoluta como no artigo, mas pelo tipo de vela. Se o preço de fechamento da vela do dia for superior ao preço de abertura - então 1, se vice versa -1. No início eu tinha 10 entradas, mas meu laptop não o puxou para fora. Reduzi o número de entradas como descrito no artigo para 4, a arquitetura é mostrada, tudo parece normal, mas quando pressiono o trem após algumas épocas o treinamento pára, o erro do trem é escrito sobre o gráfico e na linha de comando que escrevi logo no início. Qual é o problema? Talvez a versão do Matlab esteja com falhas? Tenho o Matlab 7.0.1.24704 (R14) Servise Pack 1.

Não trabalhou com a ANFIS, decidiu experimentar o NNTool. Carreguei separadamente as entradas (4 entradas), separadamente as saídas, especifiquei os parâmetros, criei uma rede - mas ao visualizar a arquitetura da rede, mostra que as entradas são 2. Eu pressionei o trem de qualquer maneira e recebi um erro:

Erro usando ==> networktrain
As entradas são dimensionadas incorretamente para a rede.
Todas as matrizes devem ter 2 fileiras.
Havia algum lugar para definir o número de entradas?

Razão: