Redes Convolucionais (1/4)

Baseado no artigo “How do Convolutional Neural Networks work ” por Brandon Rohrer

Na maioria das vezes que se ouve falar sobre um novo e revolucionário algoritmo, muito provavelmente foi criado utilizando-se Redes Convolucionais. Conhecida também pela sigla em inglês CNNs (ou ConvNets), esses algoritmos conseguem executar tarefas até então reservada a humanos e as fazem de uma maneira assustadoramente precisa. Se existe um técnica que justfique a fama repentina, estas são as CNNs.

O interessante é que elas são relativamente fáceis de entender. Vamos iniciar a explicação com a definição do problema:

X e O

Vamos supor que precisamos determinar se uma se uma imagem é um “X” ou um “O”. Nossa rede convolucional tem um trabalho bem modesto: Ela recebe uma imagem, processa e decide se a imagem é um X ou um O.

Uma forma ingênua de tentar resolver esse problema é salvar uma imagem de um X e uma de um O, comparar novas imagens com essas duas e verificar a semelhança. O que torna esta tarefa complicada é que os computadores são extremamente literais. Para o computador, uma imagem é uma matriz bidimensional de pixels (como um tabuleiro gigante) que possui um número associado a cada posição.

No nosso exemplo,  1 é  um pixel branco e -1, preto. Ao comparar duas imagens de forma literal, assim que um pixel não coincide, as imagens também não coincidem. O ideal é poder ver X’s e Os, mesmo que sejam encolhidos,  tortos, girados, deformados, apagados, etc.  É aí que as redes convolucionais mostram todo o seu poder.

Características (features)

Redes convolucionais dividem as imagens em blocos. Esses blocos são chamados de Características. A rede consegue identificar correspondências de Caracteristicas em posicões aproximadas (não literalmente) e por essa razão, seu desempenho é bem superior ao tradicional modelo de comparação pixel a pixel.

Cada Característica atua como uma mini-imagem armazenada na forma de uma matriz bidimensional. As características definem aspectos comuns nas duas imagens. Por exemplo, nas imagens de um X, há linhas diagonais com uma “cruzada” no centro. Essas características vão concidir em todas imagens de X, não importando-se se a image foi distorcida, por exemplo.

Proxima parte ->