¿Cuál es el papel de la función de activación en una red neuronal? ¿Cómo funciona esto en un sistema de red neuronal humana?

Lo siento si esto es demasiado trivial, pero permítanme comenzar desde el principio: “Regresión lineal”.

El objetivo de la regresión lineal (mínimos cuadrados ordinarios) es encontrar los pesos óptimos que, cuando se combinan linealmente con las entradas, dan como resultado un modelo que minimiza los desplazamientos verticales entre el objetivo y las variables explicativas, pero no nos distraigamos con el ajuste del modelo , que es un tema diferente;).

Entonces, en la regresión lineal, calculamos una combinación lineal de pesos y entradas (llamemos a esta función la “función de entrada neta”).

[matemática] \ text {net} (x) = b + x_1w_1 + x_2w_2 +… x_nw_n [/ math] = z

A continuación, consideremos la regresión logística. Aquí, colocamos la entrada neta z a través de una “función de activación” no lineal, la función sigmoide logística donde.

Piense en ello como “aplastando” la entrada neta lineal a través de una función no lineal, que tiene la buena propiedad de que devuelve la probabilidad condicional P (y = 1 | x) (es decir, la probabilidad de que una muestra x pertenezca a la clase 1 )

Ahora, si agregamos una función de paso, por ejemplo,

  • Si SigmoidOutput es mayor o igual a 0,5, pronostique la clase 1, y la clase 0 de lo contrario

  • (Equivalentemente: si NetInput z es mayor o igual a 0 -> predice la clase 1 y la clase 0 de lo contrario)

obtenemos un clasificador de regresión logística:

(Quizás vea este para obtener más detalles: la respuesta de Sebastian Raschka a ¿Cuál es la interpretación probabilística de la regresión logística regularizada? ¿Cuál es la interpretación probabilística al agregar la penalización de regularización a la función de costo?)

Sin embargo, la regresión logística (un modelo lineal generalizado) sigue siendo un clasificador lineal en el sentido de que su superficie de decisión es lineal:

Si las clases se pueden separar linealmente, esto funciona bien, sin embargo, consideremos un caso más complicado:

Aquí, un clasificador no lineal puede ser una mejor opción, por ejemplo, una red neuronal multicapa. A continuación, entrené un perceptrón simple de múltiples capas con 1 capa oculta que consta de 200 de estas funciones de activación sigmoidea logística. Veamos cómo se ve la superficie de decisión ahora:

(tenga en cuenta que es posible que me esté ajustando un poco, pero de nuevo, esa es una discusión para un tema separado;))

La arquitectura de esta red neuronal totalmente conectada y alimentada se ve esencialmente así:

En este caso particular, solo tenemos 3 unidades en la capa de entrada (x_0 = 1 para la unidad de sesgo, y x_1 y x_2 ​​para las 2 características, respectivamente); Hay 200 de estas funciones de activación sigmoidea (a_m) en la capa oculta y 1 función sigmoidea en la capa de salida, que luego se aplasta a través de una función de paso unitario (no se muestra) para producir la etiqueta de clase de salida predicha y ^ .

Para resumir, el clasificador de regresión logística tiene una función de activación no lineal, pero los coeficientes de peso de este modelo son esencialmente una combinación lineal, por lo que la regresión logística es un modelo lineal “generalizado”. Ahora, el papel de la función de activación en una red neuronal es producir un límite de decisión no lineal a través de combinaciones lineales de las entradas ponderadas.

(Si está interesado, vea la respuesta de Sebastian Raschka a ¿Cuál es la mejor explicación visual para el algoritmo de propagación inversa para redes neuronales? Para aprender los pesos en este caso).

Para su conveniencia, agregué una hoja de trucos de las funciones de activación más comunes a continuación:

Veamos una red neuronal multicapa, sin función de activación.

La primera capa:

[matemáticas] h_1 = x_1 * w_ {x1h1} + x_2 * w_ {x1h2} [/ matemáticas]

[matemáticas] h_2 = x_1 * w_ {x2h1} + x_2 * w_ {x2h2} [/ matemáticas]

La capa posterior

[matemáticas] y = b * w_ {por} + h_1 * w_ {h1y} + h_2 * w_ {h2y} [/ matemáticas]

Se puede simplificar a

[matemáticas] = b * w_ {por} + (x_1 * w_ {x1h1} + x_2 * w_ {x1h2}) * w_ {h1y} + (x_1 * w_ {x2h1} + x_2 * w_ {x2h2}) * w_ { h2y} [/ math]

[matemáticas] = b * w_ {por} + x_1 (w_ {h1y} * w_ {x1h1} + w_ {x2h1} * w_ {h2y}) + x_2 (w_ {h1y} * w_ {x1h1} + w_ {x2h2} * w_ {h2y}) [/ math]

Es solo una simple regresión lineal

[matemáticas] = b * W_0 + x_1 * W_1 + x_2 * W_2 [/ matemáticas]

Esto se puede mostrar a cualquier número de capas, ya que la combinación lineal de cualquier número de pesos es nuevamente lineal. ¡Cualquier red neuronal multicapa será tan igual como la simple regresión lineal!

Lo que marca la diferencia para la red neuronal multicapa es la no linealidad que obtiene de las funciones de activación …

Una función de activación sirve como un umbral, alternativamente llamado clasificación o partición. Bengio y col. se refiere a esto como “Plegamiento espacial”. Básicamente divide el espacio original en típicamente dos particiones. Las funciones de activación generalmente se introducen como que requieren ser una función no lineal. Este requisito puede ser demasiado restrictivo, ya que recientemente se ha demostrado que las funciones lineales por partes (es decir, ReLU) funcionan igual de bien en la práctica.

El propósito de una función de activación en un contexto de aprendizaje profundo (es decir, varias capas) es garantizar que la representación en el espacio de entrada se asigne a un espacio diferente en la salida. En todos los casos, una red neuronal realiza una función de similitud entre la entrada y los pesos. Esto puede ser un producto interno, una función de correlación o una función de convolución. En todos los casos es una medida de similitud entre los pesos aprendidos y la entrada. Esto es seguido por una función de activación que realiza un umbral en la medida de similitud calculada. En su sentido más general, una capa de red neuronal realiza una proyección seguida de una selección.

Tanto la proyección como la selección son necesarias para el aprendizaje dinámico. Sin selección y solo proyección, una red permanecerá en el mismo espacio y no podrá crear niveles más altos de abstracción entre las capas. De hecho, la operación de proyección puede ser no lineal, pero sin la función de umbral, no habrá mecanismo para consolidar la información. La operación de selección impone la irreversibilidad de la información, un criterio necesario para el aprendizaje.

Se han propuesto muchos tipos de funciones de activación a lo largo de los años. Duch y Jankowski (1999) habían documentado más de 640 propuestas diferentes de funciones de activación. La mejor práctica limita el uso a un tipo limitado de funciones de activación. La tangente hiperbólica y la función de activación ReLU han experimentado un kilometraje considerable en comparación con muchos otros.

Ya hay buenas respuestas aquí, pero quiero agregar un punto sobre el papel de las funciones de activación, lo que suena trivial, pero si prestas suficiente atención, conduciría a una comprensión más profunda de muchas clases de redes profundas.

Primero, el resumen de mi respuesta es: el papel de las funciones de activación es hacer que las redes neuronales no sean lineales. Ahora veamos qué significa realmente la respuesta. Consideraré tres clases de redes neuronales: redes de retroalimentación totalmente conectadas, redes convolucionales y redes recurrentes simples.

Redes de retroalimentación totalmente conectadas.

Deje que [math] L_i [/ ​​math] denota la salida de la capa i-ésima de la red ([math] L_0 [/ math] es la entrada). La ecuación de redes de alimentación directa completamente conectadas dice [matemática] L_i = f (W_i L_ {i-1}) [/ matemática] para [matemática] i> 1 [/ matemática], donde [matemática] f [/ matemática ] se llama función de activación. Ahora digamos que eliminas [math] f [/ math], entonces obtienes

[matemáticas] L_T = W_T L_ {T-1} = W_T W_ {T-1} L_ {T-2} = \ cdots = (W_T W_ {T-1} \ cdots W_1) L_0 [/ math]

Deje [math] W = W_T W_ {T-1} \ cdots W_1 [/ math], luego [math] L_T = W L_0 [/ math], lo que significa que su red profunda se ha degenerado en una transformación lineal, que no es fuerte suficiente para modelar muchos tipos de datos. Por lo tanto, sin funciones de activación, acaba de agregar muchos más parámetros a su modelo, lo que hace que sea más lento entrenar y hacer inferencias, sin ningún beneficio.

ConvNets.

El operador de convolución es solo una multiplicación matricial con la matriz Toeplitz de los filtros [1]. Por lo tanto, la misma historia de degeneración también sucede para ConvNets.

Ahora en la literatura de ConvNet, hay un operador especial llamado agrupación. La agrupación promedio no evitará que sus redes se degeneren, ya que es solo una convolución con filtros de valor constante. La agrupación máxima, por otro lado, puede salvarlo (y esta es una razón por la que creo que la agrupación máxima es mejor). Sin embargo, la agrupación máxima se puede hacer equivalente a la función de activación RelU [matemática] f (x) = max (x, 0) [/ matemática], por lo que volveremos a tomar prestada la potencia de estas funciones.

Redes simples recurrentes.

La misma historia, pero se requieren matemáticas un poco más complicadas para entender. Tomemos la red recurrente más simple, con la siguiente ecuación de los estados ocultos [math] h_t = f (W x_t + R h_ {t-1}) [/ math], donde [math] x_t [/ math] es el señal de entrada en el paso [math] t [/ math] y, por convención, [math] h_0 = 0 [/ math]. Hagamos algunas matemáticas sin [math] f [/ math]. Tenemos

[matemáticas] h_t = Wx_t + Rh_ {t-1} [/ matemáticas]

Pero esto también es cierto para [matemáticas] h_ {t-1} [/ matemáticas], lo que significa que [matemáticas] h_ {t-1} = Wx_ {t-1} + R h_ {t-2} [/ matemáticas] , asi que

[matemáticas] h_t = Wx_t + R (Wx_ {t-1} + R h_ {t-2}) = Wx_t + WRx_ {t-1} + R ^ 2 h_ {t-2} [/ math]

Aplica la ecuación recurrente para otro paso

[matemáticas] h_t = Wx_t + WRx_ {t-1} + WR ^ 2 x_ {t-2} + R ^ 3 h_ {t-3} [/ matemáticas]

Hazlo hasta el comienzo de la secuencia.

[matemáticas] h_t = W (x_t + Rx_ {t-1} + R ^ 2 x_ {t-2} + \ cdots + R ^ {t-1} x_1) + R ^ {t-1} h_0 [/ matemáticas ]

Ahora no olvide que [math] h_0 = 0 [/ math], por lo tanto

[matemáticas] h_t = W (x_t + Rx_ {t-1} + R ^ 2 x_ {t-2} + \ cdots + R ^ {t-1} x_1) [/ matemáticas]

Esta ecuación implica que si uno tiene dos secuencias [matemáticas] (x_1, x_2, …, x_T) [/ matemáticas] y [matemáticas] (x’_1, x’_2, …, x’_T) [/ matemáticas] entonces [ math] h_t (\ alpha x + \ beta x ‘) = \ alpha h_t (x) + \ beta h_t (x’) [/ math], lo que significa que los poderosos estados ocultos de los RNN se han degenerado en mapas lineales.

Otro efecto no deseado es que para secuencias largas, la ecuación anterior conduce a operadores que se desbordan o desbordan, dependiendo de si [math] \ det (R) [/ math] es mayor o menor que [math] 1 [/ math], lo que significa que los estados ocultos se explotan o no pueden capturar dependencias a largo plazo (por eso uno usaría RNN desde el principio).

Para su información, son las mismas matemáticas las que causan el infame problema de que los gradientes desaparezcan / exploten al entrenar RNN.

Para su información nuevamente, en LTSM / GRU / etc., si se deshace de las activaciones no lineales (tanh, sigmoide, etc.), se encontrará con este mismo problema.

En conclusión, las funciones de activación están ahí para dar a las redes profundas los poderes que se anuncia que tienen. Sin las funciones de activación, las redes profundas pierden una gran parte de su poder de aprendizaje de representación (los casos de conexiones totalmente conectadas y ConvNets), o simplemente fallan miserablemente en entregar cualquier cálculo (el caso de RNN simples).

Referencias

[1] Matriz de Toeplitz – Wikipedia

Una función en una red neuronal utiliza una función de activación, como su nombre indica, para decidir cuál debe ser el valor de activación de la unidad en función de un conjunto de valores de entrada. El valor de activación de muchas de estas unidades se puede utilizar para tomar una decisión basada en la entrada (clasificación) o predecir el valor de alguna variable (regresión).

Las funciones de activación son típicamente no lineales. Las asignaciones no lineales aplicadas a las entradas pueden capturar propiedades interesantes de la entrada.

Existen diferentes tipos de unidades basadas en las funciones de activación como unidades sigmoideas, unidades lineales rectificadas (ReLU), unidades de tanh.

  1. Los mapas sigmoides ingresan a un valor en el rango de 0 a 1.
  2. Tanh asigna la entrada a un valor en el rango de -1 a 1.
  3. ReLU asigna la entrada x al máximo (0, x), es decir, asigna las entradas negativas a 0 y las entradas positivas se emiten sin ningún cambio.

La función de activación también se conoce como función de transferencia.

En palabras simples, la función de activación es una función que limita la señal de salida a un valor finito.

La función de activación puede ser una función lineal (que representa una línea recta o planos) o una función no lineal (que representa curvas). La mayoría de las veces, las funciones de activación utilizadas en las redes neuronales serán no lineales.

Mire el video desde el siguiente enlace para conocer en profundidad las funciones de activación, el primer modelo de neurona y su función de activación, los tipos comunes de funciones de activación y su funcionamiento: sigmoide / Logístico, Softmax. ReLU. identidad etc.

Función de activación | Quick KT

En una frase Transforma / aplasta tu entrada.

¿Por qué lo hacemos?
Transformando la entrada a diferentes dominios donde pueden ser fácilmente separables / enlazar un modelo

Resultado clave
La entrada al algoritmo generalmente son transformaciones lineales: suma (Wi * Xi), pero el mundo real y los problemas reales no son lineales. Para hacer que los datos entrantes no sean lineales, usamos un mapeo no lineal llamado función de activación.

Dependiendo de su trabajo y objetivos disponibles, la activación fn varía de tanh, sigmoide, Relu, etc.

Ya hay buenas respuestas aquí, pero déjame intentar responder desde una perspectiva diferente. ¿Recuerdas esos perceptrones con funciones de activación por pasos de cabecera? Sí, eso es una función de activación, es solo una función de toma de decisiones que determina la presencia de una característica particular. Cero significa que la neurona dice que la característica no está presente y uno significa que la neurona dice que la característica está presente.

La razón por la que encuentra funciones de activación continua es para fines de optimización como se explica a continuación.

Los perceptrones son intuitivos, pero ¿cómo se entrena una red multicapa llena de ellos? ¿Qué tal ajustar los pesos en pequeños incrementos y ver qué sucede? El problema es la función de paso, los pequeños cambios que ocurren en los pesos no pueden reflejarse en el valor de activación porque solo puede oscilar entre 0 y 1, eso es todo.

Por lo tanto, las funciones sigmoideas se introdujeron porque son diferenciables, de hecho, todas las funciones de activación modernas son continuas y diferenciables, aparte de las unidades rectificadas en cero, pero esto no es un problema porque todavía se pueden usar subdegradados.

Por lo tanto, la función de activación es una función de decisión y uno necesita funciones de decisión no lineales, por eso todas las funciones de activación tienen cierta no linealidad.

Espero que esto ayude.

Si vemos la red neuronal más simple, es decir, el perceptrón, la imagen del NN se muestra a continuación:

La importancia de la función de activación entra en escena en la tercera etapa, es decir, la primera etapa: entrada

segunda etapa: suma del producto de la entrada y los respectivos pesos

etapa final: salida

Deje que la función de activación sea “1”. Luego,

[matemáticas] f (wx) = f (w0 * x1 + w1 * x2 …) [/ matemáticas]

[matemáticas] => f (wx) = 1 * (w0 * x1 + w1 * x2 …) [/ matemáticas]

Que sigue siendo el mismo. Para la actualización de peso usando el descenso de gradiente:

Por lo tanto, podemos decir que la actualización del error no ocurrirá ya que la derivada de la predicción es cero y, por lo tanto, el peso permanece intacto o no cambia. Ahora, si tomamos la función de activación, la derivada debe definirse y debe ser continua.

Si ve las funciones de activación, entonces todas las funciones son continuas y la derivada se define por todas partes. Es por eso que las funciones sinusoidales no son la función de activación.

Esta pregunta se me hizo en una entrevista, aunque respondí, su respuesta fue que la función de activación debería estar aumentando y me dijo que había aplicado NN sin el concepto de FA.

El propósito original de la función de activación en la red neuronal multicapa es separar la transformación lineal sucesiva múltiple por no linealidad, de lo contrario, colapsarán en una sola transformación lineal.

Suponiendo que “la recomendación positiva crea un entorno positivo”, la mayor parte de la función de activación suprime el valor negativo. Además, el requisito de diferenciabilidad proviene del procedimiento de entrenamiento basado en gradiente. Más recientemente, para escapar de la saturación, ReLU es una función de activación más prometedora entre los investigadores.

Alternativamente, para nuestro cerebro, el requisito de diferenciabilidad aún no se ha explorado. La plasticidad cerebral aún no se ha abordado en la red neuronal artificial.

En los modelos típicos de redes neuronales, cada unidad (“neurona”) suma sus entradas y luego introduce la suma en una función, la función de activación, para determinar la salida de la neurona. Por lo general, es una llamada “función sigmoidea”, pero no tiene que ser así. La principal restricción es que no puede ser solo lineal, porque las redes con una función de activación lineal son efectivamente solo una capa de profundidad, independientemente de lo complicada que sea su arquitectura.

El concepto de una función de activación realmente no se aplica a las neuronas humanas. En las neuronas humanas, la salida consiste en un tren de espiga ruidoso, no un solo valor determinado por una función.

Para obtener más información, puede consultar el artículo de la función Activación en Wikipedia.

Es una función utilizada para transformar la entrada en una señal de salida. Cada neurona tiene una función de activación que genera la salida de una neurona a una entrada dada. Cuando uno usa la red neuronal para aprender, la actualización de las contribuciones depende de la inclinación (pendiente) de la función de activación. Las funciones de activación para las unidades ocultas son necesarias para introducir la no linealidad en la red.

Para crear una forma de vórtice en el modelo matemático y proporcionar la capacidad de aprender, si la función es lineal, nunca aprende. Debe ser no lineal para funcionar.

Yo diría que se correlaciona las diferentes variables de manera no lineal. De lo contrario, parece que las cosas serían solo combinaciones lineales de cosas y parece menos útil.

More Interesting

¿Cómo puede alguien usar los datos de la secuencia de genes para encontrar genes responsables de una enfermedad genética en particular?

¿Qué es Mach 23 en millas por hora?

¿Qué es un buen marco de visualización de datos en tiempo real?

¿Cuáles son las características importantes para el análisis de sentimientos basado en aspectos en el enfoque de aprendizaje automático? ¿Qué algoritmos se pueden usar para extraer estas características?

¿Qué es ingenuo Bayes, clasificación de espacio vectorial y máquinas de vectores de soporte en la recuperación de información?

¿Cuál es una buena forma de buscar artículos en visión artificial y aprendizaje automático?

¿Cuáles son algunas aplicaciones del aprendizaje automático para la ciencia ambiental y la ingeniería ambiental?

¿Cuáles son ejemplos cuando es útil generar muestras a partir de un modelo probabilístico?

¿Cuáles son algunos ejemplos del mundo real de cómo y / o dónde se utilizan los algoritmos?

¿Cómo se implementa una pila en hardware para subrutinas de nivel de código de máquina?

¿La red neuronal profunda es realmente un aprendizaje profundo?

¿Existe una brecha entre las estadísticas y las comunidades de aprendizaje automático? Si es así, ¿por qué?

¿Qué tipos de carreras hay para los ingenieros informáticos que se concentran en la inteligencia artificial y la máquina?

Los hiperparámetros del modelo de sintonización no encontraron los parámetros óptimos que uso en mi modelo. ¿Por qué?

¿Cuál es el mejor modelo de predicción de la siguiente palabra en R?