PyTorch - Noções básicas de rede neural
O princípio básico da rede neural inclui uma coleção de elementos básicos, ou seja, neurônio artificial ou perceptron. Inclui várias entradas básicas como x1, x2… .. xn que produz uma saída binária se a soma for maior que o potencial de ativação.
A representação esquemática do neurônio de amostra é mencionada abaixo -
A saída gerada pode ser considerada como a soma ponderada com potencial de ativação ou viés.
$$ Output = \ sum_jw_jx_j + Bias $$
A arquitetura típica de rede neural é descrita abaixo -
As camadas entre a entrada e a saída são chamadas de camadas ocultas, e a densidade e o tipo de conexão entre as camadas é a configuração. Por exemplo, uma configuração totalmente conectada tem todos os neurônios da camada L conectados aos de L + 1. Para uma localização mais pronunciada, podemos conectar apenas uma vizinhança local, digamos nove neurônios, à próxima camada. A Figura 1-9 ilustra duas camadas ocultas com conexões densas.
Os vários tipos de redes neurais são os seguintes -
Redes Neurais Feedforward
As redes neurais feedforward incluem unidades básicas da família de redes neurais. A movimentação de dados neste tipo de rede neural é da camada de entrada para a camada de saída, por meio das atuais camadas ocultas. A saída de uma camada serve como camada de entrada com restrições em qualquer tipo de loop na arquitetura de rede.
Redes Neurais Recorrentes
Redes Neurais Recorrentes são quando o padrão de dados muda conseqüentemente ao longo de um período. No RNN, a mesma camada é aplicada para aceitar os parâmetros de entrada e exibir os parâmetros de saída na rede neural especificada.
As redes neurais podem ser construídas usando o pacote torch.nn.
É uma rede simples de feed-forward. Ele pega a entrada, a alimenta por várias camadas uma após a outra e, finalmente, fornece a saída.
Com a ajuda do PyTorch, podemos usar as seguintes etapas para o procedimento de treinamento típico para uma rede neural -
- Defina a rede neural que possui alguns parâmetros (ou pesos) aprendíveis.
- Itere sobre um conjunto de dados de entradas.
- Entrada de processo através da rede.
- Calcule a perda (até que ponto a saída está correta).
- Propagar gradientes de volta aos parâmetros da rede.
- Atualize os pesos da rede, normalmente usando uma atualização simples conforme fornecido abaixo
rule: weight = weight -learning_rate * gradient