ana silvia avalos ibarra.-reporte de práctica perceptrón

8

Click here to load reader

Upload: ana-silvia-avalos-ibarra

Post on 26-May-2017

223 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Ana Silvia Avalos Ibarra.-Reporte de Práctica Perceptrón

1

Instituto Tecnológico de la Laguna

Maestría en Ciencias en Ingeniería Eléctrica

Instrumentación Electrónica

Práctica de Redes Neuronales

Profesor: Martín Vázquez Rueda

*Ana Silvia Avalos Ibarra No. De Control: M1313073 TORREÓN COAHUILA A 27 DE MARZO DE 2014

Inteligencia Artificial

Page 2: Ana Silvia Avalos Ibarra.-Reporte de Práctica Perceptrón

2

Introducción

El Perceptrón dentro del campo de las redes neuronales puede entenderse como la neurona artificial y unidad básica de inferencia en forma de discriminador lineal, es decir, un algoritmo capaz de generar un criterio para seleccionar un sub-grupo, de un grupo de componentes más grande. La limitación de este algoritmo es que si dibujamos en un plot estos elementos, se deben poder separar con un hiperplano los elementos "deseados" de los "no deseados". El perceptrón puede utilizarse con otros perceptrones u otro tipo de neurona artificial, para formar redes neuronales más complicadas.

Figura 1.- Perceptrón con dos entradas

Definición

El modelo biológico más simple de un perceptrón es una neurona y viceversa. Es decir, el modelo matemático más simple de una neurona es un perceptrón. La neurona es una célula especializada y caracterizada por poseer una cantidad indefinida de canales de entrada llamados dendritas y un canal de salida llamado axón. Las dendritas operan como sensores que recogen información de la región donde se hallan y la derivan hacia el cuerpo de la neurona que reacciona mediante una sinapsis que envía una respuesta hacia el cerebro, esto en el caso de los seres vivos.

Una neurona sola y aislada carece de razón de ser. Su labor especializada se torna valiosa en la medida en que se asocia a otras neuronas, formando una red. Normalmente, el axón de una neurona entrega su información como "señal de entrada" a una dendrita de otra neurona y así sucesivamente. El perceptrón que capta la señal en adelante se entiende formando una red de neuronas, sean éstas biológicas o de sustrato semiconductor (compuertas lógicas).

Page 3: Ana Silvia Avalos Ibarra.-Reporte de Práctica Perceptrón

3

El perceptrón usa una matriz para representar las redes neuronales y es un discriminador terciario que

traza su entrada (un vector binario) a un único valor de salida (un solo valor binario) a través de dicha matriz.

Donde es un vector de pesos reales y es el producto punto (que computa una suma ponderada). es el 'umbral', el cual representa el grado de inhibición de la neurona, es un término constante que no depende del valor que tome la entrada.

El valor de (0 o 1) se usa para clasificar como un caso positivo o un caso negativo, en el caso de un problema de clasificación binario. El umbral puede pensarse de como compensar la función de activación, o dando un nivel bajo de actividad a la neurona del rendimiento. La suma ponderada de las entradas debe producir un valor mayor que para cambiar la neurona de estado 0 a 1.

Ejemplo

Considerando las funciones AND y OR, estas funciones son linealmente separables y por lo tanto pueden ser aprendidas por un perceptrón.

La función XOR no puede ser aprendida por un único perceptrón puesto que requiere al menos de dos líneas para separar las clases (0 y 1). Debe utilizarse al menos una capa adicional de perceptrones para permitir su aprendizaje.

Page 4: Ana Silvia Avalos Ibarra.-Reporte de Práctica Perceptrón

4

Descripción de Práctica de Reconocimiento de Letras

Para el reconocimiento de letras, realicé una codificación de éstas, separándolas por 15 caracteres, a continuación muestro en una hoja de Excel como:

Figura 2.- Entradas utilizadas para generar mi perceptrón

Page 5: Ana Silvia Avalos Ibarra.-Reporte de Práctica Perceptrón

5

Los renglones que forman la letra, representan al carácter que meteré a mi perceptrón para recibir como salida el target que posiciono a un lado, una vez que mi red ha sido entrenada, como cada letra está formada por quince variables, mi red será de quince entradas y de cuatro salidas, a continuación el código que utilice para escribir en Matlab.

Figura 3.- Código escrito para Matlab

Uso la palabra net, porque de esta manera quiero llamar a mi perceptrón, para definir un perceptrón se

usa la función newp, pongo quince entradas representadas por 1 0; utilizo quince porque son quince

datos los que conforman a mi letra, y uso 4 salidas, porque estas cuatro salidas me generaran las

posibles diez combinaciones diferentes, una para cada valor que asigne a mi letra.

A continuación en la variable P, listo las posibles entradas que tendre, es decir tengo diez posibles

combinaciones de quince entradas diferentes cada una, y para finalizar listo en la variable T, mis cuatro

salidas y sus diez combinaciones diferentes, una para el valor que representa a cada letra.

Page 6: Ana Silvia Avalos Ibarra.-Reporte de Práctica Perceptrón

6

Listo una nueva variable, la cual decidí llamar neta, esto para guardar la red entrenada mediante esta

función:

Neta=train(net,P,T)

Para poder entrenar mi red, debo llamar a mi perceptrón en este caso net, a mi variable P, en la cual

guardo los datos, y mi variable T, en la cual almaceno las posibles salidas deseadas.

Al hacer esto mi programa me despliega la siguiente ventana:

Figura 4.- Entrenamiento de perceptrón

Page 7: Ana Silvia Avalos Ibarra.-Reporte de Práctica Perceptrón

7

Figura 5.- Rendimiento del entrenamiento de Perceptrón

Ahora para verificar que mi red ha sido entrenada correctamente, daré las entradas correspondientes a la letra H y debe proporcionarme la salida deseada.

Figura 6.- Simulando entradas para obtener la letra H

Como se puede visualizar el entrenamiento ha sido el correcto, pongamos otro ejemplo, la letra E

Page 8: Ana Silvia Avalos Ibarra.-Reporte de Práctica Perceptrón

8

Figura 7.- Simulando entradas para obtener la letra E

El resultado también es correcto, para utilizar este código es necesario guardar en una variable la salida deseada, usar la función sim, en la cual pondremos el nombre de la red entrenada, así como los datos de entrada que necesitamos.

Conclusiones

En conclusión el perceptrón resulta muy efectivo cuando una función resulta linealmente separable, pero cuando requiere al menos dos líneas para separas las clases debe utilizarse al menos una capa mas de perceptrones para permitir su aprendizaje.