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
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!)
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
Para tentar furar um pouco a bolha, vou fazer uma thread explicando os conceitos mais básicos em IA
Por exemplo, qual a diferença entre IA, Ciência de Dados, Machine Learning, Deep Learning...?
Segue a thread para entender! 🧵 #universodiscreto
Começamos nossa jornada pela IA, que é 'a área da computação que estuda como resolver problemas que tipicamente requerem a inteligência humana'
Ou seja, dentro da IA, estudamos os métodos (para simplificar, pense em algoritmos) que resolvem esses problemas
"Lucas, poderia dar exemplos desses problemas?"
Jogar jogos como xadrez, diagnóstico médico, reconhecimento de imagem ou fala, tradução automática, detecção de fraudes financeiras, pilotar veículos, prevenção de desastres...
Já que não vou sossegar enquanto não fizer isso... vamos ver esse corte e ir comentando ao longo da thread
De repente, esses comentários se tornarão a base para um vídeo sobre o assunto 🧵
Deixarei os artigos científicos usados como base ao final https://t.co/iTXZqUCKmU
Rápido disclaimer: só assisti o corte. Dessa forma, é possível que alguém fale: "mas no vídeo completo ele aborda esse ponto que vc abordou pipipi popopo"
Não é minha culpa: se postaram o corte separado, vai ter gente que só assistirá ao corte. Então vou opinar apenas nele
"Os caras não fazem a menor ideia de como essa p***a funciona"
Sabem sim. O princípio da IA considerada estado da arte (Redes Neurais Artificiais) é dos anos 50. Uma área com 70 anos de livros, artigos... É ofensivo falar que os especialistas não entendem como modelos funcionam
Antes de começar, disclaimer rápido: ChatGPT não é 100% confiável
No entanto, vão surgir outros chatbots similares e essa tecnologia vai evoluir. Assim, é importante começar a se habituar e usá-la para se tornar mais produtivo no cotidiano
Mas lembre-se, ela ainda erra muito!
Outro ponto: nunca se satisfaça com a primeira resposta, especialmente se ela não estiver boa
Lembre-se que você sempre pode incluir mais informações no seu pedido, até ficar satisfeito.
Aprender com os usos que outras pessoas estão fazendo na Internet é bem importante!
Edsger Dijkstra é um famoso cientista da computação neerlandês (da região popularmente conhecida como Holanda) e que deu inúmeras contribuições para a Ciência da Computação existir como é hoje.
No entanto, seu trabalho mais conhecido é o "Algoritmo de Dijkstra", um jeito de calcular o caminho de menor distância entre dois pontos conectados por "estradas".