Alura > Cursos de Data Science > Cursos de Machine Learning > Conteúdos de Machine Learning > Primeiras aulas do curso Deep Learning parte 2: como a rede aprende

Deep Learning parte 2: como a rede aprende

Indo por dentro da rede neural - Introdução

Sejam bem-vindos e bem-vindas à segunda parte do nosso curso de deep learning. Aqui seremos mais teóricos, tentaremos mostrar ilustrando o que acontece por debaixo do pano do nosso modelo.

Por exemplo, vamos ver o sumário do modelo, os shapes de output, o que está saindo e entrando nas camadas, quais nossos parâmetros, por que eles são treináveis. Vamos entender o que são os pesos de uma camada. Como esses parâmetros podem alterar ou não nosso modelo.

Também vamos ver o que são outros parâmetros, como esses vieses. Vamos entender o que acontece quando inicializamos, não inicializamos, o que pode acontecer. Vamos entender o que está acontecendo por dentro da relu, o que acontece quando passamos todos esses parâmetros dentro da nossa rede neural.

Veremos outras maneiras de salvar o modelo. Vamos usar outros call-backs do Keras. Vamos aprender a mexer com hiper parâmetros, que fazemos antes de treinar o modelo. Vamos ver tudo isso para ter um entendimento melhor do que está acontecendo na nossa rede neural, vamos entender gradiente descendente, retro propagação, entre várias coisas que você já deve ter visto por aí.

Espero que você goste bastante do curso.

Indo por dentro da rede neural - O que acontece na rede

Tínhamos montado uma rede neural usando a camada flatten, a relu e a softmax. O que cada uma delas fazia primeiro era achatar as imagens, depois da relu introduzia uma não linearidade no modelo e alterava os valores usando uma função. Então, a softmax fazia uma conta para classificar nossos inputs e ter nosso output.

Mas o que será que está acontecendo por debaixo dos panos? Se olharmos para esse slide, conseguimos ver inputs que entram para flatten e que vão para relu. Com isso, temos valores indo para a frente. Na relu, também temos outros valores sendo jogados para a frente, até chegarmos na softmax.

Será que passar esses valores para a frente é o bastante para uma rede aprender? Estamos fazendo algo chamado propagação, ou fowardpropagation. Para nossa rede começar a entender o que estamos fazendo não basta fazer uma vez. Temos que passar os valores em um segundo movimento para trás. Pegamos os resultados e voltamos.

O que acontece numa rede neural que não falamos no curso anterior é que tem esses dois movimentos. O primeiro de propagação para a frente e o segundo de retropropagação.

Voltando ao nosso projeto, primeiro vou clicar em run time e rodar tudo. Se olharmos o código, vemos que quando criamos a rede, passamos aqueles números. Qual a relação deles com os valores que estão indo e voltando da nossa rede?

Para termos uma ideia, podemos criar mais uma célula. Escrevemos modelo.summary. Vamos chamar essa função. Ele retorna uma tabela que resume nosso modelo. Podemos ver aqui os números. Eles têm relação com os números que escolhemos.

Olhando para a última coluna, temos parâmetros, variáveis. A primeiro linha é zero, porque não aconteceu muita coisa. Na dense vamos fazer uma conta. Temos 784 valores iniciais, e teremos 256 neurônios na nossa rede que vão receber. Podemos multiplicar uma pela outra, e vai dar 200.704. Fica diferente do valor do dense.

Nós já percebemos que os inputs são multiplicados pelo número de unidades que definimos na camada dense. Já iremos ver o motivo de ter dado um número maior.

Indo por dentro da rede neural - Valores propagados e pesos

Para entender melhor o que esses parâmetros são, vamos voltar e olhar a representação do modelo. Vamos tentar visualizar uma simulação de onde os valores vem.

Na camada flatten, cada unidade tem um valor de entrada. Esses valores não importam tanto. O importante é o que vai acontecer com eles. Eles são propagados para a frente. Chegando na softmax, temos o percentual do que está certo e o que não está.

Podemos considerar que o 0.8 é 80% de chance de estar certo. Se considerarmos como um acerto da rede, no final teremos como se o 1 tivesse virado 0.8. Se pegarmos só esse exemplo, temos dois número 1 e o 0.8.

Se 0.8 foi o valor que chegou mais próximo, o que fazemos com os outros? Podemos considerar que o 2, o 1, o outro 1 são mais importantes do que os valores que nem consideramos mais. Eles têm um peso maior no modelo.

Podemos multiplicar esses números por 1, continuando com o mesmo resultado. Se multiplicarmos por mais, aumentamos o resultado. Temos que ver o que fazer com os pesos dessa camada e da outra.

A parte boa é que o Keras já cuida de tudo isso para nós. Podendo visualizar sabendo que essas variáveis têm nossos pesos. Temos um parâmetro para cada peso que vamos colocar.

Do mesmo jeito que fizemos um modelo.summary, vamos criar mais uma célula de código para ver o que são esses pesos. Vamos escolher a camada, que em inglês é layers. Entre colchetes, coloco a número 1, que é a relu, e depois pegamos nossos pesos, com get_weights.

Executando, vem vários arrays. Quando falamos de peso nessa explicação, nesse exemplo, mostramos por que e para que vamos multiplicar cada um desses inputs do módulo, e vemos que não é tão simples. Repare que o que acontece com nossos pesos é que é um array muito grande. No fundo, o que está rolando é multiplicação de matrizes.

Começamos a entender melhor o que está acontecendo por debaixo dos panos. Mas tem mais coisa para ver.

Sobre o curso Deep Learning parte 2: como a rede aprende

O curso Deep Learning parte 2: como a rede aprende possui 116 minutos de vídeos, em um total de 40 atividades. Gostou? Conheça nossos outros cursos de Machine Learning em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Machine Learning acessando integralmente esse e outros cursos, comece hoje!

Plus

De
R$ 1.800
por
12X
R$109
à vista R$1.308
  • Acesso a TODOS os cursos por 1 ano

    Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Certificado

    A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.

  • Mentorias com especialistas

    No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.

  • Comunidade exclusiva

    Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.

  • Acesso ao conteúdo das Imersões

    Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.

  • App Android e iOS para estudar onde quiser

    Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.

Matricule-se

Pro

De
R$ 2.400
por
12X
R$149
à vista R$1.788
  • Acesso a TODOS os cursos por 1 ano

    Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Certificado

    A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.

  • Mentorias com especialistas

    No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.

  • Comunidade exclusiva

    Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.

  • Acesso ao conteúdo das Imersões

    Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.

  • App Android e iOS para estudar onde quiser

    Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.

  • Luri, a inteligência artificial da Alura

    Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.

  • Alura Língua - Inglês e Espanhol

    Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.

Matricule-se

Ultra

12X
R$209
à vista R$2.508
  • Acesso a TODOS os cursos por 1 ano

    Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Certificado

    A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.

  • Mentorias com especialistas

    No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.

  • Comunidade exclusiva

    Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.

  • Acesso ao conteúdo das Imersões

    Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.

  • App Android e iOS para estudar onde quiser

    Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.

  • Luri, com mensagens ILIMITADAS

    Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.

  • Luri Vision, a IA que enxerga suas dúvidas

    Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.

  • Alura Língua - Inglês e Espanhol

    Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.

  • 6 Ebooks da Casa do Código

    Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.

Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas