Proyecto 3
Redes Neuronales
Entrega: día y hora del
examen final
Grupos: máximo 3 personas
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:
- Cada caracter se representará como una matriz de
bits de 9X9.
- El usuario podrá especificar un conjunto de
datos de entrenamiento.
- 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.
- 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/).
- Al finalizar el entrenamiento, el usuario podrá
probar la red con
datos de prueba que podrá cargar desde archivo.
- Igualmente, la aplicación debe proveer un componente
gráfico que permita introducir el caracter a probar de manera
interactiva.
- 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.
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.
- 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.
- 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.
- Muestre los resultados de manera detallada (evolución del
error de entrenamiento, error en el conjunto de prueba, matrices de
confusión).
- Discuta los resultados.
Puede explicarlos?
El trabajo final se debe entregar en un disquete o CD que contenga:
- El código fuente debidamente documentado.
- Una descripción de la arquitectura global de la aplicación (módulos, diagramas de clase)
- El programa ejecutable con instrucciones para ejecutarlo.
- Un documento en HTML que contenga:
- un manual de usuario breve de la aplicación,
- una descripción de la arquitectura de la
aplicación y
- el proceso experimental incluyendo los resultados y su respectivo
análisis.