Peço desculpas antecipadamente pelo fato de ainda estar me adiantando. Estou tentando entender os prós e os contras do uso de tanh (mapa -1 a 1) vs. sigmoide (mapa 0 a 1) para a minha função de ativação de neurônios. Da minha leitura, parecia uma coisa menor, com diferenças marginais. Na prática, para meus problemas, acho que o sigmóide é mais fácil de treinar e, estranhamente, o sigmóide parece encontrar melhor a solução geral. Com isso, quero dizer que, quando a versão sigmoide é concluída, o treinamento se dá bem no conjunto de dados de referência (não treinado), onde a versão tanh parece ser capaz de obter as respostas corretas sobre os dados de treinamento, mas não é satisfatória. Isso é para a mesma arquitetura de rede.
Uma intuição que tenho é que, com o sigmóide, é mais fácil para um neurônio desligar completamente, não fornecendo assim entrada para as camadas subseqüentes. O tanh tem mais dificuldade aqui, pois precisa cancelar perfeitamente suas entradas, caso contrário, sempre atribui valor à próxima camada. Talvez essa intuição esteja errada.
Postagem longa. Bottom line, qual é o comércio, e deve fazer uma grande diferença?
fonte
Essas duas funções de ativação são muito semelhantes, mas são deslocadas. Minha rede original não tinha termos de viés. Desde a adição de vieses, tudo fica muito mais estável. Com base na minha experiência, eu diria que um deles pode funcionar melhor para um aplicativo específico por razões complexas e possivelmente desconhecidas, mas a abordagem correta é incluir termos de viés para que a dependência no deslocamento da ativação possa ser diminuída ou eliminada.
fonte
fonte