Si recuerdas la unidad Combinaciones de atributos, el siguiente problema de clasificación no es lineal:
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:
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:
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.
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.
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.
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.
Este es un trazado:
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.
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.
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:
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.