se pretende lograr la clasificación de puntos
en un plano pertenecientes a tres regiones predeterminadas (A, B, C). Estas
regiones se definen en la figura siguiente consistente de dos círculos
concéntricos (centro en [0.5, 0.5]) y de radios respectivos 0.5 y 0.25
contenidos en una región cuadrada de lado unitario:
Los patrones de entrenamiento se deben generar
aleatoriamente de las regiones A, B, C. Se entiende por patrón
un punto dentro del cuadrado unitario clasificado como A, B, o C. Estos
patrones deben ser generados de la manera más uniformemente posible.
La red ha de entrenarse (configurándola por ensayo y error) de tal
forma que se aprendan la clasificación. Esto ha de realizarse para
dos conjuntos de entrenamiento: de 500 y de 1000 datos.
La validación del aprendizaje, en cada caso, ha de mostrarse visualmente
tomando puntos (aproximadamente 10000 = 100 x 100) de un barrido completo
de la región cuadrada y coloreando cada punto con un color dependiendo
de la clasificación que arroje la red.
Mostrar los resultados obtenidos para ambos conjuntos de datos (500 y 1000
puntos), buscar la red más pequeña que resuelva el problema.
Escribir en el informe sus observaciones, a la hora de validar la red
entrenada, calidad de los resultados, capacidad de generalización de
la red, complejidad del entrenamiento., agregar sus propios comentarios y
decisiones a la hora de experimentar.
Nota: Realizar el experimento primero con el conjunto de 1000 puntos,
con el que se llega a la solución más rápido. Tener
cuidado al generar el conjunto de patrones de entrenamiento, debe ser lo más
uniforme posible.
Experimento 2: Reconocimiento de patrones:
Los patrones de entrada son letras representadas en matrices de 5x7, se
tendrán entonces como capa de entrada 35 U.P.
La red será entrenada con 26 patrones correspondientes a las letras
del alfabeto. La capa de salida será de 26 U.P. una por cada
letra, la de mayor activación será la ganadora. Con esta forma
de representar la salida se puede observar, cuando un patrón contaminado
con ruido intenta activar otras neuronas de la capa de salida.
Una vez entrenada la red deberá ser capaz de reconocer el patrón
de entrada original y contaminado con ruido aleatorio.
La data de entrenamiento se encuentra en el archivo
letras.dat
, la data se encuentra en dicho archivo originalmente de manera binaria,
el 0 corresponde a un pixel de color blanco y el 1 corresponde al pixel
en negro. Se deberá entrenar la red de las siguientes maneras.
Primero caso: Binario, la entrada [0,1] y salida real de [0,1]
se debe decidir cual es la de mayor activación (la ganadora).
Segundo caso: Bipolar, la entrada [-1,1] y salida real de [-1,1]
se debe decidir cual es la de mayor activación (la ganadora).
Tercer caso: Entradas reales en el intervalo (-1,1). Si la
entrada es +1 corresponderá con el color negro y el –1 con el color
blanco, y existirá toda la gama de tonalidades de grises. La
salida será real [-1,1].
Para todos los casos la red que resuelva el problema deberá poseer
el menor número posible de U.P. en la capa escondida, esto se debe
hacer por ensayo y error, se deberá colocar en el informe la manera
en que llego a esta configuración final.
A la hora de experimentar, se debe hacer una gráfica para cada caso
(binario, bipolar y real). Primero, presentar la data a la red sin contaminar
y observar si reconoce bien el patrón, luego tomar cada letra y contaminarla
con ruido del 10%, esto es hacer un barrido pixel a pixel y decidir si la
probabilidad es menor que 0.1 (10%) cambiar el pixel, sino dejarlo igual,
luego presentar el patrón contaminado a la red. Realizar este
proceso unas 20 veces por cada letra y promediar las veces que la red reconoce
la letra, graficar el error cometido. Realizar el mismo experimento
con un ruido de 20% y de 30%.
Para el caso de data real, luego de haber decidido si se contamina el pixel,
se debe elegir el grado de contaminación, esto se puede hacer eligiendo
al azar un número real entre -1 y 1
Otra prueba que se puede realizar es alterar el patrón de entrada
paulatinamente (la letra presentada) y observar hasta cuando es reconocida.
Observar casos extremos, por ejemplo: la
A y la
R, la
E y la
B, etcétera.
Comentar las gráficas obtenidas y los experimentos realizados.
Experimento
3: El juego de la "Vieja"
Consiste en entrenar las redes
para que propongan jugadas razonables (en lo posible buenas) en distintas
etapas del juego de la "Vieja" (Tic Tac Toe). Este juego se realiza entre
dos jugadores en un tablero cuadrado de 3 x 3 posiciones. Sucesiva y alternativamente
cada jugador coloca una ficha (0 para un jugador y X para el otro) en una
de las nueve posiciones desocupada. El juego se inicia con el tablero vacio
de fichas y el objetivo de cada jugador es lograr colocar tres de sus fichas
en una linea (horizontal, vertical o diagonal). El juego concluye cuando algun
jugador logra su objetivo o cuando se llena el tablero de fichas. Algunas
instancias de un juego se muestran a continuación:

Usar el siguiente archivo de entrenamiento:
trainingset.txt el cual tiene 27 entradas binarias seguidas de la
salida representada por 9 bits.
Para cada posición en el tablero se tiene una codificación
de 3 bits, 100 indica una X, 010 indica un O, 001 indica que la casilla
esta vacía. El tablero es representado por filas, un ejemplo
es el siguiente:
Cuya represnetación
binaria es:
010 100 001 100 100 010 010 010 100 001000000000
El string 001000000000 se refiere a la salida deseada, es la posición
del tablero que queda por jugar.
Nota: Esta información fue obtenida de la siguiente dirección:
TicTacToe
donde podran encontrar al final una clase de java para dibujar el tablero.
Fecha tope
de entrega: Jueves de la semana 8.