Sei sulla pagina 1di 11

Inteligencia Artificial

PERCEPTRON

I.

INTRODUCCIN El trmino "inteligencia artificial" fue acuado formalmente en 1956 durante la conferencia de Darthmounth, ms para entonces ya se haba estado trabajando en ello durante cinco aos en los cuales se haba propuesto muchas definiciones distintas que en ningn caso haban logrado ser aceptadas totalmente por la comunidad investigadora. La AI es una de las disciplinas ms nuevas que junto con la gentica moderna es el campo en que la mayora de los cientficos " ms les gustara trabajar" la red neuronal. El sistema de neuronas biolgico est compuesto por neuronas de entrada (censores) conectados a una compleja red de neuronas "calculadoras" (neuronas ocultas), las cuales, a su vez, estn conectadas a las neuronas de salidas que controlan, por ejemplo, los msculos. La figura 6 muestra un esquema conceptual. Los censores pueden ser seales de los odos, ojos, etc. las respuestas de las neuronas de salida activan los msculos correspondientes. En el cerebro hay una gigantesca red de neuronas "calculadoras" u ocultas que realizan la computacin necesaria. De esta manera similar, una red neuronal artificial debe ser compuesta por censores del tipo mecnico o elctrico.

II.

ABSTRACT Neural networks are composed of simple elements operating in parallel. These elements are inspired by biological nervous systems. As in nature, the network function is determined largely by the connections between elements. We can train a neural network to perform a particular function by adjusting the values of the connections (weights) between elements. Rosenblatt created many variations of the perceptron. One of the simplest was a single-layer network whose weights and biases could be trained to produce a correct target vector when presented with the corresponding input vector. The training technique used is called the perceptron learning rule. The Perceptron generated great interest due to its ability to generalize from its training vectors and learn from initially randomly distributed connections. Perceptrons are especially suited for simple problems in pattern classification. They are fast and reliable networks for the problems they can solve. In addition, an understanding of the operations of the perceptron provides a good basis for understanding more complex networks.

III.

OBJETIVO

Inteligencia Artificial

PERCEPTRON

Implementar perceptrones mediante toolbox y funciones bsicas del Matlab. Observar los fenmenos ocurridos durante el entrenamiento e interpretarlos. Permitir la simulacin de otros perceptrones y neuronas, para diversas aplicaciones.

IV.

PERCEPTRN La primera red neuronal conocida, fue desarrollada en 1943 por Warren McCulloch y Walter Pitts; esta consista en una suma de las seales de entrada, multiplicadas por unos valores de pesos escogidos aleatoriamente. La entrada es comparada con un patrn preestablecido para determinar la salida de la red. Si en la comparacin, la suma de las entradas multiplicadas por los pesos es mayor o igual que el patrn preestablecido la salida de la red es uno (1), en caso contrario la salida es cero (0). Al inicio del desarrollo de los sistemas de inteligencia artificial, se encontr gran similitud entre su comportamiento y el de los sistemas biolgicos y en principio se crey que este modelo poda computar cualquier funcin aritmtica o lgica. La red tipo Perceptron fue inventada por el siclogo Frank Rosenblatt en el ao 1957. Su intencin era ilustrar algunas propiedades fundamentales de los sistemas inteligentes en general, sin entrar en mayores detalles con respecto a condiciones especficas y desconocidas para organismos biolgicos concretos. Rosenblatt opinaba que la herramienta de anlisis ms apropiada era la teora de probabilidades, y esto lo llev a una teora de separabilidad estadstica que utilizaba para caracterizar las propiedades ms visibles de estas redes de interconexin ligeramente aleatorias. El primer modelo de Perceptron fue desarrollado en un ambiente biolgico imitando el funcionamiento del ojo humano, el fotoperceptrn como se le llamo era un dispositivo que responda a seales pticas; como se muestra en el figura 4.1 la luz incide en los puntos sensibles (S) de la estructura de la retina, cada punto S responde en forma todo-nada a la luz entrante, los impulsos generados por los puntos S se transmiten a las unidades de asociacin (A) de la capa de asociacin; cada unidad A est conectada a un conjunto aleatorio de puntos S, denominados conjunto fuente de la unidad A, y las conexiones pueden ser tanto excitatorias como inhibitorias. Las conexiones tienen los valores posibles +1, -1 y 0, cuando aparece un conjunto de estmulos

Inteligencia Artificial

PERCEPTRON

en la retina, una unidad A se activa si la suma de sus entradas sobrepasa algn valor umbral; si la unidad esta activada, A produce una salida que se enva a la siguiente capa de unidades.

De forma similar, las unidades A estn conectadas a unidades de respuesta (R) dentro de la capa de respuesta y la conectividad vuelve a ser aleatorio entre capas, pero se aaden conexiones inhibitorias de realimentacin procedentes de la capa de respuesta y que llegan a la capa de asociacin, tambin hay conexiones inhibitorias entre las unidades R. Todo el esquema de conexiones se describe en forma general en un diagrama de Venn, para un Perceptron sencillo con dos unidades de respuesta como el de la figura 4.2

El Perceptron era inicialmente un dispositivo de aprendizaje, en su configuracin inicial no estaba en capacidad de distinguir patrones de entrada muy complejos, sin embargo mediante un proceso de aprendizaje era capaz de adquirir esta capacidad. En esencia, el entrenamiento implicaba un proceso de refuerzo mediante el cual la salida de las unidades A se incrementaba o se decremento dependiendo de si las unidades A contribuan o no a las respuestas correctas del Perceptron para una entrada dada. Se aplicaba una entrada a la retina, y el estmulo se propagaba a travs de las capas hasta que se activase una unidad de respuesta. Si se haba activado la unidad de respuesta correcta, se incrementaba la salida de las unidades A que hubieran contribuido. Si se activaba una unidad R incorrecta, se haca disminuir la salida

Inteligencia Artificial

PERCEPTRON

de las unidades A que hubiesen contribuido. Mediante estas investigaciones se pudo demostrar que el Perceptron era capaz de clasificar patrones correctamente, en lo que Rosenblatt denominaba un entorno diferenciado, en el cual cada clase estaba formada por patrones similares. El Perceptron tambin era capaz de responder de manera congruente frente a patrones aleatorios, pero su precisin iba disminuyendo a medida que aumentaba el nmero de patrones que intentaba aprender. En 1969 Marvin Minsky y Seymour Papert publicaron su libro: "Perceptrons: An introduction to Computational Geometry", el cual para muchos signific el final de las redes neuronales. En l se presentaba un anlisis detallado del Perceptron, en trminos de sus capacidades y limitaciones, en especial en cuanto a las restricciones que existen para los problemas que una red tipo Perceptron puede resolver; la mayor desventaja de este tipo de redes es su incapacidad para solucionar problemas que no sean linealmente separables. Minsky y Papert se apartaban de la aproximacin probabilstica de Rosenblatt y volvan a las ideas de clculo de predicados en el anlisis del Perceptron. Su idea de Perceptron aparece en la figura 4.3

La estructura de un Perceptron sencillo es similar a la del elemento general de procesamiento que se muestra en la figura 4.3; en la que se observa la adicin de una condicin umbral en la salida. Si la entrada neta, a esta condicin es mayor que el valor umbral, la salida de la red es 1, en caso contrario es 0. La funcin de salida de la red en la figura 2.1.3 es llamada funcin umbral o funcin de transferencia. ( ) { }

Inteligencia Artificial

PERCEPTRON

V.

Redes Neuronales Artificiales Una red neuronal, segn Freman y Skapura, es un sistema de procesadores paralelos conectados entre s en forma de grafo dirigido. Esquemticamente cada elemento de procesamiento (neuronas) de la red se representa como un nodo. Estas conexiones establecen una estructura jerrquica que tratando de emular la fisiologa del cerebro busca nuevos modelos de procesamiento para solucionar problemas concretos del mundo real. Lo importante en el desarrollo de la tcnica de las RNA es su til comportamiento al aprender, reconocer y aplicar relaciones entre objetos y tramas de objetos propios del mundo real. En este sentido, se utilizan las RNA como unas herramientas que podr utilizarse para resolver problemas difciles. La posibilidad de resolver problemas difciles es dable gracias a los principios de las redes neuronales, los cinco ms importantes son citados por Hilera y Martnez. Aprendizaje adaptativo Auto organizacin Tolerancia a fallos Operacin en tiempo real Fcil insercin en la tecnologa existente

El proceso de aprendizaje consiste en hallar los pesos que codifican los conocimientos. Una regla de aprendizaje hace variar el valor de los pesos de una red hasta que estos adoptan un valor constante, cuando esto ocurre se dice que la red ya "ha aprendido". Al conectar varias neuronas de un determinado modo, se consigue una red. Existen variaciones de topologas, que se clasifican segn tres criterios: 1. Nmero de niveles o capas.

Inteligencia Artificial

PERCEPTRON

2. Nmero de neuronas por nivel. 3. Formas de conexin. VI. DESARROLLO EPERIMENTAL PARA LA APLICACIN DE UNA RED NEURONAL

Programe en MATLAB o el lenguaje de su preferencia un Perceptron simple para realizar las siguientes funciones de tres bits: a) La funcin lgica AND usando solo el lenguaje bsico Matlab.
V=[0 0 0 0 1 1 1 1; 0 0 1 1 0 0 1 1; 0 1 0 1 0 1 0 1]; t=[0 0 0 0 0 0 0 1]; T=t; R=T; w=[1 2 2.80]; ALFA=0.8; bias=-1;

for j=0:1:3 for i=1:1:8 P1(:,i+8*j)=V(1,i) P2(:,i+8*j)=V(2,i); P3(:,i+8*j)=V(3,i); T(:,i+8*j)=T(1,i); a=w*V(:,i); THITA(:,i+8*j)=bias; if a>=bias y=1; Y(:,i+8*j)=y; t=R(:,i); Z=ALFA*(t-y); l=V(1,i)*Z; m=V(2,i)*Z; n=V(3,i)*Z; W(:,i+8*j)=w; w1=[l, m, n]; w=w+w1; bias=bias-Z; else y=0; W(:,i+8*j)=w; if R(:,i)==1 t=R(:,i); Z=ALFA*(t-y); l=V(1,i)*Z; m=V(2,i)*Z; n=V(3,i)*Z; w1=[l, m, n]; w=w+w1; bias=bias-Z; Y(:,i+8*j)=y; end end end

Inteligencia Artificial

PERCEPTRON

end R=T; W1=W(1,:); W2=W(2,:); W3=W(3,:); THITa= THITA; P1=P1; P2=P2; P3=P3; Y=Y; T=T; TBL1=[W1;W2;W3;THITA;P1;P2;P3;Y;T]; fid1=fopen('NeuronaEntrenamiento.tex','w'); fprintf(fid1,'Tabla de Entrenamiento de Neurona\n\n'); fprintf(fid1,' W1 W2 W3 TH P1 P2 P3 Y T \n'); fprintf(fid1,'%-2.2f %-2.2f %-2.2f %-2.2f %1.0f %1.0f %1.0f %1.0f %1.0f \n',TBL1); if Y(1,8*(3-1):8*3)==R(1,8*(3-1):8*3) fprintf(fid1,'RED ENTRENADA\n\n ') else fprintf(fid1,'RED NO ENTRENADA INTRODUZCA MAS INTERACCIONES O CAMBIE LOS PESOS INICIALES\n\n') end fclose(fid1);

INTERPRETACION: Para desarrollar el algoritmo de entrenamiento de la red neuronal utilizamos las funciones bsicas de Matlab, creando la codificacin vista anteriormente, cuya interpretacin est basada en la teora del Perceptron simple. Antes de comenzar, limpiamos el espacio de trabajo de Matlab. Inicialmente ingresamos las entradas y la salida correspondientes. Estas entradas dependen del tipo de lgica que vamos a entrenar. En este caso la compuerta AND.

b) La funcin lgica OR usando las funciones del mdulo de redes neuronales de Matlab.
V=[0 0 0 0 1 1 1 1; 0 0 1 1 0 0 1 1; 0 1 0 1 0 1 0 1]; t=[0 1 1 1 1 1 1 1]; T=t; R=T; w=[1 2 2.80]; ALFA=0.8; bias=-1;

for j=0:1:3

Inteligencia Artificial for i=1:1:8 P1(:,i+8*j)=V(1,i); P2(:,i+8*j)=V(2,i); P3(:,i+8*j)=V(3,i); T(:,i+8*j)=T(1,i); a=w*V(:,i); THITA(:,i+8*j)=bias; if a>=bias y=1; Y(:,i+8*j)=y; t=R(:,i); Z=ALFA*(t-y); l=V(1,i)*Z; m=V(2,i)*Z; n=V(3,i)*Z; W(:,i+8*j)=w; w1=[l, m, n]; w=w+w1; bias=bias-Z; else y=0; W(:,i+8*j)=w; if R(:,i)==1 t=R(:,i); Z=ALFA*(t-y); l=V(1,i)*Z; m=V(2,i)*Z; n=V(3,i)*Z; w1=[l, m, n]; w=w+w1; bias=bias-Z; Y(:,i+8*j)=y; end end end

PERCEPTRON

end R=T; W1=W(1,:); W2=W(2,:); W3=W(3,:); THITa= THITA; P1=P1; P2=P2; P3=P3; Y=Y; T=T; TBL1=[W1;W2;W3;THITA;P1;P2;P3;Y;T]; fid1=fopen('NeuronaEntrenamiento.tex','w'); fprintf(fid1,'Tabla de Entrenamiento de Neurona\n\n'); fprintf(fid1,' W1 W2 W3 TH P1 P2 P3 Y T \n'); fprintf(fid1,'%-2.2f %-2.2f %-2.2f %-2.2f %1.0f %1.0f %1.0f %1.0f %1.0f \n',TBL1); if Y(1,8*(3-1):8*3)==R(1,8*(3-1):8*3) fprintf(fid1,'RED ENTRENADA\n\n ') else fprintf(fid1,'RED NO ENTRENADA INTRODUZCA MAS INTERACCIONES O CAMBIE LOS PESOS INICIALES\n\n') end fclose(fid1);

Inteligencia Artificial

PERCEPTRON

c) La funcin lgica XOR.


net=newff([0 1; 0 1],[2,1], {'logsig', 'logsig'}) input=[1 1 0 0;1 0 1 0] output=sim(net, input) target=[0 1 1 0] plot(target,'o') hold on plot(output,'+r') net.LW{1,1}

Interpretacin:
Inicialmente se ingresan las entradas y las salidas respectivas, que en este caso sern designadas como x y y respectivamente. x=[0 0 0 0 1 1 1 1;0 0 1 1 0 0 1 1;0 1 0 1 0 1 0 1]; y=[0 1 1 0 1 0 0 1]; plotpv(x,y): Esto me permite visualizar la ubicacin de los valores de las entradas y las salidas en un grfico ploteado. red=newff(minmax(x), [4 1], {'logsig','logsig'}, 'trainlm'); Creamos nuestra red BackPropagation (Feedfoward), solo contemplamos los valores mximos y mnimos de la entrada x, adems definimos que existirn 4 neuronas, y 1 de ellas ser la de salida, luego definimos funciones de entrenamiento y el mtodo en el que se va a entrenar. red.trainParam.show=50; Es el intervalo de visualizacin de los resultados. red.trainParam.lr=0.02; Data de aprendizaje. red.trainParam.epochs=500; Mximo nmero de iteraciones para obtener convergencia. red.trainParam.goal=1e-10; Error mximo permitido. [red,tr]=train(red,x,y); Procedimiento para entrenar a la red. El resto de cdigo es sencillamente para mostrar pesos y bias, para luego proseguir con la simulacin. VII. CONCLUSIONES Es un modelo de red neuronal muy simple, con lo que no se pueden llevar a cabo de una manera correcta los objetivos planteados por Rosenblatt

Inteligencia Artificial

PERCEPTRON

(reconocimiento de patrones visuales) u otros de los problemas planteados dentro del entorno que cubre las RNA. Sin embargo, cre los principios sobre los que se fundamentan los modelos de redes neuronales posteriores, especialmente en lo que concierne a la estructura y funcionamiento de los elementos de proceso. El Perceptron es un modelo de red neuronal de aprendizaje por refuerzo (se fija slo en si la salida est bien o mal, pero no en el valor de la discrepancia entre ambas), sncrono y sin realimentacin. Las aplicaciones del Perceptron se limitan a los problemas separables linealmente como puede ser la separacin de elementos en varias clases (siempre que sean linealmente separables una de otra). En esta ocasin, tendremos tantos elementos Perceptron en la capa de salida como clases existan. La entrada presentada pertenecer a aquella clase cuya salida sea 1, lo que la diferenciar de las dems que sern 0.

VIII.

RECOMENDACIONES El algoritmo de Adaline utiliza una regla conocida como regla Delta creada por Widrow y Hoff, esta regla en tiempo de entrenamiento actualiza o cambia los pesos de las conexiones neuronales para minimizar la diferencia ente la entrada de la red a la unidad de salida y el valor deseado, es decir, aproxima los valores obtenidos hacia los valores deseados. Esto se logra reduciendo el error en cada patrn a la vez. Tambin se pueden realizar actualizaciones de pesos de patrones por lotes, es decir, corregir el peso de las conexiones de un conjunto de patrones en vez de uno por uno El Adaline calcula el error a partir de a entrada total, y el Perceptron utiliza la salida. Yo recomendara implementar Adaline en vez del Perceptron, ya que este no solo garantiza una solucin vlida para problemas linealmente separables, sino que produce un error mnimo, segn el criterio utilizado LMS (Least Means Square error). Es claro entonces que Adaline en la mayora de los casos es ms eficiente que el Perceptrn, claro est que este se bas en los principios de su antecesor (el Perceptrn), as que no debemos menospreciar ste.

IX.

BIBLIOGRAFA

Inteligencia Artificial

PERCEPTRON

Internet: http://www.infor.uva.es/biometria/Documentos/informes_uva/EstadoArte/Es tadoArte/node12.html http://www.mathworks.com/access/helpdesk/help/toolbox/nnet/nnet_tocfra me.s.html http://hn.ruv.itesm.mx/hn/pgit/get/ago02/cs5012/foros/moderado/52.html?i nline=1&nogifs.

Potrebbero piacerti anche