[Code Tutorial] Neural Network com torch
O objetivo do artigo é conduzir os curiosos para um primeiro contato com as redes neurais, usando o torch.
Vamos construir um modelo do zero, embora seja possível usar modelos prontos (algo um pouco mais para o futuro) para resolver um problema de regressão.
Se recordar, uma equação do primeiro grau tem forma y = mx + b pois é isso mesmo que usamos para treinar a nossa rede (a beleza da simplicidade, eu amo). Vamos apenas mudar os nomes:
- m vou chamar de "weights"
- b vou chamar de "bias"
Como a rede neural aprende? Primeiro escolhamos valores aleatórios para "weights" e para "bias" e através de interações tentamos encontrar o melhor valor possível, por meio de um mecanismo chamado gradient descent, ele é quem possibilita encontrar os melhores resultados (depois falamos sobre), ele vem integrado com o torch para usarmos.
Code Time!
Nesta primeira imagem temos três etapas principais:
- Importar o que é necessário
- Criar dados sintéticos (no futuro usaremos dados reais)
- E dividir os dados (não vou explicar porque isso é importante para não me alongar).
Chegou a hora de criar a nossa rede neural, e note como a orientação é objetos é importante mesmo no machine learning e deep learning, aprendam :)
Abaixo estamos escolhendo valores aleatórios para o "w" e para o "b" e usando a estratégia chamada gradient descent para ir melhorando nossos "chutes" e finalmente definimos o método computacional nosso forward(), que retorna a equação para um função do primeiro grau (sim, aquela do ensino médio).
Vamos prever? Antes, observe que os valores aleatórios escolhidos para "w" e "b" foram:
- 0.63
- 0.20
A equação seria y = 0.63x + 0.20, :)
É dela que a nossa rede neural faz previsões, viu? Não é magia!
Nota para os hackers
Não me preocupei em mostrar os dados ou avaliar nosso modelo (que ainda não está indo bem, escolhemos valores aleatórios, precisamos de mais interações e ajustes) o meu propósito é demostrar a beleza contida no processo e porque considero elegante em sua simplicidade.
---
Documentação do torch: https://pytorch.org/docs/stable/torch.html