Pido disculpas de antemano por el hecho de que todavía estoy avanzando en esto. Estoy tratando de entender los pros y los contras de usar tanh (mapa -1 a 1) versus sigmoide (mapa 0 a 1) para mi función de activación neuronal. De mi lectura sonaba como algo menor con diferencias marginales. En la práctica para mis problemas, encuentro que el sigmoide es más fácil de entrenar y, extrañamente, parece que el sigmoide encuentra una solución general mejor. Con esto quiero decir que cuando la versión sigmoidea termina de entrenar, funciona bien en el conjunto de datos de referencia (no entrenado), donde la versión de tanh parece ser capaz de obtener las respuestas correctas en los datos de entrenamiento mientras funciona mal en la referencia. Esto es para la misma arquitectura de red.
Una intuición que tengo es que con el sigmoide, es más fácil que una neurona se apague casi por completo, por lo que no proporciona entrada a las capas posteriores. El tanh tiene más dificultades aquí, ya que necesita cancelar perfectamente sus entradas, de lo contrario, siempre da un valor a la siguiente capa. Quizás esta intuición está mal sin embargo.
Post largo En pocas palabras, ¿cuál es el comercio, y debería hacer una gran diferencia?
fuente
Estas dos funciones de activación son muy similares, pero están compensadas. Mi red original no tenía términos de sesgo. Desde agregar sesgos, todo es mucho más estable. Según mi experiencia, diría que uno u otro de estos puede funcionar mejor para una aplicación específica por razones complejas, posiblemente desconocidas, pero el enfoque correcto es incluir términos de sesgo para que la dependencia del desplazamiento de activación se pueda disminuir o eliminar.
fuente
activaciones de tanh en los nodos de salida no funcionan con la pérdida de entropía cruzada (binaria):tanh
fuente