Rede neural - página 2

 
xweblanser >> :

Muito obrigado, mas não tenho muitos comentários a fazer, mas vou tentar descobrir....

Aqui www.nnea.net/downloads há uma boa coleção de pdf's com pesquisas sobre previsão de mercados financeiros com NS. você precisa se registrar. dê uma olhada também na seção de pesquisa.

 
marketeer >> :

Um comerciante não precisa realmente entender o funcionamento interno da NS. Para ele, é uma caixa preta com entradas e saídas. Há muitas redes prontas no domínio público, inclusive neste website - basta digitar "redes neurais" na caixa de busca. Uma das últimas publicações, por exemplo - Predictor baseado em uma rede neural de auto-aprendizagem. O principal problema na utilização de NS é a escolha dos dados a serem inseridos e treinados, como preparar esses dados, qual é a estrutura e o tamanho da rede, etc. Por exemplo, pegamos a já mencionada rede, tentamos treiná-la como Yezhov e Shumsky fizeram (ver Neurocomputing e sua aplicação em economia e negócios, eu recomendo)... E acabamos com um fracasso. Pode haver muitas razões para isso. E é aí que começa o trabalho do comerciante: intuir o que pode ter mudado desde então (ou o que os autores não estão dizendo ;-) ), e o que mudar nas configurações e nos dados de entrada.

Sou um comerciante, mas principalmente sou um programador. Eu queria escrever uma rede neural para mim mesmo e ao mesmo tempo provar para mim mesmo que posso....

 
njel >> :

Há uma boa seleção de pdf's com estudos sobre previsão de mercados financeiros usando NS aqui www.nnea.net/downloads. Você precisa se registrar. veja também a seção de pesquisa.

>> Obrigado.

 
xweblanser >> :

1. Até onde eu entendo cada neurônio da rede é a mesma função... mas não entendo como a mesma função pode produzir valores diferentes quando os mesmos dados chegam...

Estas entradas serão multiplicadas por diferentes pesos. Portanto, os valores das funções serão diferentes. Depois de estudar minuciosamente as redes neurais e usar diferentes algoritmos de aprendizagem, desde a descida gradual até a genética, cheguei à conclusão de que o aparelho matemático das redes neurais não é perfeito. Uma rede neural é projetada para se aproximar de uma função não-linear. De acordo com o teorema de Kolmogorov, a rede é capaz de realizar qualquer função contínua. Na prática, o paralelismo da rede leva a uma multiplicidade de mínimos locais e realizações da função a ser modelada. Tomemos como exemplo a rede mostrada abaixo. A rede tem uma entrada, uma saída e uma camada oculta com dois neurônios. Cada neurônio oculto multiplica a entrada x por seu peso (w1 ou w2), passa o resultado através da função de ativação (digamos tanh), os valores obtidos são somados à saída da rede. Para simplificar, suponha que as entradas tendenciosas sejam zero. Os pesos de saída dos neurônios são os mesmos e iguais a 1.


Agora vamos criar um problema de aproximação de funções. Suponha que nossa função seja t = cos(x) (t significa alvo). A rede calculará seu valor através da fórmula

y = tanh(w1*x) + tanh(w2*x)

O treinamento (ou coaching) da rede é encontrar os pesos w1 e w2, nos quais a saída da rede y é mais próxima do valor de nossa função t. Isto é conseguido através da minimização da soma dos quadrados de erro

E(w1,w2) = soma((t[k]-y[k])^2,k=0...p-1)

onde a soma é feita em diferentes dados de treinamento: x[k],t[k]. Vejamos como fica a superfície de nossa função alvo minimizadora E(w1,w2) quando não há ruído nas medições t[k] = cos(x[k]):


Este gráfico mostra que existe um conjunto infinito de soluções (w1,w2) minimizando nossa função objetiva E (observe os vales planos). Não é difícil de entender: a rede é simétrica em relação à w1 e w2. Os resultados do treinamento da rede serão diferentes para diferentes escolhas de valores iniciais de w1 e w2. Como estes valores iniciais são sempre escolhidos aleatoriamente, treinamentos sucessivos da rede sobre os mesmos dados de treinamento x[k],t[k] levarão a valores diferentes de pesos otimizados w1 e w2. Essencialmente, não há aqui um mínimo global. Ou, dito de outra forma, infinitamente muitos mínimos locais também são mínimos globais.

Agora vamos complicar nosso problema adicionando ruído à nossa série: t[k] = cos(x[k]) + rnd. Esta série ruidosa é estatisticamente mais parecida com a série de preços do que com a cossena perfeita:


Agora a superfície de nossa função minimizadora E(w1,w2) se parece com isto:


Observe os muitos picos, tanto nos picos como nos vales. Vamos para briefly perto de um dos vales:


Aqui podemos ver mais claramente o conjunto de mínimos locais. Agora imagine a otimização de E(w1,w2) por gradiente de descida. Dependendo dos valores iniciais de w1 e w2, esta descida levará a um mínimo diferente. Além disso, este mínimo local poderia ser ou no topo ou no vale. A otimização genética aqui só ajudará a descer do topo para um dos vales e ficar preso lá em um dos mínimos locais. A situação se torna muito mais complicada se, além dos pesos w1 e w2 dos neurônios de saída, que eram iguais a um nas considerações anteriores, também forem otimizados. Neste caso temos um espaço de 4 dimensões com um grande número de mínimos locais com coordenadas (w1,w2,w3,w4).

Por toda essa descrição simplificada do comportamento da rede neural, eu queria provar que o paralelismo da rede (ou simetria de sua saída em relação aos pesos dos neurônios da mesma camada) leva a dificuldades de seu treinamento (otimização desses pesos) devido à presença de um conjunto infinito de mínimos locais, especialmente para séries caóticas como as séries de preços.

Anexei o arquivo MathCAD no qual os cálculos acima foram efetuados.

Arquivos anexados:
nnrsimplea2.zip  699 kb
 
gpwr писал(а) >> Com esta descrição simplificada do comportamento da rede neural eu queria provar que o paralelismo da rede (ou simetria de sua saída em relação aos pesos dos neurônios da mesma camada) leva a dificuldades em seu treinamento (otimização desses pesos) devido à presença de um número infinito de mínimos locais, especialmente para séries caóticas como séries de preços.

Uma pergunta - como isso afeta o lucro?

 
LeoV >> :

Uma pergunta - como isso afeta a rentabilidade?

Você tem uma rede que gera lucros consistentes?

 
LeoV >> :

Uma pergunta - como isso afeta o lucro?

A rentabilidade é absolutamente afetada. Não há garantia de encontrar o mínimo local certo e profundo o suficiente que seria adequado para implementar um TS rentável baseado em uma rede neural.

 
gpwr >> :

Qual MathCad você utiliza, seus cálculos não abrem no Mathcad 13.

 

O objetivo de minimizar/maximizar a função alvo E(w1,w2) é encontrar um extremo global. E se esses extremos globais são um milhão, que diferença faz para nós qual deles NN cai em nós!

É pior se ficar preso em um dos mínimos/máximos locais. Mas não é mais um problema da NN. É um problema do algoritmo de otimização.


LeoV >> :

>> Uma pergunta - como isso influencia o lucro?

O que o gpwr descreveu, não o faz.

 
Urain >> :

Qual MathCad você usa, não posso abrir seus cálculos no Mathcad 13.

>> Mathcad 14. >> Anexo o mesmo arquivo na versão 11.

Arquivos anexados:
nnosimplem2.zip  14 kb
Razão: