|
|
||
|---|---|---|
| .. | ||
| lab | ||
| CNN_Architectures.md | ||
| ConvNetsPyTorch.ipynb | ||
| ConvNetsTF.ipynb | ||
| README.md | ||
README.md
Redes Neurais Convolucionais
Já vimos anteriormente que redes neurais são bastante eficazes ao lidar com imagens, e até mesmo um perceptron de uma camada consegue reconhecer dígitos manuscritos do conjunto de dados MNIST com uma precisão razoável. No entanto, o conjunto de dados MNIST é muito especial, pois todos os dígitos estão centralizados na imagem, o que torna a tarefa mais simples.
Quiz pré-aula
Na vida real, queremos ser capazes de reconhecer objetos em uma imagem independentemente de sua localização exata. Visão computacional é diferente de classificação genérica, porque, ao tentar encontrar um determinado objeto na imagem, estamos escaneando a imagem em busca de padrões específicos e suas combinações. Por exemplo, ao procurar um gato, podemos primeiro buscar linhas horizontais, que podem formar os bigodes, e então uma certa combinação de bigodes pode nos indicar que se trata de uma imagem de um gato. A posição relativa e a presença de certos padrões são importantes, e não sua posição exata na imagem.
Para extrair padrões, utilizaremos o conceito de filtros convolucionais. Como você sabe, uma imagem é representada por uma matriz 2D ou um tensor 3D com profundidade de cor. Aplicar um filtro significa que pegamos uma matriz relativamente pequena chamada kernel do filtro, e para cada pixel na imagem original calculamos a média ponderada com os pontos vizinhos. Podemos imaginar isso como uma pequena janela deslizando sobre toda a imagem e calculando a média de todos os pixels de acordo com os pesos na matriz do kernel do filtro.
![]() |
![]() |
|---|
Imagem por Dmitry Soshnikov
Por exemplo, se aplicarmos filtros de borda vertical e horizontal de 3x3 aos dígitos do MNIST, podemos destacar (por exemplo, valores altos) onde há bordas verticais e horizontais na imagem original. Assim, esses dois filtros podem ser usados para "procurar" bordas. Da mesma forma, podemos projetar diferentes filtros para buscar outros padrões de baixo nível:
Imagem do Leung-Malik Filter Bank
No entanto, enquanto podemos projetar filtros manualmente para extrair alguns padrões, também podemos projetar a rede de forma que ela aprenda os padrões automaticamente. Essa é uma das principais ideias por trás das CNNs.
Principais ideias por trás das CNNs
O funcionamento das CNNs é baseado nas seguintes ideias importantes:
- Filtros convolucionais podem extrair padrões
- Podemos projetar a rede de forma que os filtros sejam treinados automaticamente
- Podemos usar a mesma abordagem para encontrar padrões em características de alto nível, não apenas na imagem original. Assim, a extração de características pelas CNNs funciona em uma hierarquia de características, começando com combinações de pixels de baixo nível até combinações de alto nível de partes da imagem.
Imagem de um artigo de Hislop-Lynch, baseado em sua pesquisa
✍️ Exercícios: Redes Neurais Convolucionais
Vamos continuar explorando como as redes neurais convolucionais funcionam e como podemos obter filtros treináveis, trabalhando nos notebooks correspondentes:
Arquitetura de Pirâmide
A maioria das CNNs usadas para processamento de imagens segue a chamada arquitetura de pirâmide. A primeira camada convolucional aplicada às imagens originais geralmente possui um número relativamente baixo de filtros (8-16), que correspondem a diferentes combinações de pixels, como linhas horizontais/verticais ou traços. No próximo nível, reduzimos a dimensão espacial da rede e aumentamos o número de filtros, o que corresponde a mais combinações possíveis de características simples. Com cada camada, à medida que avançamos para o classificador final, as dimensões espaciais da imagem diminuem e o número de filtros aumenta.
Como exemplo, vejamos a arquitetura do VGG-16, uma rede que alcançou 92,7% de precisão na classificação top-5 do ImageNet em 2014:
Imagem de Researchgate
Arquiteturas de CNN Mais Conhecidas
Continue seus estudos sobre as arquiteturas de CNN mais conhecidas




