funcion-hardlim y hardlims

7
Redes Neuronales Artificiales Ronal Rojas (1) Universidad Nacional de Loja Jenny Saraguro (2) Universidad Nacional de Loja En este artículo se describe las funciones de activación Hardlim y Hardlims de las neuronas artificiales con la itulización de una pequeña aplicación que nos permite simular una red neu- ronal Redes Neuronales Artificiales El continúo avance de la tecnología así como también la necesidad de agilizar los procesos de negocios hace que el hombre desarrollé técnicas que permitan alcanzar este objetivo como es el caso de la redes neuronales artificales, que se caracterizan por tener un procesamiento automático que se ha venido perfeccionando con la finalidad de obtener mejores resultados que satisfagan las exigencias de los usuarios. La teoría de las redes neuronales artificiales ha brindado una alternativa a la computación clásica, para aquellos problemas, en los cuales los métodos tradicionales no han entregado resultados muy convincentes, o poco convenien- tes. (Tanco, 2010) Las aplicaciones más exitosas de las RNA son: Procesamiento de imágenes y de voz Reconocimiento de patrones Interfaces adaptivas para sistemas hombre/máquina Predicción Control y optimización Filtrado de señales Las RNA no ejecutan instrucciones, responden en paralelo a las entradas que se les presenta. El resultado no se almacena en una posición de memoria, este es el estado de la red para el cual se logra equilibrio. El conocimiento de una red neuronal no se almacena en instrucciones, el poder de la red está en su topología y en los valores de las conexiones (pesos) entre neuronas. (Tanco, 2010) Las redes neuronales artificiales tratan de emular el comportamiento del cerebro humano, caracterizado por el aprendizaje a través de la experiencia y la extracción de conocimiento genérico a partir de un conjunto de datos.(Raquel Flórez López, 2008). Las redes neuronales artificiales se diseñaron con el objetivo de poder simular el sistema nervioso central el cual ayudase a la extracción de información a partir de grandes cantidades de datos complejos e inciertos (Raúl Pino Díez, s.f.) y de esta manera poder realizar una clasificación de los datos. La arquitectura de una red neuronal artificial depende de cuatro parámetros principales: El número de capas del sistema. El número de neuronas por cada capa. El grado de conectividad entre las neuronas. El tipo de conexiones neuronales. La conectividad de los nodos de una red está relacionada con la forma de transmisión de las salidas de las distintas unidades y su transformación en entradas de otros procesa- dores. (Raquel Flórez López, 2008). Se va a considerar una neurona como un elemento formal o módulo o unidad básica de la red que recibe información de otros módulos o del entorno; la integra, la computa y emite una única salida que se va a transmitir idéntica a múltiples neuronas posteriores. (Wasserman., s.f.). Figura 1. Esquema de la Neurona Artificial La salida de esta neurona esta definida por la siguiente ecuacion: a = F k ((W i j * P i ) + b k ) Donde: a: es la salida de la neurona. F k : es la función de transferencia de la neurona. W i j: es la matriz de pesos.

Upload: ronald-rojas

Post on 24-Nov-2015

319 views

Category:

Documents


5 download

TRANSCRIPT

  • Redes Neuronales Artificiales

    Ronal Rojas (1)Universidad Nacional de Loja

    Jenny Saraguro (2)Universidad Nacional de Loja

    En este artculo se describe las funciones de activacin Hardlim y Hardlims de las neuronasartificiales con la itulizacin de una pequea aplicacin que nos permite simular una red neu-ronal

    Redes Neuronales Artificiales

    El contino avance de la tecnologa as como tambinla necesidad de agilizar los procesos de negocios hace queel hombre desarroll tcnicas que permitan alcanzar esteobjetivo como es el caso de la redes neuronales artificales,que se caracterizan por tener un procesamiento automticoque se ha venido perfeccionando con la finalidad de obtenermejores resultados que satisfagan las exigencias de losusuarios.

    La teora de las redes neuronales artificiales ha brindadouna alternativa a la computacin clsica, para aquellosproblemas, en los cuales los mtodos tradicionales no hanentregado resultados muy convincentes, o poco convenien-tes. (Tanco, 2010) Las aplicaciones ms exitosas de las RNAson:

    Procesamiento de imgenes y de voz Reconocimiento de patrones Interfaces adaptivas para sistemas hombre/mquina Prediccin Control y optimizacin Filtrado de seales

    Las RNA no ejecutan instrucciones, responden enparalelo a las entradas que se les presenta. El resultado no sealmacena en una posicin de memoria, este es el estado de lared para el cual se logra equilibrio. El conocimiento de unared neuronal no se almacena en instrucciones, el poder de lared est en su topologa y en los valores de las conexiones(pesos) entre neuronas. (Tanco, 2010)

    Las redes neuronales artificiales tratan de emular elcomportamiento del cerebro humano, caracterizado porel aprendizaje a travs de la experiencia y la extraccinde conocimiento genrico a partir de un conjunto dedatos.(Raquel Flrez Lpez, 2008).

    Las redes neuronales artificiales se disearon con elobjetivo de poder simular el sistema nervioso central el cualayudase a la extraccin de informacin a partir de grandes

    cantidades de datos complejos e inciertos (Ral Pino Dez,s.f.) y de esta manera poder realizar una clasificacin de losdatos.

    La arquitectura de una red neuronal artificial depende decuatro parmetros principales:

    El nmero de capas del sistema. El nmero de neuronas por cada capa. El grado de conectividad entre las neuronas. El tipo de conexiones neuronales.

    La conectividad de los nodos de una red est relacionadacon la forma de transmisin de las salidas de las distintasunidades y su transformacin en entradas de otros procesa-dores. (Raquel Flrez Lpez, 2008).

    Se va a considerar una neurona como un elemento formalo mdulo o unidad bsica de la red que recibe informacinde otros mdulos o del entorno; la integra, la computa yemite una nica salida que se va a transmitir idntica amltiples neuronas posteriores. (Wasserman., s.f.).

    Figura 1. Esquema de la Neurona Artificial

    La salida de esta neurona esta definida por la siguienteecuacion:

    a = Fk((Wi j Pi) + bk)Donde: a: es la salida de la neurona. Fk: es la funcin de transferencia de la neurona. Wi j: es la matriz de pesos.

  • Ronal Rojas-Jenny Saraguro Tutor: Ing Henry Paz

    Pi:es el patrn de entrenamiento. bk:es el umbral de activacin de la neurona.

    En la figura 2 se puede observar el esquema de una redneuronal

    Figura 2. Esquema de una Red Neuronal Artificial

    La misma est constituida por neuronas interconectadas yarregladas en capas. Los datos ingresan por medio de la apade entrada", pasan a travs de la apa oculta 2salen por laapa de salida". Cabe mencionar que la capa oculta puedeestar constituida por varias capas.(Matich, 2001)

    Funciones de Activacin

    Las funciones de activacin nos permiten dar mayorflexibilidad al sistema, y por tanto mayor capacidad.

    Entre la unidades o neuronas que forman una red neuronalartificial existe un conjunto de conexiones que las unen. Cadaunidad transmite seales a aquellas que estn conectadasa su salida. Asociada con cada unidad Uj hay una funcinde activacin (Fact), que transforma la entrada neta que launidad presenta como resultado de estar conectada con otrasunidades que le suministran informacin, en el valor desalida Yj.

    La funcin de activacin calcula la activacin de la unidaden funcin de la entrada total y la activacin previa, aunqueen la mayor parte de los casos es simplemente una funcinno decreciente de la entrada total. Los tipos de funcinms empleados son: la funcin escaln, funcin lineal y lafuncin sigmoidal.

    FUNCIN DE TRASFERENCIA LIMITADORFUERTE (HARDLIM). Esta funcin de transferenciaacerca la salida de la red a cero, si el argumento de la funcines menor que cero; y la lleva a uno si este argumento esmayor que uno. Esta funcin crea neuronas que clasificanlas entradas en dos categoras diferentes, caracterstica quele permite ser empleada en la red tipo Perceptrn.(NeuralNetwork Toolbox, 2010)

    a ={

    1 si n >= 00 si n = 0-1 si n

  • Ronal Rojas-Jenny Saraguro Tutor: Ing Henry Paz

    A = hardlims(N, FP)

    donde:N es una matriz de entrada S por Q.FP Struct parmetros de la funcin (ignorado)

    Funciones de Aprendizaje

    Una vez se han inicializado los pesos de la red y losel bias, la red est lista para ser entrenada. La red puedeentrenarse para: la aproximacin de una funcin (regresinno lineal), la asociacin del modelo, o la clasificacindel modelo. El proceso de entrenamiento requiere de lospatrones de conducta apropiados para la red, las entradas dela red p y las salidas en blanco t. (mathworks, 2014)

    Entre las funciones de aprendizaje empleadas en el casoprctico tenemos: Retropropagacin gradiente conjugado con reini-

    cios Powell-Beale (traincgb): funcin de entrenamineto queactualiza los pesos y las bias de aacuerdo con el algoritmode retropropagacin de gradiente conjungado segun Powell-Beale. (Carlos Alfonzo Prez Rivera, 2005)

    Para todos los algoritmos de gradiente conjugado, ladireccin de bsqueda se restablece peridicamente para elnegativo de la pendiente. El punto de reinicio estndar seproduce cuando el nmero de iteraciones es igual al nmerode parmetros de la red (pesos y bias), pero hay otrosmtodos de restauracin que pueden mejorar la eficiencia dela formacin.(mathworks, 2014)

    Uno de estos mtodos de reposicin fue propuesta porPowell, basado en una versin anterior propuesto por Beale.Esta tcnica se reinicia si hay muy poco ortogonalidad entreel gradiente actual y el gradiente anterior.

    La sintaxis de esta funcin se describe de laforma:(mathworks, 2014)

    net.trainFcn = traincgb[net, tr] = train(net, ...)

    Con traincgb se puede entrenar a cualquier red, siempre ycuando sus funciones de peso, entrada neta y de transferen-cia tengan funciones derivables. (Neural Network Toolbox,2010)

    La retropropagacin se utiliza para calcular el rendimiento delos derivados de perforacin con respecto a las variables depeso y de polarizacin X . Cada variable se ajusta de acuerdoa la siguiente:

    X = X + a dX ;donde dX es la direccin de la bsqueda. El parmetro dea se selecciona para reducir al mnimo el rendimiento a lolargo de la direccin de bsqueda.

    La funcin de bsqueda de lnea searchFcn se utiliza paralocalizar el punto mnimo. La primera direccin de bsquedaes el negativo de la pendiente de rendimiento. En sucesivasiteraciones la direccin de bsqueda se calcula a partir dela nueva gradiente y la direccin de bsqueda anterior deacuerdo con la frmula:

    dX = gX + dXanterior Z;donde gX es el gradiente. El parmetro Z puede calcularse devarias maneras diferentes. La variacin de Powell-Beale delgradiente conjugado se distingue por dos caractersticas: el algoritmo utiliza una prueba para determinar cundorestablecer la direccin de bsqueda para el negativo de lapendiente. la direccin de bsqueda se calcula a partir del gradientenegativo, la direccin de la bsqueda anterior, y la ltimadireccin de bsqueda antes de la ltima puesta a cero.

    La formacin detiene cuando se produce alguna de estas con-diciones:1. Se ha alcanzado el nmero mximo de pocas (repeticio-nes).2. La cantidad mxima de tiempo que se ha superado.3. El rendimiento ha sido minimizado a la meta.4. El gradiente de rendimiento cae por debajo de mingrad.5. Rendimiento de validacin se ha incrementado ms de ve-ces max_fail desde la ltima vez que se redujo (cuando seutiliza la validacin) (Neural Network Toolbox, 2010) .

    Retropropagacin BFGS quasi-Newton (trainbfg):funcin de entrenamiento de la red que actualiza los valoresde peso y bias de acuerdo con el mtodo quasi-NewtonBFGS.(Carlos Alfonzo Prez Rivera, 2005)

    El algoritmo BFGS requiere ms clculo en cada iteraciny ms capacidad de almacenamiento de los mtodos de gra-diente conjugado, aunque generalmente converge en menositeraciones. El Hesse aproximada debe ser almacenado, y sudimensin es NxN , donde N es igual al nmero de pesosy bias en la red. Para redes muy grandes puede ser que seamejor utilizar Rprop o uno de los algoritmos de gradienteconjugado. Para redes ms pequeas, sin embargo, trainbfgpuede ser una funcin de capacitacin eficiente. (NeuralNetwork Toolbox, 2010)

    La sintaxis de esta funcin es:(mathworks, 2014)

    net.trainFcn = trainb f g

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

    3

  • Ronal Rojas-Jenny Saraguro Tutor: Ing Henry Paz

    [net, tr] = train(net, ...)

    Con trainbfg se puede entrenar a cualquier red, siempre ycuando sus funciones de peso, entrada neta y de transferenciatengan funciones derivables.

    Retropropagacin se utiliza para calcular las derivadas derendimiento perf con respecto a las variables de peso y biasX . Cada variable se ajusta de acuerdo a la siguiente:

    X = X + a dX;donde dX es la direccin de la bsqueda. El parmetro dea se selecciona para reducir al mnimo el rendimiento a lolargo de la direccin de bsqueda.

    La funcin de bsqueda de lnea searchFcn se utiliza paralocalizar el punto mnimo. La primera direccin de bsquedaes el negativo de la pendiente de rendimiento. En sucesivasiteraciones la direccin de bsqueda se calcula segn lasiguiente frmula:

    dX = H gX;donde gX es el gradiente y H es una matriz de Hesseaproximada.

    El aprendizaje se detiene cuando se produce alguna de estascondiciones:1. Se ha alcanzado el nmero mximo de pocas (repeticio-nes).2. La cantidad mxima de tiempo que se ha superado.3. El rendimiento ha sido minimizado a la meta.4. El gradiente de rendimiento cae por debajo de mingrad.5. la validacin del rendimineto se ha incrementado mas quemax_fail veces desde la ltima vez que se redujo (NeuralNetwork Toolbox, 2010).

    Retropropagacin Regulacin Bayesiana trainbr):Funcin de entrenamiento que actualiza los pesosy los bias de acuerdo con el algoritmo de resilientbackpropagation"(RPROP).(Carlos Alfonzo Prez Rivera,2005)

    Es una funcin de la red de formacin que actualiza losvalores de los pesos y bias de acuerdo con la optimizacinde Levenberg-Marquardt. Se minimiza una combinacin deerrores y pesos al cuadrado y, a continuacin, determina lacombinacin correcta a fin de producir una red que gene-raliza bien. El proceso se llama regularizacin bayesiana.(mathworks, 2014)

    Esta funcin utiliza el Jacobian para los clculos, lo quesupone que el rendimiento es una media o la suma de erroresal cuadrado. Por lo tanto redes entrenadas con esta funcin

    deben utilizar el mse o sse funcin del rendimiento.

    La sintaxis de est funcin se describe de laforma:(mathworks, 2014)

    net.trainFcn = trainbr[net, tr] = train(net, ...)

    La funcin trainbr puede entrenar a cualquier red, siempre ycuando sus funciones de peso, entrada neta y de transferenciatienen funciones derivables.(Neural Network Toolbox, 2010)

    Regularizacin bayesiana minimiza una combinacin linealde los errores y los pesos al cuadrado. Tambin modifica lacombinacin lineal de modo que al final de la formacin dela red resultante tiene buenas cualidades de generalizacin.

    Esta regularizacin bayesiana se lleva a cabo dentro delalgoritmo de Levenberg-Marquardt. La retropropagacin seutiliza para calcular la jacobiana jX de rendimiento perf conrespecto a las variables de peso y bias X . Cada variable seajusta en funcin de Levenberg-Marquardt:

    j j = jX jXje = jX E

    dX = ( j j+Imu)je

    donde E son todos los errores y I es la matriz de identidad.

    El parmetro mem_reduc indica cmo usar la memoria y lavelocidad para calcular el jacobiano jX. Si mem_reduc es 1,entonces trainlm corre ms rpido, pero puede requerir unagran cantidad de memoria.

    Aumentar mem_reduc a 2, corta parte de la memoriarequerida por un factor de dos, pero ralentiza trainlm.Los valores ms altos continan para disminuir la cantidadde memoria necesaria y aumentar los tiempos de aprendizaje.

    El aprendizaje se detiene cuando se produce alguna de estascondiciones:1. Se ha alcanzado el nmero mximo de pocas (repeticio-nes).2. La cantidad mxima de tiempo que se ha superado.3. El rendimiento ha sido minimizado a la meta.4. El gradiente de rendimiento cae por debajo de mingrad.5. mu excede mu_max.6. Rendimiento de validacin se ha incrementado ms de ve-ces max_fail desde la ltima vez que se redujo (cuando seutiliza la validacin)(Neural Network Toolbox, 2010).

    Caso Prctico

    Para poner en prctica lo aprendido en clase se realizo uncaso prctico en la herramienta Matlab, es una aplicacin la

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

    4

  • Ronal Rojas-Jenny Saraguro Tutor: Ing Henry Paz

    cual nos permite simular un red neuronal con las funciones deActivacin Hardlim y Harlims y admas permite especificarque tipo de entrenamiento se le dar a la red neuronal.

    Figura 5. Pantalla Principal

    En la figura 5. de la pantalla principal tenemos variassecciones las cuales nos servirn de ayuda para poderrealizar la simulacin de la red neuronal.

    Se detalla cada una de la secciones de la pantalla principal:

    1. En esta primera seccin se define que funcin deactivacin (hardlim o hardlims) va ha utilizar cada una de lasneuronas que forman la red, y el tipo de aprendizaje (trainbr,trainbfg o traincgb) que van ha emplear.

    El botn Establecer sirven para para fijar las funciones de ac-tivacin y aprendizaje seleccionadas con las cuales se simu-lar la red neuronal, a diferencia del botn Restablecer quenos habilita nuevamente los select de funcin y aprenizaje encaso de que se requiera de otras funciones.

    Figura 6. Funcin de Activacin y Aprendizaje

    2. Una vez establecidas las funciones de activacin yentrenamiento procedemos a la seccin dos en la cualpodemos determinar el nmero de capas y neuroans queformarn la red.

    En el campo de texto Nmero de Capas se ingresar elnumero de capas que se desea para la red dentro del rangode 1 a 10.

    Una vez ingresado el nmero de capas se procede aseleccionar el botn Crear Capas el cual nos habilita laseccin de capas en donde ingresaremos el nmero deneuronas para cada una de las capas creadas anteriormente yseleccionamos el botn Grabar Neuronas.

    El botn Deshacer nos habilita nuevamente los campos y asipodemos cambiar los datos para ingresar nuevos en caso dealguna equivocacin.

    Figura 7. Datos de la Red Neuronal

    3. En la seccin tres tenemos a la matriz de entrada y pesoscon las cuales trabajar la red neuronal.

    Figura 8. Matriz de Entrada y Vector

    4. En la seccin cuatro tenemos los botones:

    Calcular el cual no realiza la simulacin de la res neuronal Limpiar borra todos los datos ingresados para la simual-cin de la red. Ver Red Neuronal nos muestra la grfica de las capas conel nmero de neuronas que posee.

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

    5

  • Ronal Rojas-Jenny Saraguro Tutor: Ing Henry Paz

    Figura 9. Botones de Ejecucin

    Codificacin MATLAB

    Para la ejecucin de aplicacin se realiz la siguiente co-dificacin: En esta figura 10 se presenta el cdigo que se emplea

    para obtener los valores de la matriz de entrada los cuales sevan a guardar en una matriz M

    Figura 10. Matriz de Entrada

    En la figura 11 se almacena los valores del vector desalida V

    Figura 11. Vector de Salida

    En la figura 12 se observa la codificacin para crear ysimular la red, utilizmos el comando newff el cual recibe co-mo parametros: la matriz de entrada, la funcion de activaci,el tipo de entrenamiento y el nmero de neuronas.

    Figura 12. Creacin y simulacin de la Red Neuronal

    Ejecutando la aplicacin se presentar la pantalla de la fi-gura 13.

    Figura 13. Ejecucin Aplicacin

    Si seleccionamos el botn de Ver Red Neuronal se pre-sentar la pantalla e la figura 14, la misma que contiene lainformacin acerca de el nmero de capas que forman la red,el nmero de neuronas que contiene cada capa, el nmero deentradas y el nmero de salidas.

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

    6

  • Ronal Rojas-Jenny Saraguro Tutor: Ing Henry Paz

    Figura 14. Capas de la Red Neuronal

    References

    Carlos Alfonzo Prez Rivera, G. A. I. E., Jaime Andres Britto Mon-toya. (2005). Aplicacin de redes neuronales para la deteccinde intrusos en redes y sistemas de informacin.

    mathworks. (2014). Documentation center. Descargado dehttp://www.mathworks.com/help/

    Matich, D. J. (2001). Redes neuronales: Con-ceptos bsicos y aplicaciones. Descargado dehttp://www.frro.utn.edu.ar/repositorio/

    catedras/quimica/5_anio/orientadora1/monograias/matich-redesneuronales.pdf

    Neural network toolbox. (2010). Descargado dehttp://dali.feld.cvut.cz/ucebna/matlab/toolbox/nnet/trainbr.html?cmdname=trainbr

    Ral Pino Dez, N. d. A. M., Alberto Gmez Gmez. (s.f.). In-troduccin a la inteligencia artificial: Sistemas expertos, redesneuronales artificiales y computacin evolutiva. Servicio dePublicaciones-Universidad de Oviedo, =.

    Raquel Flrez Lpez, J. M. F. F. (2008). Las redes neuronalesartificiales. Gesbiblo.

    Tanco, F. (2010). Introduccion a las re-des neuronales artificiales. Descargado dehttp://www.secyt.frba.utn.edu.ar/gia/RNA.pdf

    Wasserman., P. (s.f.). Neural computing: la teora y la prctica.Van Nostrand Reinhold Co.

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

    7