Rede neural do zero em Python #07

Поделиться
HTML-код
  • Опубликовано: 19 сен 2024
  • Nesse vídeo continuamos nosso projeto de construir uma rede neural do zero em Python!
    Vamos visualizar o treinamento, usar um novo dataset com mais entradas e saídas.
    Esse modelo é um pouco mais avançado, mas é tudo explicado passo a passo. Nossa rede vai ser focada em problemas de classificação.

Комментарии • 31

  • @regiani6133
    @regiani6133 2 месяца назад

    Muito bom

  • @diogomonteiro7022
    @diogomonteiro7022 3 месяца назад +1

    Top demais

  • @zuleideferreira4424
    @zuleideferreira4424 Месяц назад +1

    Muito bom, estou adorando os vídeos. Aprendendo muito. Muito obrigada

    • @MLparahumanos
      @MLparahumanos  5 дней назад

      Que bom, Zuleide! Fico feliz 😁❤️

  • @besourofeg
    @besourofeg 7 месяцев назад +1

    Muito legal... obrigado

  • @georgehamilton2795
    @georgehamilton2795 9 месяцев назад +4

    Esses vídeos são bem didáticos. Você conseguiu ensinar de um forma sensacional o assunto de Redes Neurais. Poucos canais têm essa leveza no assunto. Parabéns 👏👏👏

    • @MLparahumanos
      @MLparahumanos  9 месяцев назад

      Muitooo obrigado, George!😁
      Fico muito feliz que você está gostando do conteúdo!

  • @DanielJoseAutodesk
    @DanielJoseAutodesk 9 месяцев назад +4

    Eu entendo o fato de você falar que não consegue parar ...😂😂😂😂...Redes neurais de fato são algo muito interessante ... você pega gosto pelo negocio ... assim como programação de JOGOS ... é algo que VICIA quem gosta de programação... e quem não gosta também ...😂😂😁👍

    • @MLparahumanos
      @MLparahumanos  9 месяцев назад

      Pois é, Daniel! Se deixar eu vou acrescentando coisas e isso nunca tem fim! hehe
      Você faz jogos? Qual a linguagem você usa?
      Abraços!
      @DanielJoseAutodesk

    • @DanielJoseAutodesk
      @DanielJoseAutodesk 9 месяцев назад

      @@MLparahumanos Trabalho essencialmente com C/C++ desde o seculo passado 😂😂 ( LITERALMENTE ). Mas também passei por diversas outras linguagens. Mas me apaixonei mesmo pelo C / C++ 😍😍💕💕💞💞💞💞. Não fico preso em ramo específico dentro da programação. Gosto de variar, já que sou autonomo. Ficar fazendo sempre as mesmas coisas é muito CHATO. Atualmente estou mais focado em questões relacionadas a programação voltada para mercado financeiro. Desenvolvimento usando MQL5 puro. Apesar de poder usar e saber como usar outras linguagens para ajudar no MQL5. Gosto de desafios. Então tento fazer tudo em MQL5 puro. Tanto que já tenho mais de 89 artigos escritos sobre o tema. E outros tantos já prontos para serem revisados. Apenas explicando como desenvolver algo usando MQL5 PURO.
      O último artigo revisado, pode ser visto neste link: www.mql5.com/pt/articles/11585 caso tenha curiosidade e ver um pouco do que torno publico. Já que a maior parte do meu trabalho, não pode ser publicados devido a questões contratuais ...
      Com relação a este tema, que é rede neurais. Estudo sobre o tema destes os meados dos anos 80, quando tudo era feito na unha, quando a ideia era justamente usar elas para ajudar na procura de uma melhor solução para problemas do cotidiano. Nada desta coisa de criar texto, desenhar imagens ou manipular as coisas. O trabalho era bem mais complicado, porém bem mais focado. De uns tempos para cá virou uma festa. Por isto gostei dos seus vídeos. Você fala do tema com clareza, quando muitos mais confundem do que ajudam a esclarecer sobre o tema. Já estou com alguns artigos para serem revisados sobre o tema, em breve acredito que serão publicados, visando justamente explicar ou reduzir a grande confusão sobre o assunto. Tem muita gente vendendo uma ideia totalmente errada sobre o tema. E as pessoas no geral estão comprando gato por lebre. Ainda mais quando o assunto é usado para ganhar dinheiro. Mas isto é uma coisa que vou abordar nos artigos. 👍
      Mas como quero lhe motivar a continuar fazendo um bom trabalho, acabei me inscrevendo, para não perder o canal. E sempre que possível irei fazer algum tipo de comentário. Isto para ajudar o algoritimo do YT a divulgar melhor seu canal. Pois cai aqui de paraquedas ... E bons canais merecem serem divulgados ... 😁👍

  • @kleberbuenoMLEng
    @kleberbuenoMLEng 9 месяцев назад +2

    Excelente Playlist. Acho que ficaria legal você plotar o loss e a acuracia no mesmo grafico pra gente ver o quanto um desce enquanto outro sobe. E isso ainda nos permitiria ver se houve overfitting.

    • @MLparahumanos
      @MLparahumanos  9 месяцев назад

      Oi, Kleber. Tudo bem?
      Obrigado pela sugestão! Vou pensar em um vídeo sobre isso para adicionar na playlist.

  • @fernandogalvao1511
    @fernandogalvao1511 9 месяцев назад +1

    Tá show, bom demais!
    Já estou aguardando o próximo vídeo!

  • @barkema8065
    @barkema8065 4 месяца назад +1

    Muito bom seus vídeos... já pensou em ministrar cursos sobre o assunto?

    • @MLparahumanos
      @MLparahumanos  3 месяца назад

      Muito obrigado!!
      Na verdade, sim. Já pensei em fazer um curso completo, e já foi convidado para dar aula em uma faculdade, mas infelizmente hoje em dia estou sem tempo. Estou trabalhando muito e com o tempo bem limitado :-(
      @barkema8065

  • @tksmkd
    @tksmkd 3 месяца назад +1

    algumas questões:
    vc fez um dict no constructor mas não usou;
    em backpropagation vc fez uma cópia de softmax para não modificá-la. pq? se softmax é um parâmetro que vc não usa de novo?;
    sobre delta2, não devia ser dividido pelo número de exemplos?
    e no loss() eu não entendi bem o que vc fez.
    a perda (a média dos logs das probabilidades) poderia ser obtido com sum(logprob) / m.
    sendo logprob = -np.log(softmax[range(m), self.y]) e m = self.y.shape[0]
    De resto, parabéns pelo trabalho!
    estou acompanhando com bastante atenção os seus videos. êta assunto complicado. se vc pisca o olho, perde toda a linha de raciocínio e haja níveis de abstração!

    • @tksmkd
      @tksmkd 3 месяца назад +1

      Agora eu entendi o que aconteceu em loss(). Vi sua correção em outros comentários. Fiz algumas modificações como eliminar as variáveis que informam o número de neurônios. São usadas só no construtor, não precisam ser self. Tb criei um self.len = len(X), já que é usado em vários pontos da classe. Estou registrando as perdas e acurácias dentro do loop em fit() para construir um gráfico com a evolução desses valores ao longo das épocas. Meu plano é diminuir o código ao mínimo (ou separá-lo em mais módulos) para ficar mais fácil visualizar o que ele faz exatamente. O backpropagation, por ex, apesar de já ter entendido o que ele faz, ainda está confuso. Engraçado que, quando colocamos o resultado das derivadas, diminuímos os códigos mas nos afastamos do entendimento do significado das operações feitas. Mas o contrário é ainda pior kkkk

    • @MLparahumanos
      @MLparahumanos  3 месяца назад +1

      Muito legal!
      Nem sempre o modo didático é o mais efetivo, me atrevo a dizer que na maioria dos casos, não é. Muito legal saber que você está melhorando o código e otimizando. Parabéns!
      @tksmkd

    • @MLparahumanos
      @MLparahumanos  3 месяца назад +1

      Para este exemplo eu não usei o dict no construtor. Mas é uma ideia que pode facilitar, principalmente em casos mais complexos.
      Se em algum momento você quiser compartilhar o seu código com as modificações, acho que seria legal.
      Muito obrigado pelos "toques" que você deu. ❤️

  • @fernandogalvao1511
    @fernandogalvao1511 9 месяцев назад +1

    Deixa eu tirar uma dúvida...
    Na criação do método de plotagem do gráfico 3D também é necessário a utilização do "self", como segue abaixo:
    if ...
    elif self.x.shape[1] == 3:
    ax = plt.axes(projection='3d')
    ax.scatter3D(self.x[:, 0], self.x[:, 1], self.x[:, 2], s=40, c=predictions, cmap='cool', alpha=0.7)
    plt.show()
    ...

    • @MLparahumanos
      @MLparahumanos  9 месяцев назад +1

      Oi, Fernando. Tudo bem?
      Na parte de self.x? Se for isso, é necessário para que o modelo (classe) use os dados que foram passados, que são os dados usados no treinamento.
      Abraços.
      @fernandogalvao1511

  • @DélcioCapolo-g9r
    @DélcioCapolo-g9r 9 месяцев назад +1

    No final das contas, o que seriam os 100 Milhões de parâmetros... Tão mencionados, quando se fala de GPT3 e tal?

    • @MLparahumanos
      @MLparahumanos  9 месяцев назад +1

      Oi, Délcio. Tudo bem?
      Esses parâmetros são os pesos e bias da rede.
      @user-fh4xg4gi6k

  • @tksmkd
    @tksmkd 3 месяца назад

    Eu gostaria muito de saber como ficariam os hiperplanos plotados nesses gráficos. como plotar os hiperplanos?

    • @tksmkd
      @tksmkd 3 месяца назад +1

      outra coisa bacana seria exibir a evolução da acurácia e das perdas a partir de um gráfico ao invés de uma sequência de prints. pra ficar mais visível o ritmo de melhora do treinamento

    • @MLparahumanos
      @MLparahumanos  3 месяца назад

      Concordo com você! :-)
      Poderíamos armazenar esses dados em uma variável e mostrar o gráfico no final. Excelente ideia!

  • @umcanalsemvidanoyoutube8840
    @umcanalsemvidanoyoutube8840 9 месяцев назад +2

    Você poderia fazer um vídeo de colocando essa rede aprendendo um jogo! Que você mesmo criou ou um que já existe seria muito top!

    • @MLparahumanos
      @MLparahumanos  9 месяцев назад

      Muito obrigado pela sugestão! Vou pensar em algo sim.😁