¿Por qué debe usarse una función de activación no lineal en una neural network de retropropagación?

He estado leyendo algunas cosas sobre redes neuronales y entiendo el principio general de una neural network de una sola capa. Entiendo la necesidad de capas adicionales, pero ¿por qué se usan las funciones de activación no lineal?

A esta pregunta sigue esta: ¿Qué es una derivada de la función de activación utilizada en la retropropagació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 puntaje) que varía no linealmente con sus variables explicativas

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

Otra forma de pensarlo: sin una función de activación no lineal en la red, un NN, sin importar cuántas capas tuviera, se comportaría como un perceptrón de una sola capa, porque al sumr estas capas solo obtendríamos otra función lineal. (ver definición justo 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 ) evaluada de -2 a 2:

enter image description here

Se puede usar una función de activación lineal. Sin embargo, en ocasiones muy limitadas. 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 objective encontrar los pesos óptimos que producen un efecto vertical mínimo entre las variables explicativas y de destino, cuando se combinan con la entrada. En resumen, si el resultado esperado refleja la regresión lineal como se muestra a continuación, se pueden usar funciones de activación lineal: (Figura superior). Pero en la segunda figura a continuación, la función lineal no producirá los resultados deseados: (Figura media). la función no lineal como se muestra a continuación produciría los resultados deseados: (figura inferior) enter image description here

Las funciones de activación no pueden ser lineales porque las redes neuronales con una función de activación lineal son efectivas con solo una capa de profundidad, independientemente de cuán compleja sea su architecture. La entrada a las redes suele ser una transformación lineal (entrada * peso), pero el mundo real y los problemas no son lineales. Para que los datos entrantes no sean lineales, utilizamos 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 neural particular. Está mapeado entre 0 y 1, donde cero significa que la característica no está allí, mientras que uno significa que la característica está presente. Desafortunadamente, los pequeños cambios que ocurren en los pesos no se pueden reflejar en el valor de activación porque solo pueden tomar 0 o 1. Por lo tanto, las funciones no lineales deben ser continuas y diferenciables entre este rango. Una neural network debe poder tomar cualquier entrada de -infinito a + infinito, pero debería poder asignarla a una salida que oscila entre {0,1} o entre {-1,1} en algunos casos, por lo tanto, el necesidad de la función de activación. La no linealidad es necesaria en las funciones de activación porque su objective en una neural network 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 neural network, la salida será simplemente una transformación lineal de la entrada, que no es suficiente para formar un aproximador de función universal . Dicha red solo puede representarse como una multiplicación de matrices, y no sería capaz de obtener comportamientos muy interesantes de dicha red.

Lo mismo ocurre para el caso donde todas las neuronas tienen funciones de activación afines (es decir, una función de activación en la forma f(x) = a*x + c , donde c son constantes, que es una generalización de las funciones de activación lineal). lo que resultará en una transformación afín de entrada a salida, que tampoco es muy emocionante.

Una neural network 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.

“El presente trabajo utiliza el Teorema de Stone-Weierstrass y el coseno aplastante de Gallant y White para establecer que las architectures de red predictivas multietapa estándar que utilizan funciones de aplazamiento pueden aproximarse a prácticamente cualquier función de interés con el grado de precisión deseado, siempre que estén ocultas. unidades están disponibles “. ( Hornik et al., 1989, Redes neuronales )

Una función de aplastamiento es, por ejemplo, una función de activación no lineal que se asigna a [0,1] como la función de activación sigmoidea.

Hay momentos en que una red puramente lineal puede dar resultados útiles. Supongamos que tenemos una red de tres capas con formas (3,2,3). Al limitar la capa intermedia a solo dos dimensiones, obtenemos un resultado que es el “plano de mejor ajuste” en el espacio tridimensional original.

Pero hay formas más sencillas de encontrar transformaciones lineales de esta forma, como NMF, PCA, etc. Sin embargo, este es un caso en el que una red de varias capas NO se comporta del mismo modo que un perceptrón de una sola capa.

Como recuerdo, las funciones sigmoideas se utilizan porque su derivada que se ajusta al algoritmo BP es fácil de calcular, algo simple como f (x) (1-f (x)). No recuerdo exactamente las matemáticas. En realidad, se puede usar cualquier función con derivados.

Un NN estratificado de varias neuronas puede usarse para aprender problemas linealmente inseparables. Por ejemplo, la función XOR se puede obtener con dos capas con función de activación por pasos.

No es un requisito en absoluto. De hecho, la función de activación lineal rectificada es muy útil en redes neuronales grandes. Calcular el gradiente es mucho más rápido e induce la dispersión estableciendo un límite mínimo en 0.

Consulte lo siguiente para obtener más detalles: https://www.academia.edu/7826776/Inthematica_Matemática_para_Performance_of_Rectified_Linear_Unit_in_Deep_Neural_Networks


Editar:

Se ha discutido si la función de activación lineal rectificada se puede llamar función lineal.

Sí, técnicamente es una función no lineal porque no es lineal en el punto x = 0, sin embargo, sigue siendo correcto decir que es lineal en todos los demás puntos, por lo que no creo que sea tan útil pintar aquí,

Podría haber elegido la función de identidad y seguiría siendo cierto, pero elegí ReLU como ejemplo debido a su reciente popularidad.