[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




Carlos.
Muito obrigado pelas dicas, vou anotar aqui todos esses nomes e indicações para colocar no meu trello para poder estudar.
Um abração!
Opa Luís, são torch e Sklearn, pensa no torch como a base o Pytorch é um framework que possibilita tu usar modelos pré-treinados, no caso tu não precisa sempre definir as funções manualmente :)
Obrigado vou dar uma olhada no sites, agradeço a recomendação.
Recomendo tu aprender sobre o fastai, que é feito no topo do Pytorch e possibilita tu construir redes neurais bem rápido, e outra dica é aprender o AutoGluon em caso de não ter segurança de começar a competir, ele vai te ajudar a ter um direcionamento porque foi feito para que as etapas do machine learning sejam realizadas de forma quase que automática.
Esse site contém todas as soluções das competições do Kaggle, para caso queira analisar os códigos: https://farid.one/kaggle-solutions/
Abraço :-)
Muito bom Carlos.
Aprendi bastante mesmo com um exemplo simples e bastante útil.
Uma dúvida de neófito as bibliotecas são PyTorch e SciKitLearn?
E como você me deu uma dica de Site como o Data Driven, vou te passar uma também: Ai For Good, uma iniciativa das Nações Unidas onde países compartilham seus conhecimentos sobre Inteligência artifical e Mineração de Dados e etc.
Esse é o link deles de Data Sets deles, espero que possa aproveitar algum para os seus estudos: https://ai4good.org/what-we-do/sdg-data-catalog/
Forte abraço