1. CIDE. Programa de electrnica. . 1 FUNCIN DE TRANSFERENCIA DE
UN PERCEPTRN CON MATLAB. ANCIZAR PAREDES ARDILA Ingeniero
Electrnico Universidad Antonio Nario Docente Programa Electrnica
Mecatrnica e-mail: [email protected] e-mail:
[email protected] COLOMBIA RESUMEN: Una de las estructuras de las
redes Neuronales es el Perceptrn, aunque existen innumerables
documentos y aportes entorno a la funcin de transferencia de sta
estructura, el presente artculo es el fruto del estudio hecho en
una primera aproximacin al concepto, generando un material
didctico, como estrategia de divulgacin en la Corporacin
Internacional para el Desarrollo Educativo (CIDE), entorno al
proyecto Redes Neuronales Artificiales (RNA), adscrito al grupo de
Investigacin de la Facultad de Ingenieras y Administracin de la
misma (IARN-CIDE). El presente material didctico se aplicar en la
fase exploratoria del concepto hacia la implementacin del algoritmo
en un prototipo robtico, especficamente un robot de tipo mvil, sin
embargo, ste se puede usar en cualquier campo del conocimiento, de
los programas ofertados en la CIDE, a nivel tecnolgico, tales como
Sistemas, Gestin Empresarial, Electrnica, Mecatrnica, Alimentos,
entre otros. PALABRAS CLAVE: Redes Neuronales Artificiales,
Perceptrn, Funcin de Transferencia, Matlab. Abstract: Keywords: 1
INTRODUCCIN Las Redes Neuronales Artificiales, son consideradas una
de las herramientas de amplio uso en los algoritmos que incluyen el
concepto de Inteligencia Artificial (IA). En ste trabajo, se
plantea el uso de Matlab como herramienta en la simulacin de una
estructura fundamental de las redes Neuronales Artificiales (RNA),
el Perceptrn; dicho algoritmo se plantea de manera genrica, el
estudiante puede usarla en cualquier situacin donde lo nico que
debe tener es un computador con el software de MathWorks (Matlab),
definidas las entradas a la Neurona y las salidas deseadas, la
neurona responder segn se le entrene mediante una estrategia de
aprendizaje, de las muchas que se pueden implementar, quedando
propuesto en el cdigo, de libre distribucin, el implementar otras
estrategias de aprendizaje. Se debe hacer claridad sobre cada uno
de los conceptos, anteriormente mencionados, estrategias de
aprendizaje, entradas a la neurona, salidas deseadas, para ello se
aborda el tema desde la explicacin funcional biolgica, luego se
presenta el modelo matemtico del Perceptrn, no siendo la nica
estructura existente en las redes neuronales, luego se presenta el
cdigo del aplicativo, para finalmente, ilustrar los resultados
obtenidos en el aplicativo con un ejemplo. Los alcances de ste
artculo, son los de presentar una herramienta tecnolgica
ampliamente conocida y de fcil uso para las personas que estn
familiarizadas con el cdigo de programacin; sin embargo puede ser
usado por personas en estado inicial del uso de software, ya que la
interface le permite aplicar el concepto de RNA fcilmente,
ejecutando el cdigo desde Matlab, con las limitaciones que se
exponen en el apartado respectivo al ejemplo de aplicacin. 2
APROXIMACION TEORICA Segn las intenciones planteadas del artculo,
tratando de abordar el tema de manera integral, se plantea una
aproximacin terica en tres dimensiones: Biolgica: Sin profundizar
en ella, se plantea la explicacin de cmo funciona una neurona en el
ser humano. Matemtica: Se presenta la informacin delimitada del
funcionamiento y modelo matemtico de la estructura de un Perceptrn,
ubicndola en el contexto global de las Redes Neuronales
Artificiales Tcnica: Se hace referencia al uso de Matlab, en la
codificacin del modelo matemtico del Perceptrn. 2.1 CONCEPTO
BIOLOGICO La estructura fundamental del sistema nervioso central es
la Neurona, sta como unidad funcional, hace parte de una estructura
ms compleja, el cerebro. Aunque se presume que el lector tiene
nociones de este tema, se plantea la descripcin de sta para
explicar su funcionamiento
2. CIDE. Programa de electrnica. . 2 Figura 1. Estructura
Biolgica de una Neurona. [1] Como se puede observar, la clula est
dividida en partes funcionales, cada una de ellas se describe a
continuacin: Axn: Rama principal que sale del cuerpo de la Neurona,
su principal funcin es la de transmitir la informacin a las
dendritas, stas a su vez conectan dicha informacin a las otras
Neuronas. Dendritas: Ramas ms cortas que el axn, las cuales llevan
los impulsos nerviosos a otras neuronas. A travs de ellas se
realizan las conexiones o Sinapsis con otras Neuronas. Soma: Es el
cuerpo de la clula nerviosa, su funcin es la de fabricar los
elementos necesarios para la vida de la Neurona, tal como sucede en
las otras clulas del cuerpo. Una red Neuronal, se genera a partir
de un proceso de aprendizaje, es decir, cuando estamos aprendiendo
algo, se crea una conexin entre las neuronas, constituyendo el
aprendizaje, para luego ejecutar la funcin de la red creada, cuando
nos enfrentemos a una situacin similar, es decir, cuando aprendemos
a leer se generan una serie de conexiones neuronales que son
utilizadas, cada vez que nos enfrentamos a la misma tarea. De
manera similar, se plantea el concepto de las Redes Neuronales
Artificiales, las cuales se usan cada vez que el algoritmo se
entrena, en una aplicacin especfica, sin embargo no se debe compara
las unas con las otras, pues las RNA, solo emulan una de las muchas
funciones complejas de las redes neuronales biolgicas. 2.2 Redes
Neuronales Artificiales: El Perceptrn. No es la nica estructura
conocida y concebida para el desarrollo de las redes Neuronales,
entre otras se encuentran: Kohonen, ART, Hopfield, entre otros.
Para el caso que nos ocupa se realiza el estudio a partir del
Perceptrn multicapa. El Perceptrn es concebido por el psiclogo
Frank Rosenblatt de la Universidad de Corell en 1959. ste es
utilizado inicialmente para la solucin de situaciones donde los
estados a la salida, son diferenciados y de fcil separacin. A
partir de la estructura sencilla del Perceptrn se pueden construir
estructuras ms complejas, sin embargo, dada su simplicidad, su
estudio fue abandonado a mediados de los 70 pues se descubri que en
tareas de clasificacin como la XOR, era incapaz de funcionar
adecuadamente [Minsky y Papert]. Como se indic en la seccin
anterior las RNA, funcionan de manera similar a su contraparte
biolgica, con algunas caractersticas: aprendizaje, plasticidad y
procesamiento en paralelo. Aprendizaje: ya que la neurona puede ser
entrenada y aprender a responder segn las entradas a una situacin
especfica, mediante las salidas deseadas; Plasticidad: pues si
alguna de las estructuras funcionales llegase a fallar, existen
otras que respaldan la funcin de la neurona, evitando que sta
responda de manera errada y Procesamiento en paralelo: ya que al
recibir varios estmulos al mismo tiempo responde segn el estmulo ms
fuerte o segn sea configurada. Para explicar el funcionamiento del
Perceptrn se debe hacer referencia a su concepcin matemtica, ste
modelo, permite realizar una aproximacin a la programacin necesaria
que emular el funcionamiento de la Neurona. Figura 2.2.1 Estructura
de un perceptrn [1] Como se observa en la Figura 2.1.1 las partes
constitutivas del Perceptrn son: Capa de Entrada: Constituye las
entradas de la Neurona, las cuales se toman una a una y se conectan
a la capa oculta con sus pesos respectivos. Capa Oculta: All est
configurada la funcin de transferencia de la RNA, es decir, la
forma como toma cada entrada y la evala. Capa de salida: Constituye
la salida, en ste caso es una sola. Ahora bien, aunque es
importante resaltar las caractersticas ms importantes de las
Redes
3. CIDE. Programa de electrnica. . 3 Neuronales Artificiales
(RNA), en el presente artculo solo haremos referencia al Perceptrn
Bsico. Adems de su estructura se debe reconocer en las RNA, 4
caractersticas importantes: Topologa, mecanismo de aprendizaje,
asociacin entre la informacin de entrada y la informacin de salida
y la forma como se representa la informacin, de ello depende la
comprensin del funcionamiento de ste primer acercamiento al
Perceptrn. A continuacin se presenta una breve descripcin de tales
caractersticas. 2.2.1 Topologa: Hace referencia a la forma como se
conectan las redes neuronales, el nmero de conexiones entre las
neuronas, la cantidad de neuronas en cada capa y el grado de
conectividad. En ste caso se habla de Redes Monocapa y Redes
Multicapa. 2.2.2 Mecanismo de aprendizaje: Es la forma como la red
actualiza los pesos de acuerdo a la informacin de entrada; como
analoga a los sistemas biolgicos, se puede pensar en la forma como
se conecta o desconecta una red neuronal; cuando se produce un
aprendizaje, se genera una conexin esto quiere decir que para la
RNA, el peso es distinto de cero, pero cuando se realiza una
desconexin por el proceso de aprendizaje que sucede en el cerebro,
esto se interpreta en la RNA, como el equivalente a cero del peso
que conecta a la entrada respectiva. Segn esta caracterstica las
RNA pueden ser: con aprendizaje supervisado o con aprendizaje no
supervisado. Cada uno de ellos tienen sus propias caractersticas no
se profundizar en ellos ya que sta intensin escapa a los lmites del
presente artculo. 2.2.3 Asociacin de la informacin Entrada /
Salida: Es la forma como la red neuronal almacena los pesos nuevos
a partir de los aprendizajes, estos son formas de representacin del
nuevo conocimiento para la RNA. Es decir tiene un comportamiento
similar al encontrado en los sistemas biolgicos y que se conoce
como memoria asociativa. Segn ste criterio, las RNA pueden ser:
Heteroasociativas (Mantienen la informacin gracias a la existencia
de dos capas una para captar la informacin y otra para retenerla) y
Autoasociativas (compara las entradas actuales con los datos
almacenados y escoge el ms parecido en el estado presente). 2.2.4
Representacin de la informacin Entrada/Salida: Los datos a tratar
pueden ser continuos o discretos, en el primer caso se habla de
datos tipo analgicos, tomados de variables reales, por tanto la
funcin de activacin debe ser de la misma naturaleza, es decir de
tipo lineal o Sigmoidal. En el caso de los datos discretos, la
funcin de activacin debe ser de tipo escaln. Tabla 2.2.4.1 Resumen
de RNA segn tipo de datos [1] RNA CONTINUAS E:ANALOGA S:ANALOGA RNA
HIBRIDAS E: ANALOGA S: BINARIA RNA DISCRETAS E: BINARIA S: BINARIA
BACKPROPAGATIO N PERCEPTRON HOPFIELD DISCRETO LINEAR ASOCIATIVE
MEMORY ADALINE/MADA LINE ART (ASOCIATIVE RESONANCE THEORY) Como se
observa en la tabla se escriben tres ejemplos para que el lector
profundice en el estudio de cada uno de ellos, y de otros
propuestos para cada una de las clasificaciones presentadas. 2.3
Matlab en la modelacin del Perceptrn Para identificar la estructura
del Perceptrn simple, (De una sola capa), se debe partir de las
caractersticas mencionadas en el apartado anterior. Figura 2.3.1
Estructura del Perceptrn Simple [1] A continuacin se realiza una
descripcin del algoritmo usado para implementar un Perceptrn bsico,
bajo entorno Matlab, se aplican conceptos de programacin
estructurada, para que el cdigo sea de fcil comprensin y se realice
la adaptacin necesaria si se quiere usar otro entorno de
programacin. Se hace necesario mencionar, que Matlab ya trae en sus
herramientas (Toolbox), los algoritmos de algunas redes neuronales,
sin embargo en el presente artculo se presenta un cdigo genrico el
cual se puede implementar en diferentes ambientes de programacin.
Para explicar la estructura del cdigo, se plantea el siguiente
orden en el algoritmo planteado. 1. Se fijan los pesos aleatorios:
Son valores que multiplican a la entrada, generalmente entre 0 y 1,
sin embargo estos valores son irrelevantes, es decir su valor no
interesa pero deben existir, la nica restriccin es que no pueden
ser cero, esto indicara que la entrada no se tiene en cuenta. 2. Se
establecen las entradas: Se configura la matriz de entrada, segn el
nmero de entradas y los valores que toman cada una de ellas.
4. CIDE. Programa de electrnica. . 4 3. Se calcula la salida
segn la funcin de aprendizaje. Para el Perceptrn se usar la funcin
hardlim, de Matlab. 4. Se actualizan pesos segn respuesta. De
acuerdo a la funcin determinada, se recalculan los nuevos pesos,
stos ayudarn a reevaluar las nuevas entradas. 5. Se regresa al paso
3 hasta obtener la respuesta deseada. A ste algoritmo se le conoce
como aprendizaje por refuerzo, la neurona repite el proceso hasta
conseguir el aprendizaje de las salidas deseadas. 3 DISEO DE LA
APLICACIN EN MATLAB Como se indic anteriormente, Matlab es la
herramienta por excelencia en el modelamiento e implementacin de la
funcin de transferencia del Perceptrn. Aunque en la seccin 2.3 se
plante la forma de hacerlo, en ste apartado se deja el cdigo para
ser usado en diferentes contextos. Para explicar el algoritmo
usado, en ste caso particular, se explica paso a paso la
implementacin en Matlab , correlacionando mencionado cdigo con las
ecuaciones que rigen cada una de las etapas de dicho algoritmo,
citadas en la seccin 2.3. 1. Se fijan los pesos aleatorios: En
Matlab, se pueden usar los vectores de datos, el lector debe estar
familiarizado con el Algebra Lineal. Para ello se digita en el
editor de Matlab , la lnea de cdigo: W=rand(2,1). Con ste comando
se genera un vector llamado W, que consta de dos datos aleatorios
organizado en dos filas y una columna (2,1) 2. Se establecen las
entradas: La matriz de entrada debe estar organizada de tal forma
que el nmero de entradas designa el nmero de columnas, las filas
son designadas por las posibilidades de combinacin de las
mencionadas entradas. En nuestro caso se pretende que la red se
comporte como una compuerta lgica de dos entradas. Esto indica que
el vector de entrada X, debe definirse en Matlab como sigue: X = [0
0; 0 1; 1 0; 1 1] Se debe observar que al ejecutar esta lnea de
cdigo se genera una matriz de 2 columnas y 4 filas. Luego se
estableces el BIas o velocidad de aprendizaje, esta es una
constante entre 0 y 1, se puede definir usando el comando: Th=0.1,
en ste caso el Bias tiene un valor de 0.1. 3. Calculo de la salida:
Inicialmente se establece la salida deseada, sta debe estar
conformada por un vector Y que contenga por cada estado de entrada
una salida, en ste caso ser un vector de una columna con cuatro
filas, como se indica a continuacin Y=[0 0 0 1] La salida deseada
corresponde a una compuerta AND, cuya salida depende de las
entradas Tabla 3.1 Estados compuerta AND X1 X2 Y 0 0 0 0 1 0 1 0 0
1 1 1 Observe como se resumen los datos de la tabla, la columna X1
corresponde a la primer entrada, la columna X2 la segunda entrada y
la columna Y a la salida, para definir el vector de salida deseada,
se puede usar el comando: yd=[0;0;0;1], que es un vector columna,
el lector puede verificarlo usando el comando en Matlab. Teniendo
en cuenta la salida deseada, ahora se calcula la salida a partir de
la funcin de activacin de la red neuronal, en ste caso el
Perceptrn. La funcin de activacin que se usa es de tipo escaln
unitario, sta funcin permite clasificar en dos estados la respuesta
del Perceptrn, como se puede observar en la Tabla 3.1 solo hay dos
estados 0 o 1. Para aplicar la funcin escaln unitario, se usa en
Matlab el comando: Hardlim. La estructura de la nueva salida, se
escribe como: y=Hardlim((X*W)-Th) si el lector en ste punto est
comprobando el resultado puede observar que an la respuesta no es
la deseada. Para obtener la respuesta adecuada, se debe realizar el
proceso varias veces hasta que la respuesta calculada y sea igual a
la respuesta deseada yd 4. Se actualizan los pesos, para ello se
usa la funcin de la red neuronal planteada en la Ecuacin: ( + 1) =
() + [() ()]() 0 Dicha ecuacin se puede escribir en Matlab de la
siguiente manera: Wn(k,1)=Wn(k,1)+(n*(X(i,k)*e(i,1))); El ciclo que
debe realizarse se debe detener cuando el error sea menor a 1, como
se puede observar el nuevo peso (Wn), se calcula a partir del
producto de la ganancia (=n), por la entrada (X(i,k)=xi(t)), por la
diferencia entre la salida deseada (d(t)), menos la salida
calculada (y(t)).
5. CIDE. Programa de electrnica. . 5 El programa final, como se
utiliz en Matlab fue: %1. Fijar pesos aleatorios Wn=rand(2,1); %2.
Establecer los valores de entrada X=[0 0; 0 1;1 0;1 1]; Th=0.1;
%Bias o referencia del Perceptrn %3. Calcular la salida de la
neurona yd=[0;0;0;1]; y=hardlim((X*Wn)-Th); plot(X,y),grid on, hold
on e=yd-y; %Se calcula el error al restar la salida deseada de la
salida obtenida. ed=0.1;% Se establece el error aceptado, en ste
caso 0.1 N=2; %se establecen las iteraciones, pueden ser definidas
por la velocidad de aprendizaje %Aqu empieza el entrenamiento de la
neurona, se hace de manera recursiva %W(i,j) i=fila; j= Columna
n=0.9; %Factor de ganancia en el rango de 0.0 a 1.0 ent=2; r=0; %
Se inician los nuevos pesos for T=1:N %Ciclo for correspondiente a
las iteraciones del aprendizaje por refuerzo if e==0 break else for
i=1:4 %Ciclo for correspondiente a las filas segn no de entradas
i=filas for k=1:ent %Ciclo for para actualizar pesos. k=columnas
Wn(k,1)=Wn(k,1)+(n*(X(i,k)*e(i,1))) end
yn(i,1)=(hardlim((X(i,1)*(Wn(1,1)- Th))+((X(i,2)*Wn(2,1)-Th))))
%Funcin para calcular las nuevas salidas. end e=yd-yn M=e-ed T %si
el error es mayor que la tolerancia continua haciendo el proceso se
define la velocidad de aprendizaje para aplicar la forma de
calcular nuevos peso end end %5. Continua hasta que el error sea
menor que la tolerancia Se dejaron los comentarios para ubicar al
lector con respecto a los 5 pasos planteados en el apartado
anterior y el desarrollo de ste. Si se quiere cambiar la salida
deseada, solo se deben modificar los datos del vector yd, que para
efectos del ejemplo, corresponde a una compuerta OR y observar la
respuesta en el vector yn. Para determinar el nmero de veces que la
neurona tuvo que realizar el ajuste de los pesos hasta obtener la
salida deseada, se establece el ciclo for, donde T es el nmero de
iteraciones que el programa debe recalcular los pesos hasta obtener
los adecuados para que la neurona aprenda a resolver la compuerta
OR. Se sugiere que el lector cambie las salidas deseadas y revise
el nmero de iteraciones que el Perceptrn requiere para obtener las
respuestas a las compuertas AND. 4 EJEMPLO DE APLICACION Como
ejemplo de aplicacin, se plantea el de seleccionar una prenda de
vestir, segn sus caractersticas en cuanto a la Calidad de la tela y
Tipo de Tela. Para la categora Calidad se establecen dos estados,
Buena =1, Baja =0; para la categora Tipo, los estados son: No pao=0
y Pao=1. La idea es que el Perceptrn seleccione dos opciones, por
costos, ya que de otra manera se excedera en el presupuesto
asignado para la compra de las prendas, de tal forma que cuando las
categoras Tipo y Calidad sean las parejas ordenadas: No Pao, Buena
y Pao, Baja. Respectivamente, pero que no seleccione los estados:
No Pao, Baja y Pao, Buena La situacin se puede resumir en la Tabla
4.1: Tabla 4.1. Resumen situacin seleccin de una prenda Categora de
la Tela Seleccin Tipo Calidad No Pao Baja No No Pao Buena Si Pao
Baja Si Pao Buena No Ahora bien, si la Tabla 4.1 se interpreta en
binario, se puede representar as: Tabla 4.2. Seleccin de una prenda
en binario. T C S 0 0 0 0 1 1 1 0 1 1 1 0 La funcin que se ajusta
al comportamiento de la situacin anterior es la de una compuerta
tipo XOR, se sugiere revisar ste concepto si el lector no est
familiarizado. Para ello solo se debe modificar en el programa
anterior el vector de salida deseada yd, y observar la salida que
la neurona calcula, al finalizar el aprendizaje yn, analizar el
error M y determinar el nmero de iteraciones T, as cmo identificar
los pesos en las entradas ajustados a la respuesta deseada, permite
identificar la velocidad de respuesta y la capacidad de
aprendizaje.
6. CIDE. Programa de electrnica. . 6 Al ejecutar el programa
con las modificaciones sugeridas anteriormente se obtienen los
siguientes datos de las variables analizadas: Los pesos iniciales
se asignan de forma aleatoria, como se observa en el cdigo,
mediante el comando: Wn =rand(2,1); el programa asigna los valores,
para ste caso: Wn = 0.5688 0.4694 Se debe aclarar que cada vez que
el programa se ejecuta, los pesos iniciales cambian, pues estos
valores son aleatorios, los valores finales de este vector son los
que se ingresan a la funcin finalmente para que la Red Neuronal
(RNA), se comporte ahora como una compuerta XOR. 5 CONCLUSIONES A
pesar de los mltiples recursos y programas que se encuentran en
torno a la implementacin de un algoritmo para implementar una Red
Neuronal, muchos no explican ampliamente los pasos a seguir, ste es
un ejercicio que permite al estudiante implementar un Perceptrn de
manera genrica. A pesar de los esfuerzos por emular el
comportamiento de un Perceptrn, se debe aclarar que para acercarse
al comportamiento de una red neuronal se debe implementar el
procesamiento en paralelo, en ste caso se usa un algoritmo
secuencial, lo que debera corregirse si se quiere realizar un
ejercicio de implementacin ms acertado, la mejor opcin es usar
elementos de hardware para conseguir un resultado aproximado. Se
debe tener especial cuidado al utilizar valores adecuados para el
Bias, ya que ste puede afectar el comportamiento de la Red, toda
vez que puede ofrecer valores y comportamientos no adecuados, ste
debe estar entre 0 y 1 as como el factor de ganancia que se observa
en el programa de Matlab. 6 REFERENCIAS [1] E. Marrero, Pgina
Profesor: Eddie Marrero, Marzo 2005. [En lnea]. Available:
http://academic.uprm.edu/eddiem/psic3001/id36.htm. [ltimo acceso: 5
Febrero 2012]. [2] Aldabas, Emiliano. Introduccin al reconocimiento
de patrones mediante redes neuronales, [En lnea]. Available:
www.eel.upc.es.. [ltimo acceso: 23 Marzo 2013]. [3] J. R. Hilera,
Redes Neuronales Artificiales. Fundamentos, Modelos y Aplicaciones,
Madrid, espaa: Alfaomega, 1995. [4] MathWorks, Inc., Neuron Model,
2013. [En lnea]. Available:
http://www.mathworks.com/help/nnet/ug/neuron-
model.html?searchHighlight=neuron+model. [ltimo acceso: 21 Octubre
2013]. Ancizar Paredes Ardila Docente de tiempo completo desde 2008
hasta la fecha, en la CIDE; ha orientado las materias relacionadas
con la Ingeniera Electrnica, en los programas de Tecnologa en la
institucin. Docente Universitario en UNIMINUTO y TEINCO donde se ha
desempeado en reas afines a la disciplina de su titulacin, Co-
investigador del grupo Neurociencia de la Universidad de Antioqua,
como pasante de Maestra; lder del grupo de Investigacin IARN-CIDE.
Docente en los niveles de formacin del ciclo 5 en colegios del
distrito. Bachiller Pedaggico, (Normal Nacional para varones de
Pamplona N de S) Ingeniero Electrnico (Universidad Antonio Nario) y
candidato a Mster en Tecnologas de la Informacin Aplicadas a la
Educacin (MTIAE-Universidad Pedaggica Nacional de Colombia).