Principais Funções Transferência no Keras

Principais Funções Transferência no KerasPrincipais Funções de Ativação Disponíveis no KerasLinear (reta)Sigmóide (Sigmoid)Tangente Hiperbólica (Tanh)ReLU (Rectified Linear Unit)Leaky ReLUSeLU (Scaled Exponential Linear Unit)SoftPlusSoftSignSwishExponencialELU (Exponencial Linear Unit)GeLU (Gaussian Error Linear Unit)SoftMaxCódigo para Plotar $f(x)$ e $f'(x)$ExplicaçãoMelhorando o código anterior para outras transfer functionsO que foi alterado?Ocultando mensagens de Warnings no KerasSolução: Suprimir os logs do TensorFlowExplicação dos Níveis de Log

É possível gerar um gráfico usando Matplotlib para exibir tanto a função de ativação quanto sua derivada .

O Keras fornece diversas funções de ativação pré-implementadas na sub-biblioteca keras.activations, mas a maioria delas não expõe diretamente a derivada. No entanto, é possível calcular a derivada manualmente usando tensorflow.gradients ou autodiff do TensorFlow.

É possível gerar um gráfico usando Matplotlib para exibir tanto a função de ativação quanto sua derivada . Vamos tentar mostrar as funções, suas equações e gráficos correspondentes.

Principais Funções de Ativação Disponíveis no Keras

O Keras inclui as seguintes funções de ativação, que podem ser passadas como strings:

Linear (reta)

linear.png

Sigmóide (Sigmoid)

sigmoid.png

Tangente Hiperbólica (Tanh)

tanh.png

ReLU (Rectified Linear Unit)

relu.png

 

Leaky ReLU

< Curvas >

 

SeLU (Scaled Exponential Linear Unit)

selu.png

SoftPlus

softplus.png

 

SoftSign

softsign.png

 

Swish

swish.png

 

Exponencial

exponential.png

ELU (Exponencial Linear Unit)

elu.png

GeLU (Gaussian Error Linear Unit)

gelu.png

SoftMax

Exemplo de uso:

Outro exemplo:


Código para Plotar e

O código abaixo gera um gráfico com a função de ativação ReLU e sua derivada sobrepostas:

Explicação

  1. getattr(activations, act_name): Obtém a função de ativação pelo nome.

  2. tf.GradientTape(): Calcula a derivada automaticamente no TensorFlow.

  3. O gráfico exibe:

    • Curva Azul: ( f(x) ) (função de ativação)
    • Curva Vermelha (tracejada): ( f'(x) ) (derivada)

Basta chamar plot_activation_function('sigmoid') ou outro nome de ativação do Keras para visualizar diferentes funções.

Saída gerada:

relu.png

Melhorando o código anterior para outras transfer functions

Segue versão melhorada do código anterior, onde o usuário pode inserir a função de ativação desejada como uma string, garantindo compatibilidade com as funções disponíveis no Keras: show_transfer_function.py

O que foi alterado?

  1. Entrada do Usuário: Agora, o usuário pode digitar a função desejada no terminal.
  2. Verificação da Função: Se o nome digitado não estiver na lista de funções disponíveis, o programa avisa e exibe as opções válidas.
  3. Atenção ao Case-Sensitivity: O nome da ativação é convertido para minúsculas (.lower()) para evitar erros de digitação.

Agora, ao rodar o script, ele pedirá a entrada da função de ativação e exibirá seu gráfico com a derivada! 🎨📈

Ocultando mensagens de Warnings no Keras

No meu caso, toda vez que executo o script acima é gerado uma mensagem no início do processamento mostrando algo como:

É possível evitar essa mensagem de log do TensorFlow ajustando a variável de ambiente TF_CPP_MIN_LOG_LEVEL.

Solução: Suprimir os logs do TensorFlow

Adicione este código logo no início do seu script Python:

Explicação dos Níveis de Log

O TensorFlow usa a variável TF_CPP_MIN_LOG_LEVEL para controlar as mensagens exibidas. Os níveis são:

Se quiser esconder apenas as mensagens de otimização da CPU, mas ainda visualizar warnings, use '1' em vez de '2'.


18/03/2025