¿Por qué no hay una sola función de activación "clave" en las redes neuronales?

Aug 20 2020

Este artículo dice lo siguiente:

Decidir entre sigmoide o tanh dependerá de sus requisitos de intensidad del gradiente.

He visto (hasta ahora en mi aprendizaje) 7 funciones / curvas de activación. Cada uno parece estar construyendo sobre el anterior . Pero, al igual que la cita anterior, he leído en muchos lugares esencialmente que "según sus requisitos, seleccione su función de activación y ajústela a su caso de uso específico".

Esto no parece escalable . Desde una perspectiva de ingeniería, un humano tiene que entrar y jugar con cada red neuronal para encontrar la función de activación correcta u óptima, lo que parece que tomaría mucho tiempo y esfuerzo. También he visto artículos que parecen describir a personas que trabajan para encontrar automáticamente la "mejor" función de activación para un conjunto de datos en particular. Desde el punto de vista de la abstracción, es como escribir código para manejar a cada usuario individualmente en un sitio web, independientemente de los demás, en lugar de simplemente escribir un sistema de autenticación de usuario que funcione para todos (como una analogía).

Lo que faltan en todos estos artículos / artículos es una explicación de por qué . ¿Por qué no puede tener una función de activación que funcione en todos los casos de manera óptima? Esto haría que los ingenieros no tuvieran que jugar con cada nuevo conjunto de datos y red neuronal, simplemente crean una red neuronal generalizada y funciona bien para todas las tareas comunes a las que se aplican las redes neuronales de hoy y del mañana. Si alguien encuentra una más óptima, entonces sería beneficioso, pero hasta que se encuentre la siguiente óptima, ¿por qué no puede usar una función de activación de red neuronal para todas las situaciones? Me falta esta información clave de mis lecturas actuales.

¿Cuáles son algunos ejemplos de por qué no es posible tener una función de activación trapezoidal?

Respuestas

3 D.W. Aug 20 2020 at 03:58

Esos son artículos antiguos. Jugar con las funciones de activación probablemente no sea su mejor uso del tiempo, en la mayoría de los casos. Hoy en día, la práctica de ingeniería estándar es (en un primer orden de aproximación): use ReLU y no se preocupe por ello. ReLU es claramente superior a sigmoid y tanh en la mayoría de los casos, así que si lees artículos más antiguos, hablarán sobre sigmoid y tanh, pero hoy, ReLU los ha reemplazado. Hay funciones de activación más sofisticadas que en algunos casos son un poco mejores que ReLU y en algunos casos son un poco peores, pero la versión corta es ReLU es lo suficientemente buena y no se preocupe por los demás en esta etapa de su aprendizaje y conocimiento; solo usa ReLU y dale por terminado

Esta es una simplificación burda y hay absolutamente excepciones, pero le doy una regla que será bastante razonable en la práctica.

¿Por qué? Mi respuesta principal es que tendrá que acostumbrarse al hecho de que cuando trabajamos con redes neuronales, realmente no sabemos la respuesta a la mayoría de las preguntas de "por qué". A veces tenemos intuición y teorías, pero en el fondo se trata de una ciencia empírica: no entendemos realmente por qué las redes neuronales funcionan bien. Hay artículos que dan alguna explicación de por qué ReLU parece funcionar mejor que sigmoide / tanh; en particular, sigmoide / tanh sufren de gradientes que desaparecen cuando sus entradas están en las colas de sigmoide / tanh (ya que entonces su salida es exponencialmente pequeña , por lo que el gradiente es esencialmente cero), y luego el entrenamiento se bloquea o avanza muy lentamente, pero no espere una gran teoría que le diga qué hacer. En cambio, esta es en gran parte una ciencia empírica y, si tenemos suerte, tenemos experimentos y teorías que nos ayudan a comprender los datos empíricos que vemos.

No veo ninguna razón para esperar que haya una única función de activación que sea óptima para todas las tareas, así que no me molesta si eso no es cierto y no siento que necesitemos una "razón" para que funcione. ser falso.