Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Redes Neuronales En Haddd / Neural Nets In Haddd

Iniciado por Vicente, 21 de Febrero de 2006, 11:58:02 PM

« anterior - próximo »

Vicente

 Hola,

como parte de la IA de Haddd un colaborador está haciendo una librería de redes neuronales. Para hacer unas primeras pruebas, quiere hacer un experimento de OCR. Estaba pensando en hacerse un programita para generar las muestras, pero resulta que de un trabajo de la uni tengo yo uno que hace eso en java. El programa se puede descargar aquí:

Delfos

Descargad la versión 0.3.2 (la 0.4.0 solo vale para reconocer los dígitos). Es un programa para Java (JRE >= 1.4.0) y debería funcionar sin ningún problema. Viene con instrucciones de uso. Si podéis usarlo y generar unos cuantos patrones (unos 10 de cada dígito del 0 al 9) nos ayudaríais bastante. Los patrones enviadlos a:

angusttd@hotmail.com

Un saludo!

Vicente

------------------------------------------------------------------------------------------------------------------------

Hi,

someone is helping us developing part of the AI libraries for Haddd, and he is doing a library for Neural Networks. To make some tests, he wants to do an OCR experiment. He was thinking about doing a small program to generate the patterns to train the net, but I have a small little program in java that does the same. The program can be downloaded here:

Delfos

Download version 0.3.2 (version 0.4.0 only allows to recognize digits). The program needs a java virtual machine (JRE >= 1.4.0) and should be work without any problem. It comes with some instructions (in spanish). If you can use it and generate some patterns (10 from each digit from 0 to 9) you would help us a lot. Send the patters file to:

angusttd@hotmail.com

Program instructions: start the program using "Delfos Interfaz.bat". The program uses resource files, but I don´t know if it´ll come up translated into english or not... Go to Start Session ("Iniciar Sesion") and write your name or nick. To draw, use the left buttom of the mouse.  To clean the screen use the right one. Once you have drawn something, click in the number it represents so the program analizes your drawing and generates a pattern. When you finish, go to Close Session ("Cerrar Sesion"). The file should be located in: Datos\Usuarios\name.dsf

Greetings!

Vicente

Daemon

 Hola,

Todavia no lo he probado, ni se que tipo de patron genera el programa a partir del dibujo, pero creo entender que realizas un analisis y generas un patrón simbólico, es decir que no es una imagen, sino que tendrás una serie de características que tomarán ciertos valores que luego seran las entradas de la red neuronal.

Sólo por curiosidad, ¿tiene alguna aplicación concreta o es nada más  (y nada menos) que una biblioteca  con distintos tipos de redes, a disposición del que quiera usar esa técnica para algo? ¿Que tipo de red estais usando para el análisis? Puede ser del tipo Memoria Asociativa como las BAM o Hopfield, si es un patrón simbólico no creo que sea un flitro de Grossberg :huh:.

Saludos y gracias.

P.D.: I'm too lazy to translate this to english... :P  
Imagina todo lo que puedes hacer. Despues hazlo.

ethernet

 Como comentario que quizás te pueda servir, cuando yo hice el pfc sobre reconocimiento automático del habla usé una BBDD de locuciones llamada albaycin. Quizás pueda servir como experimento para esas redes neuronales. Como apunte yo use modelos ocultos de markov (qué pavo el markov).

Vicente

 Hola,

Daemon: eso es, generamos un patron simbólico a partir del dibujo (dividimos el dibujo en un cuadrado de 15x15 y siemplemente son 225 0s y 1s según un cuadrado tenga trazo o no tenga trazo). El objetivo de la biblioteca no es ni una aplicación concreta ni generar una red a priori como BAM o Hopfield. El objetivo de la biblioteca es dar las herramientas básicas para que luego un usuario pueda combinarlas y generar una red a partir de trozos básicos (neurona, capa, peso, red, función de activación, algoritmo de entrenamiento, etc etc). A partir de eso, si un usuario quiere un perceptron, pues que haga un perceptrón, que quiere una CCN, pues que se la haga, etc etc.

Está claro que no podrá generalizar para todo lo habido y por haber, pero intentaremos que al menos para los tipos más "básicos" (y que más conocemos) valga (hebb, adaline, perceptrón, redes autoasociativas y heteroasociativas, mapas autoorganizativos y redes de competición, y backpropagation). Si conoces el Fauset, básicamente que puedas construir cualquier red de ese libro (excepto la ART que es un poco rara). Y que luego sirva como ayuda a la hora de generar otras topologías como CCN o NEAT (redes de topología dinámica durante el entrenamiento).

El filtro ese de Grossberg ni idea de lo que es :P

Ethernet: muchas gracias por la idea ;) Le daremos un vistazo a esa BBDD. Nosotros tenemos también ficheros de una BBDD de problemas de nosedonde (que se llaman del estilo "glass", "horse", "mushroom" etc etc, lo mismo a alguien le suenan), pero para probar hemos decidido hacer primero este experimentillo. Lo de los modelos ocultos de markov tampoco ni idea (pero si, vaya personaje, las cadenas de markov si que me las tuve que meter en vena para arquitecturas distribuidas...).

Un saludo!

Vicente

Haddd



Ruben

 Hi,
creo que lo que ha dicho Vicente lo ha dejado bastante claro en cuanto a objetivos del modulo de rna : una interfaz que te permita construir tus propias redes neuronales, lo más general posible y que sea facil de usar.

Estoy diseñando la interfaz a partir de implementar los distintos tipos de redes neuronales más clasicas, vamos, perceptrones multicapa, adaline, madaline, backpropagation... y luego empezare con redes autoasociativas, como mapas de kohonen. Asi, voy refinando poco a poco el diseño para llegar a un modelo lo más general posible.

Lo del reconocimiento de caracteres, es mas que nada, para enseñar que se pueden hacer cosas muy chulas, aparentemente con una algoritmia infernal; pero que en realidad es tan sencillo como una red neuronal tipo perceptron multicapa con una capa oculta y con el tipico algoritmo de aprendizaje de backpropagation.

A ver si dentro de poco os enseño algo chulo.

EDITADO: Mi idea tambien es que todas las redes neuronales que vaya haciendo dejarlas. Estas implementarán la interfaz, servirán como ejemplo y además para la gente que quiera hacer algo rapido y se fie de la implementacion :P les vendrá genial.

Un saludo,
Rubén

nsL

 Me acabo de bajar el SDK de java y al intentar ejecutar el .bat me sale esto:
Citar
Exception in thread "main" java.lang.NoClassDefFoundError: Delfos

:(  
Yo no muero hasta la muerte -

Vicente

Cita de: "nsL"Me acabo de bajar el SDK de java y al intentar ejecutar el .bat me sale esto:
Citar
Exception in thread "main" java.lang.NoClassDefFoundError: Delfos

:(
El maldito classpath de java.

Prueba a copiar todo dentro de la carpeta donde tienes el java.exe (algo como: C:\Archivos de Programa\JDK1.5.0\bin) y ejecuta desde allí el .bat. Debería tirar así (es una chapuza, pero es que lo del classpath es más chapuza aún :P).

Si aún así te sigue sin tirar, comentamelo y pongo un par de capturas de como cambiar la variable de entorno. Un saludo!

Vicente

Vicente

 Con lo de copiar todo a donde esté java.exe me refiero a que el archivo .bat, Delfos.class etc etc deben estar al mismo nivel que java.exe. Un saludo!

Vicente

nsL

 Ya lo hice y sigue saliendo ese error...

Estoy usando el SDK 1.4.2, importara eso?

Saludos!
Yo no muero hasta la muerte -

Vicente

 No debería (está programado con esa JDK). Parece que no tienes el "." en el classpath (el directorio actual...). Esta noche cuando llegue a casa pongo una captura para cambiar el classpath (a lo mejor sabes tu donde es: en las variables de entorno de windows, en la variable classpath tienes que añadir el "."). Un saludo!

Vicente

nsL

 Ya esta listo y funcionando :P

De hecho ya os mande al mail que pusiste unos patrones (unos 11 por cada numero). Espero que os ayuden :D

Saludos y suerte con el proyecto!
Yo no muero hasta la muerte -

Vicente

 Muchas gracias! A ver si se anima más gente y manda más numeritos (con unos 100-200 de cada numero ya se puede usar la red mas o menos bien). En mi uni cuando lo hicimos en java la entrenamos con unos 300 de cada número y quedó bastante bien (podéis verlo con el Delfos 0.4.0).

Un saludo!

Vicente






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.