Redes convolucionais para imagens
Por que um MLP é um contrassenso em imagens, como se calcula uma convolução e como ler as dimensões de uma CNN real de ponta a ponta.
Redes convolucionais para imagens
Pegue uma foto colorida de 224 × 224 pixels e conecte-a a uma camada densa de 1000 unidades. Faça a conta: $224 \times 224 \times 3 = 150,528$ entradas, multiplicadas por 1000 saídas, mais os vieses. Cento e cinquenta milhões de parâmetros. Para uma única camada, sobre uma única imagem de resolução modesta. Seiscentos megabytes de pesos antes mesmo de começar a aprender qualquer coisa.
O problema, no entanto, não é primeiro uma questão de tamanho. É que esse modelo trata a imagem como um saco de 150.528 números independentes. O pixel no canto superior esquerdo e seu vizinho imediato são, para ele, tão estranhos um ao outro quanto dois pixels situados em cantos opostos. Toda a estrutura da imagem — o fato de a vizinhança importar, de um contorno ser um contorno onde quer que esteja — é descartada antes do primeiro cálculo. A rede terá de reaprendê-la a partir dos exemplos, o que é possível, mas exige uma quantidade absurda de dados para redescobrir algo que já se sabia.
As redes convolucionais incorporam esse conhecimento à arquitetura. Apenas duas hipóteses: os padrões úteis são locais, e um padrão útil em um lugar também é útil em outro. A primeira substitui a conexão total por uma pequena vizinhança. A segunda permite reutilizar os mesmos pesos em toda a imagem. Essas duas ideias reduzem os 150 milhões de parâmetros a alguns milhares e, sobretudo, fornecem ao modelo uma estrutura que ele não precisa mais adivinhar.