SlideShare una empresa de Scribd logo
1 de 6
Descargar para leer sin conexión
CIDE. Programa de electrónica.
.
1
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
RESUMEN: Una de las estructuras de las redes
Neuronales es el Perceptrón, aunque existen
innumerables documentos y aportes entorno a la función
de transferencia de ésta estructura, el presente artículo
es el fruto del estudio hecho en una primera
aproximación al concepto, generando un material
didáctico, como estrategia de divulgación en la
Corporación Internacional para el Desarrollo Educativo
(CIDE), entorno al proyecto Redes Neuronales
Artificiales (RNA), adscrito al grupo de Investigación de
la Facultad de Ingenierías y Administración de la misma
(IARN-CIDE). El presente material didáctico se aplicará
en la fase exploratoria del concepto hacia la
implementación del algoritmo en un prototipo robótico,
específicamente un robot de tipo móvil, sin embargo,
éste se puede usar en cualquier campo del
conocimiento, de los programas ofertados en la CIDE, a
nivel tecnológico, tales como Sistemas, Gestión
Empresarial, Electrónica, Mecatrónica, Alimentos, entre
otros.
PALABRAS CLAVE: Redes Neuronales Artificiales,
Perceptrón, Función de Transferencia, Matlab.
Abstract:
Keywords:
1 INTRODUCCIÓN
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 simulación de una
estructura fundamental de las redes Neuronales
Artificiales (RNA), el Perceptrón; dicho algoritmo se
plantea de manera genérica, el estudiante puede usarla
en cualquier situación 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á según se le
entrene mediante una estrategia de aprendizaje, de las
muchas que se pueden implementar, quedando
propuesto en el código, de libre distribución, 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 explicación
funcional biológica, luego se presenta el modelo
matemático del Perceptrón, no siendo la única estructura
existente en las redes neuronales, luego se presenta el
código del aplicativo, para finalmente, ilustrar los
resultados obtenidos en el aplicativo con un ejemplo.
Los alcances de éste artículo, son los de presentar
una herramienta tecnológica ampliamente conocida y de
fácil uso para las personas que están familiarizadas con
el código de programación; 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 fácilmente, ejecutando el código
desde Matlab, con las limitaciones que se exponen en el
apartado respectivo al ejemplo de aplicación.
2 APROXIMACION TEORICA
Según las intenciones planteadas del artículo,
tratando de abordar el tema de manera integral, se
plantea una aproximación teórica en tres dimensiones:
 Biológica: Sin profundizar en ella, se plantea la
explicación de cómo funciona una neurona en el
ser humano.
 Matemática: Se presenta la información delimitada
del funcionamiento y modelo matemático de la
estructura de un Perceptrón, ubicándola en el
contexto global de las Redes Neuronales
Artificiales
 Técnica: Se hace referencia al uso de Matlab, en la
codificación del modelo matemático del Perceptrón.
2.1 CONCEPTO BIOLOGICO
La estructura fundamental del sistema nervioso
central es la Neurona, ésta como unidad funcional, hace
parte de una estructura más compleja, el cerebro.
Aunque se presume que el lector tiene nociones de este
tema, se plantea la descripción de ésta para explicar su
funcionamiento
CIDE. Programa de electrónica.
.
2
Figura 1. Estructura Biológica de una Neurona. [1]
Como se puede observar, la célula está dividida en
partes funcionales, cada una de ellas se describe a
continuación:
Axón: Rama principal que sale del cuerpo de la
Neurona, su principal función es la de transmitir la
información a las dendritas, éstas a su vez conectan
dicha información a las otras Neuronas.
Dendritas: Ramas más cortas que el axón, las
cuales llevan los impulsos nerviosos a otras neuronas. A
través de ellas se realizan las conexiones o Sinapsis con
otras Neuronas.
Soma: Es el cuerpo de la célula nerviosa, su
función es la de fabricar los elementos necesarios para
la vida de la Neurona, tal como sucede en las otras
células del cuerpo.
Una red Neuronal, se genera a partir de un proceso
de aprendizaje, es decir, cuando estamos aprendiendo
algo, se crea una conexión entre las neuronas,
constituyendo el aprendizaje, para luego ejecutar la
función de la red creada, cuando nos enfrentemos a una
situación 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 aplicación
específica, 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
biológicas.
2.2 Redes Neuronales Artificiales: El
Perceptrón.
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 Perceptrón multicapa.
El Perceptrón es concebido por el psicólogo Frank
Rosenblatt de la Universidad de Corell en 1959. Éste es
utilizado inicialmente para la solución de situaciones
donde los estados a la salida, son diferenciados y de
fácil separación. A partir de la estructura sencilla del
Perceptrón se pueden construir estructuras más
complejas, sin embargo, dada su simplicidad, su estudio
fue abandonado a mediados de los 70 pues se
descubrió que en tareas de clasificación como la XOR,
era incapaz de funcionar adecuadamente [Minsky y
Papert].
Como se indicó en la sección anterior las RNA,
funcionan de manera similar a su contraparte biológica,
con algunas características: aprendizaje, plasticidad y
procesamiento en paralelo. Aprendizaje: ya que la
neurona puede ser entrenada y aprender a responder
según las entradas a una situación específica, mediante
las salidas deseadas; Plasticidad: pues si alguna de las
estructuras funcionales llegase a fallar, existen otras que
respaldan la función de la neurona, evitando que ésta
responda de manera errada y Procesamiento en
paralelo: ya que al recibir varios estímulos al mismo
tiempo responde según el estímulo más fuerte o según
sea configurada.
Para explicar el funcionamiento del Perceptrón se
debe hacer referencia a su concepción matemática, éste
modelo, permite realizar una aproximación a la
programación necesaria que emulará el funcionamiento
de la Neurona.
Figura 2.2.1 Estructura de un perceptrón [1]
Como se observa en la Figura 2.1.1 las partes
constitutivas del Perceptrón 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 función de
transferencia de la RNA, es decir, la forma como
toma cada entrada y la evalúa.
 Capa de salida: Constituye la salida, en éste caso
es una sola.
Ahora bien, aunque es importante resaltar las
características más importantes de las Redes
CIDE. Programa de electrónica.
.
3
Neuronales Artificiales (RNA), en el presente artículo
solo haremos referencia al Perceptrón Básico.
Además de su estructura se debe reconocer en las RNA,
4 características importantes: Topología, mecanismo de
aprendizaje, asociación entre la información de entrada
y la información de salida y la forma como se representa
la información, de ello depende la comprensión del
funcionamiento de éste primer acercamiento al
Perceptrón.
A continuación se presenta una breve descripción de
tales características.
2.2.1 Topología:
Hace referencia a la forma como se conectan las redes
neuronales, el número 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 información de entrada; como analogía a los
sistemas biológicos, se puede pensar en la forma como
se conecta o desconecta una red neuronal; cuando se
produce un aprendizaje, se genera una conexión esto
quiere decir que para la RNA, el peso es distinto de
cero, pero cuando se realiza una desconexión 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.
Según esta característica las RNA pueden ser: con
aprendizaje supervisado o con aprendizaje no
supervisado. Cada uno de ellos tienen sus propias
características no se profundizará en ellos ya que ésta
intensión escapa a los límites del presente artículo.
2.2.3 Asociación de la información Entrada / Salida:
Es la forma como la red neuronal almacena los pesos
nuevos a partir de los aprendizajes, estos son formas de
representación del “nuevo conocimiento” para la RNA.
Es decir tiene un comportamiento similar al encontrado
en los sistemas biológicos y que se conoce como
memoria asociativa.
Según éste criterio, las RNA pueden ser:
Heteroasociativas (Mantienen la información gracias a la
existencia de dos capas una para captar la información y
otra para retenerla) y Autoasociativas (compara las
entradas actuales con los datos almacenados y escoge
el más parecido en el estado presente).
2.2.4 Representación de la información
Entrada/Salida:
Los datos a tratar pueden ser continuos o discretos, en
el primer caso se habla de datos tipo analógicos,
tomados de variables reales, por tanto la función de
activación debe ser de la misma naturaleza, es decir de
tipo lineal o Sigmoidal. En el caso de los datos discretos,
la función de activación debe ser de tipo escalón.
Tabla 2.2.4.1 Resumen de RNA según 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 modelación del Perceptrón
Para identificar la estructura del Perceptrón simple, (De
una sola capa), se debe partir de las características
mencionadas en el apartado anterior.
Figura 2.3.1 Estructura del Perceptrón Simple [1]
A continuación se realiza una descripción del algoritmo
usado para implementar un Perceptrón básico, bajo
entorno Matlab, se aplican conceptos de programación
estructurada, para que el código sea de fácil
comprensión y se realice la adaptación necesaria si se
quiere usar otro entorno de programación. Se hace
necesario mencionar, que Matlab ya trae en sus
herramientas (Toolbox), los algoritmos de algunas redes
neuronales, sin embargo en el presente artículo se
presenta un código genérico el cual se puede
implementar en diferentes ambientes de programación.
Para explicar la estructura del código, 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 restricción es que no pueden ser cero,
esto indicaría que la entrada no se tiene en
cuenta.
2. Se establecen las entradas: Se configura la
matriz de entrada, según el número de entradas
y los valores que toman cada una de ellas.
CIDE. Programa de electrónica.
.
4
3. Se calcula la salida según la función de
aprendizaje. Para el Perceptrón se usará la
función hardlim, de Matlab®.
4. Se actualizan pesos según respuesta. De
acuerdo a la función determinada, se recalculan
los nuevos pesos, éstos ayudarán 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 DISEÑO DE LA APLICACIÓN EN MATLAB
Como se indicó anteriormente, Matlab® es la
herramienta por excelencia en el modelamiento e
implementación de la función de transferencia del
Perceptrón. Aunque en la sección 2.3 se planteó la
forma de hacerlo, en éste apartado se deja el código
para ser usado en diferentes contextos.
Para explicar el algoritmo usado, en éste caso
particular, se explica paso a paso la implementación en
Matlab ®, correlacionando mencionado código con las
ecuaciones que rigen cada una de las etapas de dicho
algoritmo, citadas en la sección 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
línea de código:
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 número de entradas designa el número
de columnas, las filas son designadas por las
posibilidades de combinación de las
mencionadas entradas. En nuestro caso se
pretende que la red se comporte como una
compuerta lógica 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 línea de
código 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 continuación
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 función de
activación de la red neuronal, en éste caso el
Perceptrón.
La función de activación que se usa es de tipo
escalón unitario, ésta función permite clasificar
en dos estados la respuesta del Perceptrón,
como se puede observar en la Tabla 3.1 solo
hay dos estados “0” o “1”. Para aplicar la
función escalón 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 aún 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
función de la red neuronal planteada en la
Ecuación:
𝑤𝑖(𝑡 + 1) = 𝑤𝑖(𝑡) + 𝛼[𝑑(𝑡) − 𝑦(𝑡)]𝑥𝑖(𝑡)
0 ≤ 𝑖 ≤ 𝑁
Dicha ecuación 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)).
CIDE. Programa de electrónica.
.
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 Perceptrón
%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 según 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))))
%Función 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 número 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 número 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 número de iteraciones que
el Perceptrón requiere para obtener las
respuestas a las compuertas AND.
4 EJEMPLO DE APLICACION
Como ejemplo de aplicación, se plantea el de
seleccionar una prenda de vestir, según sus
características en cuanto a la Calidad de la tela y Tipo
de Tela. Para la categoría “Calidad” se establecen dos
estados, Buena =1, Baja =0; para la categoría “Tipo”, los
estados son: No paño=0 y Paño=1.
La idea es que el Perceptrón seleccione dos
opciones, por costos, ya que de otra manera se
excedería en el presupuesto asignado para la compra de
las prendas, de tal forma que cuando las categorías Tipo
y Calidad sean las parejas ordenadas:
No Paño, Buena y Paño, Baja.
Respectivamente, pero que no seleccione los
estados:
No Paño, Baja y Paño, Buena
La situación se puede resumir en la Tabla 4.1:
Tabla 4.1. Resumen situación selección de una
prenda
Categoría de la Tela
Selección
Tipo Calidad
No Paño Baja No
No Paño Buena Si
Paño Baja Si
Paño Buena No
Ahora bien, si la Tabla 4.1 se interpreta en binario,
se puede representar así:
Tabla 4.2. Selección de una prenda en binario.
T C S
0 0 0
0 1 1
1 0 1
1 1 0
La función que se ajusta al comportamiento de la
situación 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 número de
iteraciones “T”, así cómo identificar los pesos en las
entradas ajustados a la respuesta deseada, permite
identificar la velocidad de respuesta y la capacidad de
aprendizaje.
CIDE. Programa de electrónica.
.
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 código, 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 función finalmente para que la Red
Neuronal (RNA), se comporte ahora como una
compuerta XOR.
5 CONCLUSIONES
A pesar de los múltiples recursos y programas que
se encuentran en torno a la implementación 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
Perceptrón de manera genérica.
A pesar de los esfuerzos por emular el
comportamiento de un Perceptrón, 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 debería
corregirse si se quiere realizar un ejercicio de
implementación más acertado, la mejor opción 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, «Página Profesor: Eddie Marrero,» Marzo
2005. [En línea]. Available:
http://academic.uprm.edu/eddiem/psic3001/id36.htm.
[Último acceso: 5 Febrero 2012].
[2] «Aldabas, Emiliano. Introducción al reconocimiento
de patrones mediante redes neuronales,» [En línea].
Available: www.eel.upc.es.. [Último acceso: 23 Marzo
2013].
[3] J. R. Hilera, Redes Neuronales Artificiales.
Fundamentos, Modelos y Aplicaciones, Madrid,
españa: Alfaomega, 1995.
[4] MathWorks, Inc., «Neuron Model,» 2013. [En línea].
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 Ingeniería Electrónica, en los programas de
Tecnología en la institución. Docente Universitario en
UNIMINUTO y TEINCO donde se ha desempeñado en
áreas afines a la disciplina de su titulación, Co-
investigador del grupo Neurociencia de la Universidad de
Antioquía, como pasante de Maestría; líder del grupo de
Investigación IARN-CIDE.
Docente en los niveles de formación del ciclo 5 en
colegios del distrito. Bachiller Pedagógico, (Normal
Nacional para varones de Pamplona N de S) Ingeniero
Electrónico (Universidad Antonio Nariño) y candidato a
Máster en Tecnologías de la Información Aplicadas a la
Educación (MTIAE-Universidad Pedagógica Nacional de
Colombia).

Más contenido relacionado

Destacado

REDES NEURONALES De Hopfield
REDES NEURONALES De HopfieldREDES NEURONALES De Hopfield
REDES NEURONALES De Hopfield
ESCOM
 
Función de transferencia y respuesta en frecuencia
Función de transferencia y respuesta en frecuenciaFunción de transferencia y respuesta en frecuencia
Función de transferencia y respuesta en frecuencia
Moises Omp
 
El aprendizaje y sus tipos
El aprendizaje y sus tiposEl aprendizaje y sus tipos
El aprendizaje y sus tipos
painfeat
 
Methodologie compo bardoux
Methodologie compo bardouxMethodologie compo bardoux
Methodologie compo bardoux
julienbardoux
 
Compétition Leclerc
Compétition LeclercCompétition Leclerc
Compétition Leclerc
Sympartage
 
Valorisation et gestion durable des milieux : le cas de l'estuaire de la Sein...
Valorisation et gestion durable des milieux : le cas de l'estuaire de la Sein...Valorisation et gestion durable des milieux : le cas de l'estuaire de la Sein...
Valorisation et gestion durable des milieux : le cas de l'estuaire de la Sein...
hg-langlois
 

Destacado (20)

Reconocimiento de Patrones Incompletos Mediante Funciones de Activación Satli...
Reconocimiento de Patrones Incompletos Mediante Funciones de Activación Satli...Reconocimiento de Patrones Incompletos Mediante Funciones de Activación Satli...
Reconocimiento de Patrones Incompletos Mediante Funciones de Activación Satli...
 
Redes de propagación hacia delante y aprendizaje supervisado
Redes de propagación hacia delante   y aprendizaje supervisadoRedes de propagación hacia delante   y aprendizaje supervisado
Redes de propagación hacia delante y aprendizaje supervisado
 
REDES NEURONALES De Hopfield
REDES NEURONALES De HopfieldREDES NEURONALES De Hopfield
REDES NEURONALES De Hopfield
 
Esquema de Red con DMZ
Esquema de Red con DMZEsquema de Red con DMZ
Esquema de Red con DMZ
 
Función de transferencia y respuesta en frecuencia
Función de transferencia y respuesta en frecuenciaFunción de transferencia y respuesta en frecuencia
Función de transferencia y respuesta en frecuencia
 
Perceptron Simple y Regla Aprendizaje
Perceptron  Simple y  Regla  AprendizajePerceptron  Simple y  Regla  Aprendizaje
Perceptron Simple y Regla Aprendizaje
 
El aprendizaje y sus tipos
El aprendizaje y sus tiposEl aprendizaje y sus tipos
El aprendizaje y sus tipos
 
Perceptrón simple y multicapa
Perceptrón simple y multicapaPerceptrón simple y multicapa
Perceptrón simple y multicapa
 
Perceptron Multicapa back-propagation
 Perceptron Multicapa back-propagation  Perceptron Multicapa back-propagation
Perceptron Multicapa back-propagation
 
Methodologie compo bardoux
Methodologie compo bardouxMethodologie compo bardoux
Methodologie compo bardoux
 
Appel a-projet pmup-2013
Appel a-projet pmup-2013Appel a-projet pmup-2013
Appel a-projet pmup-2013
 
Compétition Leclerc
Compétition LeclercCompétition Leclerc
Compétition Leclerc
 
Cocina Smeg CO68GMP9
Cocina Smeg CO68GMP9Cocina Smeg CO68GMP9
Cocina Smeg CO68GMP9
 
Creche6
Creche6Creche6
Creche6
 
Valorisation et gestion durable des milieux : le cas de l'estuaire de la Sein...
Valorisation et gestion durable des milieux : le cas de l'estuaire de la Sein...Valorisation et gestion durable des milieux : le cas de l'estuaire de la Sein...
Valorisation et gestion durable des milieux : le cas de l'estuaire de la Sein...
 
Cocina Smeg C6GMXI8-2
Cocina Smeg C6GMXI8-2Cocina Smeg C6GMXI8-2
Cocina Smeg C6GMXI8-2
 
Roosevelt2012 Diaporama 20 avril 2013
Roosevelt2012 Diaporama 20 avril 2013Roosevelt2012 Diaporama 20 avril 2013
Roosevelt2012 Diaporama 20 avril 2013
 
Expo airsoft
Expo airsoftExpo airsoft
Expo airsoft
 
Étude et réalisation d’une application de contrôle d’un PC à distance en JAVA...
Étude et réalisation d’une application de contrôle d’un PC à distance en JAVA...Étude et réalisation d’une application de contrôle d’un PC à distance en JAVA...
Étude et réalisation d’une application de contrôle d’un PC à distance en JAVA...
 
Cocina Smeg TR4110BL1
Cocina Smeg TR4110BL1Cocina Smeg TR4110BL1
Cocina Smeg TR4110BL1
 

Último

NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
BRAYANJOSEPTSANJINEZ
 
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
nicolascastaneda8
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
gustavoiashalom
 

Último (20)

Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
 
Presentacion de la ganaderia en la región
Presentacion de la ganaderia en la regiónPresentacion de la ganaderia en la región
Presentacion de la ganaderia en la región
 
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdfJM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Gestion de proyectos para el control y seguimiento
Gestion de proyectos para el control  y seguimientoGestion de proyectos para el control  y seguimiento
Gestion de proyectos para el control y seguimiento
 

Función de tranferencia de un perceptrón con matlab

  • 1. CIDE. Programa de electrónica. . 1 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 RESUMEN: Una de las estructuras de las redes Neuronales es el Perceptrón, aunque existen innumerables documentos y aportes entorno a la función de transferencia de ésta estructura, el presente artículo es el fruto del estudio hecho en una primera aproximación al concepto, generando un material didáctico, como estrategia de divulgación en la Corporación Internacional para el Desarrollo Educativo (CIDE), entorno al proyecto Redes Neuronales Artificiales (RNA), adscrito al grupo de Investigación de la Facultad de Ingenierías y Administración de la misma (IARN-CIDE). El presente material didáctico se aplicará en la fase exploratoria del concepto hacia la implementación del algoritmo en un prototipo robótico, específicamente un robot de tipo móvil, sin embargo, éste se puede usar en cualquier campo del conocimiento, de los programas ofertados en la CIDE, a nivel tecnológico, tales como Sistemas, Gestión Empresarial, Electrónica, Mecatrónica, Alimentos, entre otros. PALABRAS CLAVE: Redes Neuronales Artificiales, Perceptrón, Función de Transferencia, Matlab. Abstract: Keywords: 1 INTRODUCCIÓN 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 simulación de una estructura fundamental de las redes Neuronales Artificiales (RNA), el Perceptrón; dicho algoritmo se plantea de manera genérica, el estudiante puede usarla en cualquier situación 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á según se le entrene mediante una estrategia de aprendizaje, de las muchas que se pueden implementar, quedando propuesto en el código, de libre distribución, 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 explicación funcional biológica, luego se presenta el modelo matemático del Perceptrón, no siendo la única estructura existente en las redes neuronales, luego se presenta el código del aplicativo, para finalmente, ilustrar los resultados obtenidos en el aplicativo con un ejemplo. Los alcances de éste artículo, son los de presentar una herramienta tecnológica ampliamente conocida y de fácil uso para las personas que están familiarizadas con el código de programación; 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 fácilmente, ejecutando el código desde Matlab, con las limitaciones que se exponen en el apartado respectivo al ejemplo de aplicación. 2 APROXIMACION TEORICA Según las intenciones planteadas del artículo, tratando de abordar el tema de manera integral, se plantea una aproximación teórica en tres dimensiones:  Biológica: Sin profundizar en ella, se plantea la explicación de cómo funciona una neurona en el ser humano.  Matemática: Se presenta la información delimitada del funcionamiento y modelo matemático de la estructura de un Perceptrón, ubicándola en el contexto global de las Redes Neuronales Artificiales  Técnica: Se hace referencia al uso de Matlab, en la codificación del modelo matemático del Perceptrón. 2.1 CONCEPTO BIOLOGICO La estructura fundamental del sistema nervioso central es la Neurona, ésta como unidad funcional, hace parte de una estructura más compleja, el cerebro. Aunque se presume que el lector tiene nociones de este tema, se plantea la descripción de ésta para explicar su funcionamiento
  • 2. CIDE. Programa de electrónica. . 2 Figura 1. Estructura Biológica de una Neurona. [1] Como se puede observar, la célula está dividida en partes funcionales, cada una de ellas se describe a continuación: Axón: Rama principal que sale del cuerpo de la Neurona, su principal función es la de transmitir la información a las dendritas, éstas a su vez conectan dicha información a las otras Neuronas. Dendritas: Ramas más cortas que el axón, las cuales llevan los impulsos nerviosos a otras neuronas. A través de ellas se realizan las conexiones o Sinapsis con otras Neuronas. Soma: Es el cuerpo de la célula nerviosa, su función es la de fabricar los elementos necesarios para la vida de la Neurona, tal como sucede en las otras células del cuerpo. Una red Neuronal, se genera a partir de un proceso de aprendizaje, es decir, cuando estamos aprendiendo algo, se crea una conexión entre las neuronas, constituyendo el aprendizaje, para luego ejecutar la función de la red creada, cuando nos enfrentemos a una situación 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 aplicación específica, 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 biológicas. 2.2 Redes Neuronales Artificiales: El Perceptrón. 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 Perceptrón multicapa. El Perceptrón es concebido por el psicólogo Frank Rosenblatt de la Universidad de Corell en 1959. Éste es utilizado inicialmente para la solución de situaciones donde los estados a la salida, son diferenciados y de fácil separación. A partir de la estructura sencilla del Perceptrón se pueden construir estructuras más complejas, sin embargo, dada su simplicidad, su estudio fue abandonado a mediados de los 70 pues se descubrió que en tareas de clasificación como la XOR, era incapaz de funcionar adecuadamente [Minsky y Papert]. Como se indicó en la sección anterior las RNA, funcionan de manera similar a su contraparte biológica, con algunas características: aprendizaje, plasticidad y procesamiento en paralelo. Aprendizaje: ya que la neurona puede ser entrenada y aprender a responder según las entradas a una situación específica, mediante las salidas deseadas; Plasticidad: pues si alguna de las estructuras funcionales llegase a fallar, existen otras que respaldan la función de la neurona, evitando que ésta responda de manera errada y Procesamiento en paralelo: ya que al recibir varios estímulos al mismo tiempo responde según el estímulo más fuerte o según sea configurada. Para explicar el funcionamiento del Perceptrón se debe hacer referencia a su concepción matemática, éste modelo, permite realizar una aproximación a la programación necesaria que emulará el funcionamiento de la Neurona. Figura 2.2.1 Estructura de un perceptrón [1] Como se observa en la Figura 2.1.1 las partes constitutivas del Perceptrón 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 función de transferencia de la RNA, es decir, la forma como toma cada entrada y la evalúa.  Capa de salida: Constituye la salida, en éste caso es una sola. Ahora bien, aunque es importante resaltar las características más importantes de las Redes
  • 3. CIDE. Programa de electrónica. . 3 Neuronales Artificiales (RNA), en el presente artículo solo haremos referencia al Perceptrón Básico. Además de su estructura se debe reconocer en las RNA, 4 características importantes: Topología, mecanismo de aprendizaje, asociación entre la información de entrada y la información de salida y la forma como se representa la información, de ello depende la comprensión del funcionamiento de éste primer acercamiento al Perceptrón. A continuación se presenta una breve descripción de tales características. 2.2.1 Topología: Hace referencia a la forma como se conectan las redes neuronales, el número 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 información de entrada; como analogía a los sistemas biológicos, se puede pensar en la forma como se conecta o desconecta una red neuronal; cuando se produce un aprendizaje, se genera una conexión esto quiere decir que para la RNA, el peso es distinto de cero, pero cuando se realiza una desconexión 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. Según esta característica las RNA pueden ser: con aprendizaje supervisado o con aprendizaje no supervisado. Cada uno de ellos tienen sus propias características no se profundizará en ellos ya que ésta intensión escapa a los límites del presente artículo. 2.2.3 Asociación de la información Entrada / Salida: Es la forma como la red neuronal almacena los pesos nuevos a partir de los aprendizajes, estos son formas de representación del “nuevo conocimiento” para la RNA. Es decir tiene un comportamiento similar al encontrado en los sistemas biológicos y que se conoce como memoria asociativa. Según éste criterio, las RNA pueden ser: Heteroasociativas (Mantienen la información gracias a la existencia de dos capas una para captar la información y otra para retenerla) y Autoasociativas (compara las entradas actuales con los datos almacenados y escoge el más parecido en el estado presente). 2.2.4 Representación de la información Entrada/Salida: Los datos a tratar pueden ser continuos o discretos, en el primer caso se habla de datos tipo analógicos, tomados de variables reales, por tanto la función de activación debe ser de la misma naturaleza, es decir de tipo lineal o Sigmoidal. En el caso de los datos discretos, la función de activación debe ser de tipo escalón. Tabla 2.2.4.1 Resumen de RNA según 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 modelación del Perceptrón Para identificar la estructura del Perceptrón simple, (De una sola capa), se debe partir de las características mencionadas en el apartado anterior. Figura 2.3.1 Estructura del Perceptrón Simple [1] A continuación se realiza una descripción del algoritmo usado para implementar un Perceptrón básico, bajo entorno Matlab, se aplican conceptos de programación estructurada, para que el código sea de fácil comprensión y se realice la adaptación necesaria si se quiere usar otro entorno de programación. Se hace necesario mencionar, que Matlab ya trae en sus herramientas (Toolbox), los algoritmos de algunas redes neuronales, sin embargo en el presente artículo se presenta un código genérico el cual se puede implementar en diferentes ambientes de programación. Para explicar la estructura del código, 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 restricción es que no pueden ser cero, esto indicaría que la entrada no se tiene en cuenta. 2. Se establecen las entradas: Se configura la matriz de entrada, según el número de entradas y los valores que toman cada una de ellas.
  • 4. CIDE. Programa de electrónica. . 4 3. Se calcula la salida según la función de aprendizaje. Para el Perceptrón se usará la función hardlim, de Matlab®. 4. Se actualizan pesos según respuesta. De acuerdo a la función determinada, se recalculan los nuevos pesos, éstos ayudarán 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 DISEÑO DE LA APLICACIÓN EN MATLAB Como se indicó anteriormente, Matlab® es la herramienta por excelencia en el modelamiento e implementación de la función de transferencia del Perceptrón. Aunque en la sección 2.3 se planteó la forma de hacerlo, en éste apartado se deja el código para ser usado en diferentes contextos. Para explicar el algoritmo usado, en éste caso particular, se explica paso a paso la implementación en Matlab ®, correlacionando mencionado código con las ecuaciones que rigen cada una de las etapas de dicho algoritmo, citadas en la sección 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 línea de código: 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 número de entradas designa el número de columnas, las filas son designadas por las posibilidades de combinación de las mencionadas entradas. En nuestro caso se pretende que la red se comporte como una compuerta lógica 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 línea de código 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 continuación 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 función de activación de la red neuronal, en éste caso el Perceptrón. La función de activación que se usa es de tipo escalón unitario, ésta función permite clasificar en dos estados la respuesta del Perceptrón, como se puede observar en la Tabla 3.1 solo hay dos estados “0” o “1”. Para aplicar la función escalón 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 aún 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 función de la red neuronal planteada en la Ecuación: 𝑤𝑖(𝑡 + 1) = 𝑤𝑖(𝑡) + 𝛼[𝑑(𝑡) − 𝑦(𝑡)]𝑥𝑖(𝑡) 0 ≤ 𝑖 ≤ 𝑁 Dicha ecuación 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 electrónica. . 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 Perceptrón %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 según 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)))) %Función 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 número 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 número 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 número de iteraciones que el Perceptrón requiere para obtener las respuestas a las compuertas AND. 4 EJEMPLO DE APLICACION Como ejemplo de aplicación, se plantea el de seleccionar una prenda de vestir, según sus características en cuanto a la Calidad de la tela y Tipo de Tela. Para la categoría “Calidad” se establecen dos estados, Buena =1, Baja =0; para la categoría “Tipo”, los estados son: No paño=0 y Paño=1. La idea es que el Perceptrón seleccione dos opciones, por costos, ya que de otra manera se excedería en el presupuesto asignado para la compra de las prendas, de tal forma que cuando las categorías Tipo y Calidad sean las parejas ordenadas: No Paño, Buena y Paño, Baja. Respectivamente, pero que no seleccione los estados: No Paño, Baja y Paño, Buena La situación se puede resumir en la Tabla 4.1: Tabla 4.1. Resumen situación selección de una prenda Categoría de la Tela Selección Tipo Calidad No Paño Baja No No Paño Buena Si Paño Baja Si Paño Buena No Ahora bien, si la Tabla 4.1 se interpreta en binario, se puede representar así: Tabla 4.2. Selección de una prenda en binario. T C S 0 0 0 0 1 1 1 0 1 1 1 0 La función que se ajusta al comportamiento de la situación 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 número de iteraciones “T”, así cómo 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 electrónica. . 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 código, 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 función finalmente para que la Red Neuronal (RNA), se comporte ahora como una compuerta XOR. 5 CONCLUSIONES A pesar de los múltiples recursos y programas que se encuentran en torno a la implementación 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 Perceptrón de manera genérica. A pesar de los esfuerzos por emular el comportamiento de un Perceptrón, 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 debería corregirse si se quiere realizar un ejercicio de implementación más acertado, la mejor opción 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, «Página Profesor: Eddie Marrero,» Marzo 2005. [En línea]. Available: http://academic.uprm.edu/eddiem/psic3001/id36.htm. [Último acceso: 5 Febrero 2012]. [2] «Aldabas, Emiliano. Introducción al reconocimiento de patrones mediante redes neuronales,» [En línea]. Available: www.eel.upc.es.. [Último acceso: 23 Marzo 2013]. [3] J. R. Hilera, Redes Neuronales Artificiales. Fundamentos, Modelos y Aplicaciones, Madrid, españa: Alfaomega, 1995. [4] MathWorks, Inc., «Neuron Model,» 2013. [En línea]. 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 Ingeniería Electrónica, en los programas de Tecnología en la institución. Docente Universitario en UNIMINUTO y TEINCO donde se ha desempeñado en áreas afines a la disciplina de su titulación, Co- investigador del grupo Neurociencia de la Universidad de Antioquía, como pasante de Maestría; líder del grupo de Investigación IARN-CIDE. Docente en los niveles de formación del ciclo 5 en colegios del distrito. Bachiller Pedagógico, (Normal Nacional para varones de Pamplona N de S) Ingeniero Electrónico (Universidad Antonio Nariño) y candidato a Máster en Tecnologías de la Información Aplicadas a la Educación (MTIAE-Universidad Pedagógica Nacional de Colombia).