CIDE. Programa de electrónica.

.

FUNCIÓN DE TRANSFERENCIA DE UN PERCEPTRÓN CON
MATLAB.
ANCIZAR PAREDES ARDILA
Ingeniero Electrónico
Universidad Antonio Nariño
Docente Programa Electrónica Mecatrónica
e-mail: ancizar.paredes967.doc@cide.edu.co
e-mail: solin83@hotmail.com
COLOMBIA

propuesto en el código, de libre distribución, el
RESUMEN: Una de las estructuras de las redes implementar otras estrategias de aprendizaje.
Neuronales es el Perceptrón, aunque existen Se debe hacer claridad sobre cada uno de los
innumerables documentos y aportes entorno a la función conceptos, anteriormente mencionados, estrategias de
de transferencia de ésta estructura, el presente artículo aprendizaje, entradas a la neurona, salidas deseadas,
es el fruto del estudio hecho en una primera para ello se aborda el tema desde la explicación
aproximación al concepto, generando un material funcional biológica, luego se presenta el modelo
didáctico, como estrategia de divulgación en la matemático del Perceptrón, no siendo la única estructura
Corporación Internacional para el Desarrollo Educativo existente en las redes neuronales, luego se presenta el
(CIDE), entorno al proyecto Redes Neuronales código del aplicativo, para finalmente, ilustrar los
Artificiales (RNA), adscrito al grupo de Investigación de resultados obtenidos en el aplicativo con un ejemplo.
la Facultad de Ingenierías y Administración de la misma
(IARN-CIDE). El presente material didáctico se aplicará Los alcances de éste artículo, son los de presentar
en la fase exploratoria del concepto hacia la una herramienta tecnológica ampliamente conocida y de
implementación del algoritmo en un prototipo robótico, fácil uso para las personas que están familiarizadas con
específicamente un robot de tipo móvil, sin embargo, el código de programación; 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 tecnológico, tales como Sistemas, Gestión concepto de RNA fácilmente, ejecutando el código
Empresarial, Electrónica, Mecatrónica, Alimentos, entre desde Matlab, con las limitaciones que se exponen en el
otros. apartado respectivo al ejemplo de aplicación.

PALABRAS CLAVE: Redes Neuronales Artificiales, 2 APROXIMACION TEORICA
Perceptrón, Función de Transferencia, Matlab.
Según las intenciones planteadas del artículo,
Abstract: tratando de abordar el tema de manera integral, se
plantea una aproximación teórica en tres dimensiones:
Keywords:  Biológica: Sin profundizar en ella, se plantea la
explicación de cómo funciona una neurona en el
ser humano.
1 INTRODUCCIÓN  Matemática: Se presenta la información delimitada
del funcionamiento y modelo matemático de la
Las Redes Neuronales Artificiales, son estructura de un Perceptrón, ubicándola 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  Técnica: Se hace referencia al uso de Matlab, en la
Matlab como herramienta en la simulación de una codificación del modelo matemático del Perceptrón.
estructura fundamental de las redes Neuronales
Artificiales (RNA), el Perceptrón; dicho algoritmo se
2.1 CONCEPTO BIOLOGICO
plantea de manera genérica, el estudiante puede usarla
en cualquier situación 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 más compleja, el cerebro.
salidas deseadas, la neurona responderá según se le
Aunque se presume que el lector tiene nociones de este
entrene mediante una estrategia de aprendizaje, de las
tema, se plantea la descripción de ésta para explicar su
muchas que se pueden implementar, quedando
funcionamiento

1

Una red Neuronal. sin embargo no se debe compara las unas Como se observa en la Figura 2. cada vez que nos enfrentamos a la misma tarea. Hopfield. las cuales se toman una a una y se conectan a la capa oculta con sus pesos respectivos. través de ellas se realizan las conexiones o Sinapsis con otras Neuronas. A partir de la estructura sencilla del Perceptrón se pueden construir estructuras más complejas. Como se puede observar.1 las partes con las otras. las cuales se usan cada Figura 2. cuando nos enfrentemos a una situación similar.1. De manera similar. cada una de ellas se describe a procesamiento en paralelo. es decir. existen otras que información a las dendritas. ART. son diferenciados y de fácil separación. su modelo. No es la única estructura conocida y concebida para el desarrollo de las redes Neuronales. entre otros. entre otras  Capa de salida: Constituye la salida.2. se genera a partir de un proceso de aprendizaje. la forma como toma cada entrada y la evalúa. dada su simplicidad. solo emulan una de las constitutivas del Perceptrón son: muchas funciones complejas de las redes neuronales biológicas.1 Estructura de un perceptrón [1] vez que el algoritmo se entrena. su estudio fue abandonado a mediados de los 70 pues se descubrió que en tareas de clasificación como la XOR. es una sola. . transferencia de la RNA. se plantea el concepto de las Redes Neuronales Artificiales. éste Soma: Es el cuerpo de la célula nerviosa. aunque es importante resaltar las características más importantes de las Redes 2 . su principal función es la de transmitir la estructuras funcionales llegase a fallar. permite realizar una aproximación a la función es la de fabricar los elementos necesarios para programación necesaria que emulará el funcionamiento la vida de la Neurona. es decir. constituyendo el aprendizaje. responda de manera errada y Procesamiento en paralelo: ya que al recibir varios estímulos al mismo Dendritas: Ramas más cortas que el axón. evitando que ésta dicha información a las otras Neuronas. pues las RNA. cuando estamos aprendiendo algo. para luego ejecutar la función de la red creada. tal como sucede en las otras de la Neurona. [1] Como se indicó en la sección anterior las RNA. plasticidad y partes funcionales. sin embargo. células del cuerpo.CIDE. las tiempo responde según el estímulo más fuerte o según cuales llevan los impulsos nerviosos a otras neuronas. Para explicar el funcionamiento del Perceptrón se debe hacer referencia a su concepción matemática. Para el caso que nos ocupa se realiza el estudio a partir del Perceptrón multicapa. éstas a su vez conectan respaldan la función de la neurona. Plasticidad: pues si alguna de las Neurona. era incapaz de funcionar adecuadamente [Minsky y Papert].  Capa de Entrada: Constituye las entradas de la Neurona. funcionan de manera similar a su contraparte biológica. Éste es utilizado inicialmente para la solución de situaciones donde los estados a la salida. mediante Axón: Rama principal que sale del cuerpo de la las salidas deseadas. 2. Figura 1. cuando aprendemos a leer se generan una serie de conexiones neuronales que son utilizadas. es decir. Programa de electrónica. El Perceptrón es concebido por el psicólogo Frank Rosenblatt de la Universidad de Corell en 1959. A sea configurada. en éste caso se encuentran: Kohonen. Ahora bien. Aprendizaje: ya que la continuación: neurona puede ser entrenada y aprender a responder según las entradas a una situación específica. se crea una conexión entre las neuronas. Estructura Biológica de una Neurona. la célula está dividida en con algunas características: aprendizaje. en una aplicación específica.2 Redes Neuronales Artificiales: El  Capa Oculta: Allí está configurada la función de Perceptrón.

sin embargo en el presente artículo se Es decir tiene un comportamiento similar al encontrado presenta un código genérico el cual se puede en los sistemas biológicos y que se conoce como implementar en diferentes ambientes de programación. el más parecido en el estado presente).2. de ello depende la comprensión del funcionamiento de éste primer acercamiento al BACKPROPAGATIO PERCEPTRON HOPFIELD Perceptrón. memoria asociativa. por tanto la función de activación debe ser de la misma naturaleza.3. estos son formas de herramientas (Toolbox).3 Matlab en la modelación del Perceptrón Es la forma como la red actualiza los pesos de acuerdo Para identificar la estructura del Perceptrón simple. solo haremos referencia al Perceptrón Básico. se conecta o desconecta una red neuronal.CIDE. pero cuando se realiza una desconexión por el proceso de aprendizaje que sucede en el cerebro. se debe partir de las características sistemas biológicos. Figura 2.1 Topología: THEORY) Hace referencia a la forma como se conectan las redes Como se observa en la tabla se escriben tres ejemplos neuronales. Se establecen las entradas: Se configura la Los datos a tratar pueden ser continuos o discretos. 2. En el caso de los datos discretos. mecanismo de RNA CONTINUAS RNA HIBRIDAS RNA aprendizaje.2 Mecanismo de aprendizaje: 2. el número de conexiones entre las para que el lector profundice en el estudio de cada uno neuronas. según el número de entradas el primer caso se habla de datos tipo analógicos. es decir su valor no interesa pero deben existir. la única restricción es que no pueden ser cero. Cada uno de ellos tienen sus propias A continuación se realiza una descripción del algoritmo características no se profundizará en ellos ya que ésta usado para implementar un Perceptrón básico. cuando se produce un aprendizaje. los algoritmos de algunas redes representación del “nuevo conocimiento” para la RNA. se puede pensar en la forma como mencionadas en el apartado anterior. (De a la información de entrada. Heteroasociativas (Mantienen la información gracias a la existencia de dos capas una para captar la información y 1.4. se plantea el Según éste criterio. que Matlab ya trae en sus nuevos a partir de los aprendizajes. En éste caso se habla de Redes clasificaciones presentadas. en matriz de entrada.1 Estructura del Perceptrón Simple [1] Según esta característica las RNA pueden ser: con aprendizaje supervisado o con aprendizaje no supervisado. en el presente artículo tipo lineal o Sigmoidal. Para explicar la estructura del código. generalmente entre 0 y entradas actuales con los datos almacenados y escoge 1. ASOCIATIVE LINE (ASOCIATIVE MEMORY RESONANCE 2.2. . esto se interpreta en la RNA.2. sin embargo estos valores son irrelevantes. como analogía a los una sola capa). se aplican conceptos de programación estructurada.1 Resumen de RNA según tipo de datos [1] 4 características importantes: Topología. bajo intensión escapa a los límites del presente artículo. tomados de variables reales. neuronales.2. Se hace Es la forma como la red neuronal almacena los pesos necesario mencionar.3 Asociación de la información Entrada / Salida: comprensión y se realice la adaptación necesaria si se quiere usar otro entorno de programación.2. Neuronales Artificiales (RNA). Programa de electrónica. Además de su estructura se debe reconocer en las RNA. la función de activación debe ser de tipo escalón. Tabla 2. se genera una conexión esto quiere decir que para la RNA. el peso es distinto de cero. y de otros propuestos para cada una de las grado de conectividad. Se fijan los pesos aleatorios: Son valores que otra para retenerla) y Autoasociativas (compara las multiplican a la entrada. Monocapa y Redes Multicapa. como el equivalente a cero del peso que conecta a la entrada respectiva. asociación entre la información de entrada E:ANALOGA DISCRETAS y la información de salida y la forma como se representa S:ANALOGA E: ANALOGA E: BINARIA S: BINARIA S: BINARIA la información. 2. es decir de 3 . y los valores que toman cada una de ellas.4 Representación de la información esto indicaría que la entrada no se tiene en Entrada/Salida: cuenta. 2. las RNA pueden ser: siguiente orden en el algoritmo planteado. la cantidad de neuronas en cada capa y el de ellos. para que el código sea de fácil 2. entorno Matlab. N DISCRETO A continuación se presenta una breve descripción de LINEAR ADALINE/MADA ART tales características.

Para obtener la respuesta adecuada. observar el nuevo peso (Wn). esta es una constante entre 0 y 1. Para el Perceptrón se usará la será un vector de una columna con cuatro función hardlim. 1 0.3 se planteó la de salida deseada.1 Estados compuerta AND A éste algoritmo se le conoce como aprendizaje por X1 X2 Y refuerzo. W=rand(2. Tabla 3. en éste caso Teniendo en cuenta la salida deseada. De Y=[0 0 0 1] acuerdo a la función determinada. Luego se estableces el “BIas” o velocidad de aprendizaje. Programa de electrónica. se recalculan La salida deseada corresponde a una los nuevos pesos.k)=xi(t)). Para explicar el algoritmo usado. se escribe Con éste comando se genera un vector como: y=Hardlim((X*W)-Th) si el lector en éste llamado “W”. en éste caso el ecuaciones que rigen cada una de las etapas de dicho Perceptrón. 4 . de Matlab®. se debe 2.1.0. Se actualizan los pesos. las filas son designadas por las posibilidades de combinación de las 4. como se puede en éste caso el “Bias” tiene un valor de 0. debe definirse en ?? (? + 1) = ?? (?) + ?[?(?) − ?(?)]?? (?) Matlab como sigue: 0≤?≤? X = [0 0. la neurona repite el proceso hasta conseguir el 0 0 0 aprendizaje de las salidas deseadas. puede verificarlo usando el comando en Matlab®. éstos ayudarán a reevaluar compuerta AND. se calcula a partir del producto de la ganancia (α=n). que consta de dos datos punto está comprobando el resultado puede aleatorios organizado en dos filas y una observar que aún la respuesta no es la columna (2.1). se en dos estados la respuesta del Perceptrón. entradas 5. 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 número de entradas designa el número deseada “yd” de columnas. Aunque en la sección 2. La función de activación que se usa es de tipo escalón unitario. Matlab® es la tabla. correlacionando mencionado código con las activación de la red neuronal. Wn(k. cuya salida depende de las las nuevas entradas. El ciclo que debe realizarse se debe detener se puede definir usando el comando: Th=0. Se fijan los pesos aleatorios: En Matlab. En nuestro caso se función de la red neuronal planteada en la pretende que la red se comporte como una Ecuación: compuerta lógica de dos entradas. La estructura de la nueva salida.1.1)=Wn(k. Se actualizan pesos según respuesta. por la 3. la columna “X2” la segunda entrada y implementación de la función de transferencia del la columna “Y” a la salida.1)+(n*(X(i. la función escalón unitario. Para aplicar la Para ello se digita en el editor de Matlab ®. Calculo de la salida: Inicialmente se establece entrada (X(i.k)*e(i. Se regresa al paso 3 hasta obtener la respuesta deseada. 3. el lector como se puede observar en la Tabla 3.1))). Se calcula la salida según la función de estado de entrada una salida. menos la salida calculada por un vector “Y” que contenga por cada (y(t)).1 solo debe estar familiarizado con el Algebra Lineal. algoritmo. el lector para ser usado en diferentes contextos. para definir el vector Perceptrón. Esto indica que el vector de entrada “X”. para ello se usa la mencionadas entradas. . ésta debe estar conformada salida deseada (d(t)).3. por la diferencia entre la la salida deseada.1) deseada. ésta función permite clasificar 1. como se indica a continuación 4. citadas en la sección 2.CIDE. 0 1.1]. 0 1 0 1 0 0 1 1 1 3 DISEÑO DE LA APLICACIÓN EN MATLAB Observe como se resumen los datos de la Como se indicó anteriormente. 1 1] Dicha ecuación se puede escribir en Matlab de Se debe observar que al ejecutar esta línea de la siguiente manera: código se genera una matriz de 2 columnas y 4 filas. se explica paso a paso la implementación en calcula la salida a partir de la función de Matlab ®. pueden usar los vectores de datos.0. cuando el error sea menor a 1. en éste apartado se deja el código yd=[0. que es un vector columna. en éste caso aprendizaje. se usa en Matlab el línea de código: comando: Hardlim. filas. la columna “X1” corresponde a la primer herramienta por excelencia en el modelamiento e entrada. se puede usar el comando: forma de hacerlo. hay dos estados “0” o “1”. ahora se particular.

%Factor de ganancia en el rango de excedería en el presupuesto asignado para la compra de 0. según sus en éste caso 0. Como ejemplo de aplicación. ya que de otra manera se n=0. Buena y Paño. Calcular la salida de la neurona el Perceptrón requiere para obtener las yd=[0.1)=Wn(k. como se utilizó en Matlab ® hasta obtener la salida deseada.1 0.% Se establece el error aceptado.1 se interpreta en binario. 0 1. Fijar pesos aleatorios iteraciones que el programa debe recalcular los Wn=rand(2.1. se plantea el de ed=0. corresponde a una “yn”.1). %Bias o referencia del Perceptrón deseadas y revise el número de iteraciones que %3.2)*Wn(2. por costos.1: break else Tabla 4. y=hardlim((X*Wn)-Th).1.1 1]. donde “T” es el número de %1.j) i=fila. de tal forma que cuando las categorías Tipo ent=2. Selección de una prenda en binario. Establecer los valores de entrada neurona aprenda a resolver la compuerta OR. así cómo identificar los pesos en las vector “yn”. Paño Baja Si Th))+((X(i.y). %se establecen las iteraciones. si la Tabla 4. y observar la deben modificar los datos del vector “yd”. analizar el error “M” y determinar el número de compuerta OR y observar la respuesta en el iteraciones “T”. Para la categoría “Calidad” se establecen dos pueden ser definidas por la velocidad de estados.CIDE.1 características en cuanto a la Calidad de la tela y Tipo N=2.k)*e(i. respuestas a las compuertas AND. Programa de electrónica. %Aquí empieza el entrenamiento de la neurona.1))) No Paño Baja No end No Paño Buena Si yn(i.1. entradas ajustados a la respuesta deseada. hold on 4 EJEMPLO DE APLICACION e=yd-y. 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. se hace de manera recursiva La idea es que el Perceptrón seleccione dos %W(i. los aprendizaje estados son: No paño=0 y Paño=1. solo se anterior el vector de salida deseada “yd”.2. que salida que la neurona calcula. Buena if e==0 La situación se puede resumir en la Tabla 4. de Tela. 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. seleccionar una prenda de vestir. Si se Para ello solo se debe modificar en el programa quiere cambiar la salida deseada. para la categoría “Tipo”. permite identificar la velocidad de respuesta y la capacidad de Para determinar el número de veces que la aprendizaje.0 a 1. %Se calcula el error al restar la salida deseada de la salida obtenida.0 las prendas.1)-Th)))) Paño Buena No %Función para calcular las nuevas salidas. Continua hasta que el error sea menor 1 1 0 que la tolerancia La función que se ajusta al comportamiento de la situación anterior es la de una compuerta tipo XOR.0. pero que no seleccione los for T=1:N %Ciclo for correspondiente a las estados: iteraciones del aprendizaje por refuerzo No Paño. end se puede representar así: e=yd-yn M=e-ed Tabla 4.1]. j= Columna opciones.1)+(n*(X(i. Baja.1)*(Wn(1. El programa final. apartado anterior y el desarrollo de éste. y Calidad sean las parejas ordenadas: r=0. k=columnas Tipo Calidad Wn(k. al finalizar el aprendizaje para efectos del ejemplo. No Paño. Buena =1. pesos hasta obtener los adecuados para que la %2. se establece el fue: ciclo “for”. Resumen situación selección de una for i=1:4 %Ciclo for correspondiente a prenda las filas según no de entradas i=filas for k=1:ent %Ciclo for para Categoría de la Tela Selección actualizar pesos. plot(X. neurona tuvo que realizar el ajuste de los pesos 5 . Ahora bien. X=[0 0.grid on.0. Se sugiere que el lector cambie las salidas Th=0.1)=(hardlim((X(i. .9. Baja y Paño.1). Baja =0. % Se inician los nuevos pesos Respectivamente.

Inc.. los valores finales de este vector son los Tecnología en la institución. Al ejecutar el programa con las modificaciones Available: sugeridas anteriormente se obtienen los siguientes datos http://www. Se debe tener especial cuidado al utilizar valores adecuados para el Bias. «Neuron Model.html?searchHighlight=neuron+model. [4] MathWorks. acceso: 21 Octubre 2013]. Programa de electrónica. 6 REFERENCIAS [1] E. Se debe aclarar que cada vez que el programa se en la CIDE. se comporte ahora como una áreas afines a la disciplina de su titulación. pues estos valores la Ingeniería Electrónica. [Último acceso: 23 Marzo 2013].com/help/nnet/ug/neuron- de las variables analizadas: model.CIDE. Madrid. Docente en los niveles de formación del ciclo 5 en 5 CONCLUSIONES colegios del distrito. [En línea]. Co- compuerta XOR. mediante el comando: Ancizar Paredes Ardila Wn =rand(2. españa: Alfaomega. el programa asigna los valores. [2] «Aldabas. lo que debería corregirse si se quiere realizar un ejercicio de implementación más acertado. éste es un Colombia).htm.» 2013. 6 . Available: http://academic. Hilera. ya que éste puede afectar el comportamiento de la Red.es. [Último acceso: 5 Febrero 2012]. A pesar de los esfuerzos por emular el comportamiento de un Perceptrón. Docente Universitario en que se ingresan a la función finalmente para que la Red UNIMINUTO y TEINCO donde se ha desempeñado en Neuronal (RNA).uprm. [Último Los pesos iniciales se asignan de forma aleatoria.mathworks. muchos Educación (MTIAE-Universidad Pedagógica Nacional de no explican ampliamente los pasos a seguir. investigador del grupo Neurociencia de la Universidad de Antioquía. [En línea]. en los programas de son aleatorios.» Marzo 2005. R. los pesos iniciales cambian. como se observa en el código. ha orientado las materias relacionadas con ejecuta. [3] J.upc.eel. Redes Neuronales Artificiales. Bachiller Pedagógico.edu/eddiem/psic3001/id36. para éste caso: Wn = 0. se debe aclarar que para acercarse al comportamiento de una red neuronal se debe implementar el procesamiento en paralelo. líder del grupo de Investigación IARN-CIDE. Modelos y Aplicaciones. Introducción al reconocimiento de patrones mediante redes neuronales.5688 0. como pasante de Maestría. Emiliano. Available: www. Fundamentos. Marrero. «Página Profesor: Eddie Marrero. ejercicio que permite al estudiante implementar un Perceptrón de manera genérica. toda vez que puede ofrecer valores y comportamientos no adecuados. la mejor opción es usar elementos de hardware para conseguir un resultado aproximado. éste debe estar entre 0 y 1 así como el factor de ganancia que se observa en el programa de Matlab. en éste caso se usa un algoritmo secuencial.4694 Docente de tiempo completo desde 2008 hasta la fecha. 1995.» [En línea]. .1). (Normal Nacional para varones de Pamplona N de S) Ingeniero A pesar de los múltiples recursos y programas que Electrónico (Universidad Antonio Nariño) y candidato a se encuentran en torno a la implementación de un Máster en Tecnologías de la Información Aplicadas a la algoritmo para implementar una Red Neuronal..