Está en la página 1de 6

CIDE. Programa de electrnica.

FUNCIN DE TRANSFERENCIA DE UN PERCEPTRN CON


MATLAB.
ANCIZAR PAREDES ARDILA
Ingeniero Electrnico
Universidad Antonio Nario
Docente Programa Electrnica Mecatrnica
e-mail: ancizar.paredes967.doc@cide.edu.co
e-mail: solin83@hotmail.com
COLOMBIA

propuesto en el cdigo, de libre distribucin, el


RESUMEN: Una de las estructuras de las redes implementar otras estrategias de aprendizaje.
Neuronales es el Perceptrn, aunque existen Se debe hacer claridad sobre cada uno de los
innumerables documentos y aportes entorno a la funcin conceptos, anteriormente mencionados, estrategias de
de transferencia de sta estructura, el presente artculo aprendizaje, entradas a la neurona, salidas deseadas,
es el fruto del estudio hecho en una primera para ello se aborda el tema desde la explicacin
aproximacin al concepto, generando un material funcional biolgica, luego se presenta el modelo
didctico, como estrategia de divulgacin en la matemtico del Perceptrn, no siendo la nica estructura
Corporacin Internacional para el Desarrollo Educativo existente en las redes neuronales, luego se presenta el
(CIDE), entorno al proyecto Redes Neuronales cdigo del aplicativo, para finalmente, ilustrar los
Artificiales (RNA), adscrito al grupo de Investigacin de resultados obtenidos en el aplicativo con un ejemplo.
la Facultad de Ingenieras y Administracin de la misma
(IARN-CIDE). El presente material didctico se aplicar Los alcances de ste artculo, son los de presentar
en la fase exploratoria del concepto hacia la una herramienta tecnolgica ampliamente conocida y de
implementacin del algoritmo en un prototipo robtico, fcil uso para las personas que estn familiarizadas con
especficamente un robot de tipo mvil, sin embargo, el cdigo de programacin; sin embargo puede ser
ste se puede usar en cualquier campo del usado por personas en estado inicial del uso de
conocimiento, de los programas ofertados en la CIDE, a software, ya que la interface le permite aplicar el
nivel tecnolgico, tales como Sistemas, Gestin concepto de RNA fcilmente, ejecutando el cdigo
Empresarial, Electrnica, Mecatrnica, Alimentos, entre desde Matlab, con las limitaciones que se exponen en el
otros. apartado respectivo al ejemplo de aplicacin.

PALABRAS CLAVE: Redes Neuronales Artificiales, 2 APROXIMACION TEORICA


Perceptrn, Funcin de Transferencia, Matlab.
Segn las intenciones planteadas del artculo,
Abstract: tratando de abordar el tema de manera integral, se
plantea una aproximacin terica en tres dimensiones:
Keywords: Biolgica: Sin profundizar en ella, se plantea la
explicacin de cmo funciona una neurona en el
ser humano.
1 INTRODUCCIN Matemtica: Se presenta la informacin delimitada
del funcionamiento y modelo matemtico de la
Las Redes Neuronales Artificiales, son estructura de un Perceptrn, ubicndola en el
consideradas una de las herramientas de amplio uso en contexto global de las Redes Neuronales
los algoritmos que incluyen el concepto de Inteligencia Artificiales
Artificial (IA). En ste trabajo, se plantea el uso de Tcnica: Se hace referencia al uso de Matlab, en la
Matlab como herramienta en la simulacin de una codificacin del modelo matemtico del Perceptrn.
estructura fundamental de las redes Neuronales
Artificiales (RNA), el Perceptrn; dicho algoritmo se
2.1 CONCEPTO BIOLOGICO
plantea de manera genrica, el estudiante puede usarla
en cualquier situacin donde lo nico que debe tener es
La estructura fundamental del sistema nervioso
un computador con el software de MathWorks
central es la Neurona, sta como unidad funcional, hace
(Matlab), definidas las entradas a la Neurona y las
parte de una estructura ms compleja, el cerebro.
salidas deseadas, la neurona responder segn se le
Aunque se presume que el lector tiene nociones de este
entrene mediante una estrategia de aprendizaje, de las
tema, se plantea la descripcin de sta para explicar su
muchas que se pueden implementar, quedando
funcionamiento

1
CIDE. Programa de electrnica.
.

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].

Figura 1. Estructura Biolgica de una Neurona. [1] Como se indic en la seccin anterior las RNA,
funcionan de manera similar a su contraparte biolgica,
Como se puede observar, la clula est dividida en con algunas caractersticas: aprendizaje, plasticidad y
partes funcionales, cada una de ellas se describe a procesamiento en paralelo. Aprendizaje: ya que la
continuacin: neurona puede ser entrenada y aprender a responder
segn las entradas a una situacin especfica, mediante
Axn: Rama principal que sale del cuerpo de la las salidas deseadas; Plasticidad: pues si alguna de las
Neurona, su principal funcin es la de transmitir la estructuras funcionales llegase a fallar, existen otras que
informacin a las dendritas, stas a su vez conectan respaldan la funcin de la neurona, evitando que sta
dicha informacin a las otras Neuronas. responda de manera errada y Procesamiento en
paralelo: ya que al recibir varios estmulos al mismo
Dendritas: Ramas ms cortas que el axn, las tiempo responde segn el estmulo ms fuerte o segn
cuales llevan los impulsos nerviosos a otras neuronas. A sea configurada.
travs de ellas se realizan las conexiones o Sinapsis con
otras Neuronas. Para explicar el funcionamiento del Perceptrn se
debe hacer referencia a su concepcin matemtica, ste
Soma: Es el cuerpo de la clula nerviosa, su modelo, permite realizar una aproximacin a la
funcin es la de fabricar los elementos necesarios para programacin necesaria que emular el funcionamiento
la vida de la Neurona, tal como sucede en las otras de la Neurona.
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 Figura 2.2.1 Estructura de un perceptrn [1]
vez que el algoritmo se entrena, en una aplicacin
especfica, sin embargo no se debe compara las unas Como se observa en la Figura 2.1.1 las partes
con las otras, pues las RNA, solo emulan una de las constitutivas del Perceptrn son:
muchas funciones complejas de las redes neuronales
biolgicas. 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.
2.2 Redes Neuronales Artificiales: El
Capa Oculta: All est configurada la funcin de
Perceptrn. transferencia de la RNA, es decir, la forma como
toma cada entrada y la evala.
No es la nica estructura conocida y concebida
para el desarrollo de las redes Neuronales, entre otras
Capa de salida: Constituye la salida, en ste caso
se encuentran: Kohonen, ART, Hopfield, entre otros.
es una sola.
Para el caso que nos ocupa se realiza el estudio a partir
del Perceptrn multicapa.
Ahora bien, aunque es importante resaltar las
caractersticas ms importantes de las Redes

2
CIDE. Programa de electrnica.
.

Neuronales Artificiales (RNA), en el presente artculo tipo lineal o Sigmoidal. En el caso de los datos discretos,
solo haremos referencia al Perceptrn Bsico. la funcin de activacin debe ser de tipo escaln.

Adems de su estructura se debe reconocer en las RNA, Tabla 2.2.4.1 Resumen de RNA segn tipo de datos [1]
4 caractersticas importantes: Topologa, mecanismo de RNA CONTINUAS RNA HIBRIDAS RNA
aprendizaje, asociacin entre la informacin de entrada E:ANALOGA DISCRETAS
y la informacin de salida y la forma como se representa S:ANALOGA E: ANALOGA E: BINARIA
S: BINARIA S: BINARIA
la informacin, de ello depende la comprensin del
funcionamiento de ste primer acercamiento al BACKPROPAGATIO PERCEPTRON HOPFIELD
Perceptrn. N DISCRETO
A continuacin se presenta una breve descripcin de LINEAR ADALINE/MADA ART
tales caractersticas. ASOCIATIVE LINE (ASOCIATIVE
MEMORY RESONANCE
2.2.1 Topologa: THEORY)

Hace referencia a la forma como se conectan las redes Como se observa en la tabla se escriben tres ejemplos
neuronales, el nmero de conexiones entre las para que el lector profundice en el estudio de cada uno
neuronas, la cantidad de neuronas en cada capa y el de ellos, y de otros propuestos para cada una de las
grado de conectividad. En ste caso se habla de Redes clasificaciones presentadas.
Monocapa y Redes Multicapa.

2.2.2 Mecanismo de aprendizaje: 2.3 Matlab en la modelacin del Perceptrn

Es la forma como la red actualiza los pesos de acuerdo Para identificar la estructura del Perceptrn simple, (De
a la informacin de entrada; como analoga a los una sola capa), se debe partir de las caractersticas
sistemas biolgicos, se puede pensar en la forma como mencionadas en el apartado anterior.
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.
Figura 2.3.1 Estructura del Perceptrn Simple [1]
Segn esta caracterstica las RNA pueden ser: con
aprendizaje supervisado o con aprendizaje no
supervisado. Cada uno de ellos tienen sus propias
A continuacin se realiza una descripcin del algoritmo
caractersticas no se profundizar en ellos ya que sta
usado para implementar un Perceptrn bsico, bajo
intensin escapa a los lmites del presente artculo.
entorno Matlab, se aplican conceptos de programacin
estructurada, para que el cdigo sea de fcil
2.2.3 Asociacin de la informacin Entrada / Salida: comprensin y se realice la adaptacin necesaria si se
quiere usar otro entorno de programacin. Se hace
Es la forma como la red neuronal almacena los pesos necesario mencionar, que Matlab ya trae en sus
nuevos a partir de los aprendizajes, estos son formas de herramientas (Toolbox), los algoritmos de algunas redes
representacin del nuevo conocimiento para la RNA.
neuronales, sin embargo en el presente artculo se
Es decir tiene un comportamiento similar al encontrado presenta un cdigo genrico el cual se puede
en los sistemas biolgicos y que se conoce como implementar en diferentes ambientes de programacin.
memoria asociativa.
Para explicar la estructura del cdigo, se plantea el
Segn ste criterio, las RNA pueden ser: siguiente orden en el algoritmo planteado.
Heteroasociativas (Mantienen la informacin gracias a la
existencia de dos capas una para captar la informacin y 1. Se fijan los pesos aleatorios: Son valores que
otra para retenerla) y Autoasociativas (compara las
multiplican a la entrada, generalmente entre 0 y
entradas actuales con los datos almacenados y escoge 1, sin embargo estos valores son irrelevantes,
el ms parecido en el estado presente). es decir su valor no interesa pero deben existir,
la nica restriccin es que no pueden ser cero,
2.2.4 Representacin de la informacin esto indicara que la entrada no se tiene en
Entrada/Salida: cuenta.
2. Se establecen las entradas: Se configura la
Los datos a tratar pueden ser continuos o discretos, en matriz de entrada, segn el nmero de entradas
el primer caso se habla de datos tipo analgicos, y los valores que toman cada una de ellas.
tomados de variables reales, por tanto la funcin de
activacin debe ser de la misma naturaleza, es decir de

3
CIDE. Programa de electrnica.
.

3. Se calcula la salida segn la funcin de estado de entrada una salida, en ste caso
aprendizaje. Para el Perceptrn se usar la ser un vector de una columna con cuatro
funcin hardlim, de Matlab. filas, como se indica a continuacin
4. Se actualizan pesos segn respuesta. De Y=[0 0 0 1]
acuerdo a la funcin determinada, se recalculan La salida deseada corresponde a una
los nuevos pesos, stos ayudarn a reevaluar compuerta AND, cuya salida depende de las
las nuevas entradas. entradas
5. Se regresa al paso 3 hasta obtener la
respuesta deseada. Tabla 3.1 Estados compuerta AND

A ste algoritmo se le conoce como aprendizaje por X1 X2 Y


refuerzo, la neurona repite el proceso hasta conseguir el 0 0 0
aprendizaje de las salidas deseadas. 0 1 0
1 0 0
1 1 1
3 DISEO DE LA APLICACIN EN MATLAB
Observe como se resumen los datos de la
Como se indic anteriormente, Matlab es la tabla, la columna X1 corresponde a la primer
herramienta por excelencia en el modelamiento e entrada, la columna X2 la segunda entrada y
implementacin de la funcin de transferencia del la columna Y a la salida, para definir el vector
Perceptrn. Aunque en la seccin 2.3 se plante la de salida deseada, se puede usar el comando:
forma de hacerlo, en ste apartado se deja el cdigo yd=[0;0;0;1], que es un vector columna, el lector
para ser usado en diferentes contextos. puede verificarlo usando el comando en
Matlab.
Para explicar el algoritmo usado, en ste caso Teniendo en cuenta la salida deseada, ahora se
particular, se explica paso a paso la implementacin en calcula la salida a partir de la funcin de
Matlab , correlacionando mencionado cdigo con las activacin de la red neuronal, en ste caso el
ecuaciones que rigen cada una de las etapas de dicho Perceptrn.
algoritmo, citadas en la seccin 2.3. La funcin de activacin que se usa es de tipo
escaln unitario, sta funcin permite clasificar
1. Se fijan los pesos aleatorios: En Matlab, se en dos estados la respuesta del Perceptrn,
pueden usar los vectores de datos, el lector como se puede observar en la Tabla 3.1 solo
debe estar familiarizado con el Algebra Lineal. hay dos estados 0 o 1. Para aplicar la
Para ello se digita en el editor de Matlab , la funcin escaln unitario, se usa en Matlab el
lnea de cdigo: comando: Hardlim.
W=rand(2,1). La estructura de la nueva salida, se escribe
Con ste comando se genera un vector como: y=Hardlim((X*W)-Th) si el lector en ste
llamado W, que consta de dos datos punto est comprobando el resultado puede
aleatorios organizado en dos filas y una observar que an la respuesta no es la
columna (2,1) deseada.
Para obtener la respuesta adecuada, se debe
2. Se establecen las entradas: La matriz de realizar el proceso varias veces hasta que la
entrada debe estar organizada de tal forma respuesta calculada y sea igual a la respuesta
que el nmero de entradas designa el nmero deseada yd
de columnas, las filas son designadas por las
posibilidades de combinacin de las 4. Se actualizan los pesos, para ello se usa la
mencionadas entradas. En nuestro caso se funcin de la red neuronal planteada en la
pretende que la red se comporte como una Ecuacin:
compuerta lgica de dos entradas. Esto indica
que el vector de entrada X, debe definirse en ( + 1) = () + [() ()] ()
Matlab como sigue: 0
X = [0 0; 0 1; 1 0; 1 1] Dicha ecuacin se puede escribir en Matlab de
Se debe observar que al ejecutar esta lnea de la siguiente manera:
cdigo se genera una matriz de 2 columnas y
4 filas. Wn(k,1)=Wn(k,1)+(n*(X(i,k)*e(i,1)));
Luego se estableces el BIas o velocidad de
aprendizaje, esta es una constante entre 0 y 1, El ciclo que debe realizarse se debe detener
se puede definir usando el comando: Th=0.1, cuando el error sea menor a 1, como se puede
en ste caso el Bias tiene un valor de 0.1. observar el nuevo peso (Wn), se calcula a partir
del producto de la ganancia (=n), por la
3. Calculo de la salida: Inicialmente se establece entrada (X(i,k)=xi(t)), por la diferencia entre la
la salida deseada, sta debe estar conformada salida deseada (d(t)), menos la salida calculada
por un vector Y que contenga por cada (y(t)).

4
CIDE. Programa de electrnica.
.

El programa final, como se utiliz en Matlab hasta obtener la salida deseada, se establece el
fue: ciclo for, donde T es el nmero de
%1. Fijar pesos aleatorios iteraciones que el programa debe recalcular los
Wn=rand(2,1); pesos hasta obtener los adecuados para que la
%2. Establecer los valores de entrada neurona aprenda a resolver la compuerta OR.
X=[0 0; 0 1;1 0;1 1]; Se sugiere que el lector cambie las salidas
Th=0.1; %Bias o referencia del Perceptrn deseadas y revise el nmero de iteraciones que
%3. Calcular la salida de la neurona el Perceptrn requiere para obtener las
yd=[0;0;0;1]; respuestas a las compuertas AND.
y=hardlim((X*Wn)-Th);
plot(X,y),grid on, hold on 4 EJEMPLO DE APLICACION
e=yd-y; %Se calcula el error al restar la
salida deseada de la salida obtenida.
Como ejemplo de aplicacin, se plantea el de
ed=0.1;% Se establece el error aceptado,
seleccionar una prenda de vestir, segn sus
en ste caso 0.1
caractersticas en cuanto a la Calidad de la tela y Tipo
N=2; %se establecen las iteraciones,
de Tela. Para la categora Calidad se establecen dos
pueden ser definidas por la velocidad de
estados, Buena =1, Baja =0; para la categora Tipo, los
aprendizaje
estados son: No pao=0 y Pao=1.
%Aqu empieza el entrenamiento de la
neurona, se hace de manera recursiva La idea es que el Perceptrn seleccione dos
%W(i,j) i=fila; j= Columna opciones, por costos, ya que de otra manera se
n=0.9; %Factor de ganancia en el rango de excedera en el presupuesto asignado para la compra de
0.0 a 1.0 las prendas, de tal forma que cuando las categoras Tipo
ent=2; y Calidad sean las parejas ordenadas:
r=0; No Pao, Buena y Pao, Baja.
% Se inician los nuevos pesos Respectivamente, pero que no seleccione los
for T=1:N %Ciclo for correspondiente a las estados:
iteraciones del aprendizaje por refuerzo No Pao, Baja y Pao, Buena
if e==0 La situacin se puede resumir en la Tabla 4.1:
break
else Tabla 4.1. Resumen situacin seleccin de una
for i=1:4 %Ciclo for correspondiente a prenda
las filas segn no de entradas i=filas
for k=1:ent %Ciclo for para Categora de la Tela
Seleccin
actualizar pesos. k=columnas Tipo Calidad
Wn(k,1)=Wn(k,1)+(n*(X(i,k)*e(i,1))) No Pao Baja No
end No Pao Buena Si
yn(i,1)=(hardlim((X(i,1)*(Wn(1,1)- Pao Baja Si
Th))+((X(i,2)*Wn(2,1)-Th)))) Pao Buena No
%Funcin para calcular las nuevas
salidas. Ahora bien, si la Tabla 4.1 se interpreta en binario,
end se puede representar as:
e=yd-yn
M=e-ed Tabla 4.2. Seleccin de una prenda en binario.
T %si el error es mayor que la tolerancia
continua haciendo el proceso se define la T C S
velocidad de aprendizaje para aplicar la 0 0 0
forma de calcular nuevos peso
0 1 1
end
1 0 1
end
%5. Continua hasta que el error sea menor 1 1 0
que la tolerancia
La funcin que se ajusta al comportamiento de la
situacin anterior es la de una compuerta tipo XOR, se
Se dejaron los comentarios para ubicar al lector sugiere revisar ste concepto si el lector no est
con respecto a los 5 pasos planteados en el familiarizado.
apartado anterior y el desarrollo de ste. Si se Para ello solo se debe modificar en el programa
quiere cambiar la salida deseada, solo se anterior el vector de salida deseada yd, y observar la
deben modificar los datos del vector yd, que salida que la neurona calcula, al finalizar el aprendizaje
para efectos del ejemplo, corresponde a una yn, analizar el error M y determinar el nmero de
compuerta OR y observar la respuesta en el iteraciones T, as cmo identificar los pesos en las
vector yn. entradas ajustados a la respuesta deseada, permite
identificar la velocidad de respuesta y la capacidad de
Para determinar el nmero de veces que la aprendizaje.
neurona tuvo que realizar el ajuste de los pesos

5
CIDE. Programa de electrnica.
.

Al ejecutar el programa con las modificaciones Available:


sugeridas anteriormente se obtienen los siguientes datos http://www.mathworks.com/help/nnet/ug/neuron-
de las variables analizadas: model.html?searchHighlight=neuron+model. [ltimo
Los pesos iniciales se asignan de forma aleatoria, acceso: 21 Octubre 2013].
como se observa en el cdigo, mediante el comando: Ancizar Paredes Ardila
Wn =rand(2,1); el programa asigna los valores,
para ste caso:
Wn =
0.5688
0.4694
Docente de tiempo completo desde 2008 hasta la fecha,
Se debe aclarar que cada vez que el programa se en la CIDE; ha orientado las materias relacionadas con
ejecuta, los pesos iniciales cambian, pues estos valores la Ingeniera Electrnica, en los programas de
son aleatorios, los valores finales de este vector son los Tecnologa en la institucin. Docente Universitario en
que se ingresan a la funcin finalmente para que la Red UNIMINUTO y TEINCO donde se ha desempeado en
Neuronal (RNA), se comporte ahora como una reas afines a la disciplina de su titulacin, Co-
compuerta XOR. 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
5 CONCLUSIONES colegios del distrito. Bachiller Pedaggico, (Normal
Nacional para varones de Pamplona N de S) Ingeniero
A pesar de los mltiples recursos y programas que Electrnico (Universidad Antonio Nario) y candidato a
se encuentran en torno a la implementacin de un Mster en Tecnologas de la Informacin Aplicadas a la
algoritmo para implementar una Red Neuronal, muchos Educacin (MTIAE-Universidad Pedaggica Nacional de
no explican ampliamente los pasos a seguir, ste es un Colombia).
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].

También podría gustarte