Introducción a las redes neuronales: Anatomía

Si recuerdas la unidad Combinaciones de atributos, el siguiente problema de clasificación es no lineal:

Representación cartesiana. El eje x tradicional se denomina "x1". El eje y tradicional se denomina "x2". Los puntos azules ocupan los cuadrantes noroeste y sureste; los puntos amarillos ocupan los cuadrantes noreste y suroeste.

Figura 1. Problema de clasificación no lineal.

No lineal significa que no puedes predecir con exactitud una etiqueta con un modelo de forma $$b + w_1x_1 + w_2x_2$$. Es decir, la "superficie de decisión" no es una línea. Anteriormente, observamos las combinaciones de atributos como un posible enfoque para modelar los problemas no lineales.

Ahora, analicemos el siguiente conjunto de datos:

El conjunto de datos contiene muchos puntos azules y anaranjados. Es difícil determinar un patrón consistente, pero los puntos anaranjados forman vagamente un espiral y los puntos azules forman otro espiral.

Figura 2. Un problema de clasificación no lineal más difícil.

El conjunto de datos que se muestra en la Figura 2 no se puede resolver con un modelo lineal.

Para ver cómo las redes neuronales pueden resolver problemas no lineales, representemos un modelo lineal como un gráfico:

Tres círculos azules en fila conectados por flechas a un círculo verde arriba de ellos

Figura 3. Modelo lineal como un gráfico.

Cada círculo azul representa un atributo de entrada. El círculo verde representa la suma ponderada de las entradas.

¿Cómo podemos alterar este modelo para mejorar su capacidad para resolver problemas no lineales?

Capas ocultas

En el modelo que se muestra en el siguiente grafo, agregamos una "capa oculta" de valores intermedios. Cada nodo amarillo en la capa oculta es una suma ponderada de los valores de los nodos de entrada azul. El resultado es una suma ponderada de los nodos amarillos.

Tres círculos azules en fila con la etiqueta "Entrada" conectados por flechas a una fila de círculos amarillos con la etiqueta "Capa oculta" encima de ellos, los cuales, a su vez, están conectados a un círculo verde con la etiqueta "Resultado" en la parte superior.

Figura 4. Grafo de un modelo de dos capas.

¿Este modelo es lineal? Sí, su resultado es una combinación lineal de las entradas.

En el modelo que se muestra en el siguiente grafo, agregamos una segunda capa oculta de sumas ponderadas.

Tres círculos azules en fila con la etiqueta "Entrada" conectados por flechas a una fila de círculos amarillos con la etiqueta "Capa oculta" encima de ellos, los cuales, a su vez, están conectados a otra fila de círculos amarillos con la etiqueta "Capa oculta 2", que están conectados a un círculo verde con la etiqueta "Resultado" en la parte superior.

Figura 5. Grafo de un modelo de tres capas.

¿Este modelo es lineal? Sí, lo es. Cuando expresas el resultado como una función de la entrada y lo simplificas, obtienes otra suma ponderada de las entradas. Esta suma no modela correctamente el problema no lineal de la Figura 2.

Funciones de activación

Para modelar un problema no lineal, podemos introducir directamente una no linealidad. A cada nodo de la capa oculta se puede aplicar una función no lineal.

En el modelo que se muestra en el siguiente gráfico, el valor de cada nodo en la Capa oculta 1 se transforma mediante una función no lineal antes de llegar a las sumas ponderadas de la siguiente capa. Esta función no lineal se denomina "función de activación".

Lo mismo que la figura anterior, excepto que se agregó una fila de círculos rosa con la etiqueta "Capa de transformación no lineal" en medio de las dos capas ocultas.

Figura 6. Gráfico del modelo de tres capas con función de activación.

Ahora que agregamos una función de activación, las capas tienen más impacto. Al apilar no linealidades a no linealidades, podemos modelar relaciones muy complicadas entra las entradas y los resultados predichos. En resumen, cada capa aprende una función más compleja y de nivel más alto de las entradas sin procesar. Si deseas mejorar tu intuición de como funciona esto, mira la excelente entrada de blog de Chris Olah.

Funciones de activación comunes

La siguiente función de activación sigmoide convierte la suma ponderada a un valor entre 0 y 1.

$$F(x)=\frac{1} {1+e^{-x}}$$

A continuación se muestra una representación:gráfica

Función sigmoide.

Figura 7. Función de activación sigmoide.

La siguiente función de activación de unidad lineal rectificada (abreviada como ReLU por sus siglas en inglés) a menudo funciona mejor que una función suave, como la sigmoide, y es mucho más fácil de calcular.

$$F(x)=max(0,x)$$

La superioridad de ReLU se basa en las investigaciones empíricas, probablemente debido a que ReLU tiene un rango de capacidad de respuesta más útil. La capacidad de respuesta de una función sigmoide decae relativamente rápido en ambos extremos.

Función de activación de ReLU.

Figura 8. Función de activación ReLU.

De hecho, se puede usar cualquier función matemática como función de activación. Supongamos que \(\sigma\) representa nuestra función de activación (ReLU, sigmoide o cualquier otra). Por lo tanto, el valor de un nodo en la red se determina con la siguiente fórmula:

$$\sigma(\boldsymbol w \cdot \boldsymbol x+b)$$

TensorFlow proporciona soporte inmediato con una amplia variedad de funciones de activación. Aún así, recomendamos comenzar a trabajar con ReLU.

Resumen

Ahora, nuestro modelo tiene todos los componentes estándar de lo que se conoce en general como "redes neuronales".

  • Un conjunto de nodos, análogos a las neuronas, organizados en capas.
  • Un conjunto de ponderaciones que representan las conexiones entre cada capa de la red neuronal y la capa inferior. La capa inferior debe ser la capa de otra red neuronal u otro tipo de capa.
  • Un conjunto de sesgos, una para cada nodo.
  • Una función de activación que transforma el resultado de cada nodo en una capa. Las diferentes capas pueden tener diferentes funciones de activación.

Un detalle a tener en cuenta es que las redes neuronales no son siempre necesariamente mejores que las combinaciones de atributos, pero son una alternativa flexible que funciona bien en la mayoría de los casos.