Funciones de activación en Redes Neuronales

Se recomienda comprender qué es una red neuronal antes de leer este artículo. En el proceso de creación de una red neuronal, una de las opciones que puede tomar es qué función de activación usar en la capa oculta y en la capa de salida de la red. Este artículo analiza algunas de las opciones.

Machine-Learning-Course

Elementos de una red neuronal: –
Capa de entrada: – Esta capa acepta características de entrada. Proporciona información del mundo exterior a la red, no se realiza ningún cálculo en esta capa, los Nodes aquí solo transmiten la información (características) a la capa oculta.
Capa oculta: los Nodes de esta capa no están expuestos al mundo exterior, son parte de la abstracción proporcionada por cualquier red neuronal. La capa oculta realiza todo tipo de cálculos en las entidades ingresadas a través de la capa de entrada y transfiere el resultado a la capa de salida.
Capa de salida: esta capa trae la información aprendida por la red al mundo exterior.

¿Qué es una función de activación y por qué usarla?

Definición de función de activación: – La función de activación decide si una neurona debe activarse o no calculando la suma ponderada y agregando más sesgo con ella. El propósito de la función de activación es introducir no linealidad en la salida de una neurona.

Explicación:-
Sabemos que la red neuronal tiene neuronas que funcionan en correspondencia con el peso, el sesgo y su respectiva función de activación. En una red neuronal, actualizaríamos los pesos y sesgos de las neuronas en función del error en la salida. Este proceso se conoce como retropropagación . Las funciones de activación hacen posible la retropropagación ya que los gradientes se suministran junto con el error para actualizar los pesos y sesgos.

¿Por qué necesitamos funciones de activación no lineales?
Una red neuronal sin una función de activación es esencialmente solo un modelo de regresión lineal. La función de activación realiza la transformación no lineal de la entrada, lo que la hace capaz de aprender y realizar tareas más complejas.

Prueba matemática: –

Supongamos que tenemos una red neuronal como esta: –
neuralNet

Elementos del diagrama: –
Capa oculta, es decir, capa 1: –

z(1) = W(1)X + b(1)
a(1) = z(1)
Aquí,

  • z(1) es la salida vectorizada de la capa 1
  • W(1) sean los pesos vectorizados asignados a las neuronas
    de la capa oculta, es decir , w1, w2, w3 y w4
  • X sean las características de entrada vectorizadas, es decir, i1 e i2
  • b es el sesgo vectorizado asignado a las neuronas en la
    capa oculta, es decir, b1 y b2
  • a(1) es la forma vectorizada de cualquier función lineal.

( Nota: no estamos considerando la función de activación aquí)

Capa 2, es decir, capa de salida: –

//  Note : Input for layer 
//   2 is output from layer 1
z(2) = W(2)a(1) + b(2)  
a(2) = z(2) 

Cálculo en la capa de salida:

// Putting value of z(1) here

z(2) = (W(2) * [W(1)X + b(1)]) + b(2) 

z(2) = [W(2) * W(1)] * X + [W(2)*b(1) + b(2)]

Let, 
    [W(2) * W(1)] = W
    [W(2)*b(1) + b(2)] = b

Final output : z(2) = W*X + b
Which is again a linear function

Esta observación da como resultado una función lineal incluso después de aplicar una capa oculta, por lo que podemos concluir que, no importa cuántas capas ocultas adjuntemos en la red neuronal, todas las capas se comportarán de la misma manera porque la composición de dos funciones lineales es una propia función lineal . La neurona no puede aprender con solo una función lineal adjunta. Una función de activación no lineal le permitirá aprender según el error de diferencia.
Por lo tanto, necesitamos la función de activación.

VARIANTES DE LA FUNCIÓN DE ACTIVACIÓN: –

1). Función lineal :-

  • Ecuación: la función lineal tiene una ecuación similar a la de una línea recta, es decir, y = ax
  • No importa cuántas capas tengamos, si todas son de naturaleza lineal, la función de activación final de la última capa no es más que una función lineal de la entrada de la primera capa.
  • Rango: -inf a +inf
  • Usos: la función de activación lineal se usa en un solo lugar, es decir, la capa de salida.
  • Problemas: si vamos a diferenciar la función lineal para generar no linealidad, el resultado ya no dependerá de la entrada «x» y la función se volverá constante, no introducirá ningún comportamiento innovador en nuestro algoritmo.

Por ejemplo: el cálculo del precio de una casa es un problema de regresión. El precio de la vivienda puede tener cualquier valor grande o pequeño, por lo que podemos aplicar la activación lineal en la capa de salida. Incluso en este caso, la red neuronal debe tener alguna función no lineal en las capas ocultas.

2). Función sigmoidea: –

  • Es una función que se traza como gráfico en forma de ‘S’ .
  • Ecuación :
    A = 1/(1 + e -x )
  • Naturaleza : No lineal. Tenga en cuenta que los valores de X se encuentran entre -2 y 2, los valores de Y son muy pronunciados. Esto significa que pequeños cambios en x también provocarían grandes cambios en el valor de Y.
  • Rango de valores: 0 a 1
  • Usos: generalmente se usa en la capa de salida de una clasificación binaria, donde el resultado es 0 o 1, ya que el valor de la función sigmoidea se encuentra entre 0 y 1 solo, por lo que se puede predecir fácilmente que el resultado será 1 si el valor es mayor que 0.5 y 0 de lo contrario .

3). Función Tanh: – La activación que funciona casi siempre mejor que la función sigmoidea es la función Tanh, también conocida como función hiperbólica tangente . En realidad, es una versión matemáticamente desplazada de la función sigmoidea. Ambos son similares y pueden derivarse el uno del otro.

  • Ecuación :-
  • f(x) = tanh(x) = 2/(1 + e-2x) - 1
    OR
    tanh(x) = 2 * sigmoid(2x) - 1 
    • Rango de valores: – -1 a +1
    • Naturaleza: – no lineal
    • Usos: generalmente se usa en capas ocultas de una red neuronal, ya que sus valores se encuentran entre -1 y 1 , por lo tanto, la media de la capa oculta es 0 o muy cercana, por lo tanto, ayuda a centrar los datos acercando la media a 0 . Esto hace que el aprendizaje para la siguiente capa sea mucho más fácil.
    • 4). RELU:- Soportes para Unidad Lineal Rectificada . Es la función de activación más utilizada. Implementado principalmente en capas ocultas de la red neuronal.

    • Ecuación :- A(x) = max(0,x) . Da una salida x si x es positivo y 0 en caso contrario.
    • Rango de valores: – [0, inf)
    • Naturaleza: – no lineal, lo que significa que podemos propagar fácilmente los errores y tener múltiples capas de neuronas activadas por la función ReLU.
    • Usos: – ReLu es menos costoso computacionalmente que tanh y sigmoid porque involucra operaciones matemáticas más simples. En un momento, solo se activan unas pocas neuronas, lo que hace que la red sea escasa, lo que la hace eficiente y fácil de calcular.

    En palabras simples, RELU aprende mucho más rápido que la función sigmoidea y Tanh.

    5). Función Softmax: – La función softmax también es un tipo de función sigmoidea, pero es útil cuando tratamos de manejar problemas de clasificación.

    • Naturaleza: – no lineal
    • Usos: generalmente se usa cuando se trata de manejar múltiples clases. La función softmax exprimiría las salidas para cada clase entre 0 y 1 y también las dividiría por la suma de las salidas.
    • Salida: – La función softmax se usa idealmente en la capa de salida del clasificador donde en realidad estamos tratando de alcanzar las probabilidades para definir la clase de cada entrada.
    • ELEGIR LA FUNCIÓN DE ACTIVACIÓN ADECUADA

    • La regla general básica es que si realmente no sabe qué función de activación usar, simplemente use RELU , ya que es una función de activación general y se usa en la mayoría de los casos en estos días.
    • Si su salida es para clasificación binaria, la función sigmoidea es una opción muy natural para la capa de salida.

    Nota al pie: –
    La función de activación realiza la transformación no lineal de la entrada, lo que la hace capaz de aprender y realizar tareas más complejas.


    Referencia:

    Comprensión de las funciones de activación en redes neuronales

    Publicación traducida automáticamente

    Artículo escrito por Sakshi_Tiwari y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

    Deja una respuesta

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