Por lo tanto, actualmente las funciones de activación más utilizadas son las de Re-Lu. Entonces respondí a esta pregunta ¿Cuál es el propósito de una función de activación en Redes Neuronales? y mientras escribía la respuesta me llamó la atención, ¿cómo puede exactamente la función no lineal aproximada de Re-Lu?
Por definición matemática pura, claro, es una función no lineal debido a la curva cerrada, pero si nos limitamos a la porción positiva o negativa del eje x solamente, entonces es lineal en esas regiones. Digamos que también tomamos todo el eje x, entonces también es un poco lineal (no en sentido matemático estricto) en el sentido de que no puede aproximar satisfactoriamente funciones curvilíneas como onda sinusoidal ( 0 --> 90
) con una capa oculta de un solo nodo como es posible por un sigmoide función de activación
Entonces, ¿cuál es la intuición detrás del hecho de que los Re-Lu se usan en los NN, lo que brinda un rendimiento satisfactorio (no estoy preguntando el propósito de los Re-Lu) a pesar de que son algo lineales? ¿O a veces se lanzan funciones no lineales como sigmoide y tanh en el medio de la red?
EDITAR: Según el comentario de @ Eka, Re-Lu deriva su capacidad de la discontinuidad que actúa en las capas profundas de la red neuronal. ¿Significa esto que los Re-Lu son buenos siempre que lo usemos en Deep NN y no en un NN superficial?
max(0,x)
actuar en capas profundas de la red neuronal. Hay una investigación de openai en la que calcularon funciones no lineales usando redes lineales profundas. Aquí está el enlace blog.openai.com/nonlinear-computation-in-linear-networksRespuestas:
Las salidas de una red ReLU son siempre "lineales" y discontinuas. Pueden aproximar curvas, pero podría tomar muchas unidades ReLU. Sin embargo, al mismo tiempo, sus salidas a menudo se interpretarán como una salida curva continua.
Imagina que entrenaste una red neuronal que toma x 3 y produce | x 3 | (que es similar a una parábola). Esto es fácil para que la función ReLU funcione perfectamente. En este caso, la salida es curva.
Pero en realidad no es curva. Las entradas aquí están 'linealmente' relacionadas con las salidas. Todo lo que hace la red neuronal es tomar la entrada y devolver el valor absoluto de la entrada. Realiza una función 'lineal', no curva. Solo puede ver que la salida no es lineal cuando la grafica con los valores x originales (la x en x 3 ).
Entonces, cuando trazamos la salida en un gráfico y se ve curvada, generalmente es porque asociamos diferentes valores de x con la entrada, y luego trazamos la salida como la coordenada y en relación con esos valores de x.
Bien, entonces quieres saber cómo modelarías sin (x) usando ReLU. El truco es que no quieres poner x como entrada. En su lugar, coloque algo curvo en relación con x como entrada, como x 3 . Entonces la entrada es x 3 y la salida es sin (x). La razón por la que esto funcionaría es que no está calculando el seno de la entrada, sino que está calculando el seno de la raíz cúbica de la entrada. Nunca podría calcular sin problemas el seno de la entrada en sí. Para graficar la salida sin (x), coloque la x original como la coordenada x (no ponga la entrada) y ponga la salida como la coordenada y.
fuente