Criando uma Camada de Rede Neural
Camada Única de Rede Neural
Em uma rede neural feed-forward básica, a saída de um neurônio em uma camada é calculada usando a soma ponderada de suas entradas, passada por uma função de ativação. Isso pode ser representado como:
y=σ(W⋅x+b)
Onde:
- y: saída do neurônio;
- W: matriz que representa os pesos associados às conexões do neurônio;
- x: matriz coluna (ou vetor) que representa os valores de entrada do neurônio;
- b: valor escalar;
- σ: função de ativação, como a função sigmoide, ReLU ou softmax.
Para obter o melhor desempenho, todos os cálculos são realizados utilizando matrizes. Vamos lidar com essa tarefa da mesma forma.





Obrigado pelo seu feedback!
single
Criando uma Camada de Rede Neural
Deslize para mostrar o menu
Camada Única de Rede Neural
Em uma rede neural feed-forward básica, a saída de um neurônio em uma camada é calculada usando a soma ponderada de suas entradas, passada por uma função de ativação. Isso pode ser representado como:
y=σ(W⋅x+b)
Onde:
- y: saída do neurônio;
- W: matriz que representa os pesos associados às conexões do neurônio;
- x: matriz coluna (ou vetor) que representa os valores de entrada do neurônio;
- b: valor escalar;
- σ: função de ativação, como a função sigmoide, ReLU ou softmax.
Para obter o melhor desempenho, todos os cálculos são realizados utilizando matrizes. Vamos lidar com essa tarefa da mesma forma.





Deslize para começar a programar
Dadas as matrizes de pesos, entradas e viés para uma camada de um único neurônio, calcule sua saída utilizando multiplicação de matrizes e a função de ativação sigmoide. Considere uma camada com 3 entradas e 2 neurônios, recebendo um único lote contendo apenas uma amostra.
-
Determinando as Dimensões:
- A matriz de entrada
Ideve ter sua primeira dimensão representando o número de amostras no lote. Dada uma amostra com 3 entradas, seu tamanho será1x3; - A matriz de pesos
Wdeve ter suas colunas representando os pesos das entradas para cada neurônio. Portanto, para 2 neurônios com 3 entradas, a forma esperada é3x2. Caso não esteja assim, é necessário transpor a matriz de pesos para obter a forma requerida.
- A matriz de entrada
-
Multiplicação de Matrizes:
- Com as matrizes nas dimensões corretas, realize a multiplicação de matrizes;
- Lembre-se de que, na multiplicação de matrizes, a saída é derivada do produto escalar de cada linha da primeira matriz com cada coluna da segunda matriz. Certifique-se de multiplicar na ordem correta.
-
Adição do Viés:
- Realize uma adição elemento a elemento do resultado da multiplicação de matrizes com o viés.
-
Aplicação da Ativação:
- Utilize a função de ativação sigmoide no resultado da adição do viés para obter a saída do neurônio;
- O TensorFlow fornece a função sigmoide como
tf.sigmoid().
Nota
Ao final do curso, abordaremos a implementação de uma rede feed-forward completa utilizando TensorFlow. Este exercício serve como base para isso.
Solução
Definindo pesos da camada, entradas da camada e viés da camada
Aqui, estamos definindo os pesos, entradas e viés para a camada. Utilizamos tf.Variable() para pesos e viés, pois são parâmetros treináveis em redes neurais, e tf.constant() para a entrada, pois ela permanece inalterada durante o treinamento. O parâmetro dtype=tf.float64 é definido para obter a melhor precisão.
W = tf.Variable([[0.5, 0.4, 0.7], [0.1, 0.9, 0.5]], dtype=tf.float64)
Esta é a matriz de pesos da camada neural. Cada linha representa os pesos de um neurônio em relação a cada entrada.
I = tf.constant([[0.5, 0.6, 0.1]], dtype=tf.float64)
Esta é a matriz de entrada, representando uma única amostra com 3 características.
b = tf.Variable(0.1, dtype=tf.float64)
Este é o valor do viés. É um escalar adicionado à soma ponderada antes de passar pela função de ativação.
W = tf.transpose(W)
Os pesos estão organizados em linhas, mas para a multiplicação de matrizes, eles devem estar em colunas. Portanto, transpomos a matriz. Após isso, a primeira coluna corresponde aos pesos do primeiro neurônio e a segunda coluna aos do segundo neurônio.
weighted_sum = tf.matmul(I, W)
Aqui, calculamos a multiplicação de matrizes entre a entrada e a matriz de pesos transposta. Isso nos dá a soma ponderada das entradas.
Vamos detalhar essa multiplicação de matrizes passo a passo:
Determinar a Forma da Matriz Resultante:
A matriz resultante terá o número de linhas da primeira matriz (matriz I com forma 1x3) e o número de colunas da segunda matriz (matriz W com forma 3x2). Assim, a matriz resultante terá forma 1x2.
Processo de Multiplicação de Matrizes:
Para o primeiro elemento da matriz resultante (vamos chamá-lo de S[0][0] para "soma ponderada"):
- Multiplicar o primeiro elemento da primeira linha da matriz
Ipelo primeiro elemento da primeira coluna da matrizW:0.5 * 0.5 = 0.25; - Multiplicar o segundo elemento da primeira linha da matriz
Ipelo segundo elemento da primeira coluna da matrizW:0.6 * 0.4 = 0.24; - Multiplicar o terceiro elemento da primeira linha da matriz
Ipelo terceiro elemento da primeira coluna da matrizW:0.1 * 0.7 = 0.07; - Somar esses produtos:
0.25 + 0.24 + 0.07 = 0.56.
Portanto, S[0][0] é 0.56.
Para o segundo elemento da matriz resultante (S[0][1]):
- Multiplicar o primeiro elemento da primeira linha da matriz
Ipelo primeiro elemento da segunda coluna da matrizW:0.5 * 0.1 = 0.05; - Multiplicar o segundo elemento da primeira linha da matriz
Ipelo segundo elemento da segunda coluna da matrizW:0.6 * 0.9 = 0.54; - Multiplicar o terceiro elemento da primeira linha da matriz
Ipelo terceiro elemento da segunda coluna da matrizW:0.1 * 0.5 = 0.05; - Somar esses produtos:
0.05 + 0.54 + 0.05 = 0.64.
Portanto, S[0][1] é 0.64.
Assim, a matriz resultante S da multiplicação das matrizes I e W é:
[ [0.56, 0.64] ]
biased_sum = weighted_sum + b
O viés é adicionado à soma ponderada. Isso é uma forma de transformação afim que desloca o resultado para obter melhor ajuste durante o treinamento.
neuron_output = tf.sigmoid(biased_sum)
A função sigmoide comprime o valor entre 0 e 1, garantindo que nossa saída esteja em um intervalo normalizado. É comumente utilizada em problemas de classificação binária.
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo