8
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. I NTRODUCCIÓ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- [email protected] 2. J. Martínez , Universidad Nacional de Loja, Loja,Ecuador, e-mail: [email protected] 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 x 1 , x 2 ,.., x n 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 x 1 , x 2 ,.., x n 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.

Hardlim hardlims en_matlab

Embed Size (px)

DESCRIPTION

Ejemplo utilizando Hardlim y Hardlims en Matlab

Citation preview

Page 1: Hardlim hardlims en_matlab

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 comoHardlim, Hardlims, Red Neuronal, Perceptron, Perceptron Mul-ticapa, Funciones de Activacion, Función de transferencia, tiposde entrenamiento, y código.

Index Terms—Hardlim, Hardlims, Perceptron, PerceptronMulticapa, Función de Activación.

I. INTRODUCCIÓN

La red tipo Perceptron emplea principalmente dos funcionesde transferencia, hardlim con salidas 1, 0 o hardlims consalidas 1, -1; su uso depende del valor de salida que seespera para la red, es decir si la salida de la red es unipolaro bipolar; sin embargo la función hardlims es preferida sobrela hardlim, ya que el tener un cero multiplicando algunas delos valores resultantes del producto de las entradas por elvector de pesos, ocasiona que estos no se actualicen y que elaprendizaje sea más lento.

II. ESTADO DEL ARTE

II-A. La Neurona Artificial

El modelo de una neurona artificial es una imitación delproceso de una neurona biológica, puede también asemejarsea un sumador hecho con un amplificador operacional talcomo se ve en la figura:

Fig 1.Neurona Artificial

Existen varias formas de nombrar una neurona artificial, esconocida como nodo, neuronodo, celda, unidad o elementode procesamiento (PE). En la siguiente figura se observa unPE en forma general y su similitud con una neurona biológica:

1. J. Banda, Universidad Nacional de Loja, Loja, Ecuador, e-mail: [email protected]

2. J. Martínez , Universidad Nacional de Loja, Loja,Ecuador, e-mail:[email protected]

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 hanhallado los siguientes análogos con el sistema artificial:

Las señales de entrada a una neurona artificial x1, x2,.., xnson variables continuas en lugar de pulsos discretos, como sepresentan en una neurona biológica. Cada señal de entradapasa a través de una ganancia o peso, llamado peso sinápticoo fortaleza de la conexión cuya función es análoga a la de lafunción sináptica de la neurona biológica. Los pesos puedenser positivos (excitatorios), o negativos (inhibitorios), el nodosumatorio acumula todas las señales de entradas multiplicadaspor los pesos o ponderadas y las pasa a la salida a través deuna función umbral o función de transferencia. La entradaneta a cada unidad puede escribirse de la siguiente manera:

Las entradas Xi representan las señales que provienen deotras neuronas y que son capturadas por las dendritas.Los pesos Wi son la intensidad de la sinapsis que conectados neuronas; tanto Xi como Wi son valores reales.θ es la función umbral que la neurona debe sobrepasarpara activarse; este proceso ocurre biológicamente en elcuerpo de la célula.

Las señales de entrada a una neurona artificial x1, x2,.., xnson variables continuas en lugar de pulsos discretos, como sepresentan en una neurona biológica. Cada señal de entradapasa a través de una ganancia o peso, llamado peso sinápticoo fortaleza de la conexión cuya función es análoga a la de lafunción sináptica de la neurona biológica. Los pesos puedenser positivos (excitatorios), o negativos (inhibitorios), el nodosumatorio acumula todas las señales de entradas multiplicadaspor los pesos o ponderadas y las pasa a la salida a través deuna función umbral o función de transferencia. La entradaneta a cada unidad puede escribirse de la siguiente manera:

Una idea clara de este proceso se muestra en la siguientefigura, en donde puede observarse el recorrido de un conjuntode señales que entran a la red.

Page 2: Hardlim hardlims en_matlab

2

Fig 3.Recorrido de conjunto de señales

Una vez que se ha calculado la activación del nodo, elvalor 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 transformarla entrada netai en el valor de salida xi y que depende de lascaracterísticas específicas de cada red.

II-B. Redes NeuronalesLas neuronas artificiales simples fueron introducidas por

McCulloch y Pitts en 1943. Una red neuronal se caracterizapor 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 deentrada en la unidad.

4 Una regla de propagación, que determina la entradaefectiva de una unidad a partir de las entradas externas.

5 Una función de activación que actualiza el nuevo nivel deactivación basándose en la entrada efectiva y la activaciónanterior.

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, correspondientea la regla de aprendizaje

8 Un ambiente en el que el sistema va aperar, con señalesde entrada e incluso señales de error.

En muchas redes las unidades de proceso tienen respuestade 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 deactivación como tansig, hardlim y perelin, entre otras, lo cualfacilita las aproximaciones que se requieran hacer, empleando

RNA. Cada unidad de procesos tiene una tarea simple: recibela entrada de otras unidades o de funciones externas y procesala información para obtener una salida que se propaga a otrasunidades. Una red puede tener una estructura arbitraria, perolas capas que contienen estas estructuras están definidas deacuerdo con una ubicación en la topología de la red neuronal.Las capas internas que no se observan como entradas o salidasse denominan capas ocultas. Por convención las entradas nose consideran como capas porque no realizan procesamiento.La entrada total u de una unidad k es la suma de los pesos delas entradas conectadas, más un bias θ

Si el peso wj es positivo se habla de una excitación y siel peso es negativo se considera una inhibición de la entrada.Si consideramos como funciones del tiempo, la expresiónanterior se convierte en:

II-C. Función de Activación

La regla que logra establecer el efecto de la entrada totalu(t) en la activación de la unidad k se denomina función deactivación (Fk):

En muchas ocasiones esta función es de la forma nodecreciente respecto a la entrada total de la unidad:

C,1. Función Escalón: La función de activación escalónse asocia a neuronas binarias en las cuales, cuando la sumade las entradas es mayor o igual que el umbral de la neuronaes 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 tablahace una relación de las principales funciones de transferenciaempleadas en el entrenamiento de redes neuronales.

Page 3: Hardlim hardlims en_matlab

3

Fig.5 Comparación de funciones

II-D. Funciones de Transferencia.

Un modelo más académico que facilita el estudio de unaneurona, puede visualizarse en la figura:

Fig 6. Neurona Didáctica

Las entradas a la red serán ahora presentadas en el vectorp, que para el caso de una sola neurona contiene solo unelemento, w sigue representando los pesos y la nueva entradab es una ganancia que refuerza la salida del sumador n, lacual es la salida neta de la red; la salida total está determinadapor la función de transferencia, la cual puede ser una funciónlineal o no lineal de n, y que es escogida dependiendo delas especificaciones del problema que la neurona tenga queresolver; aunque las RNA se inspiren en modelos biológicosno existe ninguna limitación para realizar modificacionesen las funciones de salida, así que se encontrarán modelosartificiales que nada tienen que ver con las características delsistema biológico.

Limitador fuerte (Hardlim): la siguiente figura muestracomo esta función de transferencia acerca la salida de la reda cero, si el argumento de la función es menor que cero y lalleva a uno si este argumento es mayor que uno. Esta funcióncrea neuronas que clasifican las entradas en dos categoríasdiferentes, característica que le permite ser empleada en lared tipo Perceptrón

Fig 7. Función Hardlim

El ícono para la función Hardlim reemplazara a la letra fen la expresión general, cuando se utilice la función Hardlim.Una modificación de esta función puede verse en la siguientefigura, la que representa la función de transferencia Hardlimsque 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 laentrada y la salida de la misma, esta red permite establecerregiones de decisión mucho más complejas que las de dossemiplanos, como lo hace el Perceptrón de un solo nivel.En el problema de la función XOR se explicó como unPerceptrón multicapa había sido implementado para hallaruna solución. Las capacidades del Perceptrón multicapa condos y tres capas y con una única neurona en la capa de salidase muestran en la siguiente figura. En la segunda columna semuestra el tipo de región de decisión que se puede formarcon cada una de las configuraciones, en la siguiente se indicael tipo de región que se formaría para el problema de laXOR, en las dos últimas columnas se muestran las regionesformadas para resolver el problema de clases mezcladas y lasformas más generales para cada uno de los casos:

Page 4: Hardlim hardlims en_matlab

4

Fig 9. Perceptrones Multicapa

II-F. Aprendizaje de la Red Neuronal.

El Aprendizaje es la característica más importante de unared neuronal. Durante este aprendizaje o entrenamiento dela red y por aplicación de un conjunto de entradas, se vanajustando adecuada e internamente todos y cada uno de lospesos asociados a cada rama para obtener la salida deseada (oal menos una salida consistente), de forma que la red puedaresponder después por si sola a situaciones diferentes a lasaprendidas.

F ,1. Aprendizaje Supervisado y No Supervisado:Aprendizaje Supervisado: es un caso de entrenamientocon Profesor y utiliza información global. Se presentan dosvectores (entradas y salidas deseadas). La salida computadapor la red se compara con la salida deseada, y los pesos de lared se modifican en el sentido de reducir el error cometido.Se repite interactivamente, hasta que la diferencia entresalida computada y deseada sea aceptablemente pequeña. Conn parejas de este tipo se forma un Conjunto de Entrenamiento.

Aprendizaje No Supervisado: es un caso de entrenamientoSin Profesor y solo usa información local durante todo elproceso de aprendizaje. Es un modelo más cercano al sistemabiológico, no se utiliza vector de salida esperada, y solo hayvectores de entrada en el conjunto de entrenamiento, y solohay vectores de entrada en el conjunto de entrenamiento. Elalgoritmo modifica los pesos de forma que las salidas seanconsistentes, es decir, que a entradas muy parecidas, la redcompute la misma salida. Las salidas se asocian a las entradasde acuerdo con el proceso de entrenamiento. El procesoextrae características, abstrayendo las propiedades colectivassubyacentes del conjunto de entrenamiento, y agrupa porclases de similitudes.

III. IMPLEMENTACIÓN EN MATLAB

MATLAB R© (Matrix Laboratory) es un softwaredesarrollado por MathWorks. Es un software especializadode programación matemática idóneo para la investigacióncientífica y para diversas aplicaciones en general. Dicho deotra forma MATLAB es un lenguaje de alto nivel para lacomputación técnica, tal y como lo definen sus creadores.Esto integra computación, visualización y una programaciónes un medio ambiente de fácil uso donde los problemas ylas 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 simplificandoasí la creación y funcionamiento de redes neuronales.A continuación una lista de funciones principales utilizadaspara 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 redbackpropagation

Fig 11. Interfaz del programa

La siguiente función se ejecuta al momento de iniciar lainterfaz, su principal objetivo es desactivar la mayor parte decomponentes.

function HardlimProject_OpeningFcn(hObject,eventdata,handles, varargin)

%Codigo de la interfazhandles.output = hObject;guidata(hObject, handles);

%Centrar interfaz en la pantallascrsz=get(0,’ScreenSize’);pos_act=get(gcf,’Position’);xr=scrsz(3)-pos_act(3);xp=round(xr/2);yr=scrsz(4)-pos_act(4);

Page 5: Hardlim hardlims en_matlab

5

yp=round(yr/2);set(gcf,’Position’,[xp yp pos_act(3) pos_act(4)]);

%Desactivacion de componentes inicialesset(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 defectohandles.entrenam_guardado = ’traingd’;guidata(hObject,handles);

La siguiente función se encuentra programada en el popupmenu con el nombre tag pum_func como se aprecia en lasiguiente figura:

Fig 12. Selector de funciones de activación

Su función es permitir al usuario seleccionar el tipo de funcionde activación a utilizar:

function pum_Func_Callback(hObject, eventdata, handles)

%Se obtine el valor del componete poupmenu%denominado pum_Funcvalor=get(handles.pum_Func,’Value’);

switch valorcase 1

%La priemra opcion esta en blanco,%mantiene componentes desactivadosset(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 componentesset(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 desactivadosset(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 nuevamenteset(handles.txt_capas,’String’,’’);

%Se guarda el nombre de la funcion ’hardlim’%en func_activ_guardada para ser%utilizada luegohandles.func_activ_guardada = ’hardlim’;guidata(hObject,handles);

case 3%Activacion de todos los componentesset(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 desactivadosset(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 nuevamenteset(handles.txt_capas,’String’,’’);

%Se guarda el nombre de la funcion ’hardlims’%en la misma variable func_activ_guardada%para ser utilizada luegohandles.func_activ_guardada = ’hardlims’;guidata(hObject,handles);

end

Seguidamente la función callback del componentepum_entrenamiento:

Fig 13. Selector de tipos de entrenamiento

Page 6: Hardlim hardlims en_matlab

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_entrenamientovalor_entrenam = get(

handles.pum_entrenamiento,’Value’);

switch valor_entrenamcase 1

%Guarda valor ’traingd’%en entrenam_guardadohandles.entrenam_guardado = ’traingd’;guidata(hObject,handles);

case 2%Guarda valor ’traingdm’%en entrenam_guardadohandles.entrenam_guardado = ’traingdm’;guidata(hObject,handles);

case 3%Guarda valor ’traingdx’%en entrenam_guardadohandles.entrenam_guardado = ’traingdx’;guidata(hObject,handles);

end

A continuación la función callback del botón btn_capas quese 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 elusuario ingresa un numero de capas deseado, al hacer clic enel botón, este permite agregar las neuronas deseadas para dichacapa:

function btn_capas_Callback(hObject, eventdata, handles)

%Obtenemos el numero de%capas ingresadas por el usuario%y se lo transforma a numericotemp_1 = get(handles.txt_capas,’String’);temp_2 = str2num(temp_1);

%Entrada del numero de neuronas%por capa, Se utiliza una matrizvector_capas=[];

%La funcion que tendra cada capa,% igual numero de capas%y de funciones. Se utiliza un arrayvector_func_por_capa={};

%Se recupera la%funcion de activacion seleccionada%por el usuariofuncion_recuperada=

handles.func_activ_guardada;

for n=1:1:temp_2

%Mediante un inputdlg se ingresa%el numero de%neuronas para cada capatexto_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 capavector_capas=[vector_capas str2num(

answer{1,1})];

%Se crea el array con el numero%de funciones necesariasvector_func_por_capa(n)={

funcion_recuperada};end

%Se guardan los resultados para%integrarlos en la funcion newffhandles.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 ejecutarset(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 delbotó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, hayansido ingresados los valores de entrada, las capas y las neuronaspara cada capa, se integra dentro de la función newff paraluego 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

Page 7: Hardlim hardlims en_matlab

7

%transformando de cadena% a numero para realizar%operaciones con los mismosP=str2num(get(handles.txt_P,’String’));T=str2num(get(handles.txt_T,’String’));

%De igual manera con el entrenamientoentrenam_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 redfunc_por_capa =

handles.vector_func_por_capa_guardada;

%Recuperar numero de capas con sus neuronascapas_y_neuronas = handles.num_capas;

%Creacion de la red neuronal u%tilizando newffnet = newff(

minmax(P),capas_y_neuronas,func_por_capa,entrenam_recuperado);

%pesosnet.IW(1);

%biasnet.b(1);%simulacion de la redY = sim(net,P);%Graficaplot(handles.axis_grafica,P,T,P,Y,’o’);

%Se guarda el estado actual de la red%para uso posteriorhandles.net_guardada = net;guidata(hObject,handles);

%se activa el boton presentar red neuronalset(handles.btn_red_neuronal,’Enable’,’on’);

else%Mensaje de error en%caso de no ingresar capaserrordlg(’Debe ingresar un numero decapas valido para la red’);

end

Por último la función en el callback del botónbtn_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 conanterioridad y a su vez generar la vista de la estructura de lared 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 capasif ~isnan(valor)

%Se recupera el estado%de la red y se presenta la%vista con la red neuronal%y sus componentesnet_recuperada = handles.net_guardada;view(net_recuperada);

else%Mensaje de error en%caso de no ingresar capaserrordlg(’Debe ingresar un numero de capasvalido 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 juntamosmillones de ellas, entonces se vuelven poderosas. Elmodelo computacional de una neurona artificial es unaimitación del proceso de una neurona biológica.

El comportamiento de las neuronas esta dado por lafunción de activación la cual se encarga de calcular elnivel o estado de activación de la neurona en función dela entrada total

Matlab es un lenguaje de programación muy potentede lo cual se puede destacar la inmensa cantidad defunciones para distintos fines, resaltando la facilidadpara la creación y mantenimiento de redes neuronalesen la parte de Inteligencia Artificial

Integrar funcionalidades en una interfaz gráfica enMatlab, facilita al usuario el proceso de graficacióny generación de redes neuronales a fin de conseguirun entendimiento completo del funcionamiento de lasmismas.

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 deMayo 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. [Últimoacceso: 08 de Mayo 2014].

[4] S. Ledesma, LAS REDES NEURONALES, Implementación y considera-ciones prácticas, Universidad de Guanajuato: Mexico, 2010.

Page 8: Hardlim hardlims en_matlab

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 laUniversidad Nacional de Loja, Experto en Mantenimiento Preventivoy Correctivo, Analista de Sistemas, Provincia de Loja, Ciudad Loja,Ecuador, 2014.

Jhymer Martínez

Estudiante de la Carrera de Ingeniería en Sistemas de laUniversidad Nacional de Loja, Programador Nivel Medio en Java,Nivel Básico Python, Matlab y otros lenguajes Provincia de Loja,Ciudad Loja, Ecuador, 2014.