Las matemáticas del Machine Learning: Funciones de activación

Fran Ramírez    4 junio, 2020

En el anterior artículo nos centramos en los primeros pasos de la neurona artificial, haciendo hincapié sobre todo en el origen del Perceptrón, y de cómo Minsky y Papert expusieron las limitaciones del Perceptrón Simple. En esta segunda parte de la evolución de las redes neuronales veremos qué consecuencias tuvieron en el campo de la investigación, y de cómo a partir de los años 80 hubo un gran auge en el mundo de la Inteligencia Artificial.

En cambio, durante finales de los 70 y principios de los 80 encontramos muy poco movimiento. Hay muchos factores que influyeron en dicha ralentización en las investigaciones, pero posiblemente la falta de inversión al no ver resultados prácticos o comerciales puede ser quizás uno de los principales. Esto cambiaría radicalmente durante la década de los 80, ya que justo aquí comenzó el auge del computador, tanto personal como los supercomputadores (por ejemplo, los Cray). De esta forma ahora era posible corregir errores en las teorías y lo mejor de todo, obtener resultados prácticos de los mismos.

Figura 1. Superordenador Cray-2. Fuente.
Figura 1. Superordenador Cray-2. Fuente.

Un breve repaso …

A modo de repaso, el Perceptrón es un clasificador binario de modelo lineal con una relación de entrada-salida simple como en el que se realiza un producto escalar de un n número de entradas con sus pesos asociados y luego enviamos esta “entrada de red” a una función de paso con un umbral definido. Esta función de paso o función de activación, en un principio solía ser una Función de Escalón de Heaviside con un valor de umbral de 0.5. Esta función generará un único binario de valor real (0 o 1), dependiendo de la entrada.

La función de escalón quedaría definida como:

Figura 2. Función de escalón.
Figura 2. Función de escalón.

La salida de la función de activación (función escalón) no deja de ser la salida de nuestro Perceptrón y nos permite realizar una clasificación binaria simple de los valores de entrada a la unidad. En este artículo de esta misma serie tenéis más información detallada sobre las redes neuronales.

Buscando respuestas

Pero volvamos al principio para intentar encontrar respuestas al por qué no evolucionó por aquella época el mundo de la Inteligencia Artificial, y en concreto el Perceptrón.

¿Dónde estaba el problema principal? Pues principalmente fueron dos:

1. Los Perceptrones básicos no podían procesar el circuito de o-exclusivo (XOR). Un XOR es un operador lógico, un tipo de disyunción lógica, la cual es verdadera si y solo si una de ellas es verdadera y la otra no. Si ambas son verdaderas o ambas falsas la disyunción también es falsa.

2. El segundo problema y puede que definitivo, era que los ordenadores no tenían suficiente poder de procesamiento para manejar con eficiencia el gran tiempo de ejecución que requerían las grandes redes neuronales, recordemos que estamos hablando de finales de los 60, con valores de entrada y salida binarios. Tanto el valor de los pesos como el de umbral de cada neurona se asignaban manualmente. Cuantos más Perceptrones en las capas, mucho más difícil conseguir los pesos para obtener salidas deseadas.

La revolución neuronal

Las funciones que gobiernan el comportamiento de la neurona artificial se llaman funciones de activación. La transmisión de esa entrada se conoce como forward propagation. Las funciones de activación transforman la combinación de entradas, pesos y sesgos. Los productos de estas transformaciones se ingresan para la siguiente capa de nodo. Muchas (aunque no todas) las transformaciones no lineales usadas en redes neuronales transforman los datos a rango conveniente, por ejemplo  [0,1] ó [-1,1] . Cuando una neurona artificial pasa de un valor distinto de cero a otro, decimos que esa neurona se ha activado.

Las funciones de activación se usan para propagar la salida de los nodos de una capa hacia la siguiente capa. Se tratan de funciones escalares a escalar, que produce la activación de la neurona. Este tipo de funciones permiten incorporar el modelado de datos de entrada no lineales a la red.

Figura 3. Ejemplo de algunas funciones de activación. Fuente.

La familia de funciones sigmoideas es la más importante y usada en las funciones de activación, pero no la única. Veamos ahora algunas funciones de activación útiles en redes neuronales, junto con sus principales características y casos de uso:

Funciones de activación sigmoideas

Este tipo de funciones permiten mitigar el efecto de outliers en el entrenamiento de nuestro modelo. La imagen de este tipo de funciones suele estar contenida en los intervalos o , por lo que valores muy extremos siempre estarán cerca de los límites del intervalo de esa imagen.

Función logística. Convierte variables independientes de rango casi infinito en probabilidades simples entre [0,1]

Figura 4. Función logística.

Softmax. La función softmax es una generalización de la regresión logística que puede ser aplicada a datos continuos. Soporta sistemas de clasificación multinomial, por lo que se convierte en el recurso principal utilizado en las capas de salida de un clasificador. Esta función de activación devuelve la distribución de probabilidad de cada una de las clases soportadas en el modelo. La función Softmax calcula la distribución de probabilidades del evento sobre ‘n’ eventos diferentes. En términos generales, esta función calculará las probabilidades de cada clase objetivo sobre todas las clases objetivo posibles. Más tarde, las probabilidades calculadas serán útiles para determinar la clase objetivo para las entradas dadas.
La principal ventaja de usar Softmax es el rango de probabilidades de salida. El rango será de 0 a 1, y la suma de todas las probabilidades será igual a uno. Si la función softmax utilizada para el modelo de clasificación múltiple devuelve las probabilidades de cada clase y la clase objetivo tendrá una probabilidad alta.

Figura 5. Función Softmax.

La fórmula calcula la exponencial del valor de entrada dado y la suma de los valores exponenciales de todos los valores en las entradas. Luego, la relación de la exponencial del valor de entrada y la suma de los valores exponenciales es la salida de la función Softmax. Este tipo de función de activación es muy utilizado en el modelo de regresión logística de clasificación múltiple y en diferentes niveles de capa de cara a la construcción de redes neuronales. Más detalles sobre la usabilidad de la función Softmax se puede encontrar en el siguiente enlace.

Tangente hiperbólica. La tanh representa la relación del seno hiperbólico al coseno hiperbólico: tannh x = sinh x / cosh. A diferencia de la Función Sigmoidea, el rango normalizado de tanh es de [-1,1]. La ventaja de tanh es que puede manejar más fácilmente los números negativos.

Figura 6. Tangente hiperbólica

Funciones de activación lineales

Las transformadas lineales son básicamente la función de identidad, donde la variable dependiente tiene una relación directa y proporcional con la variable independiente. En términos prácticos, significa que la función pasa la señal sin cambios.

Figura 7. Función de identidad

Funciones de activación Rectified Linear

Las funciones de Rectificado lineal son transformaciones que activan un nodo sólo si la entrada está por encima de una cierta cantidad. Mientras la entrada es inferior a cero, la salida es cero, pero cuando la entrada supera un cierto umbral, tiene una relación lineal con el dependiente variable:

con una imagen:

Funciones de activación Softplus

Las funciones de activación Softplus se consideran la versión suavizada de las transformaciones por rectificación lineal. Si bien la forma es similar, vemos que la función que las define es derivable en todo su dominio.

Ecuación de la función de activación
Figura 8. Función sigmoidal
Figura 8. Gráfica de Rectified Linear y Softplus. Fuente.

Durante finales de los 70, uno de los grandes avances por no decir el único fue el de la neurona sigmoide o neurona sigmoidal, ésta muy parecida al Perceptrón en estructura tenía una gran diferencia, y es que al contrario que el perceptrón (que solo podía tener como entradas 0-1) podía tener entradas de cualquier valor numérico. La función sigmoidea o sigmoidal viene representada por la siguiente función:

Figura 8. Función sigmoidal
Figura 8. Función sigmoidal

El estudio de esta función nos garantiza que se trata de una función continua acotada superior e inferiormente por sus dos asíntotas horizontales y=1 e y=0, pues cuando sus valores se acercan al infinito la función roza los valores 0 o 1, 0 cuando los valores son extremadamente negativos, 1 cuando los valores son exageradamente altos. La gráfica de esta función muestra además que posee un cambio de curvatura en el valor x=0, y=0.5, y tiene una forma de S como podemos observar.

igura 9. Forma de "S" de la función sigmoidal.
Figura 9. Forma de “S” de la función sigmoidal.

En el siguiente post cerraremos el tema del Deep Learning explicando el mecanismo de Back Propagation. No te lo pierdas.

Aquí tenéis el resto de esta serie de “Matemáticas y el Machine Learning“:

Escrito para LUCA por Fran Fenoll (@ffenoll16), Fran Ramírez (@cyberhadesblog y @cybercaronte) y Enrique Blanco (@eblanco_h) (ambos del equipo de Ideas Locas CDCO de Telefónica).

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *