Redes neurais em java?

Olá

Alguém ai ja tentou usar o Javanns? Eu tou usando ele e n consigo fazer previsões com ele… =/
Se alguém souber de alguma coisa por favor me avisem!! :slight_smile:

Previsões :?: :?: :?: :lol:

Caso queira fazer predição, como configurou as entradas ?

Eu queria fazer predição de uma série temporal no Javanns.
Usei 12 entradas e uma saída. Como nesse exemplo abaixo e utilizei o algoritmo de treinamento Backpropagation para rede de Jordan-Elman.

SNNS pattern definition file V4.2
generated at Fri May 7 16:40:53 2010

No. of patterns : 239
No. of input units : 12
No. of output units : 1

Input pattern 1:

1.55299127531781
1.55526011184243
1.5576848628862
1.56171247537368
1.56440592308756
1.56600217887588
1.56653102572184
1.56863049530853
1.57224481112667
1.57275508737827
1.56511717955053
1.55712831438253

Output pattern 1:

1.55619673621098

[quote=Andrea Cavalcanti]Eu queria fazer predição de uma série temporal no Javanns.
Usei 12 entradas e uma saída. Como nesse exemplo abaixo e utilizei o algoritmo de treinamento Backpropagation para rede de Jordan-Elman.

SNNS pattern definition file V4.2
generated at Fri May 7 16:40:53 2010

No. of patterns : 239
No. of input units : 12
No. of output units : 1

Input pattern 1:

1.55299127531781
1.55526011184243
1.5576848628862
1.56171247537368
1.56440592308756
1.56600217887588
1.56653102572184
1.56863049530853
1.57224481112667
1.57275508737827
1.56511717955053
1.55712831438253

Output pattern 1:

1.55619673621098

[/quote]

Para predição a arquitetura é a bayesiana. Não me lembro de nenhum framework com esse algoritmo.

Para ler:

http://catalogue.nla.gov.au/Record/1091486

[quote=gpmdf2]Pessoal,

to montando uma rede neural e até agora o framework que eu escolhi pra usar foi o joone.

eu montei uma rede, consigo salvar, carregar, treinar e colocar pra funcionar (posso, por exemplo, depois de treinar, criar um array com varias entradas, usar um FOR para mostrar cada uma dessas entrada pra rede e assim ela me responder com a classificação).

eu usei a base de dados XOR (“ou” exclusivo) e o que a rede me retorna pra cada entrada é um numero. alguem ja usou o joone com esse exemplo? existerm alguns tutoriais que usam essa base, justamente para a pessoa aprender a usar o framwork. O que significam esses numeros? Como interpretar?? um exemplo da saida : 0.0468468468464645…

é sempre um numero fracionario com a parte fracionaria beeem grande… eu preciso fazer um threshold pra isso?
base de dados:
0; 0; 0
0; 1; 1
1; 0; 1
1; 1; 1

a saida da rede deveria ser essa mesmo ou deveria ter zeros e uns? (pois nessa arquivo, as duas primeiras colunas sao para treinamento, isto é, a base de verdade e a ultima coluna é para prendizado, funciona para aprendizado supervisionado).[/quote]

Esse número que você postou se denomina margem de erro. É uma estatística do quanto a rede aprendeu. Quanto mais próximo ao zero, menor a chance da rede errar, ok?

Uma boa margem de erro se encontra entre <= 0.02… Quando a margem de erro se encontra nesse limite, diz-se que o treino convergiu.

Mas so um conselho. Não usem esses frameworks. É importante saber o que cada algoritmo faz. Um bom trabalho pode ser alcançado com um livro sobre rnas e outro de uma linguagem de programação qualquer.

Olá

Para predição veja sobre atraso de tempo nas entradas. Para obter um dado de hoje, se faz necessário as entradas serem t-1, t-2, …, t-n

E Backpropagation não é algoritmo é método.

[quote=mauro_schneider]Olá

Para predição veja sobre atraso de tempo nas entradas. Para obter um dado de hoje, se faz necessário as entradas serem t-1, t-2, …, t-n

E Backpropagation não é algoritmo é método.[/quote]

Ow mauro… só uma correção, o método se refere a metodologia de como fazer, ou seja um algoritmo.

[quote=juliocbq][quote=mauro_schneider]Olá

Para predição veja sobre atraso de tempo nas entradas. Para obter um dado de hoje, se faz necessário as entradas serem t-1, t-2, …, t-n

E Backpropagation não é algoritmo é método.[/quote]

Ow mauro… só uma correção, o método se refere a metodologia de como fazer, ou seja um algoritmo.

http://en.wikipedia.org/wiki/Backpropagation[/quote]

Julio

Algoritmos são o QuickProp, LM, PLL, Cascor, etc, onde todos eles usam o método de Backpropagation

[quote=mauro_schneider][quote=juliocbq][quote=mauro_schneider]Olá

Para predição veja sobre atraso de tempo nas entradas. Para obter um dado de hoje, se faz necessário as entradas serem t-1, t-2, …, t-n

E Backpropagation não é algoritmo é método.[/quote]

Ow mauro… só uma correção, o método se refere a metodologia de como fazer, ou seja um algoritmo.

http://en.wikipedia.org/wiki/Backpropagation[/quote]

Julio

Algoritmos são o QuickProp, LM, PLL, Cascor, etc, onde todos eles usam o método de Backpropagation[/quote]

Sim, mas o backpropagation não deixa de ser um algoritmo também. Toda idéia transportada a uma lógica é um algoritmo.

Outra fonte:

http://www-speech.sri.com/people/anand/771/html/node37.html

Os outros algoritmos citados são baseados no backpropagation.

Olá Julio

Este é um erro constante (inclusive na literatura) e que aos poucos vem sendo modificado. Para lhe ajudar a entender o meu raciocínio, responda a seguinte pergunta:

Qual o objetivo do treinamento em uma rede do tipo MLP ?

Com a resposta da pergunta acima, você vai ver que não existe algoritmo de “backpropagation” e sim de otimização.

[quote=mauro_schneider]Olá Julio

Este é um erro constante (inclusive na literatura) e que aos poucos vem sendo modificado. Para lhe ajudar a entender o meu raciocínio, responda a seguinte pergunta:

Qual o objetivo do treinamento em uma rede do tipo MLP ?

Com a resposta da pergunta acima, você vai ver que não existe algoritmo de “backpropagation” e sim de otimização.

[/quote]

Olá mauro,

acho que estamos falando de coisas similares, mas pensando em diferentes angulos. O nome do algoritmo é backpropagation, e não o algoritmo é de backpropagation. O que eu quis dizer logo acima no meu post é que qualquer metodologia que será transformada numa implementação é um algoritmo.

É correto dizer que o [b]backpropagation/b é um algoritmo de aprendizado.
No caso, quando citei seu post quis dizer que ali método = algoritmo.

[quote=mauro_schneider]Olá Julio

Este é um erro constante (inclusive na literatura) e que aos poucos vem sendo modificado. Para lhe ajudar a entender o meu raciocínio, responda a seguinte pergunta:

Qual o objetivo do treinamento em uma rede do tipo MLP ?

Com a resposta da pergunta acima, você vai ver que não existe algoritmo de “backpropagation” e sim de otimização.

[/quote]

O objetivo do treinamento é a aproximação, e não a otimização.
Problemas de otimização são relacionados as AGs e variantes.

Pessoal, sei que a discussão aqui já tem um tempinho, mas estou precisando de uma ajudinha…

Estou precisando normalizar uma base de dados, ela tem valores com diferenças muito grandes, tem valores de 0 até números muito altos.

Até aí, tudo bem, vamos à normalização… Tenho uma algoritmo que pega os dados de um arquivo texto, linha a linha (a base é grande, mais de 400 mil linhas) e normaliza, gravando esses dados normalizados em outro arquivo texto.

Quando abro o arquivo normalizado, os valores estão numa notação que me parece ser potência, por exemplo : 1,00927348976234E-8

Como faço para que esse valores fiquem numa notação decimal pura, sem a potência??? Tipo… Ao invés dele elevar a -8, ele escrever o número direito, na íntegra?

Desde já, agradeço a ajuda!

seu proble está relacionado ao modo que o número é convertido para texto. por padrão, ele usa notação cientifica.

Este post tem alguns exemplos de como mudar isso

http://www.guj.com.br/posts/list/125138.java

mas se eu não me engano, na hora de reconstriur os numeros a partir do seu arquivo texto, não deveria dar nenhum problema.