Escolar Documentos
Profissional Documentos
Cultura Documentos
FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
SESIÓN DE LABORATORIO No. 2
1. OBJETIVOS
Conocer la manera como se puede usar una red neuronal tipo Perceptrón en la
clasificación de caracteres.
Realizar un reconocimiento de caracteres usando el Perceptrón del MATLAB®
Realizar un reconocimiento de caracteres usando el UVSRNA
Como ya se ha mencionado anteriormente, el Perceptrón es una red que solo puede resolver
problemas linealmente separables; a pesar de esta limitante, con él se pueden hacer
aplicaciones muy interesantes tal como el reconocimiento de patrones en general y de
caracteres escritos en particular, como se mostrará en el desarrollo de esta guía.
El reconocimiento se realiza cuando se utiliza una regla para asignar a una muestra una
clase determinada; el patrón se define con base en un proceso de aprendizaje. Para definir
un patrón se utiliza una muestra controlada de dicho patrón. Los patrones de esta muestra
son ejemplos de cada una de las clases de patrones. Estos son los elementos básicos que
conforman los sistemas de clasificación de patrones.
Un patrón j-ésimo está definido por el vector XJ = [X1j,X2j, ... Xfj, ...,XFj]T , en donde el
elemento Xfj hace referencia al valor de la característica f-ésima en el patrón j-ésimo y F es
el número total de características que describen el patrón. El número de clases, que
llamaremos C, en los problemas de reconocimiento de patrones es finito, de modo que i =
1,2, ...,C es la notación general para una clase y Ci el conjunto de patrones que lo integran.
Se dice que es una muestra controlada, cuando se conoce perfectamente una muestra Xi =
[X1i, X2i, ..., Xni]T de ni patrones. Finalmente, Xfji se define como el valor de la característica
f en el patrón j que pertenece a la clase i. La tarea final de un sistema de reconocimiento de
patrones consiste en asignar el patrón Xj a la clase que signifique menor probabilidad de
error en la clasificación.
Espacio de decisión. El clasificador usa esta información para asignar el dato de entrada a
una categoría proveniente de un conjunto de categorías pre-establecidas, dependiendo de
sus características.
ESPACIO DE
CARACTERÍSTICAS
ESPACIO DE ESPACIO DE
PATRONES DECISIÓN
Extractor
Salida
Señal
Sensor Clasificador
Digitalizada
Selector
3. PROCEDIMIENTO
El objetivo es entrenar un Perceptrón que pueda identificar los números del 0 al 9 donde
cada número se puede definir en una matriz de 5*3. Por ejemplo el número 2 será:
1 1 1
0 0 1
1 1 1
1 0 0
1 1 1
Para resolver el problema, es necesario verificar todos los patrones correspondientes a cada
número y asignarles el respectivo valor de salida. En nuestro caso, definiremos por patrón
un vector de entrada de 15 elementos y un vector de salida de 4 elementos,
correspondientes al número binario equivalente.
0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1
0 0 1
0 0 1
0 0 1
0 0 1
1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1
0 0 1
1 1 1
1 0 0
1 1 1
1 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 1
0 0 1
0 1 1
0 0 1
1 1 1
1 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0 0 1
1 0 1
1 1 1
0 0 1
0 0 1
1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1
1 0 0
1 1 1
0 0 1
1 1 1
1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1
1 0 0
1 1 1
1 0 1
1 1 1
1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 0 0 1
0 0 1
0 0 1
0 0 1
0 0 1
1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1
1 0 1
1 1 1
1 0 1
1 1 1
Ahora se necesita definir la salida que deseamos genere la red. Para lograr este propósito se
debe codificar de alguna manera la información que generará la red en sus neuronas de
salida. Una alternativa consiste en que la salida de la red esté formada por el código binario
del número que se le está presentando a la entrada. Es decir, si a la red le llegan como
entrada los 15 bits correspondientes al número 0, ella generará el código binario del cero
expresado en 4 bits (0 0 0 0); o en otro caso, si le llegan como entrada los 15 bits
correspondientes al número 1, ella generará el código binario del uno expresado en 4 bits
(0 0 0 1) y así con el resto de patrones.
Teniendo en cuenta estos resultados los patrones de entrenamiento para los números
decimales se presentan en la Tabla 2. En la Tabla 3 se presenta el código en MATLAB ®
para lograr el entrenamiento adecuado.
COMANDOS COMENTARIOS
X=[ Patrones de Entrada.
Escriba los valores que debe tener la
]; matriz X
D=[ 0 0 0 0 0 0 0 0 1 1; Patrones de Salida
0 0 0 0 1 1 1 1 0 0;
0 0 1 1 0 0 1 1 0 0;
0 1 0 1 0 1 0 1 0 1];
red=newp(minmax(X),4); Definición de la red
red.iw{1,1}=rand(4,10); Asignación de pesos aleatorios
red.b{1}=rand(4,1);
red.trainParam.show=1; Evolución de la red en cada iteración
disp('los pesos inciales son:') Muestra los pesos asignados por la función
Pesos=red.iw{1,1} random.
Bias=red.b{1}
pause(2);
red = train(red,X,D) Entrenamiento de la red
disp('para validar la red, digite el Validación de la red.
vector de patrones de entrada') Se pide digitar un patrón para verificar el
disp('Numero de 10 binarios entre [ ]') funcionamiento de la red entrenada.
X1=input('X1=') Entrada del patrón
Y = sim(red, X1'); Simulación de la red
disp('el numero resultante, en binario, leído de Presentación del valor correspondiente
arriba para abajo es:') digitado por el usuario ( se presenta en
Y forma binaria –4 bits)
Como ejemplo se presentan dos entrenamientos de la red; para cada uno se ilustra la gráfica
de evolución en el entrenamiento y el patrón introducido para el proceso de validación.
Primera Ejecución
0
Performance is 0, Goal is 0
10
TrainingBlue
1
10
2
10
0 5 10 15 20 25 30
34 Epochs
Segunda ejecución:
0
Performance is 0, Goal is 0
10
TrainingBlue
1
10
2
10
0 5 10 15 20 25 30 35 40
42 Epochs
Para realizar esta tarea con UVSRNA, inicialmente se debe crear un archivo texto con los
patrones que se desean usar para el proceso de entrenamiento. Este archivo se guarda con la
extensión *.pat., siguiendo el formato que se presenta en la Tabla 4. Complete el archivo de
patrones con los patrones necesarios para reconocer los números decimales (0-9).
Una vez creado el archivo, cargue el archivo de patrones desde UV-SRNA ( leer
patrones del menú de archivo ).
Con los patrones cargados se procede a inicializar la red, para esto solo es necesario
oprimir el botón de inicializar.
Luego de entrenada la red genere el archivo de red. Con esta información realice un
esquema donde muestre el valor del peso con que quedó cada conexión de la red.
4. EJERCICIOS
1. Entrenar una red neuronal tipo Perceptrón tanto en MATLAB® como en UVSRNA que
sirva para reconocer las vocales.
2. Entrenar una red neuronal tipo Perceptrón tanto en MATLAB® como en UVSRNA que
sirva para reconocer el código hexadecimal.
3. Entrenar una red neuronal tipo Perceptrón tanto en MATLAB® como en UVSRNA que
sirva para reconocer las letras del nombre de algún integrante del grupo.
4. Entrenar una red neuronal tipo Perceptrón tanto en MATLAB® como en UVSRNA que
sirva para reconocer cuatro figuras geométricas sencillas (un cuadrado, un triángulo, un
rectángulo y un rombo).
5. INFORME