Proyecto 3
Redes Neuronales

Entrega: día y hora del examen final
Grupos: máximo 3 personas

Inteligencia Artificial
2006-I

1 Aplicación

El objetivo es desarrollar una aplicación basada en redes neuronales para el reconocimiento de caracteres. La aplicación debe proveer una interfaz de usuario gráfica que permita cargar los archivos de datos, especificar los parámetros del algoritmo y visualizar los resultados. Los requerimientos de la aplicación son los siguientes:

  1. Cada caracter se representará como una matriz de bits de 9X9.
  2. El usuario podrá especificar un conjunto de datos de entrenamiento.
  3. El usuario podrá especificar los parámetros de la red neuronal a ser usada: tamaño de la capa interna, número de iteraciones máxima, error máximo, etc.
  4. Durante el entrenamiento, se podrá ver la evolución del error de entrenamiento, preferiblemente de forma gráfica (usando, por ejemplo, JFreeChart, http://www.jfree.org/jfreechart/).
  5. Al finalizar el entrenamiento, el usuario podrá probar la red con datos de prueba que podrá cargar desde archivo.
  6. Igualmente, la aplicación debe proveer un componente gráfico que permita introducir el caracter a probar de manera interactiva.
  7. Se sugiere usar una librería, tal como Joone (http://www.jooneworld.com/), para implementar el algoritmo de entrenamiento y simulación de la red neuronal.

2 Experimentación

El archivo letras.zip contiene un conjunto de letras en diferentes fuentes (4 letras: a,b,e, y f; 12 fuentes diferentes). Las letras tienen una resolución de 9x9 pixels y están en formato pgm. Este formato representa las imágenes usando un archivo de texto plano que puede ser fácilmente procesado.

  1. Procese los archivos para generar un conjunto de patrones que pueda ser leído por su programa. Use las fuentes 1 a 10 para entrenamiento y las fuentes 11 y 12 para pruebas. Además cree un archivo adicional de pruebas usando las fuentes 1 y 2 adicionando un 10% de ruido.
  2. Use su programa para entrenar y probar una red neuronal. Varíe el número de neuronas de la capa interna. Pruebe la red con los dos conjuntos de prueba.
  3. Muestre los resultados de manera detallada (evolución del error de entrenamiento, error en el conjunto de prueba, matrices de confusión).
  4. Discuta los resultados. Puede explicarlos?

3 Entrega

El trabajo final se debe entregar en un disquete o CD que contenga:

  1. El código fuente debidamente documentado.
  2. Una descripción de la arquitectura global de la aplicación (módulos, diagramas de clase)
  3. El programa ejecutable con instrucciones para ejecutarlo.
  4. Un documento en HTML que contenga:
    1. un manual de usuario breve de la aplicación,
    2. una descripción de la arquitectura de la aplicación y
    3. el proceso experimental incluyendo los resultados y su respectivo análisis.