Video de calculadora RPN implementada sobre Libgann

Las redes neuronales artificiales tienen multitud de aplicaciones, en este caso las hemos usado para implementar una calculadora que acepta dígitos y operadores manuscritos. La aplicación ha sido construida sobre Libgann y utiliza una interfaz gráfica SDL.

Libgann permite crear y manipular redes neuronales de forma muy fácil, tal es así, que esta aplicación ha sido desarrollada en menos de 500 lineas de código C++/C, incluyendo:

  • Interfaz gráfica
  • Proceso de creación de patrones
  • Entrenamiento de la red

La aplicación utiliza para reconocer dígitos y operadores un Multiperceptron cuya función de activación es la sigmoidal. La red tiene tres capas con la siguiente configuración:

  • Primera capa: 64 neuronas
  • Segunda capa: 30 neuronas
  • Tercera capa: 14 neuronas

El número de neuronas de entrada está justificado por el numero de pixeles del display. El display tiene una resolución de 32×32, lo que equivale a 1024 pixeles, de forma que podriamos haber usado una red cuyo número de neuronas en la capa de entrada fuera de 1024, no obstante, esto supone una red demasiado grande. Para solucionar este problema, agrupamos los pixeles en grupos de 4×4, de forma que cada uno de estos grupos tuviera una representación en una matriz de 8×8 asociada al display, en la cual, cada posicion contuviera el número de pixeles dibujados de blanco del grupo, por lo tanto cada elemento de esta matriz tomaría valores en el intervalo [0,16]. Esta matriz es con la que trabaja la red neuronal, no obstante, antes de serle pasada como parámetro, normalizamos los valores que contiene en el intervalo [0,1].

El entrenamiento que hemos realizado ha sido Backpropagation con la regla del momento, con los siguientes valores:

  • Factor de aprendizaje: 0,85
  • Momento: 0.3
  • Número de epocas: 1000

Para entrenar a la red usamos un conjunto de 5352 patrones de entrenamiento de los cuales 1529 correspondían a operadores y el resto a dígitos, para el testeo usamos 2514 patrones, en este caso 717 eran operadores y el resto dígitos. Los patrones de entrenamiento y testeo correspondientes a los dígitos los obtuvimos de la pagina:

http://archive.ics.uci.edu/ml/

Los patrones de los operadores los construimos manualmente a través una modificación de la propia calculadora.

Espero que os haya gustado, y por favor hacerme llegar vuestras opiniones.

Anuncios

4 comentarios to “Video de calculadora RPN implementada sobre Libgann”

  1. Antonio Says:

    Hola Francisco,

    Muy interesante tu aplicación de reconocimiento de caracteres. Si necesitas un problema más difícil, siempre puedes reconocer caracteres japoneses :-D.

    Cuidado con un par de erratas: “tubiera” -> “tuviera”, “contubiera” -> “contuviera”. Pero bueno, errare humanum est :-).

    Hasta pronto,
    Antonio

  2. virako Says:

    Está muy chulo, 😛 Ánimo, sigue así 😉

    Saludos!!!

  3. RiverDD Says:

    Muy interesante.
    A ver si le puedo echar un vistazo. Me parece muy curioso lo que comentais del código que es muy corto. Eso es muy bueno, jeje.

    Saludos

  4. Los Proyectos más prometedores de CUSL « Pasaba por aqui… Says:

    […] Libgann: Una librería, perdón biblioteca para el desarrollo de redes neuronales. Es evidente que este tema me llamaría la atención. En principio podría parecer una biblioteca como cualquiera otra cualquiera sobre redes neuronales, pero llama mucho la atención la potencia que parace tener. Comentan que han conseguido el resultado que aparece en el video con 500 lineas incluyendo gui, generación de patrones y entrenamiento. ¡¡¡ Sorprendente !!!. Lo malo es que de momento parece que no han colgado nada de código. Os dejo un enlace al post donde aparece el video. […]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: