Redes Neurais e JAVA

Redes Neurais e Java

Olá pessoal, sou estudante do curso de Geofísica e estou desenvolvendo uma monografia na área de modelagem utilizando redes neurais, para tal percebi que o Java tem uma ferramenta muito interessante que são várias bibliotecas… dentre elas o JOONE e o Neuroph… por uma questão de facilidade estou utilizando o JOONE… alguém já viu alguma publicação em teses ou trabalhos em áreas diversas utilizando este software??

Grato desde já…

Caro colega,

da uma olhada neste link

http://www.developer.com/java/other/article.php/1546201/Using-JOONE-for-Artificial-Intelligence-Programming.htm

Poxa amigão… realmente valeu… mas já té tinha visto este site… já ví também que esse Jeff Heaton desenvolveu um novo software de RN … mas o que eu queria era um artigo ou algo assim só pra dar credibilidade ao programa, já gerei os resultados pelo JOONE e tudo… ainda assim obrigado…

Oi, pessoal.

Já que um de vcs já implementou alguma coisa, talvez possa me ajudar. Tenho duas dúvidas.

  1. Como eu INTERPRETO os resultados do joone?
    Montando o exemplo do “ou exclusivo”, o resultado fica assim :
    0.06388384056943291
    0.06373611009154459
    0.06331661568996441
    0.0631702957086512
    Esses números representam o que? É um resultado bom, ruim, mediano? Como eu entendo o que isso quer dizer?

  2. Existe alguma forma de trocar o algoritmo de aprendizagem do Joone? Por exemplo, ao invés de usar o backpropagation, usar algum outro? Como poderia fazer isso?

Pessoal, sobre as perguntas anteriores (sobre a interpretação dos resultados), o que eu estou perguntando à rede naural é o seguinte:

0 , 0
0 , 1
1 , 0
1 , 1

São essas 4 perguntas, então saem 4 resultados… Agora é que se aplica as perguntas anteriores: Esses números que foram apresentados, como eu interpreto?


  1. Como eu INTERPRETO os resultados do joone?
    Montando o exemplo do “ou exclusivo”, o resultado fica assim :
    0.06388384056943291
    0.06373611009154459
    0.06331661568996441
    0.0631702957086512
    Esses números representam o que? É um resultado bom, ruim, mediano? Como eu entendo o que isso quer dizer?

  2. Existe alguma forma de trocar o algoritmo de aprendizagem do Joone? Por exemplo, ao invés de usar o backpropagation, usar algum outro? Como poderia fazer isso?

[quote]

  1. Como eu INTERPRETO os resultados do joone?
    Montando o exemplo do “ou exclusivo”, o resultado fica assim :
    0.06388384056943291
    0.06373611009154459
    0.06331661568996441
    0.0631702957086512
    Esses números representam o que? É um resultado bom, ruim, mediano? Como eu entendo o que isso quer dizer? [/quote]

Como já faz tempo que você postou isso. Creio que c já tem a resposta. Mas vou responder mesmo assim.
Esses números são os pesos da rede neural, que você treinou.
O que indica realmente se a rede está “boa” ou “ruim” não os pesos mas a quantidade de acertos que ela teve durante o teste. Você precisa testá-la após do treino para ver se ela está reconhecendo os padrões devidamente. Pesquisa mais sobre Redes Neurais Artificiais e como elas funcionam.

Agora vamos às minhas dúvidas.

Eu estou querendo usar um dos frameworks de RNA para Java.

Vi uma comparação entre Encog, Joone e Neuroph aqui: http://www.codeproject.com/KB/recipes/encogintroxorjava.aspx

O que vocês acham? Qual o melhor?

É bom implementar do zero?

Estou com um pouco de pressa com a implementação da rede, já tentei no Matlab, mas não consegui o que queria.

Então, sugestões?

Eu acho o Encog muito mais interessante, o Jeff Heaton diz num artigo de Introdução ao Encog http://www.heatonresearch.com/dload/ebook/IntroductionToEncogJava.pdf que ele mesmo usava o Joone como framework no seu primeiro livro mas que o projeto tinha muitos bugs e estava praticamente abandonado quando ele decidiu desenvolver o próprio framework - o Encog.