Cadê o tesouro, ou o que é uma rede neural convolucional

Christian Zambra
productmanagerslife
9 min readOct 17, 2021

Neste artigo, através de uma história de caça ao tesouro, pretendo compartilhar um pouco sobre inteligência artificial, mais especificamente sobre uma técnica de Deep Learning chamada Rede Neural Convolucional. Inspirada no funcionamento do cérebro humano, esta técnica permite a um computador reconhecer imagens.

Era uma vez um pirata chamado Jack. Bom, você já conhece o Jack, né? Pirata, apostador e apreciador de um bom Rum. Porém, hoje Jack não vai à Taberna, e nem ao Cassino. Jack está pensativo. Um sonho não sai de sua mente: Uma bússola. Mas não uma bússola qualquer… Esta bússola mágica é capaz de dizer para que lado está o que a pessoa que a tem em mãos mais deseja. Um instrumento genial, capaz de direcionar qualquer um para o lugar onde estão os seus sonhos. E Jack sonhou a semana inteira com essa bússola, e como o local onde ela está.

figura por Christian Zambra

Ao acordar de cada sonho, Jack fazia um desenho da ilha onde a bússola se encontrava.

Ao final de uma semana, inquieto com esses sonhos Jack foi buscar descanso no mar. E ali, sentado na praia, viu as ondas trazerem até ele um velho baú de madeira. Surpreso com a cena ele decidiu abrir o baú, e dentro deste se deparou com uma grande surpresa: Mapas. Mapas e desenhos semelhantes aos seus, e cartas. Cartas de piratas que como ele sonharam com a bússola. Aqueles mapas indicavam as rotas dos lugares onde tais piratas estavam para a ilha do tesouro. Como eles estavam em lugares diferentes, todos os mapas eram diferentes, mas o desenho da ilha era sempre o mesmo. E igual ao que Jack desenhou. Aquilo era um sinal: Jack deveria buscar a bússola.

Jack reuniu a tripulação e compartilhou seus sonhos. De início todos ficaram empolgados com tamanho tesouro, porém a voz da razão veio de encontro a essa emoção: Eles sabiam como era a ilha, mas não sabiam como chegar lá. Todos os desenhos eram iguais, mas os caminhos eram diferentes. E não haveria como saber se aqueles piratas realmente haviam sonhado com o caminho correto. A tripulação vivia um conflito entre o sonho e a realidade, a emoção e a razão, a perspectiva de ganhos inimagináveis, e o risco de vagar indefinidamente, batendo de ilha em ilha, buscando algo que talvez nem exista, e caso existisse, talvez já tenha sido encontrado por outro pirata.

figura por Christian Zambra

Após muito ponderar, Jack, em um raro momento de lucidez, recusa a aventura. Como capitão, ele não pode arriscar tanto assim a tripulação. A razão evocada por Jack se sobrepõe à emoção e à paixão de todos, e todos sentem aquele gosto amargo de apatia. Exceto um pirata: AI. O pássaro robô de Jack não se conforma. Curiosamente o robô de imediato se coloca contra a solução racional.

figura por Christian Zambra

Todos ficam muito tristes, menos AI. Ele tem uma ideia, e vai com confiança compartilha-la com Jack.

AI diz para Jack:

— Jack, como você sabe que eu sou um papagaio?

Jack responde:

— Hum… alguém me ensinou o que era um papagaio e eu aprendi?

AI complementa:

— Sim! Seu cérebro é composto por neurônios. Eles guardam toda a informação relevante para você. Uma parte específica do seu cérebro é responsável pela memória.

— Quando pequeno, sempre que você via um pássaro com as minhas características, perguntava o que era. E seu pai, seus amigos, colegas ou quem quer que estivesse perto respondia: Papagaio. Assim, no seu cérebro aquela figura ficava associada com papagaio. Se você lembrar bem, por vezes você via um papagaio em cima de uma árvore, outras voando, e outras no ombro de alguém. E você foi aprendendo o que era uma árvore, o que era o céu, o que era um pirata, e o que era um papagaio, onde quer que ele estivesse.

— Vendo muitos papagaios, você aprendeu o que é um papagaio. Conexões neurais se formaram no seu cérebro, ativadas cada vez que você via uma figura, e elas foram associadas com a imagem de um papagaio. E a cada nova visão, elas eram reforçadas.

— Após um tempo você começou a testar esse treinamento. Via um papagaio e dizia: Isso é um papagaio. Se fosse, o teste era positivo, e as conexões neurais reforçadas. Se não fosse, você corrigia na sua mente, e não reforçava conexões erradas. Isso era o feedback, a função de correção que dizia pro seu cérebro se ele estava indo pro lado certo ou errado. Isso é o aprendizado.

— E o que mais importa para você Jack: Eu posso aprender do mesmo jeito. Graças a uma tecnologia de Inteligência Artificial chamada de redes neurais, mais especificamente uma tecnologia adaptada especialmente para tratar imagens chamada de rede neural convolucional, eu posso aprender com todos esses desenhos o que é a ilha do tesouro, e sobrevoar o oceano em busca dessa ilha. Caso eu ache, volto e conto pra vocês o caminho. Caso eu não ache, pelo menos reduzi o risco pra vocês. E eu posso voar, pra mim será muito mais fácil achar a ilha do que para vocês ficarem visitando uma por uma.

figura por Christian Zambra

Jack acha a ideia interessante, mas ainda não entendeu muito bem.

Jack diz:

— Rede com o que? Não entendi nada do que você falou AI.

AI responde:

— Jack, a matemática por trás de uma rede neural é um pouco complexa, mas a ideia é inspirada nos humanos:

Vamos pensar numa imagem de papagaio. Imagine que você conseguisse dividir a imagem em milhares de quadradinhos, como os pixels de uma imagem de computador. E cada quadradinho representasse um número. Esse número ativaria um neurônio de uma dada camada. Pense em 1 neurônio por quadradinho. Esses neurônios por sua vez ativariam outros, até chegar na última camada, que seria onde o cerebro classificaria a imagem. Se ele classificar como um papagaio e for um papagaio, a rede testada (as ligações entre neurônios) são reforçadas. Se não, elas são corrigidas, e o treino roda de novo até reduzir o erro ao mínimo.

figura por Christian Zambra

Porém Jack pergunta: Mas e essa tal de convo convo… convocação?

AI responde:

— Não Jack, é convolução. Isso é algo super importante para tratar imagens, por conta do número de cálculos necessários. Pense em duas coisas:

1 — Se eu quero achar o papagaio na imagem, não importa onde ele está, eu quero achar ele.

2 — Esse é um segredo: Seu cerebro não analisa a imagem inteira de uma vez. Ele analisa pedacinho a pedacinho, e vai classificando aos poucos.

Pensando na ideia de rede neural, pra cada imagem eu teria que verificar pixel por pixel, e ir conectando todos os pixels da primeira camada na camada seguinte… bom isso, é meio complicado, mas o importante é que se você comparasse imagens pixel a pixel, isso custaria muuuuuito pro computador (ou seja, meus circuitos iriam pegar fogo) e cairíamos em muitos erros: Se o Papagaio não estivesse exatamente onde você viu ele quando aprendeu, a rede não aprenderia. Da mesma forma, se você treinou uma rede com papagaios sempre em arvores, além dela não identificar ele sem a arvore seria capaz de classificar qualquer pássaro na arvore como papagaio.

Por isso, mais uma vez faremos como seu cerebro faz: Buscaremos pedaços do papagaio, e vamos analisando por partes.

— Primeiro, vamos buscar pedaços:

Sabendo o que é um bico de papagaio, tem algum na imagem?

Sabendo o que é um olho de papagaio tem algum na imagem?

Sabendo o que é uma asa de papagaio, tem alguma na imagem?

Sabendo o que é uma pata de papagaio, tem alguma na imagem?

— Depois ele analisa:

Tem um bico e um olho, isso é uma cabeça de papagaio?

Tem asa e pata, isso é o corpo de um papagaio?

— E por fim ele analisa:

Tem cabeça de papagaio e corpo de papagaio, isso é um papagaio?

Da mesma forma a rede neural converte a imagem em uma matriz e aprende o que é um bico, o que é um olho, e aprende que isso é importante para identificar um papagaio. E assim vai buscar na imagem esse bico, esse olho, rodando a imagem inteira. Veja que um bico e um olho são maiores que um pixel, assim, comparando pedaço com pedaço ao invés de pixel a pixel, o gasto computacional é melhor, além de achar o bico ou o olho em qualquer lugar da imagem.

figura por Christian Zambra

Jack pergunta:

— Mas e como você vai achar nosso tesouro?

E AI responde:

— Simples Jack. Me dê esses desenhos da ilha do tesouro, que vou aprender como ela é. Me dê também desenhos de ilhas que não são do tesouro, eu sei que você tem muitos no porão, e ai vou aprender como a ilha não é. Uma coisa importante é que antes de eu sair voando, vamos testar se eu aprendi.

— Assim, faz um favor: Das imagens que são da ilha do tesouro, pegue todas, me entregue 70% para eu treinar, e guarde 30% delas com você. Faça o mesmo com as que não são.

— Depois que eu treinar, você me testa. Misture as que são e as que não são e peça pra eu adivinhar. Se eu acertar a maioria, estou pronto pra voar.

figura por Christian Zambra

Jack e toda a tripulação concordam. É uma grande emoção para eles saírem para velejar novamente, em busca de aventuras e de um grande tesouro. E a razão não os tortura, pois eles estão reduzindo o risco da empreitada graças a AI.

Eles seguem pelo mar, navegando calmamente enquanto AI voa ao longe, voltando de tempos em tempos para descansar e recarregar as baterias.

figura por Christian Zambra

Após 2 dias de navegação, AI volta sorridente e diz: ACHEI! Achei a ilha! Está há 2 horas de navegação em direção ao leste.

A adrenalina toma conta dos piratas, e eles viram a embarcação, velejando à toda velocidade na direção indicada.

A emoção cresce conforme eles se aproximam da ilha e notam que ela realmente se parece com os sonhos de Jack. O coração de Jack começa a bater mais forte, como se estivesse vivendo os seus sonhos, e está.

A embarcação chega à ilha, e os piratas se lançam eufóricamente à água. Nadam até a praia, que já é conhecida de todos por desenhos e imagens. Agora eles sabem o caminho.

Seguem para o local indicado nos desenhos. Cavam com pás, com troncos, com as mãos.

E acham um baú!

E acham dentro do baú a bússola!

Todos ficam extremamente felizes, e agradecem infinitamente a AI, pela aventura e pelo resultado.

figura por Christian Zambra

Para quem quiser se aprofundar no assunto, dois vídeos super interessantes:

Sobre redes neurais convolucionais (convolutional neural network — CNN), e com quase nada de calculo/matemática:

https://www.youtube.com/watch?v=zfiSAzpy9NM

Sobre como as redes conseguem calcular e convergir (gradiente descendente), com um pouco mais de cálculo:

https://www.youtube.com/watch?v=IHZwWFHWa-w

--

--

Christian Zambra
productmanagerslife

Passionate to learn; believes that new products are made to change people’s life for better; Fuzzy AND Techie :) B. Engineering & Advertising. Alma Matter: USP