SlideShare ist ein Scribd-Unternehmen logo
1 von 8
Downloaden Sie, um offline zu lesen
1
“Hardlim y Hardlims Utilizando Matlab”
1. J. Banda, 2. J. Martínez, Tutor: Ing. Henry Paz
Resumen—En el presente Paper se abordara temas como
Hardlim, Hardlims, Red Neuronal, Perceptron, Perceptron Mul-
ticapa, Funciones de Activacion, Función de transferencia, tipos
de entrenamiento, y código.
Index Terms—Hardlim, Hardlims, Perceptron, Perceptron
Multicapa, Función de Activación.
I. INTRODUCCIÓN
La red tipo Perceptron emplea principalmente dos funciones
de transferencia, hardlim con salidas 1, 0 o hardlims con
salidas 1, -1; su uso depende del valor de salida que se
espera para la red, es decir si la salida de la red es unipolar
o bipolar; sin embargo la función hardlims es preferida sobre
la hardlim, ya que el tener un cero multiplicando algunas de
los valores resultantes del producto de las entradas por el
vector de pesos, ocasiona que estos no se actualicen y que el
aprendizaje sea más lento.
II. ESTADO DEL ARTE
II-A. La Neurona Artificial
El modelo de una neurona artificial es una imitación del
proceso de una neurona biológica, puede también asemejarse
a un sumador hecho con un amplificador operacional tal
como se ve en la figura:
Fig 1.Neurona Artificial
Existen varias formas de nombrar una neurona artificial, es
conocida como nodo, neuronodo, celda, unidad o elemento
de procesamiento (PE). En la siguiente figura se observa un
PE en forma general y su similitud con una neurona biológica:
1. J. Banda, Universidad Nacional de Loja, Loja, Ecuador, e-mail: jiban-
dab@unl.edu.ec
2. J. Martínez , Universidad Nacional de Loja, Loja,Ecuador, e-mail:
jamartinezg@unl.edu.ec
Manuscrito recibido el 9 de Mayo, 2014; revisado el 9 de Mayo, 2014.
Fig 2. Neurona Biológica
De la observación detallada del proceso biológico se han
hallado los siguientes análogos con el sistema artificial:
Las señales de entrada a una neurona artificial x1, x2,.., xn
son variables continuas en lugar de pulsos discretos, como se
presentan en una neurona biológica. Cada señal de entrada
pasa a través de una ganancia o peso, llamado peso sináptico
o fortaleza de la conexión cuya función es análoga a la de la
función sináptica de la neurona biológica. Los pesos pueden
ser positivos (excitatorios), o negativos (inhibitorios), el nodo
sumatorio acumula todas las señales de entradas multiplicadas
por los pesos o ponderadas y las pasa a la salida a través de
una función umbral o función de transferencia. La entrada
neta a cada unidad puede escribirse de la siguiente manera:
Las entradas Xi representan las señales que provienen de
otras neuronas y que son capturadas por las dendritas.
Los pesos Wi son la intensidad de la sinapsis que conecta
dos neuronas; tanto Xi como Wi son valores reales.
θ es la función umbral que la neurona debe sobrepasar
para activarse; este proceso ocurre biológicamente en el
cuerpo de la célula.
Las señales de entrada a una neurona artificial x1, x2,.., xn
son variables continuas en lugar de pulsos discretos, como se
presentan en una neurona biológica. Cada señal de entrada
pasa a través de una ganancia o peso, llamado peso sináptico
o fortaleza de la conexión cuya función es análoga a la de la
función sináptica de la neurona biológica. Los pesos pueden
ser positivos (excitatorios), o negativos (inhibitorios), el nodo
sumatorio acumula todas las señales de entradas multiplicadas
por los pesos o ponderadas y las pasa a la salida a través de
una función umbral o función de transferencia. La entrada
neta a cada unidad puede escribirse de la siguiente manera:
Una idea clara de este proceso se muestra en la siguiente
figura, en donde puede observarse el recorrido de un conjunto
de señales que entran a la red.
2
Fig 3.Recorrido de conjunto de señales
Una vez que se ha calculado la activación del nodo, el
valor de salida equivale a
Donde fi representa la función de activación para esa uni-
dad, que corresponde a la función escogida para transformar
la entrada netai en el valor de salida xi y que depende de las
características específicas de cada red.
II-B. Redes Neuronales
Las neuronas artificiales simples fueron introducidas por
McCulloch y Pitts en 1943. Una red neuronal se caracteriza
por los siguientes elementos:
1 Un conjunto de unidades de procesamiento o neuronas.
2 Un estado de activación para cada unidad equivalente a
la salida de la unidad.
3 Conexiones entre las unidades, generalmente definidas
por un peso que determina el efecto de una señal de
entrada en la unidad.
4 Una regla de propagación, que determina la entrada
efectiva de una unidad a partir de las entradas externas.
5 Una función de activación que actualiza el nuevo nivel de
activación basándose en la entrada efectiva y la activación
anterior.
6 Una entrada externa que corresponde a un término de-
terminado como bias para cada unidad.
7 Un método para reunir la información, correspondiente
a la regla de aprendizaje
8 Un ambiente en el que el sistema va aperar, con señales
de entrada e incluso señales de error.
En muchas redes las unidades de proceso tienen respuesta
de forma:
xk:Señales de salida de otros nodos o entradas externas.
wk:Pesos de las ligas de conexión.
f0:Función no lineal simple.
La función f puede ser sigmoidal, tangente hiperbólica,
escalón, entre otras. En Matlab se tiene diferentes funciones de
activación como tansig, hardlim y perelin, entre otras, lo cual
facilita las aproximaciones que se requieran hacer, empleando
RNA. Cada unidad de procesos tiene una tarea simple: recibe
la entrada de otras unidades o de funciones externas y procesa
la información para obtener una salida que se propaga a otras
unidades. Una red puede tener una estructura arbitraria, pero
las capas que contienen estas estructuras están definidas de
acuerdo con una ubicación en la topología de la red neuronal.
Las capas internas que no se observan como entradas o salidas
se denominan capas ocultas. Por convención las entradas no
se consideran como capas porque no realizan procesamiento.
La entrada total u de una unidad k es la suma de los pesos de
las entradas conectadas, más un bias θ
Si el peso wj es positivo se habla de una excitación y si
el peso es negativo se considera una inhibición de la entrada.
Si consideramos como funciones del tiempo, la expresión
anterior se convierte en:
II-C. Función de Activación
La regla que logra establecer el efecto de la entrada total
u(t) en la activación de la unidad k se denomina función de
activación (Fk):
En muchas ocasiones esta función es de la forma no
decreciente respecto a la entrada total de la unidad:
C,1. Función Escalón: La función de activación escalón
se asocia a neuronas binarias en las cuales, cuando la suma
de las entradas es mayor o igual que el umbral de la neurona
es 1; si es menor, la activación es 0 (o -1).
Fig.4 Función escalón
C,2. Cuadro comparativo de funciones: La siguiente tabla
hace una relación de las principales funciones de transferencia
empleadas en el entrenamiento de redes neuronales.
3
Fig.5 Comparación de funciones
II-D. Funciones de Transferencia.
Un modelo más académico que facilita el estudio de una
neurona, puede visualizarse en la figura:
Fig 6. Neurona Didáctica
Las entradas a la red serán ahora presentadas en el vector
p, que para el caso de una sola neurona contiene solo un
elemento, w sigue representando los pesos y la nueva entrada
b es una ganancia que refuerza la salida del sumador n, la
cual es la salida neta de la red; la salida total está determinada
por la función de transferencia, la cual puede ser una función
lineal o no lineal de n, y que es escogida dependiendo de
las especificaciones del problema que la neurona tenga que
resolver; aunque las RNA se inspiren en modelos biológicos
no existe ninguna limitación para realizar modificaciones
en las funciones de salida, así que se encontrarán modelos
artificiales que nada tienen que ver con las características del
sistema biológico.
Limitador fuerte (Hardlim): la siguiente figura muestra
como esta función de transferencia acerca la salida de la red
a cero, si el argumento de la función es menor que cero y la
lleva a uno si este argumento es mayor que uno. Esta función
crea neuronas que clasifican las entradas en dos categorías
diferentes, característica que le permite ser empleada en la
red tipo Perceptrón
Fig 7. Función Hardlim
El ícono para la función Hardlim reemplazara a la letra f
en la expresión general, cuando se utilice la función Hardlim.
Una modificación de esta función puede verse en la siguiente
figura, la que representa la función de transferencia Hardlims
que restringe el espacio de salida a valores entre 1 y –1
Fig 8. Función Hardlims
II-E. Perceptrón Multicapa.
Un Perceptrón multicapa es una red con alimentación
hacia delante, compuesta de varias capas de neuronas entre la
entrada y la salida de la misma, esta red permite establecer
regiones de decisión mucho más complejas que las de dos
semiplanos, como lo hace el Perceptrón de un solo nivel.
En el problema de la función XOR se explicó como un
Perceptrón multicapa había sido implementado para hallar
una solución. Las capacidades del Perceptrón multicapa con
dos y tres capas y con una única neurona en la capa de salida
se muestran en la siguiente figura. En la segunda columna se
muestra el tipo de región de decisión que se puede formar
con cada una de las configuraciones, en la siguiente se indica
el tipo de región que se formaría para el problema de la
XOR, en las dos últimas columnas se muestran las regiones
formadas para resolver el problema de clases mezcladas y las
formas más generales para cada uno de los casos:
4
Fig 9. Perceptrones Multicapa
II-F. Aprendizaje de la Red Neuronal.
El Aprendizaje es la característica más importante de una
red neuronal. Durante este aprendizaje o entrenamiento de
la red y por aplicación de un conjunto de entradas, se van
ajustando adecuada e internamente todos y cada uno de los
pesos asociados a cada rama para obtener la salida deseada (o
al menos una salida consistente), de forma que la red pueda
responder después por si sola a situaciones diferentes a las
aprendidas.
F,1. Aprendizaje Supervisado y No Supervisado:
Aprendizaje Supervisado: es un caso de entrenamiento
con Profesor y utiliza información global. Se presentan dos
vectores (entradas y salidas deseadas). La salida computada
por la red se compara con la salida deseada, y los pesos de la
red se modifican en el sentido de reducir el error cometido.
Se repite interactivamente, hasta que la diferencia entre
salida computada y deseada sea aceptablemente pequeña. Con
n parejas de este tipo se forma un Conjunto de Entrenamiento.
Aprendizaje No Supervisado: es un caso de entrenamiento
Sin Profesor y solo usa información local durante todo el
proceso de aprendizaje. Es un modelo más cercano al sistema
biológico, no se utiliza vector de salida esperada, y solo hay
vectores de entrada en el conjunto de entrenamiento, y solo
hay vectores de entrada en el conjunto de entrenamiento. El
algoritmo modifica los pesos de forma que las salidas sean
consistentes, es decir, que a entradas muy parecidas, la red
compute la misma salida. Las salidas se asocian a las entradas
de acuerdo con el proceso de entrenamiento. El proceso
extrae características, abstrayendo las propiedades colectivas
subyacentes del conjunto de entrenamiento, y agrupa por
clases de similitudes.
III. IMPLEMENTACIÓN EN MATLAB
MATLAB R (Matrix Laboratory) es un software
desarrollado por MathWorks. Es un software especializado
de programación matemática idóneo para la investigación
científica y para diversas aplicaciones en general. Dicho de
otra forma MATLAB es un lenguaje de alto nivel para la
computación técnica, tal y como lo definen sus creadores.
Esto integra computación, visualización y una programación
es un medio ambiente de fácil uso donde los problemas y
las soluciones son expresadas en una notación matemática
familiar.
Matlab integra un Toolbox (caja de herramientas) para tra-
bajar con Redes Neuronales Pesos y Umbrales simplificando
así la creación y funcionamiento de redes neuronales.
A continuación una lista de funciones principales utilizadas
para crear redes neuronales y sus respectivos parámetros:
Fig 10. Comandos Básicos Matlab
La función que se utilizará en newff para crear una red
backpropagation
Fig 11. Interfaz del programa
La siguiente función se ejecuta al momento de iniciar la
interfaz, su principal objetivo es desactivar la mayor parte de
componentes.
function HardlimProject_OpeningFcn(
hObject,eventdata,handles, varargin)
%Codigo de la interfaz
handles.output = hObject;
guidata(hObject, handles);
%Centrar interfaz en la pantalla
scrsz=get(0,’ScreenSize’);
pos_act=get(gcf,’Position’);
xr=scrsz(3)-pos_act(3);
xp=round(xr/2);
yr=scrsz(4)-pos_act(4);
5
yp=round(yr/2);
set(gcf,’Position’,[xp yp pos_act(3) pos_act(4)]);
%Desactivacion de componentes iniciales
set(handles.txt_P,’Enable’,’off’);
set(handles.txt_T,’Enable’,’off’);
set(handles.lbl_pum_entrenamiento,’Enable’,’off’);
set(handles.pum_entrenamiento,’Enable’,’off’);
set(handles.lbl_txt_capas,’Enable’,’off’);
set(handles.txt_capas,’Enable’,’off’);
set(handles.btn_capas,’Enable’,’off’);
set(handles.btn_ejecutar,’Enable’,’off’);
set(handles.btn_red_neuronal,’Enable’,’off’);
%Guardar entrenamiento por defecto
handles.entrenam_guardado = ’traingd’;
guidata(hObject,handles);
La siguiente función se encuentra programada en el popup
menu con el nombre tag pum_func como se aprecia en la
siguiente figura:
Fig 12. Selector de funciones de activación
Su función es permitir al usuario seleccionar el tipo de funcion
de activación a utilizar:
function pum_Func_Callback(
hObject, eventdata, handles)
%Se obtine el valor del componete poupmenu
%denominado pum_Func
valor=get(handles.pum_Func,’Value’);
switch valor
case 1
%La priemra opcion esta en blanco,
%mantiene componentes desactivados
set(handles.txt_P,’Enable’,’off’);
set(handles.txt_T,’Enable’,’off’);
set(handles.lbl_pum_entrenamiento,
’Enable’,’off’);
set(handles.pum_entrenamiento,
’Enable’,’off’);
set(handles.lbl_txt_capas,
’Enable’,’off’);
set(handles.txt_capas,’Enable’,’off’);
set(handles.btn_capas,’Enable’,’off’);
set(handles.btn_ejecutar,’Enable’,’off’);
set(handles.btn_red_neuronal,
’Enable’,’off’);
case 2
%Activacion de todos los componentes
set(handles.txt_P,’Enable’,’on’);
set(handles.txt_T,’Enable’,’on’);
set(handles.lbl_pum_entrenamiento,
’Enable’,’on’);
set(handles.pum_entrenamiento,
’Enable’,’on’);
set(handles.lbl_txt_capas,
’Enable’,’on’);
set(handles.txt_capas,’Enable’,’on’);
set(handles.btn_capas,’Enable’,’on’);
%El boton graficar y ver red neuronal se
%mantienen desactivados
set(handles.btn_ejecutar,
’Enable’,’off’);
set(handles.btn_red_neuronal,
’Enable’,’off’);
%En caso de seleccionar un nuevo tipo de
%funcion se borra el campo de capas
%para que sean ingresadas nuevamente
set(handles.txt_capas,’String’,’’);
%Se guarda el nombre de la funcion ’hardlim’
%en func_activ_guardada para ser
%utilizada luego
handles.func_activ_guardada = ’hardlim’;
guidata(hObject,handles);
case 3
%Activacion de todos los componentes
set(handles.txt_P,’Enable’,’on’);
set(handles.txt_T,’Enable’,’on’);
set(handles.lbl_pum_entrenamiento,
’Enable’,’on’);
set(handles.pum_entrenamiento,
’Enable’,’on’);
set(handles.lbl_txt_capas,
’Enable’,’on’);
set(handles.txt_capas,’Enable’,’on’);
set(handles.btn_capas,’Enable’,’on’);
%El boton graficar y ver red neuronal se
%mantienen desactivados
set(handles.btn_ejecutar,’Enable’,’off’);
set(handles.btn_red_neuronal
,’Enable’,’off’);
%En caso de seleccionar un nuevo tipo de
%funcion se borra el campo de capas para
%que sean ingresadas nuevamente
set(handles.txt_capas,’String’,’’);
%Se guarda el nombre de la funcion ’hardlims’
%en la misma variable func_activ_guardada
%para ser utilizada luego
handles.func_activ_guardada = ’hardlims’;
guidata(hObject,handles);
end
Seguidamente la función callback del componente
pum_entrenamiento:
Fig 13. Selector de tipos de entrenamiento
6
que parecido al anterior, permite seleccionar el tipo de entre-
namiento que se dará a la red:
function pum_entrenamiento_Callback(
hObject, eventdata, handles)
%Se obtiene el valor del componente popupmenu
%denominado pum_entrenamiento
valor_entrenam = get(
handles.pum_entrenamiento,’Value’);
switch valor_entrenam
case 1
%Guarda valor ’traingd’
%en entrenam_guardado
handles.entrenam_guardado = ’traingd’;
guidata(hObject,handles);
case 2
%Guarda valor ’traingdm’
%en entrenam_guardado
handles.entrenam_guardado = ’traingdm’;
guidata(hObject,handles);
case 3
%Guarda valor ’traingdx’
%en entrenam_guardado
handles.entrenam_guardado = ’traingdx’;
guidata(hObject,handles);
end
A continuación la función callback del botón btn_capas que
se le asignó como etiqueta Agregar neuronas a las capas:
Fig 14. Ingresar capas y neuronas de la red
la funcionalidad del botón se basa en que luego de que el
usuario ingresa un numero de capas deseado, al hacer clic en
el botón, este permite agregar las neuronas deseadas para dicha
capa:
function btn_capas_Callback(
hObject, eventdata, handles)
%Obtenemos el numero de
%capas ingresadas por el usuario
%y se lo transforma a numerico
temp_1 = get(handles.txt_capas,’String’);
temp_2 = str2num(temp_1);
%Entrada del numero de neuronas
%por capa, Se utiliza una matriz
vector_capas=[];
%La funcion que tendra cada capa,
% igual numero de capas
%y de funciones. Se utiliza un array
vector_func_por_capa={};
%Se recupera la
%funcion de activacion seleccionada
%por el usuario
funcion_recuperada=
handles.func_activ_guardada;
for n=1:1:temp_2
%Mediante un inputdlg se ingresa
%el numero de
%neuronas para cada capa
texto_1=’Numero de neuronas para la capa ’;
texto_2=num2str(n);
texto_completo = [texto_1 texto_2];
prompt = {texto_completo};
dlg_title = ’Numero de neuronas por capa’;
num_lines = 2;
def = {’1’};
answer = inputdlg(
prompt,dlg_title,num_lines,def);
%Se crea el vector con las capas
%y la cantidad de
%neuronas para cada capa
vector_capas=[vector_capas str2num(
answer{1,1})];
%Se crea el array con el numero
%de funciones necesarias
vector_func_por_capa(n)={
funcion_recuperada};
end
%Se guardan los resultados para
%integrarlos en la funcion newff
handles.num_capas = vector_capas;
guidata(hObject,handles);
handles.vector_func_por_capa_guardada=
vector_func_por_capa;
guidata(hObject,handles);
%Se activa el boton para ejecutar
set(handles.btn_ejecutar,’Enable’,’on’);
set(handles.btn_red_neuronal,’Enable’,’off’);
La función que se verá a continuación esta en el callback del
botón btn_ejecutar con la etiqueta Graficar:
Fig 15. Botón Graficar
la funcionalidad del botón consiste en que una vez seleccio-
nada la función de activación, el tipo de entrenamiento, hayan
sido ingresados los valores de entrada, las capas y las neuronas
para cada capa, se integra dentro de la función newff para
luego ser graficado, mostrando así los resultados esperados:
function btn_ejecutar_Callback(
hObject, eventdata, handles)
valor = get(handles.txt_capas,’String’);
valor = str2double(valor)
%verificacion para asegurar que se
%hayan ingresado las capas
if ~isnan(valor)
%Se obtienen los valores de las entradas
7
%transformando de cadena
% a numero para realizar
%operaciones con los mismos
P=str2num(get(handles.txt_P,’String’));
T=str2num(get(handles.txt_T,’String’));
%De igual manera con el entrenamiento
entrenam_recuperado =
handles.entrenam_guardado;
%Recuperar las funciones para
%cada una de las capas.
%Cada capa tiene una funcion
%es decir si existen 5 capas
%entonces existiran 5 funciones
%hardlim o hardlims para cada
%capa de la red
func_por_capa =
handles.vector_func_por_capa_guardada;
%Recuperar numero de capas con sus neuronas
capas_y_neuronas = handles.num_capas;
%Creacion de la red neuronal u
%tilizando newff
net = newff(
minmax(P),capas_y_neuronas,
func_por_capa,entrenam_recuperado);
%pesos
net.IW(1);
%bias
net.b(1);
%simulacion de la red
Y = sim(net,P);
%Grafica
plot(handles.axis_grafica,P,T,P,Y,’o’);
%Se guarda el estado actual de la red
%para uso posterior
handles.net_guardada = net;
guidata(hObject,handles);
%se activa el boton presentar red neuronal
set(handles.btn_red_neuronal,’Enable’,’on’);
else
%Mensaje de error en
%caso de no ingresar capas
errordlg(
’Debe ingresar un numero de
capas valido para la red’);
end
Por último la función en el callback del botón
btn_red_neuronal con la etiqueta Ver red Neuronal:
Fig 16. Botón Ver red Neuronal
este botón permite recuperar el estado de la red guardado con
anterioridad y a su vez generar la vista de la estructura de la
red neuronal:
function btn_red_neuronal_Callback(
hObject, eventdata, handles)
valor = get(handles.txt_capas,’String’);
valor = str2double(valor)
%verificacion para asegurar que se
%hayan ingresado las capas
if ~isnan(valor)
%Se recupera el estado
%de la red y se presenta la
%vista con la red neuronal
%y sus componentes
net_recuperada = handles.net_guardada;
view(net_recuperada);
else
%Mensaje de error en
%caso de no ingresar capas
errordlg(
’Debe ingresar un numero de capas
valido para la red’);
end
IV. CONCLUSIONES
El elemento mas básico del cerebro es la neurona,
la cual por si sola no hace mucho pero si juntamos
millones de ellas, entonces se vuelven poderosas. El
modelo computacional de una neurona artificial es una
imitación del proceso de una neurona biológica.
El comportamiento de las neuronas esta dado por la
función de activación la cual se encarga de calcular el
nivel o estado de activación de la neurona en función de
la entrada total
Matlab es un lenguaje de programación muy potente
de lo cual se puede destacar la inmensa cantidad de
funciones para distintos fines, resaltando la facilidad
para la creación y mantenimiento de redes neuronales
en la parte de Inteligencia Artificial
Integrar funcionalidades en una interfaz gráfica en
Matlab, facilita al usuario el proceso de graficación
y generación de redes neuronales a fin de conseguir
un entendimiento completo del funcionamiento de las
mismas.
REFERENCIAS
[1] MATHWORKS, MATLAB,[En línea]. Available:
http://www.mathworks.com. [Último acceso: 08 de Mayo 2014].
[2] M. González, INTRODUCCIÓN A MATLAB,[En línea]. Available:
http://www.araba.ehu.es/depsi/jg/imatlab.pdf. [Último acceso: 07 de
Mayo 2014].
[3] S. Gómez, APRENDIZAJE CON REDES NEU-
RONALES ARTIFICIALES,[En línea]. Available:
http://www.uclm.es/ab/educacion/ensayos/pdf/revista9/9_19.pdf. [Último
acceso: 08 de Mayo 2014].
[4] S. Ledesma, LAS REDES NEURONALES, Implementación y considera-
ciones prácticas, Universidad de Guanajuato: Mexico, 2010.
8
[5] Introducción a las redes neuronales artificiales [En línea]. Available:
http://magomar.webs.upv.es/rna/tutorial/RNA_marcos.html [Último acce-
so: 08 de Mayo 2014]
Jairo Banda
Estudiante de la Carrera de Ingeniería en Sistemas de la
Universidad Nacional de Loja, Experto en Mantenimiento Preventivo
y Correctivo, Analista de Sistemas, Provincia de Loja, Ciudad Loja,
Ecuador, 2014.
Jhymer Martínez
Estudiante de la Carrera de Ingeniería en Sistemas de la
Universidad Nacional de Loja, Programador Nivel Medio en Java,
Nivel Básico Python, Matlab y otros lenguajes Provincia de Loja,
Ciudad Loja, Ecuador, 2014.

Weitere ähnliche Inhalte

Was ist angesagt?

Apuntes automatas
Apuntes automatasApuntes automatas
Apuntes automatasasdfa11789
 
PLC Traffic Light Control
PLC Traffic Light ControlPLC Traffic Light Control
PLC Traffic Light ControlAmeen San
 
Simulation of 3 bit Flash ADC in 0.18μmTechnology using NG SPICE Tool for Hig...
Simulation of 3 bit Flash ADC in 0.18μmTechnology using NG SPICE Tool for Hig...Simulation of 3 bit Flash ADC in 0.18μmTechnology using NG SPICE Tool for Hig...
Simulation of 3 bit Flash ADC in 0.18μmTechnology using NG SPICE Tool for Hig...ijsrd.com
 
Chapter 03 Boolean Algebra and Combinational Logic
Chapter 03 Boolean Algebra and Combinational LogicChapter 03 Boolean Algebra and Combinational Logic
Chapter 03 Boolean Algebra and Combinational LogicSSE_AndyLi
 
Intro,diagramas y ejemplos
Intro,diagramas y ejemplosIntro,diagramas y ejemplos
Intro,diagramas y ejemplosjorge Garcia
 
Simulation of electric bike using Scilab Xcos
Simulation of electric bike using Scilab XcosSimulation of electric bike using Scilab Xcos
Simulation of electric bike using Scilab XcosIRJET Journal
 

Was ist angesagt? (14)

Apuntes automatas
Apuntes automatasApuntes automatas
Apuntes automatas
 
Chopper ppt
Chopper pptChopper ppt
Chopper ppt
 
PLC Traffic Light Control
PLC Traffic Light ControlPLC Traffic Light Control
PLC Traffic Light Control
 
Data Flow Modeling
Data Flow ModelingData Flow Modeling
Data Flow Modeling
 
Digital logic
Digital logicDigital logic
Digital logic
 
Funciones De Transferencia
Funciones De TransferenciaFunciones De Transferencia
Funciones De Transferencia
 
PLC o Automata Industrial
PLC o Automata IndustrialPLC o Automata Industrial
PLC o Automata Industrial
 
Simulation of 3 bit Flash ADC in 0.18μmTechnology using NG SPICE Tool for Hig...
Simulation of 3 bit Flash ADC in 0.18μmTechnology using NG SPICE Tool for Hig...Simulation of 3 bit Flash ADC in 0.18μmTechnology using NG SPICE Tool for Hig...
Simulation of 3 bit Flash ADC in 0.18μmTechnology using NG SPICE Tool for Hig...
 
Práctica no1.1
Práctica  no1.1Práctica  no1.1
Práctica no1.1
 
Chapter 03 Boolean Algebra and Combinational Logic
Chapter 03 Boolean Algebra and Combinational LogicChapter 03 Boolean Algebra and Combinational Logic
Chapter 03 Boolean Algebra and Combinational Logic
 
Digital Registers & Counters
Digital Registers & CountersDigital Registers & Counters
Digital Registers & Counters
 
Intro,diagramas y ejemplos
Intro,diagramas y ejemplosIntro,diagramas y ejemplos
Intro,diagramas y ejemplos
 
Simulation of electric bike using Scilab Xcos
Simulation of electric bike using Scilab XcosSimulation of electric bike using Scilab Xcos
Simulation of electric bike using Scilab Xcos
 
Verilog hdl
Verilog hdlVerilog hdl
Verilog hdl
 

Ähnlich wie Hardlim hardlims en_matlab

Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...Sheyli Patiño
 
Cálculo de variación de voltaje con función purelin y variación de velocidad ...
Cálculo de variación de voltaje con función purelin y variación de velocidad ...Cálculo de variación de voltaje con función purelin y variación de velocidad ...
Cálculo de variación de voltaje con función purelin y variación de velocidad ...kathyR04
 
Utp sirn_s4_red perceptron
 Utp sirn_s4_red perceptron Utp sirn_s4_red perceptron
Utp sirn_s4_red perceptronjcbp_peru
 
Utp ia_2014-2_s4_red perceptron
 Utp ia_2014-2_s4_red perceptron Utp ia_2014-2_s4_red perceptron
Utp ia_2014-2_s4_red perceptronhiperu2005
 
Utp sirn_s3_red perceptron
 Utp sirn_s3_red perceptron Utp sirn_s3_red perceptron
Utp sirn_s3_red perceptronc09271
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronalesLiz3113
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronalesLiz3113
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronaleseyyc
 
Utp ia_s4_red perceptron
 Utp ia_s4_red perceptron Utp ia_s4_red perceptron
Utp ia_s4_red perceptronjcbp_peru
 
Utp 2015-2_ia_s4_red perceptron
 Utp 2015-2_ia_s4_red perceptron Utp 2015-2_ia_s4_red perceptron
Utp 2015-2_ia_s4_red perceptronjcbp_peru
 
Utp 2015-2_sirn_s4_red perceptron
 Utp 2015-2_sirn_s4_red perceptron Utp 2015-2_sirn_s4_red perceptron
Utp 2015-2_sirn_s4_red perceptronjcbp_peru
 
Red Neuronal Difusa
Red Neuronal DifusaRed Neuronal Difusa
Red Neuronal DifusaESCOM
 
Introduccion redes neuronales artificiales
Introduccion redes neuronales artificialesIntroduccion redes neuronales artificiales
Introduccion redes neuronales artificialesESCOM
 
Redes neuronales artificiales
Redes neuronales artificialesRedes neuronales artificiales
Redes neuronales artificialesSpacetoshare
 

Ähnlich wie Hardlim hardlims en_matlab (20)

Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...
Redes Neuronales Artificiales: Aplicación de la función Hardlim para la clasi...
 
Purelin y poslin
Purelin y poslinPurelin y poslin
Purelin y poslin
 
Redes Neuronales
Redes NeuronalesRedes Neuronales
Redes Neuronales
 
Cálculo de variación de voltaje con función purelin y variación de velocidad ...
Cálculo de variación de voltaje con función purelin y variación de velocidad ...Cálculo de variación de voltaje con función purelin y variación de velocidad ...
Cálculo de variación de voltaje con función purelin y variación de velocidad ...
 
Utp sirn_s4_red perceptron
 Utp sirn_s4_red perceptron Utp sirn_s4_red perceptron
Utp sirn_s4_red perceptron
 
Utp ia_2014-2_s4_red perceptron
 Utp ia_2014-2_s4_red perceptron Utp ia_2014-2_s4_red perceptron
Utp ia_2014-2_s4_red perceptron
 
Utp sirn_s3_red perceptron
 Utp sirn_s3_red perceptron Utp sirn_s3_red perceptron
Utp sirn_s3_red perceptron
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
Utp ia_s4_red perceptron
 Utp ia_s4_red perceptron Utp ia_s4_red perceptron
Utp ia_s4_red perceptron
 
Utp 2015-2_ia_s4_red perceptron
 Utp 2015-2_ia_s4_red perceptron Utp 2015-2_ia_s4_red perceptron
Utp 2015-2_ia_s4_red perceptron
 
Utp 2015-2_sirn_s4_red perceptron
 Utp 2015-2_sirn_s4_red perceptron Utp 2015-2_sirn_s4_red perceptron
Utp 2015-2_sirn_s4_red perceptron
 
Red Neuronal Difusa
Red Neuronal DifusaRed Neuronal Difusa
Red Neuronal Difusa
 
Introduccion redes neuronales artificiales
Introduccion redes neuronales artificialesIntroduccion redes neuronales artificiales
Introduccion redes neuronales artificiales
 
Redes neuronales artificiales
Redes neuronales artificialesRedes neuronales artificiales
Redes neuronales artificiales
 

Kürzlich hochgeladen

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 

Kürzlich hochgeladen (15)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 

Hardlim hardlims en_matlab

  • 1. 1 “Hardlim y Hardlims Utilizando Matlab” 1. J. Banda, 2. J. Martínez, Tutor: Ing. Henry Paz Resumen—En el presente Paper se abordara temas como Hardlim, Hardlims, Red Neuronal, Perceptron, Perceptron Mul- ticapa, Funciones de Activacion, Función de transferencia, tipos de entrenamiento, y código. Index Terms—Hardlim, Hardlims, Perceptron, Perceptron Multicapa, Función de Activación. I. INTRODUCCIÓN La red tipo Perceptron emplea principalmente dos funciones de transferencia, hardlim con salidas 1, 0 o hardlims con salidas 1, -1; su uso depende del valor de salida que se espera para la red, es decir si la salida de la red es unipolar o bipolar; sin embargo la función hardlims es preferida sobre la hardlim, ya que el tener un cero multiplicando algunas de los valores resultantes del producto de las entradas por el vector de pesos, ocasiona que estos no se actualicen y que el aprendizaje sea más lento. II. ESTADO DEL ARTE II-A. La Neurona Artificial El modelo de una neurona artificial es una imitación del proceso de una neurona biológica, puede también asemejarse a un sumador hecho con un amplificador operacional tal como se ve en la figura: Fig 1.Neurona Artificial Existen varias formas de nombrar una neurona artificial, es conocida como nodo, neuronodo, celda, unidad o elemento de procesamiento (PE). En la siguiente figura se observa un PE en forma general y su similitud con una neurona biológica: 1. J. Banda, Universidad Nacional de Loja, Loja, Ecuador, e-mail: jiban- dab@unl.edu.ec 2. J. Martínez , Universidad Nacional de Loja, Loja,Ecuador, e-mail: jamartinezg@unl.edu.ec Manuscrito recibido el 9 de Mayo, 2014; revisado el 9 de Mayo, 2014. Fig 2. Neurona Biológica De la observación detallada del proceso biológico se han hallado los siguientes análogos con el sistema artificial: Las señales de entrada a una neurona artificial x1, x2,.., xn son variables continuas en lugar de pulsos discretos, como se presentan en una neurona biológica. Cada señal de entrada pasa a través de una ganancia o peso, llamado peso sináptico o fortaleza de la conexión cuya función es análoga a la de la función sináptica de la neurona biológica. Los pesos pueden ser positivos (excitatorios), o negativos (inhibitorios), el nodo sumatorio acumula todas las señales de entradas multiplicadas por los pesos o ponderadas y las pasa a la salida a través de una función umbral o función de transferencia. La entrada neta a cada unidad puede escribirse de la siguiente manera: Las entradas Xi representan las señales que provienen de otras neuronas y que son capturadas por las dendritas. Los pesos Wi son la intensidad de la sinapsis que conecta dos neuronas; tanto Xi como Wi son valores reales. θ es la función umbral que la neurona debe sobrepasar para activarse; este proceso ocurre biológicamente en el cuerpo de la célula. Las señales de entrada a una neurona artificial x1, x2,.., xn son variables continuas en lugar de pulsos discretos, como se presentan en una neurona biológica. Cada señal de entrada pasa a través de una ganancia o peso, llamado peso sináptico o fortaleza de la conexión cuya función es análoga a la de la función sináptica de la neurona biológica. Los pesos pueden ser positivos (excitatorios), o negativos (inhibitorios), el nodo sumatorio acumula todas las señales de entradas multiplicadas por los pesos o ponderadas y las pasa a la salida a través de una función umbral o función de transferencia. La entrada neta a cada unidad puede escribirse de la siguiente manera: Una idea clara de este proceso se muestra en la siguiente figura, en donde puede observarse el recorrido de un conjunto de señales que entran a la red.
  • 2. 2 Fig 3.Recorrido de conjunto de señales Una vez que se ha calculado la activación del nodo, el valor de salida equivale a Donde fi representa la función de activación para esa uni- dad, que corresponde a la función escogida para transformar la entrada netai en el valor de salida xi y que depende de las características específicas de cada red. II-B. Redes Neuronales Las neuronas artificiales simples fueron introducidas por McCulloch y Pitts en 1943. Una red neuronal se caracteriza por los siguientes elementos: 1 Un conjunto de unidades de procesamiento o neuronas. 2 Un estado de activación para cada unidad equivalente a la salida de la unidad. 3 Conexiones entre las unidades, generalmente definidas por un peso que determina el efecto de una señal de entrada en la unidad. 4 Una regla de propagación, que determina la entrada efectiva de una unidad a partir de las entradas externas. 5 Una función de activación que actualiza el nuevo nivel de activación basándose en la entrada efectiva y la activación anterior. 6 Una entrada externa que corresponde a un término de- terminado como bias para cada unidad. 7 Un método para reunir la información, correspondiente a la regla de aprendizaje 8 Un ambiente en el que el sistema va aperar, con señales de entrada e incluso señales de error. En muchas redes las unidades de proceso tienen respuesta de forma: xk:Señales de salida de otros nodos o entradas externas. wk:Pesos de las ligas de conexión. f0:Función no lineal simple. La función f puede ser sigmoidal, tangente hiperbólica, escalón, entre otras. En Matlab se tiene diferentes funciones de activación como tansig, hardlim y perelin, entre otras, lo cual facilita las aproximaciones que se requieran hacer, empleando RNA. Cada unidad de procesos tiene una tarea simple: recibe la entrada de otras unidades o de funciones externas y procesa la información para obtener una salida que se propaga a otras unidades. Una red puede tener una estructura arbitraria, pero las capas que contienen estas estructuras están definidas de acuerdo con una ubicación en la topología de la red neuronal. Las capas internas que no se observan como entradas o salidas se denominan capas ocultas. Por convención las entradas no se consideran como capas porque no realizan procesamiento. La entrada total u de una unidad k es la suma de los pesos de las entradas conectadas, más un bias θ Si el peso wj es positivo se habla de una excitación y si el peso es negativo se considera una inhibición de la entrada. Si consideramos como funciones del tiempo, la expresión anterior se convierte en: II-C. Función de Activación La regla que logra establecer el efecto de la entrada total u(t) en la activación de la unidad k se denomina función de activación (Fk): En muchas ocasiones esta función es de la forma no decreciente respecto a la entrada total de la unidad: C,1. Función Escalón: La función de activación escalón se asocia a neuronas binarias en las cuales, cuando la suma de las entradas es mayor o igual que el umbral de la neurona es 1; si es menor, la activación es 0 (o -1). Fig.4 Función escalón C,2. Cuadro comparativo de funciones: La siguiente tabla hace una relación de las principales funciones de transferencia empleadas en el entrenamiento de redes neuronales.
  • 3. 3 Fig.5 Comparación de funciones II-D. Funciones de Transferencia. Un modelo más académico que facilita el estudio de una neurona, puede visualizarse en la figura: Fig 6. Neurona Didáctica Las entradas a la red serán ahora presentadas en el vector p, que para el caso de una sola neurona contiene solo un elemento, w sigue representando los pesos y la nueva entrada b es una ganancia que refuerza la salida del sumador n, la cual es la salida neta de la red; la salida total está determinada por la función de transferencia, la cual puede ser una función lineal o no lineal de n, y que es escogida dependiendo de las especificaciones del problema que la neurona tenga que resolver; aunque las RNA se inspiren en modelos biológicos no existe ninguna limitación para realizar modificaciones en las funciones de salida, así que se encontrarán modelos artificiales que nada tienen que ver con las características del sistema biológico. Limitador fuerte (Hardlim): la siguiente figura muestra como esta función de transferencia acerca la salida de la red a cero, si el argumento de la función es menor que cero y la lleva a uno si este argumento es mayor que uno. Esta función crea neuronas que clasifican las entradas en dos categorías diferentes, característica que le permite ser empleada en la red tipo Perceptrón Fig 7. Función Hardlim El ícono para la función Hardlim reemplazara a la letra f en la expresión general, cuando se utilice la función Hardlim. Una modificación de esta función puede verse en la siguiente figura, la que representa la función de transferencia Hardlims que restringe el espacio de salida a valores entre 1 y –1 Fig 8. Función Hardlims II-E. Perceptrón Multicapa. Un Perceptrón multicapa es una red con alimentación hacia delante, compuesta de varias capas de neuronas entre la entrada y la salida de la misma, esta red permite establecer regiones de decisión mucho más complejas que las de dos semiplanos, como lo hace el Perceptrón de un solo nivel. En el problema de la función XOR se explicó como un Perceptrón multicapa había sido implementado para hallar una solución. Las capacidades del Perceptrón multicapa con dos y tres capas y con una única neurona en la capa de salida se muestran en la siguiente figura. En la segunda columna se muestra el tipo de región de decisión que se puede formar con cada una de las configuraciones, en la siguiente se indica el tipo de región que se formaría para el problema de la XOR, en las dos últimas columnas se muestran las regiones formadas para resolver el problema de clases mezcladas y las formas más generales para cada uno de los casos:
  • 4. 4 Fig 9. Perceptrones Multicapa II-F. Aprendizaje de la Red Neuronal. El Aprendizaje es la característica más importante de una red neuronal. Durante este aprendizaje o entrenamiento de la red y por aplicación de un conjunto de entradas, se van ajustando adecuada e internamente todos y cada uno de los pesos asociados a cada rama para obtener la salida deseada (o al menos una salida consistente), de forma que la red pueda responder después por si sola a situaciones diferentes a las aprendidas. F,1. Aprendizaje Supervisado y No Supervisado: Aprendizaje Supervisado: es un caso de entrenamiento con Profesor y utiliza información global. Se presentan dos vectores (entradas y salidas deseadas). La salida computada por la red se compara con la salida deseada, y los pesos de la red se modifican en el sentido de reducir el error cometido. Se repite interactivamente, hasta que la diferencia entre salida computada y deseada sea aceptablemente pequeña. Con n parejas de este tipo se forma un Conjunto de Entrenamiento. Aprendizaje No Supervisado: es un caso de entrenamiento Sin Profesor y solo usa información local durante todo el proceso de aprendizaje. Es un modelo más cercano al sistema biológico, no se utiliza vector de salida esperada, y solo hay vectores de entrada en el conjunto de entrenamiento, y solo hay vectores de entrada en el conjunto de entrenamiento. El algoritmo modifica los pesos de forma que las salidas sean consistentes, es decir, que a entradas muy parecidas, la red compute la misma salida. Las salidas se asocian a las entradas de acuerdo con el proceso de entrenamiento. El proceso extrae características, abstrayendo las propiedades colectivas subyacentes del conjunto de entrenamiento, y agrupa por clases de similitudes. III. IMPLEMENTACIÓN EN MATLAB MATLAB R (Matrix Laboratory) es un software desarrollado por MathWorks. Es un software especializado de programación matemática idóneo para la investigación científica y para diversas aplicaciones en general. Dicho de otra forma MATLAB es un lenguaje de alto nivel para la computación técnica, tal y como lo definen sus creadores. Esto integra computación, visualización y una programación es un medio ambiente de fácil uso donde los problemas y las soluciones son expresadas en una notación matemática familiar. Matlab integra un Toolbox (caja de herramientas) para tra- bajar con Redes Neuronales Pesos y Umbrales simplificando así la creación y funcionamiento de redes neuronales. A continuación una lista de funciones principales utilizadas para crear redes neuronales y sus respectivos parámetros: Fig 10. Comandos Básicos Matlab La función que se utilizará en newff para crear una red backpropagation Fig 11. Interfaz del programa La siguiente función se ejecuta al momento de iniciar la interfaz, su principal objetivo es desactivar la mayor parte de componentes. function HardlimProject_OpeningFcn( hObject,eventdata,handles, varargin) %Codigo de la interfaz handles.output = hObject; guidata(hObject, handles); %Centrar interfaz en la pantalla scrsz=get(0,’ScreenSize’); pos_act=get(gcf,’Position’); xr=scrsz(3)-pos_act(3); xp=round(xr/2); yr=scrsz(4)-pos_act(4);
  • 5. 5 yp=round(yr/2); set(gcf,’Position’,[xp yp pos_act(3) pos_act(4)]); %Desactivacion de componentes iniciales set(handles.txt_P,’Enable’,’off’); set(handles.txt_T,’Enable’,’off’); set(handles.lbl_pum_entrenamiento,’Enable’,’off’); set(handles.pum_entrenamiento,’Enable’,’off’); set(handles.lbl_txt_capas,’Enable’,’off’); set(handles.txt_capas,’Enable’,’off’); set(handles.btn_capas,’Enable’,’off’); set(handles.btn_ejecutar,’Enable’,’off’); set(handles.btn_red_neuronal,’Enable’,’off’); %Guardar entrenamiento por defecto handles.entrenam_guardado = ’traingd’; guidata(hObject,handles); La siguiente función se encuentra programada en el popup menu con el nombre tag pum_func como se aprecia en la siguiente figura: Fig 12. Selector de funciones de activación Su función es permitir al usuario seleccionar el tipo de funcion de activación a utilizar: function pum_Func_Callback( hObject, eventdata, handles) %Se obtine el valor del componete poupmenu %denominado pum_Func valor=get(handles.pum_Func,’Value’); switch valor case 1 %La priemra opcion esta en blanco, %mantiene componentes desactivados set(handles.txt_P,’Enable’,’off’); set(handles.txt_T,’Enable’,’off’); set(handles.lbl_pum_entrenamiento, ’Enable’,’off’); set(handles.pum_entrenamiento, ’Enable’,’off’); set(handles.lbl_txt_capas, ’Enable’,’off’); set(handles.txt_capas,’Enable’,’off’); set(handles.btn_capas,’Enable’,’off’); set(handles.btn_ejecutar,’Enable’,’off’); set(handles.btn_red_neuronal, ’Enable’,’off’); case 2 %Activacion de todos los componentes set(handles.txt_P,’Enable’,’on’); set(handles.txt_T,’Enable’,’on’); set(handles.lbl_pum_entrenamiento, ’Enable’,’on’); set(handles.pum_entrenamiento, ’Enable’,’on’); set(handles.lbl_txt_capas, ’Enable’,’on’); set(handles.txt_capas,’Enable’,’on’); set(handles.btn_capas,’Enable’,’on’); %El boton graficar y ver red neuronal se %mantienen desactivados set(handles.btn_ejecutar, ’Enable’,’off’); set(handles.btn_red_neuronal, ’Enable’,’off’); %En caso de seleccionar un nuevo tipo de %funcion se borra el campo de capas %para que sean ingresadas nuevamente set(handles.txt_capas,’String’,’’); %Se guarda el nombre de la funcion ’hardlim’ %en func_activ_guardada para ser %utilizada luego handles.func_activ_guardada = ’hardlim’; guidata(hObject,handles); case 3 %Activacion de todos los componentes set(handles.txt_P,’Enable’,’on’); set(handles.txt_T,’Enable’,’on’); set(handles.lbl_pum_entrenamiento, ’Enable’,’on’); set(handles.pum_entrenamiento, ’Enable’,’on’); set(handles.lbl_txt_capas, ’Enable’,’on’); set(handles.txt_capas,’Enable’,’on’); set(handles.btn_capas,’Enable’,’on’); %El boton graficar y ver red neuronal se %mantienen desactivados set(handles.btn_ejecutar,’Enable’,’off’); set(handles.btn_red_neuronal ,’Enable’,’off’); %En caso de seleccionar un nuevo tipo de %funcion se borra el campo de capas para %que sean ingresadas nuevamente set(handles.txt_capas,’String’,’’); %Se guarda el nombre de la funcion ’hardlims’ %en la misma variable func_activ_guardada %para ser utilizada luego handles.func_activ_guardada = ’hardlims’; guidata(hObject,handles); end Seguidamente la función callback del componente pum_entrenamiento: Fig 13. Selector de tipos de entrenamiento
  • 6. 6 que parecido al anterior, permite seleccionar el tipo de entre- namiento que se dará a la red: function pum_entrenamiento_Callback( hObject, eventdata, handles) %Se obtiene el valor del componente popupmenu %denominado pum_entrenamiento valor_entrenam = get( handles.pum_entrenamiento,’Value’); switch valor_entrenam case 1 %Guarda valor ’traingd’ %en entrenam_guardado handles.entrenam_guardado = ’traingd’; guidata(hObject,handles); case 2 %Guarda valor ’traingdm’ %en entrenam_guardado handles.entrenam_guardado = ’traingdm’; guidata(hObject,handles); case 3 %Guarda valor ’traingdx’ %en entrenam_guardado handles.entrenam_guardado = ’traingdx’; guidata(hObject,handles); end A continuación la función callback del botón btn_capas que se le asignó como etiqueta Agregar neuronas a las capas: Fig 14. Ingresar capas y neuronas de la red la funcionalidad del botón se basa en que luego de que el usuario ingresa un numero de capas deseado, al hacer clic en el botón, este permite agregar las neuronas deseadas para dicha capa: function btn_capas_Callback( hObject, eventdata, handles) %Obtenemos el numero de %capas ingresadas por el usuario %y se lo transforma a numerico temp_1 = get(handles.txt_capas,’String’); temp_2 = str2num(temp_1); %Entrada del numero de neuronas %por capa, Se utiliza una matriz vector_capas=[]; %La funcion que tendra cada capa, % igual numero de capas %y de funciones. Se utiliza un array vector_func_por_capa={}; %Se recupera la %funcion de activacion seleccionada %por el usuario funcion_recuperada= handles.func_activ_guardada; for n=1:1:temp_2 %Mediante un inputdlg se ingresa %el numero de %neuronas para cada capa texto_1=’Numero de neuronas para la capa ’; texto_2=num2str(n); texto_completo = [texto_1 texto_2]; prompt = {texto_completo}; dlg_title = ’Numero de neuronas por capa’; num_lines = 2; def = {’1’}; answer = inputdlg( prompt,dlg_title,num_lines,def); %Se crea el vector con las capas %y la cantidad de %neuronas para cada capa vector_capas=[vector_capas str2num( answer{1,1})]; %Se crea el array con el numero %de funciones necesarias vector_func_por_capa(n)={ funcion_recuperada}; end %Se guardan los resultados para %integrarlos en la funcion newff handles.num_capas = vector_capas; guidata(hObject,handles); handles.vector_func_por_capa_guardada= vector_func_por_capa; guidata(hObject,handles); %Se activa el boton para ejecutar set(handles.btn_ejecutar,’Enable’,’on’); set(handles.btn_red_neuronal,’Enable’,’off’); La función que se verá a continuación esta en el callback del botón btn_ejecutar con la etiqueta Graficar: Fig 15. Botón Graficar la funcionalidad del botón consiste en que una vez seleccio- nada la función de activación, el tipo de entrenamiento, hayan sido ingresados los valores de entrada, las capas y las neuronas para cada capa, se integra dentro de la función newff para luego ser graficado, mostrando así los resultados esperados: function btn_ejecutar_Callback( hObject, eventdata, handles) valor = get(handles.txt_capas,’String’); valor = str2double(valor) %verificacion para asegurar que se %hayan ingresado las capas if ~isnan(valor) %Se obtienen los valores de las entradas
  • 7. 7 %transformando de cadena % a numero para realizar %operaciones con los mismos P=str2num(get(handles.txt_P,’String’)); T=str2num(get(handles.txt_T,’String’)); %De igual manera con el entrenamiento entrenam_recuperado = handles.entrenam_guardado; %Recuperar las funciones para %cada una de las capas. %Cada capa tiene una funcion %es decir si existen 5 capas %entonces existiran 5 funciones %hardlim o hardlims para cada %capa de la red func_por_capa = handles.vector_func_por_capa_guardada; %Recuperar numero de capas con sus neuronas capas_y_neuronas = handles.num_capas; %Creacion de la red neuronal u %tilizando newff net = newff( minmax(P),capas_y_neuronas, func_por_capa,entrenam_recuperado); %pesos net.IW(1); %bias net.b(1); %simulacion de la red Y = sim(net,P); %Grafica plot(handles.axis_grafica,P,T,P,Y,’o’); %Se guarda el estado actual de la red %para uso posterior handles.net_guardada = net; guidata(hObject,handles); %se activa el boton presentar red neuronal set(handles.btn_red_neuronal,’Enable’,’on’); else %Mensaje de error en %caso de no ingresar capas errordlg( ’Debe ingresar un numero de capas valido para la red’); end Por último la función en el callback del botón btn_red_neuronal con la etiqueta Ver red Neuronal: Fig 16. Botón Ver red Neuronal este botón permite recuperar el estado de la red guardado con anterioridad y a su vez generar la vista de la estructura de la red neuronal: function btn_red_neuronal_Callback( hObject, eventdata, handles) valor = get(handles.txt_capas,’String’); valor = str2double(valor) %verificacion para asegurar que se %hayan ingresado las capas if ~isnan(valor) %Se recupera el estado %de la red y se presenta la %vista con la red neuronal %y sus componentes net_recuperada = handles.net_guardada; view(net_recuperada); else %Mensaje de error en %caso de no ingresar capas errordlg( ’Debe ingresar un numero de capas valido para la red’); end IV. CONCLUSIONES El elemento mas básico del cerebro es la neurona, la cual por si sola no hace mucho pero si juntamos millones de ellas, entonces se vuelven poderosas. El modelo computacional de una neurona artificial es una imitación del proceso de una neurona biológica. El comportamiento de las neuronas esta dado por la función de activación la cual se encarga de calcular el nivel o estado de activación de la neurona en función de la entrada total Matlab es un lenguaje de programación muy potente de lo cual se puede destacar la inmensa cantidad de funciones para distintos fines, resaltando la facilidad para la creación y mantenimiento de redes neuronales en la parte de Inteligencia Artificial Integrar funcionalidades en una interfaz gráfica en Matlab, facilita al usuario el proceso de graficación y generación de redes neuronales a fin de conseguir un entendimiento completo del funcionamiento de las mismas. REFERENCIAS [1] MATHWORKS, MATLAB,[En línea]. Available: http://www.mathworks.com. [Último acceso: 08 de Mayo 2014]. [2] M. González, INTRODUCCIÓN A MATLAB,[En línea]. Available: http://www.araba.ehu.es/depsi/jg/imatlab.pdf. [Último acceso: 07 de Mayo 2014]. [3] S. Gómez, APRENDIZAJE CON REDES NEU- RONALES ARTIFICIALES,[En línea]. Available: http://www.uclm.es/ab/educacion/ensayos/pdf/revista9/9_19.pdf. [Último acceso: 08 de Mayo 2014]. [4] S. Ledesma, LAS REDES NEURONALES, Implementación y considera- ciones prácticas, Universidad de Guanajuato: Mexico, 2010.
  • 8. 8 [5] Introducción a las redes neuronales artificiales [En línea]. Available: http://magomar.webs.upv.es/rna/tutorial/RNA_marcos.html [Último acce- so: 08 de Mayo 2014] Jairo Banda Estudiante de la Carrera de Ingeniería en Sistemas de la Universidad Nacional de Loja, Experto en Mantenimiento Preventivo y Correctivo, Analista de Sistemas, Provincia de Loja, Ciudad Loja, Ecuador, 2014. Jhymer Martínez Estudiante de la Carrera de Ingeniería en Sistemas de la Universidad Nacional de Loja, Programador Nivel Medio en Java, Nivel Básico Python, Matlab y otros lenguajes Provincia de Loja, Ciudad Loja, Ecuador, 2014.