Tanh (Hyperbolic Tangent)
Aprende como a função de ativação Tanh melhora o treino de redes neuronais ao centrar os dados em zero. Explora o seu papel em RNNs, GANs e modelos Ultralytics YOLO26.
A função Tanh (Tangente hiperbólica) é uma função de ativação matemática amplamente utilizada nas camadas ocultas de redes neuronais artificiais. Ela transforma os valores de entrada num intervalo de saída entre -1 e 1, criando uma curva em forma de S semelhante à função sigmoide, mas centrada em zero. Esta propriedade de centralização em zero é crucial porque permite que o modelo aprenda de forma mais eficiente ao normalizar a saída dos neurónios, garantindo que os dados que fluem pela rede tenham uma média mais próxima de zero. Ao lidar explicitamente com valores negativos, a Tanh ajuda as redes neuronais a capturar padrões e relações mais complexos nos dados.
O mecanismo da Tanh na aprendizagem profunda#
Na arquitetura dos modelos de aprendizagem profunda, as funções de ativação introduzem não linearidade, permitindo que a rede aprenda limites complexos entre diferentes classes de dados. Sem funções como a Tanh, uma rede neuronal comportar-se-ia como um simples modelo de regressão linear, independentemente do número de camadas. A função Tanh é particularmente eficaz em redes neuronais recorrentes (RNN) e em certos tipos de redes feed-forward, nas quais manter uma distribuição de ativações equilibrada e centrada em zero ajuda a evitar o problema do desvanecimento do gradiente durante a retropropagação.
Quando as entradas são mapeadas para o intervalo de -1 a 1, entradas fortemente negativas produzem saídas negativas, e entradas fortemente positivas produzem saídas positivas. Isto difere da função Sigmoid, que comprime os valores entre 0 e 1. Como as saídas da Tanh são simétricas em torno de zero, o processo de descida do gradiente frequentemente converge mais depressa, uma vez que os pesos das camadas seguintes não se movem consistentemente numa única direção (um fenómeno conhecido como trajetória em "zigue-zague" na otimização).
Aplicações no mundo real#
A Tanh continua a desempenhar um papel vital em arquiteturas e casos de utilização específicos, sobretudo quando são necessários o processamento de sequências e a estimativa de valores contínuos.
- Processamento de Linguagem Natural (NLP): Em arquiteturas como as redes de Memória de Longo e Curto Prazo (LSTM) e as Unidades Recorrentes com Portas (GRU), a Tanh é utilizada como ativação principal para regular o fluxo de informação. Por exemplo, em tarefas de tradução automática nas quais um modelo traduz texto de inglês para francês, a Tanh ajuda as portas internas da LSTM a decidir quanto do contexto anterior (memória) deve ser retido ou esquecido. Isto permite que o modelo lide com dependências de longo prazo nas estruturas das frases.
- Redes Generativas Adversariais (GANs): No componente gerador de muitas Redes Generativas Adversariais, a Tanh é frequentemente utilizada como função de ativação final da camada de saída. Como as imagens são frequentemente normalizadas para um intervalo de -1 a 1 durante o pré-processamento, utilizar a Tanh garante que o gerador produza valores de píxeis dentro do mesmo intervalo válido. Esta técnica ajuda a sintetizar imagens realistas para aplicações como a geração texto-para-imagem.
Comparação: Tanh vs. Sigmoid vs. ReLU#
É útil distinguir a Tanh de outras funções comuns para compreender quando a utilizar.
- Tanh vs. Sigmoid: Ambas são curvas em forma de S. No entanto, a Sigmoid produz valores entre 0 e 1, o que pode fazer com que os gradientes desapareçam mais rapidamente do que na Tanh. A Sigmoid é normalmente reservada para a camada de saída final de problemas de classificação binária (previsão de probabilidades), enquanto a Tanh é preferida para as camadas ocultas em RNNs.
- Tanh vs. ReLU (Unidade Linear Retificada): Em Redes Neuronais Convolucionais (CNNs) modernas, como a YOLO26, a ReLU e as suas variantes (como a SiLU) são geralmente preferidas à Tanh para as camadas ocultas. Isto deve-se ao facto de a ReLU evitar o problema do desvanecimento do gradiente de forma mais eficaz em redes muito profundas e ser computacionalmente mais barata de calcular. A Tanh é computacionalmente mais dispendiosa devido aos cálculos exponenciais envolvidos.
Implementação de ativações em PyTorch#
Embora modelos de alto nível, como o Ultralytics YOLO26, tratem internamente das definições de ativação nos seus ficheiros de configuração, compreender como aplicar a Tanh utilizando PyTorch é útil para criar modelos personalizados.
import torch
import torch.nn as nn
# Define a sample input tensor with positive and negative values
input_data = torch.tensor([-2.0, -0.5, 0.0, 0.5, 2.0])
# Initialize the Tanh activation function
tanh = nn.Tanh()
# Apply Tanh to the input data
output = tanh(input_data)
# Print results to see values squashed between -1 and 1
print(f"Input: {input_data}")
print(f"Output: {output}")Para utilizadores interessados em treinar arquiteturas personalizadas ou gerir conjuntos de dados de forma eficaz, a Ultralytics Platform oferece um ambiente simplificado para experimentar diferentes hiperparâmetros do modelo, visualizar métricas de treino e implementar soluções sem ter de programar manualmente cada camada da rede neuronal.









