Lucas (Universo Discreto) 👨‍💻 Profile picture
Professor que fala de Ciência da Computação no YouTube (https://t.co/nDNo10bnB7)

Aug 4, 2021, 18 tweets

Vídeo novo! 1 hora de explicações de como fazer sua própria Rede Neural Profunda!

Sei que 99,9% de vocês não vão clicar no vídeo, mas peço que pelo menos acompanhem a thread pois vou tentar resumir de maneira intuitiva o que eu fiz aqui

#universodiscreto

Basicamente uma Rede Neural Artificial nada mais é uma função f(x) = y (igual vcs viram na aula de matemática), mas que é bem inteligente, pois ela aprende a dar os y certos baseado no x fornecido

Por exemplo, como uma rede dessas sabe se tem um gato ou cachorro na foto?

Num problema como esse, o x vai ser formado por todos os pixels da foto de um cachorro (as cores RGB mesmo, tipo que aparece no photoshop) e o y vai ser 0 (se não for cachorro) ou 1 (se for cachorro)

Impressionante, mas como a rede neural aprende isso por conta própria?

Essa figurinha abaixo (que eu mesmo fiz) pode ajudar a entender.

Uma rede dessas contém neurônios, que nada mais são do que unidades independentes que fazem cálculos. Elas são os círculos laranjas que são como se fossem funcionários de um escritório que vão "dividir" uma tarefa

Nesse exemplo, a 1º camada (que circulei de vermelho) vai receber todos os pixels da imagem e cada funcionário vai conferir partes dela

Por exemplo, um funcionário pode ver o topo superior direito da imagem e conferir se aqueles pixels correspondem as orelhas do dog

Mas como um funcionário da 1º camada sabe onde olhar? Então... quando a rede inicia os trabalhos, eles não sabem 😂

Basicamente eles vão "chutar", olhar qualquer parte da imagem e "disparar" qualquer informação pra camada 2, sem saber o q estão fazendo (calma, vai fazer sentido)

A 2º camada vai atuar como gerentes que vão receber informação dos funcionários e vão olhar "partes maiores" da imagem

Assim, se a 1º camada estava preocupada em ver quais eram as cores em determinadas posições no nível de pixel, esses gerentes vão decidir de maneira mais global

Essa imagem ajuda a explicar melhor isso.

Uma rede neural que reconhece faces começa analisando em nível de pixel nas primeiras camadas e, à medida que vai avançando, começa a analisar e decidir em partes maiores, como olhos, nariz e boca

Um ponto importante: o que os funcionários da camada 1 "transmitem" pra camada 2, por exemplo?

De maneira geral respondem estímulos. No exemplo, se o neurônio acredita que numa região da img existe algo que condiz com um dog, ele vai "ativar" e disparar sim pra todos os gerentes

Isso é feito até chegar "na ponta" em q temos o CEO (esqueçam as analogias com The Office, pois esse cara não pode errar rsrs)

No final, o CEO vai receber as informações da última camada e jogar numa conta que vai dizer y=0 se a foto não contém cachorro e y=1 se tiver o cachorro

Como eu disse, na 1º vez, os funcionários "chutam" qualquer coisa e os resultados ficam completamente errados. Como consertar?

Basicamente esse processo vai ser feito pra múltiplas imagens e o CEO vai comparar com um "gabarito", pra saber o tanto de erro que está acontecendo

Aí vem o pulo do gato: a matemática interna permite saber o nível de erro e quais neurônios causaram os problemas

Nisso, o CEO envia um feedback individual pra cada um dizendo "fulano, esse erro foi causado por x vezes por vc, y vezes pelo ciclano e z vezes pelo beltrano"

Nisso, cada gerente da última camada recebe esse feedback e informa aos funcionários quem errou mais e quem errou menos, para que eles se ajustem (procurem outras regiões, analisem outros pixels, outras cores...) até retornar pro começo

Quando chega no começo, é tudo de novo.. o processo se repete, propagando "pra frente e pra trás" milhares ou milhões de vezes analisando milhões de imagens... até que os erros vão tender a zero e o CEO vai ficar satisfeito!

Esse algoritmo de "propagar pra trás" se chama Backpropagation e é uma das razões pras redes neurais serem tão eficientes. O paper com essa ideia é de 86 e foi proposto por Geofrrey Hinton, um dos pais do Deep Learning (e que ganhou o nobel da Computação pelo feito!)

Esse é o famoso paper dele, aliás: iro.umontreal.ca/~vincentp/ift3…

Outras fontes muito boas pra entender toda essa teoria vc encontra no vídeo que postei!

Enfim, tem mais coisas, fiz uma baita simplificação pra intuição entrar na cabeça do maior número possível de pessoas!

No vídeo do topo da thread eu explico toda essa intuição e ainda programo uma rede neural que diagnostica se a pessoa teve ou não AVC de acordo com seus dados

eu acho que eu mereço um RT por essa thread, oq vcs acham? rsrs @canalpeixebabel @avivimota @milalaranjeira @ninadhora @pgdinamica @dii_lua @svbroficial =) se puderem dar uma força

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling