Las matemáticas del Machine Learning: Redes Neuronales (Parte I)

Fran Ramírez    26 noviembre, 2019

Continuamos con nuestra serie que tiene como objetivo explicar la base de las matemáticas que se utilizan en el aprendizaje de máquina o Machine Learning de la manera más sencilla y directa posible. Al final del artículo podrás encontrar todos los enlaces al resto de esta mini serie de artículos.

Una vez que ya estamos familiarizados con el concepto de Machine Learning, el siguiente paso es distinguir los tres tipos de algoritmos de aprendizaje automático que existen: supervisado, no supervisado y por refuerzo.

En el aprendizaje supervisado, la máquina aprende mediante ejemplos. De este modo, el usuario proporciona al algoritmo de aprendizaje automático un conjunto de datos conocidos que incluye las entradas y salidas deseadas, y el algoritmo debe encontrar un método para determinar cómo llegar a esas entradas y salidas.

Por el contrario en el no supervisado el algoritmo de aprendizaje automático estudia los datos proporcionados por nosotros para identificar patrones y encontrar una serie de correlaciones y relaciones.

En este enlace puedes encontrar una explicación más en profundidad de ambos tipos de aprendizaje.

El aprendizaje por refuerzo se basa en un aprendizaje autónomo una vez establecidas las normas mediante prueba y error, es decir, nosotros definimos las reglas del juego y la máquina experimenta las diferentes posibilidades, aprendiendo de cada error que comete o de cada respuesta obtenida. En este enlace puedes encontrar más información así como una aplicación práctica orientada a videojuegos 😉

Los siete tipos de algoritmos más comunes o más populares de Machine Learning son:

  1. Algoritmo de regresión.
  2. Algoritmo de red neuronal.
  3. Algoritmo de agrupación.
  4. Algoritmo de árbol de decisión.
  5. Algoritmo de Bayesiano
  6. Algoritmo de reducción de dimensión.
  7. Algoritmo de aprendizaje profundo.

Durante los siguientes artículos hablaremos acerca del algoritmo de red neuronal, su historia, desarrollo hasta nuestros días y una breve explicación de las matemáticas presentes en las redes neuronales.

¿Qué es una red neuronal?

Primero de todo cuando hablamos de una red neuronal, lo que nos viene a la cabeza es la imagen de una neurona del cerebro, de esas que hemos visto en algún libro o en algún reportaje, una masa redonda, con un núcleo y unas ramificaciones. En el cerebro tenemos miles de millones de neuronas, todas ellas forman una red neuronal, y sabemos que la información se transmite mediante la sinapsis. Pues bien, una red neuronal artificial es algo similar, un conjunto de redes neuronales que tienen como objetivo resolver problemas difíciles de resolver mediante algoritmos convencionales. Dentro de dicho conjunto, en cada una de ellas podemos distinguir una entrada de señal, un nodo y una salida o respuesta hacía otra neurona artificial. 

Dependiendo del número de neuronas, nuestra red puede ser más o menos simple o profunda. La sinapsis entre neuronas, la transmisión de información, o el valor de salida de la neurona anterior se multiplica por un valor peso. Estos pesos en los enlaces pueden incrementar o inhibir el estado de activación de las siguientes neuronas. Del mismo modo, a la salida de la neurona, puede existir, un filtro, una función limitadora o umbral, que modifica el valor resultado o impone un límite que se debe sobrepasar para poder proseguir a otra neurona. Esta función se conoce como función de activación, la cual hablaremos en otro momento. Para el ajuste de dichos pesos hablaremos acerca del entrenamiento de la red neuronal, utilizando diversos métodos, como son descenso de gradientebackpropagation.

¿Cómo funciona una neurona?

Las señales de entrada, la información que recibe nuestra neuronal artificial, son variables independientes. Los n-valores de entrada son multiplicados por sus respectivos pesos, es decir en la sinopsis el vector entrada  es multiplicado por el vector peso , dando como resultado una combinación lineal de las entradas y los pesos, algo que denominamos función de ponderación.

Fórmula que representa la sinopsis de una neurona artificial

A continuación, se aplicará una función activación:

Fórmula de aplicación de la función de activación

Y por último dicho resultado se propaga a la salida. Dicho valor puede ser la nueva entrada de una neurona, formando así las redes neuronales, o bien puede ser el resultado final, nuestra variable respuesta. Las respuestas obtenidas pueden ser una variable continua como el precio de un objeto, una respuesta binaria (0,1) (Sí, No) si una persona padece algún tipo de enfermedad o no, o puede ser una respuesta categórica que nos sirva para clasificar por ejemplo.

A continuación podemos observar mediante un gráfico el comportamiento de una neurona artificial.

Esquema de un percepción o neurona artificial. Fuente:
https://es.wikipedia.org/wiki/Perceptr%C3%B3n
Figura 1. Esquema de un percepción o neurona artificial. Fuente:
https://es.wikipedia.org/wiki/Perceptr%C3%B3n

Funciones de activación. 

Una función de activación es una función que transmite la información generada por la combinación lineal de los pesos y las entradas, es decir son la manera de transmitir la información por las conexiones de salida. La información puede transmitirse sin modificaciones, estaríamos hablando de una función identidad, o bien que no transmita la información. Como lo que queremos es que la red sea capaz de resolver problemas cada vez más complejos, las funciones de activación generalmente harán que los modelos sean no lineales. Entre las funciones de activación más conocidas o más usadas se encuentran:

  • Función Escalón, (similar a la función binaria.)
Fórmula de la función escalón
  • Función Sigmoidal.
Fórmula de la función sigmoidal
  • Función Rectificadora (ReLU).
Fórmula de la función rectificadora
  • Función Tangente Hiperbólica.
Fórmula de la función tangente hiperbólica
  • Funciones de Base Radial. (Gausianas, multicuadráticas, multicuadráticas inversas…)

Resumen

La red neuronal la podemos definir como un grafo, una capa de entradas que reciben la señal de entrada, la envían mediante estímulos a la siguiente capa oculta, la cual se encarga de procesar la información y transmitirla a la siguiente capa, así hasta que llegamos a la última capa, la capa de salida, la que nos transmite la respuesta.

Representación de una red neuronal artificial
Figura 2. Red neuronal artificial. Fuente:
https://es.wikipedia.org/wiki/Perceptr%C3%B3n_multicapa

En los siguientes artículos hablaremos acerca de la “evolución” de las redes neuronales y de las diferentes funciones de activación, así como de sus características. 

Si quieres repasar desde el principio estos conceptos de matemáticas aplicadas al Machine Learning, no dudes en echar un vistazo a nuestra serie completa:

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

Comentarios

Deja un comentario

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