Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Camadas de Perceptron | Rede Neural do Zero
Quizzes & Challenges
Quizzes
Challenges
/
Introdução às Redes Neurais com Python

bookCamadas de Perceptron

Perceptron é a rede neural mais simples—apenas um neurônio. Para tarefas mais complexas, utiliza-se o perceptron multicamadas (MLP), que contém uma ou mais camadas ocultas que permitem à rede aprender padrões mais ricos.

Um MLP consiste em:

  1. Camada de entrada — recebe os dados;
  2. Camadas ocultas — extraem padrões;
  3. Camada de saída — produz previsões.

Cada camada possui múltiplos neurônios; a saída de uma camada torna-se a entrada da próxima.

Pesos e Bias das Camadas

Anteriormente, um neurônio armazenava seus pesos como um vetor e o bias como um escalar. Uma camada, entretanto, contém vários neurônios, então seus pesos tornam-se uma matriz, onde cada linha armazena os pesos de um neurônio. Os bias de todos os neurônios formam um vetor.

Para uma camada com 3 entradas e 2 neurônios:

W=[W11W12W13W21W22W23],b=[b1b2]W=\begin{bmatrix} W_{11} & W_{12} & W_{13} \\ W_{21} & W_{22} & W_{23} \end{bmatrix}, \qquad b=\begin{bmatrix} b_1 \\ b_2 \end{bmatrix}

Aqui, WijW_{ij} é o peso da jj-ésima entrada para o ii-ésimo neurônio; bib_i é o bias do neurônio ii.

Propagação Direta

A propagação direta ativa cada neurônio ao calcular uma soma ponderada, adicionar o bias e aplicar a função de ativação.

Anteriormente, um único neurônio utilizava:

[ z = W \cdot x + b ]

Agora, como cada linha de (W) é o vetor de pesos de um neurônio, realizar a multiplicação de matrizes entre a matriz de pesos e o vetor de entrada calcula automaticamente as somas ponderadas de todos os neurônios de uma vez.

Para adicionar os vieses às saídas dos respectivos neurônios, um vetor de vieses também deve ser somado:

Por fim, a função de ativação é aplicada ao resultado — sigmoid ou ReLU, neste caso. A fórmula resultante para a propagação direta na camada é a seguinte:

a=activation(Wx+b)a = activation(Wx + b)

onde aa é o vetor de ativações dos neurônios (saídas).

Classe Layer

Como MLPs são compostas por camadas, definimos uma classe dedicada Layer. Seus atributos:

  • inputs: vetor de entrada (elementos n_inputs);
  • outputs: saídas brutas dos neurônios (elementos n_neurons);
  • weights: matriz de pesos;
  • biases: vetor de vieses;
  • activation_function: função de ativação utilizada na camada.

Pesos e vieses são inicializados com valores aleatórios de uma distribuição uniforme em ([-1, 1]). inputs e outputs são inicializados como arrays NumPy preenchidos com zeros para garantir formatos consistentes para a retropropagação posterior.

class Layer:
    def __init__(self, n_inputs, n_neurons, activation_function):
        self.inputs = np.zeros((n_inputs, 1))
        self.outputs = np.zeros((n_neurons, 1))
        self.weights = ...
        self.biases = ...
        self.activation = activation_function
Note
Nota

Inicializar inputs e outputs com zeros previne erros de forma e garante que as camadas permaneçam consistentes durante as passagens direta e reversa.

Método Forward

A propagação direta para uma camada calcula as saídas brutas e aplica a ativação:

def forward(self, inputs):
    self.inputs = np.array(inputs).reshape(-1, 1)
    # Raw outputs: weighted sum + bias
    self.outputs = ...
    # Apply activation
    return ...

Redimensionar a entrada para um vetor coluna garante a multiplicação correta com a matriz de pesos e mantém as dimensões esperadas em toda a rede.

Note
Nota

Se desejar, também posso resumir ainda mais, produzir um diagrama da estrutura da camada ou gerar o código completo funcional para a classe Layer.

1. O que torna um perceptron multicamadas (MLP) mais poderoso do que um perceptron simples?

2. Por que é necessário aplicar este código antes de multiplicar inputs pela matriz de pesos?

question mark

O que torna um perceptron multicamadas (MLP) mais poderoso do que um perceptron simples?

Select the correct answer

question mark

Por que é necessário aplicar este código antes de multiplicar inputs pela matriz de pesos?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you explain how the weights and biases are initialized in the Layer class?

What activation functions can I use in the Layer class?

Can you walk me through how forward propagation works step by step?

Awesome!

Completion rate improved to 4

bookCamadas de Perceptron

Deslize para mostrar o menu

Perceptron é a rede neural mais simples—apenas um neurônio. Para tarefas mais complexas, utiliza-se o perceptron multicamadas (MLP), que contém uma ou mais camadas ocultas que permitem à rede aprender padrões mais ricos.

Um MLP consiste em:

  1. Camada de entrada — recebe os dados;
  2. Camadas ocultas — extraem padrões;
  3. Camada de saída — produz previsões.

Cada camada possui múltiplos neurônios; a saída de uma camada torna-se a entrada da próxima.

Pesos e Bias das Camadas

Anteriormente, um neurônio armazenava seus pesos como um vetor e o bias como um escalar. Uma camada, entretanto, contém vários neurônios, então seus pesos tornam-se uma matriz, onde cada linha armazena os pesos de um neurônio. Os bias de todos os neurônios formam um vetor.

Para uma camada com 3 entradas e 2 neurônios:

W=[W11W12W13W21W22W23],b=[b1b2]W=\begin{bmatrix} W_{11} & W_{12} & W_{13} \\ W_{21} & W_{22} & W_{23} \end{bmatrix}, \qquad b=\begin{bmatrix} b_1 \\ b_2 \end{bmatrix}

Aqui, WijW_{ij} é o peso da jj-ésima entrada para o ii-ésimo neurônio; bib_i é o bias do neurônio ii.

Propagação Direta

A propagação direta ativa cada neurônio ao calcular uma soma ponderada, adicionar o bias e aplicar a função de ativação.

Anteriormente, um único neurônio utilizava:

[ z = W \cdot x + b ]

Agora, como cada linha de (W) é o vetor de pesos de um neurônio, realizar a multiplicação de matrizes entre a matriz de pesos e o vetor de entrada calcula automaticamente as somas ponderadas de todos os neurônios de uma vez.

Para adicionar os vieses às saídas dos respectivos neurônios, um vetor de vieses também deve ser somado:

Por fim, a função de ativação é aplicada ao resultado — sigmoid ou ReLU, neste caso. A fórmula resultante para a propagação direta na camada é a seguinte:

a=activation(Wx+b)a = activation(Wx + b)

onde aa é o vetor de ativações dos neurônios (saídas).

Classe Layer

Como MLPs são compostas por camadas, definimos uma classe dedicada Layer. Seus atributos:

  • inputs: vetor de entrada (elementos n_inputs);
  • outputs: saídas brutas dos neurônios (elementos n_neurons);
  • weights: matriz de pesos;
  • biases: vetor de vieses;
  • activation_function: função de ativação utilizada na camada.

Pesos e vieses são inicializados com valores aleatórios de uma distribuição uniforme em ([-1, 1]). inputs e outputs são inicializados como arrays NumPy preenchidos com zeros para garantir formatos consistentes para a retropropagação posterior.

class Layer:
    def __init__(self, n_inputs, n_neurons, activation_function):
        self.inputs = np.zeros((n_inputs, 1))
        self.outputs = np.zeros((n_neurons, 1))
        self.weights = ...
        self.biases = ...
        self.activation = activation_function
Note
Nota

Inicializar inputs e outputs com zeros previne erros de forma e garante que as camadas permaneçam consistentes durante as passagens direta e reversa.

Método Forward

A propagação direta para uma camada calcula as saídas brutas e aplica a ativação:

def forward(self, inputs):
    self.inputs = np.array(inputs).reshape(-1, 1)
    # Raw outputs: weighted sum + bias
    self.outputs = ...
    # Apply activation
    return ...

Redimensionar a entrada para um vetor coluna garante a multiplicação correta com a matriz de pesos e mantém as dimensões esperadas em toda a rede.

Note
Nota

Se desejar, também posso resumir ainda mais, produzir um diagrama da estrutura da camada ou gerar o código completo funcional para a classe Layer.

1. O que torna um perceptron multicamadas (MLP) mais poderoso do que um perceptron simples?

2. Por que é necessário aplicar este código antes de multiplicar inputs pela matriz de pesos?

question mark

O que torna um perceptron multicamadas (MLP) mais poderoso do que um perceptron simples?

Select the correct answer

question mark

Por que é necessário aplicar este código antes de multiplicar inputs pela matriz de pesos?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 3
some-alt