Aplicação de ReLu (Rectified Linear Unit) em Redes Neurais com Python

Marcos de Benedicto (Bene)
2 min readNov 23, 2024

— — 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 e biases 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

--

--

No responses yet