Revolución IA

La Inteligencia Artificial está llamada a protagonizar la próxima Revolución tecnológica

Inicio Sobre Revolucionia Temas Para saber más Contacto

Funciones de activación en redes neuronales artificiales

Fernando P.    01/11/2017

Temas:  Fundamentos

Las funciones de activación son una idea tomada de la Biología y que trata de generalizar el hecho de que las neuronas biológicas no son meros sumadores y transmisores de impulsos, sino que tienen una suerte de mecanismo que decide si se activan o no, en función de la entrada que reciben. Es al activarse cuando envían una señal a través de su axón a otras neuronas que la siguen en la cadena de procesamiento.

Desde el punto de vista de las redes neuronales artificiales (RNA en lo sucesivo), las funciones de activación cumplen dos papeles muy importantes y son una característica con margen para hacer diseños novedosos de RNA.

Nivel de activación y función de activación
Cuando introdujimos las neuronas artificiales ya se introducía el concepto de nivel de activación, que iba a determinar cuando la neurona se podía activar, proporcionando una salida positiva.

En el artículo en el que describíamos los perceptrones usábamos un concepto más amplio, que era el de función de activación, para extender la idea de nivel de activación y conseguir mayor versatilidad de funcionamiento.

Básicamente, una función de activación va a ser una función  t :   con algunas restricciones que comentaremos más adelante. Con esta definición de función de activación, el concepto primitivo de nivel de activación lo podemos formular como una función de activación con la siguiente forma:

t(x) = 0  si x< T

t(x) = 1  si x≥ T

Donde  T  es el nivel de activación elegido

Función de activación Usando el concepto de función de activación no perdemos generalidad respecto a lo que se ha visto en las neuronas artificiales.

En la versión más general de la idea de función de activación, esta se aplica a cada neurona artificial de una RNA y constituye la salida que se envía a las neuronas de la siguiente capa de procesamiento.

En el caso de los perceptrones simples teníamos  m  neuronas en la única de procesamiento y, por simplicidad, usábamos una función de activación en la forma  t : mm, que no es más que una forma de agrupar las  m  funciones de activación necesarias.

Requisitos para una función de activación
La clase de funciones de activación que tienen utilidad en RNA es bastante amplia, pero no sirve cualquiera. Esto es porque podría ocurrir que con funciones de activación muy raras la red adoptaría un comportamiento demasiado complejo, rozando lo caótico y no podría entrenarse de forma razonable.

Los requisitos que vamos a pedir a una función de activación son los siguientes:

El que sea monótona creciente es coherente con el concepto de nivel de activación de una neurona artificial y proporciona un comportamiento suave a la red.

El requisito de que sea acotada implica no linealidad, al menos sobre todo el dominio  , para dominios más restringidos sí que necesitaremos la no linealidad. Básicamente, nuestra función de activación no puede ser una recta.

La derivabilidad es importante para conservar la suavidad general del sistema y porque el algoritmo de entrenamiento Backpropagation para RNA que tengan dos o más capas de procesamiento necesita calcular o aproximar derivadas de cada neurona, como funciones individuales.

Una propiedad que no es requisito formal pero que simplifica bastante las cosas es que el recorrido de la función de activación sea  [0,1]. Es decir, la salida de una neurona simpre dará valores entre 0 y 1. Dependiendo del tamaño de las capas de neuronas, esta propiedad también nos obligará a que la mayor parte del crecimiento de la función se produzca cerca del 0.

No linealidad
El requisito general de no linealidad es básico, porque al hablar de los perceptrones multicapa ya vimos que era imprescindible una función de activación no lineal para romper la linealidad intrínseca de los perceptrones y también las limitaciones que tienen, en cuanto que no son capaces representar clases no convexas en el conjunto de casos de entrada.

Con funciones de activación no lineales, el comportamiento general de la red (siempre que tenga al menos dos capas de procesamiento) puede asimilarse bien a casi cualquier delimitación de clases en el conjunto de casos de entrada. Se trata de una forma de potenciar enormemente un Perceptrón.

El problema que surge al romper la linealidad es que el entrenamiento de la red se complica mucho. Es por ello que no se debe administrar más potencia a la red de la imprescindible, para facilitar su entrenamiento.

Rectificación
Las funciones de activación también se denominan rectificadores porque llevan a cabo una importante tarea de normalización de los valores que circulan entre las conexiones de una red con varias capas de procesamiento.

Al estar la función de activación acotada, todas las neuronas terminarán devolviendo un rango de valores similar y limitado, suceda lo que suceda con sus entradas. Si esto no fuera así, podría suceder fácilmente que los valores que circulan por por las conexiones de las últimas capas fueran enormes, porque las neuronas actúan como sumadores y su efecto se acumularía capa a capa.

En las neuronas biológicas no circulan voltajes arbitrarios entre sus conexiones, todas manejan voltajes similares. Es una especie de propiedad democrática que evita que aparezcan valores muy grandes en determinados puntos de una RNA y que complicaría mucho el proceso de entrenamiento.

Funciones de activación usadas habitualmente Función logística
La forma de función de activación más simple es la función salto vista antes como forma de emular la idea de umbral de activación. Es una función muy simple de manejar que funciona sorprendentemente bien.

Es posible complicar un poco la función salto introduciendo varios saltos sucesivos para dotar a la función de la posibilidad de tomar valores intermedios entre 0 y 1.

En el ámbito de las funciones contínuas, hay dos funciones que se usan bastante:

Donde el parámetro  c  se puede usar para dotar a la función de un crecimiento más o menos agresivo, aunque el valor 1 es una buena elección. En la figura adjunta se puede ver una representación de la función logística, que viene a ser bastante similar en forma a la tangente hiperbólica.

La función logística tiene una derivada muy sencilla, por lo que es una buena elección si no queremos hacer muy pesado el proceso de entrenamiento.

Funciones de activación en la práctica
Como ya se ha comentado, hay mucho margen para elegir funciones de activación y es un campo de investigación muy activo. Técnicamente, si introducimos una función de activación con parámetros, estos podrían considerarse parámetros de la red y deberían ser ajustados en el proceso de entrenamiento. Esto daría una potencia enorme a una RNA, pero, hoy por hoy, resulta muy complicado de llevar a la práctiva a la hora de entrenar la red.

Otra posibilidad de crear RNA complejas viene del hecho de que cada neurona puede tener su propia función de activación, existiendo distintas funciones de activación en distintas capas, grupos de neuronas o la configuración que se nos ocurra. Esta forma de operar no es tan problemática como la de considerar las funciones de activación como paramétricas, pero también complica el proceso de entrenamiento.

En general, debemos seguir el principio de mínima complejidad. Es decir, debemos intentar hacer que nuestra red funcione con la configuración más sencilla posible usando, por ejemplo, funciones de activación salto.

Si no somos capaces de resolver nuestro problema con una RNA sencilla es cuando debemos empezar a pensar en complicarla, usando funciones de activación más complejas. En general, una función de activación logística debería funcionar bien en gran cantidad de casos y tenemos la sencilla posibilidad de usar el parámetro  c  para modificar su agresividad.



La elección de una función de activación adecuada es importante para conseguir un buen rendimiento de una RNA, pero no hay guías sobre cómo hacerlo. En general, hay que evitar introducir coplejidad innecesaria en una RNA.



Para saber más:

Página de la Wikipedia sobre funciones de activación, contiene algunas funciones exóticas adicionales a las vistas aquí.



 

Inicio Powered by NetBSD
 
HTML5
 
En general, todo el contenido de este sitio web es original, salvo referencias o enlaces a otros sitios web y citas o reproducciones expresamente presentadas como tales.

No está permitida la reproducción ni la copia del contenido de este sitio web sin el permiso expreso de la propiedad del mismo.

Este sitio web no utiliza cookies ni ningún otro mecanismo para almacenar información en los navegadores de los visitantes ni para realizar seguimiento de los mismos.

2017,2018 Revolucionia.net
Sobre Revolucionia
Temas
Para saber más
Contacto