Redes neuronales: Estructura

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

Trazado cartesiano. El eje x tradicional está etiquetado como 'x1'. El eje y tradicional está etiquetado como 'x2'. Los puntos azules ocupan los cuadrantes noroeste y sureste; los puntos amarillos ocupan los cuadrantes suroeste y noreste.

Figura 1 Problema de clasificación no lineal.

“No lineal” significa que no puedes predecir con exactitud una etiqueta con un modelo con la forma \(b + w_1x_1 + w_2x_2\) En otras palabras, la superficie de decisión no es una línea. Anteriormente, observamos las combinaciones de atributos como un enfoque posible para modelar problemas no lineales.

Ahora considera el siguiente conjunto de datos:

El conjunto de datos contiene muchos puntos de color naranja y muchos puntos azules. Es difícil determinar un patrón coherente, pero los puntos anaranjados forman vagamente un espiral y los puntos azules quizás forman un espiral diferente.

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 ayudar con problemas no lineales, comencemos por representar 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, y el círculo verde representa la suma ponderada de las entradas.

¿Cómo podemos modificar este modelo para mejorar su capacidad de abordar problemas no lineales?

Capas ocultas

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

Tres círculos azules en fila etiquetados

Figura 4: Gráfico del modelo de dos capas.

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

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

Tres círculos azules en fila etiquetados

Figura 5: Gráfico del 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 modelará el problema no lineal de la Figura 2.

Funciones de activación

Para modelar un problema no lineal, podemos introducir directamente una no linealidad. Podemos canalizar cada nodo de capa oculta a través de una función no lineal.

En el modelo que se muestra en el siguiente grafo, una función no lineal transforma el valor de cada nodo en la capa 1 oculta antes de pasar a las sumas ponderadas de la siguiente capa. Esta función no lineal se denomina función de activación.

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

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

Ahora que hemos agregado una función de activación, agregar capas tiene más impacto. Apilar no linealidades sobre no linealidades nos permite modelar relaciones muy complicadas entre las entradas y las salidas previstas. En resumen, cada capa aprende de manera eficaz una función más compleja y de nivel superior sobre las entradas sin procesar. Si deseas tener más intuición de cómo funciona esto, consulta la excelente entrada de blog de Chris Olah.

Funciones de activación comunes

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

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

Este es un trazado:

Función sigmoidea

Figura 7: Función de activación sigmoidea.

La siguiente función de activación de unidad lineal rectificada (o 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 la ReLU se basa en resultados empíricos, probablemente debido a que ReLU tiene un rango de capacidad de respuesta más útil. La capacidad de respuesta de una función sigmoidea se reduce relativamente rápido en ambos lados.

Función de activación ReLU

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

De hecho, cualquier función matemática puede servir como función de activación. Supongamos que \(\sigma\) representa nuestra función de activación (Relu, Sigmoid o cualquier otra). En consecuencia, el valor de un nodo en la red se proporciona mediante la siguiente fórmula:

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

TensorFlow proporciona compatibilidad lista para usar en muchas funciones de activación. Puedes encontrar estas funciones de activación en la lista de wrappers para operaciones de redes neuronales básicas de TensorFlow. Sin embargo, recomendamos comenzar con ReLU.

Resumen

Ahora, nuestro modelo tiene todos los componentes estándar de lo que las personas generalmente significan cuando dicen &red neuronal:

  • Un conjunto de nodos, análogos a las neuronas, organizados en capas.
  • Un conjunto de pesos que representan las conexiones entre cada capa de la red neuronal y la capa inferior. La capa inferior puede ser otra capa de la red neuronal u otro tipo de capa.
  • Un conjunto de sesgos, uno 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.

Una advertencia: las redes neuronales no siempre son mejores que las combinaciones de atributos, pero las redes neuronales ofrecen una alternativa flexible que funciona bien en muchos casos.