Saltar al contenido

¿Por qué se debe utilizar una función de activación no lineal en una red neuronal de retropropagación?

Solución:

El propósito de la función de activación es introducir no linealidad en la red

a su vez, esto le permite modelar una variable de respuesta (también conocida como variable de destino, etiqueta de clase o puntuación) que varía de forma no lineal con sus variables explicativas

no lineal significa que la salida no se puede reproducir a partir de una combinación lineal de las entradas (que no es lo mismo que la salida que se representa en línea recta; la palabra para esto es afín).

otra forma de pensar en ello: sin un no lineal función de activación en la red, un NN, sin importar cuántas capas tuviera, se comportaría como un perceptrón de una sola capa, porque la suma de estas capas le daría simplemente otra función lineal (vea la definición arriba).

>>> in_vec = NP.random.rand(10)
>>> in_vec
  array([ 0.94,  0.61,  0.65,  0.  ,  0.77,  0.99,  0.35,  0.81,  0.46,  0.59])

>>> # common activation function, hyperbolic tangent
>>> out_vec = NP.tanh(in_vec)
>>> out_vec
 array([ 0.74,  0.54,  0.57,  0.  ,  0.65,  0.76,  0.34,  0.67,  0.43,  0.53])

Una función de activación común utilizada en backprop (tangente hiperbólica) evaluado de -2 a 2:

ingrese la descripción de la imagen aquí

Sin embargo, se puede utilizar una función de activación lineal en muy pocas ocasiones. De hecho, para comprender mejor las funciones de activación, es importante observar el mínimo cuadrado ordinario o simplemente la regresión lineal. Una regresión lineal tiene como objetivo encontrar las ponderaciones óptimas que dan como resultado un efecto vertical mínimo entre las variables explicativas y objetivo, cuando se combinan con la entrada. En resumen, si la salida esperada refleja la regresión lineal como se muestra a continuación, se pueden usar funciones de activación lineal: (Figura superior). Pero como en la segunda figura a continuación, la función lineal no producirá los resultados deseados: (Figura del medio). Sin embargo, una función no lineal como se muestra a continuación produciría los resultados deseados:

ingrese la descripción de la imagen aquí

Las funciones de activación no pueden ser lineales porque las redes neuronales con una función de activación lineal son efectivas solo en una capa de profundidad, independientemente de cuán compleja sea su arquitectura. La entrada a las redes suele ser una transformación lineal (entrada * peso), pero el mundo real y los problemas no son lineales. Para hacer que los datos entrantes no sean lineales, usamos un mapeo no lineal llamado función de activación. Una función de activación es una función de toma de decisiones que determina la presencia de una característica neuronal particular. Está mapeado entre 0 y 1, donde cero significa ausencia de la característica, mientras que uno significa su presencia. Desafortunadamente, los pequeños cambios que ocurren en los pesos no pueden reflejarse en los valores de activación porque solo puede tomar 0 o 1. Por lo tanto, las funciones no lineales deben ser continuas y diferenciables entre este rango. Una red neuronal debe poder tomar cualquier entrada desde -infinito a + infinito, pero debería poder mapearla a una salida que se encuentre entre {0,1} o entre {-1,1} en algunos casos; por lo tanto, el necesidad de función de activación. La no linealidad es necesaria en las funciones de activación porque su objetivo en una red neuronal es producir un límite de decisión no lineal a través de combinaciones no lineales del peso y las entradas.

Si solo permitimos funciones de activación lineal en una red neuronal, la salida será solo una transformación lineal de la entrada, lo que no es suficiente para formar un aproximador de función universal. Una red de este tipo puede representarse simplemente como una multiplicación de matrices, y no podrá obtener comportamientos muy interesantes de dicha red.

Lo mismo ocurre con el caso en el que todas las neuronas tienen funciones de activación afines (es decir, una función de activación en el formulario f(x) = a*x + c, dónde a y c son constantes, que es una generalización de las funciones de activación lineal), lo que solo dará como resultado una transformación afín de entrada a salida, que tampoco es muy emocionante.

Una red neuronal puede contener neuronas con funciones de activación lineal, como en la capa de salida, pero estas requieren la compañía de neuronas con una función de activación no lineal en otras partes de la red.

Nota: Una excepción interesante son los gradientes sintéticos de DeepMind, para los cuales usan una pequeña red neuronal para predecir el gradiente en el pase de retropropagación dados los valores de activación, y encuentran que pueden salirse con la suya usando una red neuronal sin capas ocultas y con solo lineales. activaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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