Aplicação de ReLu (Rectified Linear Unit) em Redes Neurais com Python
— — SCRIPT — -
import numpy as np
# Função de ativação ReLU
def relu(x):
“””
Aplica a função de ativação ReLU a um array numpy.
ReLU retorna x se x > 0, caso contrário retorna 0.
“””
return np.maximum(0, x)
# Simulando os dados de saída de uma camada oculta (antes da ativação)
def simulate_hidden_layer(inputs, weights, biases):
“””
Simula os valores de saída de uma camada oculta antes da ativação.
“””
return np.dot(inputs, weights) + biases
# Dados de exemplo
inputs = np.array([[0.5, -1.2, 3.3],
[1.0, 2.1, -1.5],
[2.5, -3.0, 0.7]]) # Dados de entrada
weights = np.array([[0.1, 0.4, -0.6],
[-0.2, 0.3, 0.8],
[0.5, -0.7, 0.2]]) # Pesos da camada
biases = np.array([0.2, -0.1, 0.5]) # Biases da camada
# Calculando os valores antes da ativação
pre_activation_outputs = simulate_hidden_layer(inputs, weights, biases)
# Aplicando a função de ativação ReLU
post_activation_outputs = relu(pre_activation_outputs)
# Exibindo os resultados
print(“Saída antes da ativação (valores brutos):”)
print(pre_activation_outputs)
print(“\nSaída após aplicar ReLU:”)
print(post_activation_outputs)
— — SCRIPT — -
Explicação
Função ReLU (relu
): Esta função retorna o valor original se for maior que 0; caso contrário, retorna 0.
ReLU(x)=max(0,x)\text{ReLU}(x) = \max(0, x)ReLU(x)=max(0,x)
Simulação de camada oculta:
- Calcula z=inputs⋅weights+biasesz = \text{inputs} \cdot \text{weights} + \text{biases}z=inputs⋅weights+biases.
- Esta é a operação linear comum em redes neurais antes de aplicar uma função de ativação.
Dados de exemplo:
- Matrizes de
inputs
,weights
ebiases
para simular uma camada com 3 neurônios e entradas de 3 dimensões.
Saídas:
pre_activation_outputs
: Saída da camada oculta antes de ativar.post_activation_outputs
: Resultado final após a aplicação do ReLU.
Exemplo de saída do código
Ao rodar este script, você verá algo como:
Saída antes da ativação (valores brutos):
[[ 1.35 -3.11 2.02] [ 0.95 0.23 1.21] [ 0.75 -2.74 0.71]]
Saída após aplicar ReLU:
[[1.35 0. 2.02] [0.95 0.23 1.21] [0.75 0. 0.71]]
Observação
Esse é um exemplo simplificado, útil para demonstrar a funcionalidade do ReLU e as operações básicas de uma camada em uma rede neural. Em um contexto real, frameworks como TensorFlow ou PyTorch são usados para construir redes neurais de forma mais robusta e escalável.
ReLu Explain — https://www.youtube.com/watch?v=68BZ5f7P94E
Neural Networks Pt. 3: ReLU In Action — https://www.youtube.com/watch?v=68BZ5f7P94E