Artículos de matemáticas aplicadas

Un enfoque matemático a los fundamentos de las redes neuronales artificiales



Víctor Mijangos de la Cruz
$\newcommand{\menorque}{<}$ $\newcommand{\mayorque}{>}$

Resumen

En la actualidad, la inteligencia artificial ha tenido un gran impulso y se encuentra presente en gran parte de nuestras vidas. Las redes neuronales han jugado un papel en suma importancia, pues se trata de modelos con gran capacidad adaptativa que son capaces de resolver problemas de gran complejidad, como el procesamiento y generación de imágenes o de lenguaje natural. Es, de hecho, gracias a las redes profundas que actualmente se han resuelto problemas en inteligencia artificial que antes se veían casi imposibles. En este artículo, revisamos los fundamentos matemáticos de las redes neuronales, mostrando que se trata de funciones que pueden aproximar tanto como se quiera a las funciones continuas y que, además, presentan la ventaja de poder aprender, es decir, adaptarse para encontrar la solución a un problema dado una muestra de ejemplos de ese problema.

Introducción

Recientemente las redes neuronales artificiales han tenido un auge debido a las tecnologías de inteligencia artificial que hacen uso de éstas. Agentes conversacionales como chatGPT o modelos para generación de imágenes como Dall-e o Stable Difussion han permitido generar tanto texto como imágenes que cada vez se acercan más a las producciones humanas. Esto ha desatado un gran debate en diferentes comunidades acerca de que representa la inmersión de estas tecnologías en nuestras vidas, cómo aprovecharlas, o que riesgos pueden traer. Sin embargo, este debate ha tocado poco a los fundamentos matemáticos que radican en las redes neuronales y su importancia en la funcionalidad de éstas. Quizá comprender más a fondo los motivos matemáticos que radican detrás de las redes neuronales y el aprendizaje profundo puede servirnos para desmitificar un poco estas tecnologías. En este artículo buscamos presentar las nociones matemáticas esenciales que radican en las redes neuronales: en primer lugar, presentamos cómo las redes neuronales buscaron, al menos en un principio, modelar el funcionamiento de neuronas biológicas a partir de funciones. Posteriormente, mostramos los límites de estos modelos e introducimos la noción de red densa que da pie al aprendizaje profundo al utilizar el concepto de capas ocultas, donde interactúan un conjunto de neuronas. Abordamos la propiedad de este tipo de funciones de aproximar funciones continuas, lo que se conoce como aproximador universal. Finalmente, hacemos una breve introducción sobre el aprendizaje en este tipo de neuronas, lo que les permite adaptarse a diferentes problemas a partir de un conjunto finito de ejemplos.

El modelo de una neurona

En los años 40s, Warren McCulloch y Walter Pitts [MP43] propusieron un modelo neuronal para el cálculo de funciones lógicas que, junto con Frank Rosenblatt [Ros58], llevó al diseño del primer modelo computacional de una neurona, el perceptrón. Esta neurona es capaz de aprender, es decir, de adquirir experiencia que le permita modificarse para resolver problemas específicos sin necesidad de que un programador le diga cómo tiene que darse esta adaptación.

(a) Imagen de una neurona (b) Modelo matemático de neurona
En el modelo matemático de una neurona, las dendritas funcionan como entrada de información numérica que se procesa en un núcleo y después se envía una señal binaria de activación.

El modelo propuesto por Rosenblatt se basa en abstraer los componentes de una neurona biológica. Las dendritas de una neurona, que funcionan como receptores de información o estímulos, se representan con valores numéricos $x_1, x_2,...,x_d$. Estos estímulos pasan a través de conexiones neuronales ponderadas por $w_1, w_2, ..., w_d$, que representan la fuerza de la conexión entre los estímulos de entrada y el núcleo de la neurona. Se obtiene una suma de los estímulos ponderada por los pesos de las conexiones. Si dicha suma supera cierto umbral $\theta$ (esto es si $\sum_iw_ix_i \mayorque \theta)$, la neurona se activa, de lo contrario la neurona permanece inactiva. Si denotamos $\theta = -b$, podemos escribir las interacciones en el núcleo de la neurona como: $$\sum_{i=1}^d w_ix_i + b$$ Cuando este valor es positivo, la neurona se activa. Visualmente, el perceptrón puede verse como en la Figura 1 donde su relación con la neurona biológica es más claro. Por tanto, podemos definir el perceptrón, utilizando notación vectorial, como sigue:

(Perceptrón) El perceptrón es una función $f: X \to \{0,1\}$, sobre un conjunto $X \subseteq \mathbb{R}^d$, definida como: \begin{equation} f(x) = \begin{cases} 1 & \text{si } wx + b \mayorque 0 \\ 0 & \text{si } wx + b \leq 0 \end{cases} \end{equation} Donde $w \in \mathbb{R}^d$ son parámetros conocidos como los pesos de la red, y $b \in \mathbb{R}$ es el sesgo.

La definición del perceptrón puede recordar a otras funciones, como la regresión logística o la regresión lineal.

El perceptrón considera a la neurona como una función binaria, pero las funciones que activan la neurona, que llamaremos funciones de activación, pueden tomar distintas formas. Es común que estas funciones tengan una forma de S, como la llamada función sigmoide: $$\sigma(a) = \frac{1}{1+e^{-a}}$$ Esta función, acotada por 0 y 1, puede usarse para activar la neurona, de tal forma que los valores de salida estén en el intervalo $[0,1]$. Este modelo se conoce como regresión logística. Además, podemos suponer que la activación de la neurona es la identidad, de tal forma que $f(x) = wx+b$; esto define el modelo de regresión lineal. Ambos modelos, junto con el perceptrón, pueden considerarse como redes neuronales. Considérese una función de pre-activación $a: \mathbb{R}^d \to \mathbb{R}$, dada como $a(x) = wx+b$, definimos:

(Modelo de una neurona) Un modelo de una neurona es una función $f:X \to Y$ que se compone de una pre-activación $a: \mathbb{R}^d \to \mathbb{R}$ y de una activación $g: \mathbb{R} \to \mathbb{R}$. Formalmente se define como: $$f(x) = (g \circ a)(x) = g(wx+b)$$ Donde $w \in \mathbb{R}^d$ representan los pesos de las conexiones y $b \in \mathbb{R}$ el sesgo o umbral de activación.

Si la función de activación es el sigmoide, tenemos la regresión logística; si es la función signo, tenemos el perceptrón, y si es la identidad tenemos la regresión lineal. Es común utilizar otras funciones de activación como la tangente hiperbólica, $\tanh$, o la llamada función ReLU (de las siglas de Rectified Linear Unit), dada por $ReLU(a) = \max\{0, a\}$ [GBB11].

Los límites de una neurona

Los modelos de una neurona entran dentro de la categoría de modelos lineales, pues queda claro que la pre-activación $wx+b$ parametriza una recta ortogonal a $w$ y trasladada por $b$. Para entender sus límites, necesitamos revisar primero los problemas que pueden resolver [Mit97]:

(Problema de regresión) Un problema de regresión está dado por una función $f^*:X \to Y$, donde $X \subseteq \mathbb{R}^d$ y $Y \subseteq \mathbb{R}$.

(Problema de clasificación) Un problema de clasificación está dado por una función $f^*:X\to Y$, donde $X \subseteq \mathbb{R}^d$ y $Y = \{0,1,2,...,N\}$ conjunto de enteros positivos.

Los problemas de regresión toman valores en un intervalo continuo; por ejemplo, se pueden presentar en la predicción de precios.

Los problemas de clasificación, por su parte, hacen predicciones sobre un conjunto finito de enteros positivos que representan clases.

Supongamos que tenemos un objeto representado por $d$ características $x_1,x_2,...,x_d$ y queremos clasificarlo como un animal: gato, perro, otro; contamos con tres clases que podemos asociar con los enteros positivos 0, 1 y 2, respectivamente. El problema de clasificación asignará su clase a cada dato $x \in \mathbb{R}^d$ según las características que lo describen.

Para estudiar los límites de una neurona (artificial) podemos enfocarnos a los problemas de clasificación. Por ejemplo, fijémonos en las funciones lógicas. La función de conjunción $\land$, podría definirse como: $$\land(x_1,x_2) = \begin{cases} 1 & \text{si } x_1 = 1 = x_2 \\ 0 & \text{en otro caso} \end{cases}$$ La conjunción puede verse como un problema de clasificación $\land: \{0,1\}^2 \to \{0,1\}$, donde las clases pueden interpretarse como falso o verdadero. Si tomamos la siguiente función de pre-activación: $$a(x) = x_1 + x_2 -1.5$$ donde $w^T = \begin{pmatrix} 1 & 1\end{pmatrix}$ y $b = -1.5$, tenemos que el perceptrón definido por esta función de pre-activación es igual a la conjunción lógica. Más aún podemos encontrar perceptrones que definan las funciones lógicas de disyunción y negación.

Ahora, veamos que existe una relación estrecha entre el perceptrón y la regresión logística; esta última, aunque tome valores en $[0,1]$ que pueden interpretarse como una probabilidad, se usa en la práctica para problemas de clasificación, interpretando $p(Y=1|x) = \big(\sigma\circ a\big)(x)$ y $p(Y=0|x) = 1-\big(\sigma\circ a\big)(x)$.

Sea $f:X \to \{0,1\}$ un perceptrón con pre-activación $a: X \to \mathbb{R}$. Entonces, bajo los mismos pesos $(w,b)$, la clasificación por regresión logística, con probabilidad $p(Y=y|x)$, es la misma que la del perceptrón. Esto es: $$\arg\max_y p(Y=y|x) = f(x)$$

Sean $w^*$ y $b^*$ los pesos en la pre-activación $a(x) = w^*x + b^*$, notemos que si el elemento $x$ pertenece a la clase $1$, entonces $p(Y=1|x) \mayorque 0.5$, es decir: $$\frac{1}{1+e^{-w^*x-b^*}} \mayorque 0.5$$ Lo cual se da cuando $e^{-w^*x-b^*} \menorque 1$ que pasa si y sólo si $w^*x+b^* \mayorque 0$. De igual forma, si $x$ es de la clase 0, tenemos que comprobar que $p(Y=1|x) \leq 0.5$ que se da si y sólo si $w^*x + b^* \leq 0$, pero estas dos condiciones son las mismas que en el perceptrón, lo que prueba el resultado.

El perceptrón hace una clasificación discreta, mientras que la regresión logística hace una clasificación probabilística. Con base en esto, podemos ver las limitantes de estos modelos. Consideremos la disyunción exclusiva lógica (Xor) definida como: $$\oplus(x_1,x_2) = \begin{cases} 1 & \text{si } x_1 \neq x_2 \\ 0 & \text{si } x_1 = x_2 \end{cases}$$ Marvin Misky y Seymour Papert [MP69] mostraron que el perceptrón (ni tampoco la regresión logística) pueden resolver este problema:

No existe un perceptrón que pueda resolver el problema de la disyunción exclusiva.

Supondremos que existe un perceptrón con los pesos $w^T= \begin{pmatrix}w_1 & w_2\end{pmatrix}$ y el sesgo $b$ que pueden resolver el problema de la disyunción exclusiva. Los vectores $\begin{pmatrix}1 & 1\end{pmatrix}$ y $\begin{pmatrix}0 & 0\end{pmatrix}$ caen dentro de la clase 0, por lo que tenemos las desigualdades dadas por la asignación del perceptrón: $w_1 + w_ 2 + b \leq 0$ para el primero. Y para $\begin{pmatrix}0 & 0\end{pmatrix}$ tenemos $b \leq 0$. Sumando ambas desigualdades: $$w_1+w_2 + 2b \leq 0$$ Para los vectores $\begin{pmatrix}1 & 0\end{pmatrix}$ y $\begin{pmatrix}0 & 1\end{pmatrix}$ que son de la clase 1, tenemos: $w_1 + b \mayorque 0, w_2 + b \mayorque 0$; de nuevo, si sumamos estas desigualdades tenemos: $$w_1+w_2+2b \mayorque 0$$ Lo que contradice la desigualdad anterior. Por lo que no existe un perceptrón que solucione el problema de disyunción exclusiva.

Un perceptrón (o un modelo de regresión logística) no es capaz de resolver un problema como la disyunción exclusiva (Xor) ya que este no es un problema linealmente separable; es decir, no podemos encontrar una recta (o un hiperplano) en el espacio de los datos que separe los puntos de una clase de los de la otra clase (véase la Figura 2).

(a) Separación lineal (b) Problema Xor
La separación lineal separa dos regiones a partir de una recta (a), mientras que problemas como el Xor requieren de separaciones no lineales (b).

(Problema linealmente separable) Un problema de clasificación $f^*: \mathbb{R}^d \to \{0,1,...,N\}$ es linealmente separable si existen hiperplanos que separen las regiones correspondientes a las clases del problema. De forma equivalente, decimos que es linealmente separable si existe un perceptrón que solucione el problema.

Redes profundas

Para solventar las limitaciones que presentaba el modelo de una neurona, se propusieron redes neuronales como las de base radial [LB88] que introducían un preprocesamiento estadístico antes de aplicar un perceptrón. Los modelos que lograron imponerse fueron las redes profundas, comenzando por el perceptrón multicapa. La idea es muy sencilla: si se tiene el modelo de una neurona, se puede hacer una red que incorpore varias de estas neuronas trabajando en conjunto para resolver un problema. Por ejemplo, en la disyunción exclusiva, sabemos que se puede expresar por funciones lógicas simples como: $$x_1 \oplus x_2 = (x_1 \lor x_2) \land \lnot (x_1 \land x_2)$$ Ya que la conjunción, la disyunción y la negación son problemas linealmente separables, existen perceptrones, $f_\land, f_\lor$ y $f_\lnot$ que los solucionan, por lo que podemos componer una nueva función $f_\oplus$ como: \begin{align*} f_\oplus(x_1, x_2) &= f_\land \Big( f_\lor(x_1,x_2), f_\lnot \big( f_\land(x_1,x_2) \big) \Big) \\ &= sgn\Big( sgn(x_1 + x_2 -0.5) + sgn\big( -sgn(x_1+x_2-1.5) +0.5\big) -1.5 \Big) \end{align*} Donde $sgn: \mathbb{R} \to \{0,1\}$ es la función que envía valores negativos al 0 y positivos al 1. El problema puede simplificarse si se introducen tres neuronas que procesen previamente a los datos de entrada. Definamos estas neuronas por las funciones $h_1,h_2,h_3:\mathbb{R}^2 \to \mathbb{R}$ que están dadas como: \begin{align*} h_1(x) &= ReLU(0.5x_1 + 0.5 x_2) \\ h_2(x) &= ReLU( -x_1 + x_2) \\ h_3(x) &= ReLU(-x_1 + x_2 + 0.5) \end{align*} Recuérdese que $ReLU(a) = \max\{0,a\}$. Estos tres valores de las neuronas se pueden incorporar en un nuevo vector $h^T(x) = \begin{pmatrix}h_1(x) & h_2(x) & h_3(x) \end{pmatrix}$. Este vector puede verse como la entrada a un perceptrón definido como: $f(x) = sgn(0x_1 + 1.3x_2 -1.6x_3 + 0.6)$ lo que soluciona el problema de la disyunción exclusiva. La solución se puede ver en la Figura 3b.

(a) Transformación de datos (b) Regiones de solución
Solución al problema Xor por medio de un perceptrón multicapa con tres neuronas en una capa oculta.

La idea que radica detrás de esta solución es simple: se busca transformar los datos para llevarlos a un espacio donde sean linealmente separables. En la Figura 3a se puede ver esto. Los datos se pasan a tres dimensiones por medio de la transformación $h: \mathbb{R}^2 \to \mathbb{R}^3$ que hemos definido previamente. Esta transformación la podemos expresar en forma matricial como: $$h(x) = ReLU\Big(\begin{pmatrix} 0.5 & 0.5 \\ -1 & 1 \\ -1 & 1 \end{pmatrix}\begin{pmatrix} x_1 \\ x_2 \end{pmatrix} + \begin{pmatrix} 0 \\ 0 \\0.5 \end{pmatrix} \Big)$$ La función de activación ReLU se aplica punto a punto. Si expresamos a la matriz como $W \in \mathbb{R}^{m \times d}$ y al vector de sesgos como $b \in \mathbb{R}^m$, tenemos que la fórmula puede escribirse como: \begin{equation} h(x) = g\Big( Wx + b\Big) \end{equation} Esta fórmula es central en las redes neuronales, y define lo que se conoce como una capa oculta. Para generalizar esto, se pueden introducir un número arbitrario de capas ocultas que toman como entrada a las capas ocultas previas. Esto define lo que se conoce como redes densas o completamente conectadas (feedforward en inglés):

(Red densa) Una red neuronal densa con profundidad $K$ es una función $f: \mathbb{R}^d \to \mathbb{R}^n$ que está dada como: \begin{equation} f(x) = g_{K+1}\Big(W^{(K+1)} h^{(K)}(x) + b^{(K+1)} \Big) \end{equation} donde $h^{(K)}(x)$ se define por medio de una regla de inicio: \begin{equation} h^{(1)}(x) = g_1\Big( W^{(1)}x + b^{(1)} \Big) \end{equation} Y una regla recursiva para $1 \menorque k\leq K$: \begin{equation} h^{(k)}(x) = g_k\Big( W^{(k)}h^{(k-1)}(x) + b^{(k)} \Big) \end{equation} tal que $W^{(k)}$ y $b^{(k)}$, para toda $k \in\{1,...,K+1\}$, se conocen como los pesos de la red, y las funciones $g_k: \mathbb{R} \to \mathbb{R}$ son las funciones de activación en cada capa que se aplican punto a punto.

Las redes densas pueden verse como un conjunto de neuronas que interactúan entre si para solucionar un problema. Cuando se utilizan varias capas ocultas, se suele hablar de red profunda. Una red profunda, entonces, puede verse como la composición de un conjunto de funciones que son las capas ocultas. Generalmente a la última capa se le conoce como capa de salida. Asimismo, se tienen otros dos conceptos importantes dentro de las redes densas [GBC16]:

(Anchura de red) Sea $f: \mathbb{R}^d \to \mathbb{R}^n$ una red densa. La anchura de la red es el máximo número de neuronas en alguna de sus capas ocultas.

(Profundidad de red) Sea $f: \mathbb{R}^d \to \mathbb{R}^n$ una red densa. La anchura de $f$ es el número $K$ de capas ocultas que tiene la red (sin contar la capa de salida).

Aproximación universal

Las redes neuronales han mostrado su capacidad para resolver prácticamente todo tipo de problemas en inteligencia artificial. Esto está fundamentado en el principio teórico de la aproximación universal. Se ha mostrado que una red de profundidad $K=1$ y con una anchura arbitraria puede aproximar cualquier función continua [Cyb89; Les+93] (o medible [HSW89]). De hecho, existen una serie de teoremas que muestran este hecho para diferentes casos. Revisamos aquí el teorema de aproximador universal de Cybenko [Cyb89]. Para esto, primero debemos definir lo que entendemos por aproximador universal:

(Aproximador universal) Sea $\mathcal{F} = \{f: X \to \mathbb{R}\}$ una familia de funciones. Si $\mathcal{F}$ es un subconjunto de las funciones continuas con dominio $X$, $\mathcal{F} \subset C(X)$, decimos que $\mathcal{F}$ es un aproximador universal

si es denso en $C(X)$, $\overline{\mathcal{F}} = C(X)$.

Es decir, un aproximador universal es una familia de funciones que puede aproximar a las funciones continuas tanto como se quiera. En esta definición, en particular se asume que el codominio es real, pero el resultado puede extenderse a función de $\mathbb{R}^d$ a $\mathbb{R}^n$. Definamos el concepto de función discriminatoria:

(Función discriminatoria) Una función $g:\mathbb{R} \to \mathbb{R}$ es discriminatoria si para toda $w\in\mathbb{R}^d$ y toda $b \in \mathbb{R}$ se cumple: $$\int_X g(wx + b) d\mu(x) = 0$$ si y sólo si la medida $\mu=0$.

Con esta definición, podemos utilizar el teorema de Hahn-Banach [Olt22] para probar que las redes neuronales son densas en $C(X)$. Para esto, nos limitaremos a las redes con una sola capa oculta.

(Aproximador universal) Sea $\mathcal{F}$ la familia de las redes neuronales densas con una sola capa oculta de la forma: $$f(x) = w\cdot g(Wx + b)$$ Con $W \in \mathbb{R}^{m \times d}$, $b \in \mathbb{R}^m$, $w \in \mathbb{R}^m$ y $g:\mathbb{R} \to \mathbb{R}$ una función de activación discriminatoria. Entonces $\mathcal{F}$ es un aproximador universal para $C(\mathbb{R}^d)$.

En primer lugar, cabe notar que este tipo de redes neuronales es un subespacio de las funciones continuas, pues es una composición de funciones continuas. Es decir $\mathcal{F} \subset C(\mathbb{R}^d)$. Entonces, podemos demostrar la propiedad de aproximador universal por contradicción. Supongamos que las redes neuronales no son un aproximador universal, esto es $\overline{F} \neq C(\mathbb{R}^d)$. Por tanto, podemos utilizar el teorema de Hahn-Banach y suponer que existe un funcional lineal $L$ diferente de 0 tal que para toda $f \in \mathcal{F}$ se tiene que $L(f) = 0$, mientras que para toda $\phi \in C(\mathbb{R}^d)\setminus \mathcal{F}$, $L(\phi) \neq 0$.

Podemos representar este funcional con base en una medida $\mu \neq 0$ (pues $L$ es diferente de 0) de la siguiente forma: $$L(f) = \int f d\mu$$ Ahora, observemos que la función $g(W_ix+b) \in \mathcal{F}$ para todo vector $W_i \in \mathbb{R}^d$ y toda $b \in \mathbb{R}$. Por tanto tenemos que $L$ envía esta función al 0; esto es: $$\int g(W_ix + b) d\mu(x) = 0$$ Pero como asumimos que $g$ es discriminatoria, entonces $\mu = 0$, lo que contradice el que $L$ sea diferente de 0. Es decir, hemos llegado a una contradicción al suponer que $\overline{\mathcal{F}} \neq C(\mathbb{R}^d)$. Por tanto debe ser que las redes neuronales son aproximadores universales para $C(\mathbb{R}^d)$.

La propiedad de aproximación universal tiene gran importancia en las aplicaciones prácticas de las redes densas. Sin embargo, todavía deja algunos inconvenientes: en primer lugar, tenemos que usar funciones discriminatorias. En particular, funciones como la sigmoide o la tangente hiperbólica son de este tipo. También se ha probado que las funciones ReLU cumplen con la aproximación universal [DJC+23], y todas aquellas funciones no polinomiales [Les+93]. El segundo inconveniente es conocer el número de neuronas que necesita la capa oculta (la anchura) para que podamos aproximar un problema particular. Existen resultados que dan cotas acerca de la anchura de la red para resolver un problema [Par+20; DJC+23], sin embargo, en la práctica suele ser un proceso más bien artesanal y muchas veces el procesamiento se distribuye a través de un número (muchas veces grande) de capas ocultas.

Aprendizaje en redes profundas

Las redes neuronals profundas son aproximadores universales como otras familias de funciones, pero lo que ha despertado el interés sobre estas funciones dentro de la inteligencia artificial es la flexibilidad que muestran para adaptarse y solucionar diferentes problemas prácticos, así como su facilidad para poder estimar los pesos de la red en base al aprendizaje. Este aprendizaje se basa en optimización con base al gradiente de los pesos dado los datos de un problema. El aprendizaje en redes neuronales radica en dos métodos esenciales: el descenso por gradiente [Ben00] y el algoritmo de retro-propagación [RHW86].

La estrategia de aprendizaje consiste en: 1) definir una función objetivo que indique qué tanto se parecen las soluciones al problema con lo que predice la red neuronal; 2) obtener el gradiente de todos los pesos de la red con respecto a la función objetivo; y 3) actualizar los pesos con un optimizador basado en gradiente para minimizar la función objetivo. Consideremos las siguientes definiciones:

(Función objetivo) Una función objetivo es una función $R:\Theta \to \mathbb{R}^+$, donde $\Theta$ es el espacio de hipótesis, que depende de una red neuronal $f:X\to Y$, una función de pérdida $L$ y un conjunto de datos $\{(x,y): x\in X, y\in Y\}$, y se define como: \begin{equation} R(\theta) = \sum_{(x,y)} L\big(f(x), y\big) \end{equation}

La función de pérdida $L\big( f(x),y\big)$ determina un error entre la predicción hecha por la red $f(x)$ y una señal de guía (o supervisión) $y$ [Vap98]. Por tanto, entre más se aleje $f(x)$ de $y$ mayor será este error. Una forma típica de la función de pérdida está dada por $L\big( f(x), y \big) = -1(y) \ln f(x)$, donde $1(y)$ es la función indicadora en $y$. En estos casos, a la función objetivo se le conoce como entropía cruzada [MMZ23].

(Descenso por gradiente) Dada una función objetivo $R: \Theta \to \mathbb{R}^+$ que depende de un conjunto de datos $\{(x,y): x \in \mathbb{R}, y \in Y\}$ con gradiente $\nabla_\theta R(\theta)$, el método de descenso por gradiente actualiza los pesos $\theta \in \Theta$ con base a la regla: $$\theta \leftarrow \theta - \eta \nabla_\theta R(\theta)$$ Para un $\eta\in \mathbb{R}^+$ conocido como la tasa de aprendizaje.

En principio, para redes sin capas ocultas, el descenso por gradiente puede aplicarse sin dificultad aplicando la regla de la cadena a las funciones de pre-activación, activación y objetivo. Cuando contamos con redes multicapas, con un número arbitrario de capas profundas, debemos extender la regla de la cadena. El algoritmo de retro-propagación [RHW86] permite hacer esto de forma sencilla y eficiente al aplicar la regla de la cadena de forma recursiva sobre la estructura de una red neuronal con función objetivo dada.

(Retro-propagación) El algoritmo de retro-propagación para una red neuronal $f:X \to Y$ con una función objetivo $R:\Theta \to \mathbb{R}^+$ y un conjunto de datos $\{(x,y): x\in \mathbb{R}^d, y \in Y\}$ obtiene los gradientes con base al cálculo de las variables $d(k)$ como:*La notación $\otimes$ refiere al producto externo definido para dos vectores $x$ e $y$ como una matriz con entradas $(x \otimes y)_{i,j} = x_iy_j$, mientras que $\odot$ refiere al producto punto a punto el cual, para $x$ e $y$, obtiene un vector con entradas $(x\odot y)_i = x_iy_i$. \begin{equation} \nabla_{W^{(k)}} R(\theta) = d(k) \otimes h^{k-1}(x) \end{equation} Considerando que $h^{(0)} = x$. Estas variables se obtienen de forma recursiva con regla de inicialización: \begin{equation} \label{eq:rpBase} d(K+1) = \nabla_f L\big(f(x), y\big) \odot \nabla_{a^{(K+1)}} f(x) \end{equation} Y regla inductiva dada como: \begin{equation} \label{eq:rpInd} d(k) = \nabla_{a^{(k)}} h^{(k)}(x) \odot d(k+1) \cdot W^{(k+1)} \end{equation} para roda $k \in \{1,2,...,K\}$.

Dada una red neuronal $f:X \to Y$ con función objetivo $R:\Theta \to \mathbb{R}^+$ y capas ocultas $h^{(k)}(x)$, para $k\in\{1,...,K\}$, el método de retro-propagación obtiene los gradientes para los pesos en cada una de las capas de la red.

Consideremos que los pesos son $\theta = \{W^{(k)} : k =1,...,K,K+1\}$ (la derivación del sesgo $b$ es similar), entonces haremos la demostración por inducción sobre las capas de la red. Para la capa de salida $K+1$, tenemos que probar que tenemos el gradiente sobre $W^{(K+1)}$. En este caso, el método aplica la Ecuación 8. Observando que tenemos la composición $\big( R \circ L \circ f \circ a\big)$ con $a(x) = W^{(K+1)}h(x)$, las derivadas parciales son: \begin{align*} \frac{\partial R(\theta)}{\partial W_{i,j}^{(K+1)}} &= \frac{\partial}{\partial W_{i,j}^{(K+1)}} \sum_{(x,y)} L\big( f(x), y\big) \\ &= \sum_{(x,y)} \frac{\partial L\big( f(x), y\big)}{\partial W_{i,j}^{(K+1)}} \\ &= \frac{\partial L\big( f(x), y\big)}{\partial f_{i}(x)} \frac{\partial f_i(x)}{\partial a_{i}(x)} \frac{\partial a_i(x)}{\partial W_{i,j}^{(K+1)}} \\ &= \frac{\partial L\big( f(x), y\big)}{\partial f_{i}(x)} \frac{\partial f_i(x)}{\partial a_{i}(x)} h(x)_j \\ &= d_i(k) h(x)_j \end{align*} En este caso, el algoritmo encuentra las derivadas parciales y, por tanto, el gradiente. Si ahora consideramos la capa $k \menorque K+1$, podemos observar que las derivadas parciales para la capa $k$ son de la forma: $$\frac{\partial R(\theta)}{ \partial W_{i,j}^{(k)}} = \sum_q \frac{\partial L\big( f(x), y\big)}{\partial a_q^{(k+1)}} \frac{\partial a_q^{(k+1)}}{\partial h_i^{(k)}} \frac{\partial h_i^{(k)}}{\partial W_{i,j}^{(k)}}$$ Por hipótesis de inducción $d_q(k+1)h_j^{k+1}(x) =\frac{\partial L\big( f(x), y\big)}{\partial W_{q,j}^{(k+1)}} = \frac{\partial L\big( f(x), y\big)}{\partial a_q^{(k+1)}} \frac{\partial a_q^{(k+1)}}{\partial W_{q,j}^{k+1}}$. Por lo que, sustituyendo por la correspondiente variable: \begin{align*} \frac{\partial R(\theta)}{\partial W_{i,j}} &= \sum_q d_q(k+1) \frac{\partial a_q^{(k+1)}}{\partial h_i^{(k)}} \frac{\partial h_i^{(k)}}{\partial W_{i,j}^{(k)}} \\ &= \sum_q d_q(k+1) W_{q,i}^{(k+1)} \frac{\partial h_i^{(k)}}{\partial W_{i,j}^{(k)}} \\ &= \sum_q d_q(k+1) W_{q,i}^{(k+1)} \frac{\partial h_i^{(k)}}{\partial a_{i}^{(k)}} \frac{\partial a_{i}^{(k)}}{\partial W_{i,j}^{(k)}} \\ &= \Big(\frac{\partial h_i^{(k)}}{\partial a_{i}^{(k)}} \sum_q d_q(k+1) W_{q,i}^{(k+1)} \Big) \frac{\partial a_{i}^{(k)}}{\partial W_{i,j}^{(k)}} \\ &= d_i(k) h_j^{(k-1)} \end{align*} Lo que, por la Ecuación 9, se puede ver es obtenida por el algoritmo de retro-propagación en su fase de inducción.

El algoritmo de retro-propagación, como aquí lo hemos presentado, depende de la estructura de las redes profundas. Se pueden utilizar métodos de diferenciación automática para facilitar la implementación tanto de las redes neuronales como la obtención del gradiente y la optimización dentro de éstas. En [Bay+18] se puede profundizar sobre la diferenciación automática en gráficas computacionales. Estos métodos han contribuido a su uso extensivo para solucionar problemas prácticos. Por ejemplo, bibliotecas del lenguaje de programación Python como PyTorch [Pas+17] o TensroFlow [PNW20] utilizan estas ideas para facilitar la creación e implementación práctica de redes profundas.

Conclusiones

Las redes neuronales y el aprendizaje profundo han tenido un impacto en nuestras vidas a través de las tecnologías de inteligencia artificial. Estas redes tienen un fundamento matemático profundo del que aquí hemos revisado tan sólo lo más básico, como la definición de red densa, su capacidad de aproximación universal y la forma en que aprenden. Actualmente, las redes densas son de gran importancia, pero se utilizan otro tipo de arquitecturas de redes que permiten manejar datos con estructuras más complejas. Algunos ejemplos son las redes recurrentes [Elm90] que tienen aplicaciones en datos secuenciales como el lenguaje natural, las redes convolucionales [LeC+98] que se aplican para procesar imágenes, o los transformadores [Vas+17] que se utilizan en los grandes modelos del lenguaje como GPT [Bro+20] (el modelo detrás de chatGPT).

Asimismo, se ha mencionado que el proceso que se conoce como aprendizaje, se basa en la optimización a partir del gradiente de la función objetivo. Cabe mencionar, sin embargo, que actualmente el método de descenso por gradiente es poco usado, pues tiene algunos problemas en la búsqueda de los mínimos de una función, principalmente cuando esta no es convexa. Por tanto, se han optado por otros optimizadores como Adagrad (de Adptative gradient) [DHS11], momento de Nesterov [Lin+19], Adam (de Adaptative momentum) [Kin14], o Noam (de Normalized adam) [Vas+17]. Estos optimizadores también están basados en gradiente.

Además de sus múltiples aplicaciones, el estudio de las redes neuronales representa un apasionante campo en donde se intersecta con áreas de la matemática como el análisis funcional, la topología o la geometría. Actualmente, existen proyectos que buscan abordar las bases teóricas del aprendizaje profundo a partir de enfoques geométricos, como el aprendizaje profundo geométrico [Bro+17], topológicos [Pap+23] o desde la teoría de categorías [Gav+24].

Referencias

Bay+18
Atilim Gunes Baydin, Barak A Pearlmutter, Alexey Andreyevich Radul, Jeffrey Mark Siskind Automatic differentiation in machine learning: a survey Journal of machine learning research 18 153 2018 1-43
Ben00
Yoshua Bengio Gradient-based optimization of hyperparameters Neural computation MIT Press One Rogers Street, Cambridge, MA 02142-1209, USA journals-info~… 12 8 2000 1889-1900
Bro+17
Michael M Bronstein, Joan Bruna, Yann LeCun, Arthur Szlam, Pierre Vandergheynst Geometric deep learning: going beyond euclidean data IEEE Signal Processing Magazine IEEE 34 4 2017 18-42
Bro+20
Tom Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared D Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell Language models are few-shot learners Advances in neural information processing systems 33 2020 1877-1901
Cyb89
George Cybenko Approximation by superpositions of a sigmoidal function Mathematics of control, signals and systems Springer 2 4 1989 303-314
DHS11
John Duchi, Elad Hazan, Yoram Singer Adaptive subgradient methods for online learning and stochastic optimization. Journal of machine learning research 12 7 2011
DJC+23
Yifei Duan, Guanghua Ji, Yongqiang Cai Minimum width of leaky-ReLU neural networks for uniform universal approximation International Conference on Machine Learning 2023 19460-19470
Elm90
Jeffrey L Elman Finding structure in time Cognitive science Wiley Online Library 14 2 1990 179-211
Gav+24
Bruno Gavranović, Paul Lessard, Andrew Dudzik, Tamara Glehn, João GM Araújo, Petar Veličković Categorical deep learning: An algebraic theory of architectures arXiv preprint arXiv:2402.15332 2024
GBB11
Xavier Glorot, Antoine Bordes, Yoshua Bengio Deep sparse rectifier neural networks Proceedings of the fourteenth international conference on artificial intelligence and statistics 2011 315-323
GBC16
Ian Goodfellow, Yoshua Bengio, Aaron Courville Deep learning The MIT Press 2016
HSW89
Kurt Hornik, Maxwell Stinchcombe, Halbert White Multilayer feedforward networks are universal approximators Neural networks Elsevier 2 5 1989 359-366
Kin14
DP Kingma Adam: a method for stochastic optimization arXiv preprint arXiv:1412.6980 2014
LB88
David Lowe, D Broomhead Multivariable functional interpolation and adaptive networks Complex systems 2 3 1988 321-355
LeC+98
Yann LeCun, Léon Bottou, Yoshua Bengio, Patrick Haffner Gradient-based learning applied to document recognition Proceedings of the IEEE Ieee 86 11 1998 2278-2324
Les+93
Moshe Leshno, Vladimir Ya Lin, Allan Pinkus, Shimon Schocken Multilayer feedforward networks with a nonpolynomial activation function can approximate any function Neural networks Elsevier 6 6 1993 861-867
Lin+19
Jiadong Lin, Chuanbiao Song, Kun He, Liwei Wang, John E Hopcroft Nesterov Accelerated Gradient and Scale Invariance for Adversarial Attacks International Conference on Learning Representations 2019
Mit97
Tom Mitchell Machine Learning McGraw Hill 1997
MMZ23
Anqi Mao, Mehryar Mohri, Yutao Zhong Cross-entropy loss functions: Theoretical analysis and applications International conference on Machine learning 2023 23803-23828
MP43
Warren S McCulloch, Walter Pitts A logical calculus of the ideas immanent in nervous activity The bulletin of mathematical biophysics Springer 5 1943 115-133
MP69
Marvin Minsky, Seymour Papert Perceptron: An introduction to computational geometry The MIT Press 1969
Olt22
Octav Olteanu On Hahn-Banach theorem and some of its applications Open Mathematics De Gruyter 20 1 2022 366-390
Pap+23
Mathilde Papillon, Sophia Sanborn, Mustafa Hajij, Nina Miolane Architectures of topological deep learning: A survey of message-passing topological neural networks arXiv preprint arXiv:2304.10031 2023
Par+20
Sejun Park, Chulhee Yun, Jaeho Lee, Jinwoo Shin Minimum width for universal approximation arXiv preprint arXiv:2006.08859 2020
Pas+17
Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan, Edward Yang, Zachary DeVito, Zeming Lin, Alban Desmaison, Luca Antiga, Adam Lerer Automatic differentiation in pytorch 2017
PNW20
Bo Pang, Erik Nijkamp, Ying Nian Wu Deep learning with tensorflow: A review Journal of Educational and Behavioral Statistics SAGE Publications Sage CA: Los Angeles, CA 45 2 2020 227-248
RHW86
David E Rumelhart, Geoffrey E Hinton, Ronald J Williams Learning representations by back-propagating errors nature Nature Publishing Group UK London 323 6088 1986 533-536
Ros58
Frank Rosenblatt The perceptron: a probabilistic model for information storage and organization in the brain. Psychological review American Psychological Association 65 6 1958 386
Vap98
Vladimir Vapnik Statistical learning theory Wiley 1998
Vas+17
Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Illia Kaiser Attention is all you need Advances in neural information processing systems 30 2017
Víctor Mijangos de la Cruz
Departamento de Matemáticas, Facultad de Ciencias, UNAM
Las perspectivas que aquí se presentan son responsabilidad exclusiva de los autores y no reflejan necesariamente la opinión de los editores o de nuestra institución.
Motivos Matemáticos es una publicación electrónica del Instituto de Matemáticas, UNAM
© 2017