image

Bootcamps ilimitados + curso de inglês para sempre

80
%OFF
Article image
Carlos Lima
Carlos Lima25/04/2024 19:30
Compartilhe

[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).

    image

    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).

    image

    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, :)

    image

    É 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.

    ---

    Código completo: https://deepnote.com/workspace/tree-ai-145c0fbd-6cbd-4160-ad24-fcb241d09a70/project/fasteda-2b1048b4-1b56-44f4-ac5a-4ae9cf1011ed/notebook/Pytorch-da40e890cad5404980da662336efcf49

    Documentação do torch: https://pytorch.org/docs/stable/torch.html

    Compartilhe
    Recomendados para você
    Microsoft 50 Anos - Prompts Inteligentes
    Microsoft 50 Anos - GitHub Copilot
    Microsoft 50 Anos - Computação em Nuvem com Azure
    Comentários (3)
    Luís Simas
    Luís Simas - 25/04/2024 21:57

    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!

    Carlos Lima
    Carlos Lima - 25/04/2024 19:51

    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 :-)

    Luís Simas
    Luís Simas - 25/04/2024 19:43

    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