Función de Activación POSLIN y PURELIN

6
POSLIN Y PURELIN Faicán Rosa Ingeniería en Sistemas Loayza Freddy Ingeniería en Sistemas La utlización de las Funciones de Transferencia dependerá del problema que se trata de resolver mediante la utilización de la red neuronal, tener un conocimiento claro del funcionamiento de cada una de estas funciones así como también de los tipos de entrenamiento y los adecuados para aplicar en la resolución de problemas debido a que existen varias funciones. Introducción Presentar soluciones a poblemas de la vida diaria como lo hace el cerebro humano es una solución que se plantea dentro del creciente avance tecnológico. Los ordenadores son capaces de realizar 100 millones de operaciones en coma flotante por segundo y son capaces de entender el significado de las formas visuales o de distinguir entre distintas clases de objetos. Los sistemas de cómputo son exitosos en la resolución de problemas matemáticos o científicos, en la creación, manipulación y mantenimiento de bases de datos, en comunicaciones electrónicas, en el procesamiento de textos, gráficos y auto edición, incluso en funciones de control de electrodomésticos, haciéndolos más eficientes y fáciles de usar, pero definitivamente tienen una gran incapacidad para interpretar el mundo. Esta dificultad de los sistemas de computo ha hecho que un gran número de investigadores centre su atención en el desarrollo de nuevos sistemas de tratamiento de la información, que permitan solucionar problemas cotidianos, tal como lo hace el cerebro humano. Redes Neuronales - Historia Figura 1. Neurona Fuente: Introducción a Las redes neuronales Fue en 1943, cuando Warren McCulloch y Walter Pitts propusieron el clásico modelo de neurona en el que se basan las redes neuronales actuales. En 1949 en el libro The Organization of Behavior, se presenta la regla de aprnedizaje de Donald Hebb.(Tomás, s.f.) En 1956, se da la primera conferencia sobre Inteligencia Artificial (IA). se presenta la primera simulación de una red neuronal, aunque aún no se podían interpretar los datos resultantes. En 1957, Frank Rosenblatt presentó el Perceptrón, una red neuronal con aprendizaje supervisado cuya regla de aprendizaje era una modificación de la propuesta por Hebb. Trabaja con patrones de entrada binarios, y su funcionamiento se realiza en dos fases: una de entradas y la salidas deseadas. En 1959, Widrow publica una teoría sobre la adaptación neuronal y modelos inspirados en esa teoría, el Adaline (Adaptative Linear Neuron) y el Madaline (Multiple Adaline) estos modelos fueron usados por primera ves en un problema real.(Villasana, s.f.) En los 60, se proponen los modelos supervisados Adaline Y Madaline. En 1962, Rosemblatt publica los resultados de un gran proyecto de investigación, el desarrollo del Perceptrón, un identificador de patrones ópticos binarios, y salida binaria. Las capacidades del Perceptrón se extendieron al desarrollar la regla de aprendizaje Delta, que permitía emplear señales continuas de entrada y salida. Stephen Grossberg realiza el proyecto Avalancha el cual consiste en elementos discretos con actividad que varía con el tiempo, el cual permitió en su momento el resolver actividades como reconocimiento continuo del habla y aprendizaje del movimiento de los dedos de un robot.(Carlos Pérez Ruiz, s.f.) Actualmente existen numerosos trabajos que se publican con cierta frecuencia e igualmente se lanzan al mercado pro-

description

Trabajo acerca de las funciones de activación Poslin y Purelin con una ejemplo aplicado en Matlab

Transcript of Función de Activación POSLIN y PURELIN

Page 1: Función de Activación POSLIN y PURELIN

POSLIN Y PURELIN

Faicán RosaIngeniería en Sistemas

Loayza FreddyIngeniería en Sistemas

La utlización de las Funciones de Transferencia dependerá del problema que se trata de resolvermediante la utilización de la red neuronal, tener un conocimiento claro del funcionamiento decada una de estas funciones así como también de los tipos de entrenamiento y los adecuadospara aplicar en la resolución de problemas debido a que existen varias funciones.

Introducción

Presentar soluciones a poblemas de la vida diaria comolo hace el cerebro humano es una solución que se planteadentro del creciente avance tecnológico.

Los ordenadores son capaces de realizar 100 millones deoperaciones en coma flotante por segundo y son capaces deentender el significado de las formas visuales o de distinguirentre distintas clases de objetos.

Los sistemas de cómputo son exitosos en la resoluciónde problemas matemáticos o científicos, en la creación,manipulación y mantenimiento de bases de datos, encomunicaciones electrónicas, en el procesamiento de textos,gráficos y auto edición, incluso en funciones de control deelectrodomésticos, haciéndolos más eficientes y fáciles deusar, pero definitivamente tienen una gran incapacidad parainterpretar el mundo.

Esta dificultad de los sistemas de computo ha hechoque un gran número de investigadores centre su atenciónen el desarrollo de nuevos sistemas de tratamiento de lainformación, que permitan solucionar problemas cotidianos,tal como lo hace el cerebro humano.

Redes Neuronales - Historia

Figura 1. NeuronaFuente: Introducción a Las redes neuronales

Fue en 1943, cuando Warren McCulloch y Walter Pittspropusieron el clásico modelo de neurona en el que se

basan las redes neuronales actuales. En 1949 en el libro TheOrganization of Behavior, se presenta la regla de aprnedizajede Donald Hebb.(Tomás, s.f.)

En 1956, se da la primera conferencia sobre InteligenciaArtificial (IA). se presenta la primera simulación de unared neuronal, aunque aún no se podían interpretar los datosresultantes.

En 1957, Frank Rosenblatt presentó el Perceptrón,una red neuronal con aprendizaje supervisado cuya reglade aprendizaje era una modificación de la propuesta porHebb. Trabaja con patrones de entrada binarios, y sufuncionamiento se realiza en dos fases: una de entradas y lasalidas deseadas.

En 1959, Widrow publica una teoría sobre la adaptaciónneuronal y modelos inspirados en esa teoría, el Adaline(Adaptative Linear Neuron) y el Madaline (MultipleAdaline) estos modelos fueron usados por primera ves en unproblema real.(Villasana, s.f.)

En los 60, se proponen los modelos supervisados AdalineY Madaline.

En 1962, Rosemblatt publica los resultados de un granproyecto de investigación, el desarrollo del Perceptrón, unidentificador de patrones ópticos binarios, y salida binaria.Las capacidades del Perceptrón se extendieron al desarrollarla regla de aprendizaje Delta, que permitía emplear señalescontinuas de entrada y salida.

Stephen Grossberg realiza el proyecto Avalancha el cualconsiste en elementos discretos con actividad que varíacon el tiempo, el cual permitió en su momento el resolveractividades como reconocimiento continuo del habla yaprendizaje del movimiento de los dedos de un robot.(CarlosPérez Ruiz, s.f.)

Actualmente existen numerosos trabajos que se publicancon cierta frecuencia e igualmente se lanzan al mercado pro-

Page 2: Función de Activación POSLIN y PURELIN

Loaiza Freddy- Faicán Rosa Tutor: Ing Henry Paz

ductos nuevos tanto de hardware como de software, sobretodo para simulación y reconocimiento de patrones.

Redes Neuronales Artificiales

Modelos matemáticos, computacionales, artificiales, idea-les de una red neuronal empleados en estadística, psicologíacognitiva e inteligencia artificial.(Ledesma, s.f.)

Elementos

Figura 2. Elementos de una red neuronalesFuente: Universidad de Santa María

Redes Lineales

Las caracteristicas del perceptrón son similiares a lasredes lineales, pero su función de transferencia es lineal, nose limita a las salidas entre 0 y 1.

La clasificación lineal y el Filtramiento Adaptativo seconstituyen como las aplicaciones mas comunes dentro delas redes lineales.(Navarro, s.f.)

Función de Transferencia

Las entradas a la red serán presentadas en el vector p, quepara el caso de una sola neurona contiene un solo elemento,w sigue representando los pesos y la nueva entrada b es unaganancia que refuerza la salida del sumador n, la cual esla salida neta de la red; la salida total está determinada porla 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 modificaciones enlas funciones de salida.(Gómez, s.f.)

Si la última capa de la Red Backpropagation tieneneuronas con funciones sigmoides entonces las salidas de la

Figura 3. NeuronaFuente: Universidad Tecnológica Nacional

red estarán limitadas en un rango pequeño.

Pero si se utiliza funciones lineales entonces las salidas dela red podrán tomar valores diferentes.(Palacios, Junio 2000)

Funcion de Activación

Es quizás la característica principal o definitoria de lasneuronas, usándose diferentes tipos de funciones, comosimples funciones de umbral a funciones no lineales.

Encargándose de recalcular el nivel o estado de activaciónde la neurona en función de la entrada total.(Araya, s.f.)

Además de otras funciones es necesario tener otrasextensiones que permitan calcular la activación en funciónde la entrada total y funciones de salida calculan la salida enfunción de la activación.(Crespo, s.f.)

La función de activación calcula la activación de la unidaden función de la entrada total y la activación previa, aunqueen la mayor parte de los casos es simplemente una función nodecreciente de la entrada total. Los tipos de función más em-pleados son: la función escalón, función lineal y la funciónsigmoidal.(Paredes, s.f.)

Funciones Derivativas de las Funciones de Activación

En Backpropagation es importante poder calcular elderivado de cualquier función de transferencia utilizada.Cada una de las funciones como: tangencial, logaritmica ypurelin tienen una funcion derivatica que les corresponde:dtansig, dlogsig, dpurelin.(Mera, s.f.)

Para obtener la función derivativa asociada a cada funciónde transferencia se debe llamar a la función de transferenciay a la función en Matlab ’deriv’.

Ejemplo:

tansig=’deriv’ans=dtansig

UNIVERSIDAD NACIONAL DE [email protected], [email protected]

2

Page 3: Función de Activación POSLIN y PURELIN

Loaiza Freddy- Faicán Rosa Tutor: Ing Henry Paz

Las tres funciones de transferencia descritas anteriormen-te son usadas normalmente para backpropagation, pero pue-den crearse otras funciones diferentes y y usarse como back-propagation si así se desea.(Ojeda, 2007)

Funcion de Activación Positiva Poslin

El algoritmo que utiliza la función de transferencia poslinretorna la salida n si n es mayor o igual a cero y cero si esmenor o igual a cero.

Figura 4. PoslinFuente: Escuela Politécnica Nacional

Figura 5. Función Poslin en MatlabFuente: Escuela Politécnica Nacional

Funcion de Activación Purelin

De ves en cuando, el purelin o función de traslado linealse usa en redes Backpropagation.

SíntaxisA=purelin(N,FP)

Donde N es una matriz SxQ de la entrada neta (columna)vectores y FP es la estructura de la función de parámetros(ignorada). Y devuelve A, la matriz SxQ de elementos iguala N.(Collantes, Venezuela 2001)

Figura 6. PurelinFuente: Tutorial de redes neuronales Universidad

Tecnológica de Pereira

Donde K es el factor de amplificación en la región linealde operación.

La salida de una Función de Transferencia Lineal es iguala su entrada.

En la gráfica se observa la salida a de la red comparadacon la entrada p más un valor de ganancia b, neuronas

Figura 7. Función Purelin en MatlabFuente: Tutorial de redes neuronales Universidad

Tecnológica de Pereira

que emplean está función son utlizadas en la red tipoAdalin.(Cabrera, Agosto 2007)

Funciones de aprendizaje

Aprendizaje es el proceso por el cuál una red neuronalaprende y modifica sus pesos con relación a las entradas quereciben.

Los cambios que suceden en el proceso de aprendizajeson la modificación, eliminación y creación y concexiónentre neuronas.

Las funciones de aprendizaje son:

1. Supervisado: - Entrada, Salida, ObjetivoA la red se le proporciona un conjunto de ejemplos delcomportamiento propio de la red. Tiene un supervisoro agente externo, maestro el cual indica que salidasdebe generar la red. (inputs, targets).

a) Correción de error

b) Estocastico

c) por Refuerzo

2. No Supervisado: - Entrada, SalidaLas entradas son las únicas disponibles para el apren-dizaje, el algoritmo de la red aprende a categorizar lasentradas. (clustering)(Meschino, 2006)

a) Asociativo

b) Competitivo

c) Cooperativo

3. Por Reforzamiento: - Recompensa, CastigoA la red se proporciona un grado de desempeño de lamisma.

UNIVERSIDAD NACIONAL DE [email protected], [email protected]

3

Page 4: Función de Activación POSLIN y PURELIN

Loaiza Freddy- Faicán Rosa Tutor: Ing Henry Paz

Algoritmos de entrenamiento implementados por Matlab

Lista que resume las funciones para entrenamiento de re-des con retro propagación que contiene el ‘Neural NetworkToolbox’ de Matlab:

1. Traingd: Usarse en entrenamiento de modo incremen-tal.

2. Traingdm: Más rápido que Traingd, modo incremen-tal.

3. Traingdx: Tasa de aprendizaje adaptativa, usado enmodo de entrenamiento por lotes.

4. Trainrp: Backpropagation flexible, algoritmo de entre-namiento por lotes.

5. Trainlm: El algoritmo de entrenamiento más rápidopara redes de tamaño moderado.

6. Trainbr: Regularización Bayesiana.

Ejemplo Práctico

El presente ejemplo tiene como objetivo demostrar laaplicación de las funciones POSLIN y PURELIN a travésdel manejo de una interfaz gráfica.

Se muestra un grupo de pantallas en las cuales se describelos datos a ingresar y las salidas que se tendrán comoresultado a estos ingresos.

Figura 8. Pantalla Principal

En esta pantalla se puede escoger la funciones que sedesea asi como tambien el entrenamiento, se puede ingre-sar el número de capas, el número de neuronas por capa y elvalor de las entradas.

Se muestra una pantalla con datos ya ingresados asi comotambién la respectiva gráfica.Se muestra la Red Neuronal en báse a los datos anteriormenteingresados.

Figura 9. Pantalla Principal con Datos

Figura 10. Gráfica de la Red Neuronal

Código en Matlab del ejemplo

AQUI SE SELECCIONA EL TIPO DE ENTRENA-MIENTO QUE VA A TENER EL EJERCICIO.

function selecTipoEntrenamientCallback(hOb ject, eventdata, handles)DENTRO DE ESTAS VARIABLES SE ALMACENA

EL VALOR OBTENIDO DEL COMBO BOX.

val = get(hObject,’Value’); str = get(hObject,’String’);

SE COMPARA EL VALOR, PARA ASIGNAR EL TIPODE ENTRENAMIENTO SEGÚN SEA EL CASO.

switch strvalcase ’traingd’handles.currentdat =′ traingd′;guidata(hOb ject, handles);case′traingdx′

handles.currentdat =′ traingdx′;guidata(hOb ject, handles);case′trainc′

handles.currentdat =′ trainc′;guidata(hOb ject, handles);endguidata(hOb ject, handles);

CAJA DE TEXTO DONDE SE INGRESA EL NÚMERODE CAPAS A USAR.function txtNumCapasCallback(hOb ject, eventdata, handles)

DENTRO DE ESTA VARIABLE SE ALMACENA EL

UNIVERSIDAD NACIONAL DE [email protected], [email protected]

4

Page 5: Función de Activación POSLIN y PURELIN

Loaiza Freddy- Faicán Rosa Tutor: Ing Henry Paz

VALOR INGRESADO.NewStrVal=get(hObject,’String’);

SE TRANSFORMA EL VALOR OBTENIDO DESTRING A UN VALOR NUMÉRICONewVal = str2double(NewStrVal);

SE ALMACENA LOS VALORES TRANSFORMADOSANTERIORMENTE COMO PUNTEROShandles.numcapas=NewVal; guidata(hObject,handles);

CAJA DE TEXTO DONDE SE INGRESA EL NÚMERODE NEURONAS POR CAPA.function txtNumNeuronasCallback(hOb ject, eventdata, handles)NewS trVal = get(hOb ject,′ S tring′);NewVal = str2double(NewS trVal);handles.numneuronas = NewVal;guidata(hOb ject, handles);

CAJA DE TEXTO DONDE SE INGRESA EL VALORDE LAS ENTRADAS.function txtValorPCallback(hOb ject, eventdata, handles)NewS trVal = get(hOb ject,′ S tring′);handles.valorP = NewS trVal;guidata(hOb ject, handles);

function txtFuncionActivacionCallback(hOb ject,eventdata, handles)NewS trVal = get(hOb ject,′ S tring′);handles.FuncionActivacion = NewS trVal;guidata(hOb ject, handles);

BOTÓN DONDE SE GRAFICA LA RED NEURONALY SE CALCULA LOS VALORES DEACUERDO A LAFUNCIÓN DE ACTIVACIÓNfunction btnCalculoCallback(hOb ject, eventdata, handles)

vv = str2num(get(handles.txtValorP,’String’));

aa=length(vv);disp(aa);if (a==aa)

CREACIÓN DE LA RED NEURONAL, AQUI SEDEFINE EN RANGO DE ENTRADA MÁXIMO YMÍNIMO, NÚMERO DE NEURONAS POR CAPA, LAFUNCIÓN DE ACTIVACIÓN SELECCIONADA Y ELTIPO DE APRENDIZAJE.

net=newff(minmax(vv),handles.nca,handles.faa,handles.currentdat);

epochs = str2num(get(handles.mni,’String’));

error= str2num(get(handles.txterrorp,’String’));shows = str2num(get(handles.ivr,’String’));lr = str2num(get(handles.lr,’String’));

Si se quiere modificar algunos de los parámetros deentrenamiento predefinidos se hace así.

net.trainParam.show = 500;net.trainParam.max f ail = 3;net.trainParam.lr = lr;net.trainParam.epochs = epochs;net.trainParam.goal = error;a = sim(net, vv);view(net);plot(vv);

fff= mat2str(vv);numCap=str2num(get(handles.txtNumCapas,’String’));set(handles.txtFunActi,’string’,handles.faa);set(handles.tipoEntre,’string’,handles.currentdat);set(handles.txtnumCapasss,′ string′, numCap);set(handles.txtp,′ string′, f f f );

elsemsgbox(’Las Entradas no son iguale a las salidas’,’Error’);

function sliderFuncionActivacionCallback(hOb ject,eventdata, handles)

val = get(hObject,’Value’);str = get(hObject,’String’);switch strvalcase ’poslin’handles.currentdata =′ poslin′;guidata(hOb ject, handles);case′purelin′

handles.currentdata =′ purelin′;guidata(hOb ject, handles);endguidata(hOb ject, handles);

BOTÓN PARA INGRESAR EL NÚMERO DE NEURO-NAS, SE PRESENTA OTRA PANATALLA.function btnNumNeurnasCallback(hOb ject, eventdata, handles)

nueroCapasarreglo=[];funconActivacionarreglo=;numCapas=str2num(get(handles.txtNumCapas,’String’));

for cont=1:1: numCapasentrad=inputdlg(’Numero de neuronas’,’Numero de Neuro-nas’,1,’0’);nueroCapasarreglo=[nueroCapasarreglo

UNIVERSIDAD NACIONAL DE [email protected], [email protected]

5

Page 6: Función de Activación POSLIN y PURELIN

Loaiza Freddy- Faicán Rosa Tutor: Ing Henry Paz

str2num(entrad1,1)];funconActivacionarreglo(cont)=handles.currentdata;endnueroCapasarreglo;handles.nca = nueroCapasarreglo;guidata(hOb ject, handles);

funconActivacionarreglo;handles.faa=funconActivacionarreglo;

guidata(hObject,handles);

f= mat2str(nueroCapasarreglo);

set(handles.txtNumNeuronas,’string’,f);

Referencias

Araya, S. (s.f.). ELO 307: Proyecto de Titulación.Cabrera, S. S. (Agosto 2007). Redes neuronales aplicada a la Esti-

mación de la Probabilidad.Carlos Pérez Ruiz, B. E. P. (s.f.). Estudio SALCER Inteligencia

Artificial.

Collantes, J. (Venezuela 2001). Predicción con Redes Neuronales.Crespo, E. Q. (s.f.). DESARROLLO DE UN MODELO PARA LA

LOCALIZACIÓN DE FALLAS EN SISTEMAS DE TRANS-MISION DE ENERGIA ELECTRICA UTILIZANDO TECNI-CAS DE INTELIGENCIA ARTIFICIAL.

Gómez, M. D. (s.f.).

Ledesma, D. S. (s.f.). Las Redes Neuronales - Implementación yconsideraciones prácticas.

Mera, O. (s.f.). SISTEMA TRADUCTOR DE LENGUAJE FO-NÉTICO A LENGUAJE DE SEÑAS A TRAVÉS DE REDESNEURONALES.

Meschino, G. (2006). Redes Neuronales en Matlab.Navarro, Y. G. (s.f.). Redes Neuronales Artificiales.Ojeda, L. R. (2007). Matlab conceptos básicos y programación.Palacios, F. (Junio 2000). Redes Neuronales Artificiales y Métodos

de Estinación de Funciones.Paredes, C. (s.f.).

Tomás, V. A. (s.f.). Introducción a las redes neuronales artificiales.Descargado de http://www.slideshare.net/mentelibre/introduccion-a-las-redes-neuronales-artificiales

Villasana, M. (s.f.). Introducción a las Redes Neuronales (Neura-les). Descargado de http://www.mathworks.com/access/

UNIVERSIDAD NACIONAL DE [email protected], [email protected]

6