Você sabe como as redes neurais convolucionais identificam padrões em grandes conjuntos de dados? O segredo está no pooling.
O pooling diminui a complexidade dos modelos de aprendizado profundo ao reduzir o tamanho de entrada, preservando características essenciais e relações entre os dados. Esta operação também é conhecida como downsampling ou subsampling.
Redes neurais convolucionais (CNNs), um tipo de rede neural artificial, normalmente usam operações de pooling para reconhecimento e processamento de imagens. Com CNN, não há necessidade de extrair manualmente características dos dados visuais. Em vez disso, essas redes aplicam filtros de diferentes tamanhos sobre a imagem para aprender sobre suas características enquanto garantem a variância de tradução. Isso significa que, mesmo que o objeto se mova para uma localização diferente em uma imagem, ele será reconhecido como o mesmo objeto.
Essas redes neurais convolucionais têm três camadas fundamentais: convolucional, pooling e camadas densas totalmente conectadas. A camada convolucional cria um mapa de características através de filtros que ajudam a reconhecer padrões.
A última, uma camada densa totalmente conectada, ajuda a classificar nas etapas finais de uma rede neural.
O que são camadas de pooling?
As camadas de pooling em redes neurais convolucionais reduzem as dimensões dos mapas de características, fazendo com que uma rede funcione mais rapidamente. Essas camadas ajudam a rede a identificar as partes mais importantes da imagem, facilitando o reconhecimento de padrões.
As camadas de pooling também evitam que uma rede se ajuste demais, uma causa de aprendizado de detalhes irrelevantes. Isso aumenta a velocidade da rede no processamento de imagens e a torna menos propensa a cometer erros.
Apesar de reduzir as dimensões, as camadas de pooling retêm características essenciais necessárias para a classificação. Isso permite que as CNNs gerenciem imagens grandes e arquiteturas profundas de forma mais eficaz.
Como funcionam as camadas de pooling?
As camadas de pooling tornam as CNNs mais rápidas e eficientes. Essas camadas usam uma janela deslizante (2x2 ou 3x3) para se mover pela imagem em etapas. A operação é realizada em cada etapa com base no tipo de pooling empregado. Por exemplo, se o pooling máximo for escolhido, o maior valor na janela é tomado. Este maior valor representa a característica mais essencial da imagem.
Suponha que a entrada seja uma imagem de três cães. O maior valor aqui corresponderia ao rosto do cão. Por outro lado, se o pooling médio for escolhido, ele dará uma visão geral das características da imagem, como o padrão ou estrutura de um cão.
A operação de pooling cria uma representação reduzida dos dados de entrada. Como resultado, a imagem se torna menor e mais acessível para processar, aumentando a velocidade computacional.
Você pode aplicar camadas de pooling várias vezes em modelos de aprendizado profundo, reduzindo progressivamente as dimensões espaciais dos mapas de características. Isso permite que a rede gerencie imagens grandes e arquiteturas profundas de forma mais eficaz.
Enquanto o pooling refina as saídas, o aprendizado em si começa mais cedo. Aprenda como backpropagation impulsiona o treinamento de redes neurais.
Quer aprender mais sobre Software de Redes Neurais Artificiais? Explore os produtos de Rede Neural Artificial.
Por que as camadas de pooling são importantes?
Quando as camadas convolucionais produzem um mapa de características, ele é dependente da localização. Isso significa que um objeto seria irreconhecível se movido para uma localização diferente. A camada de pooling oferece invariância translacional, garantindo que, mesmo se um objeto em uma imagem for traduzido, a rede neural convolucional ainda possa reconhecê-lo.
As camadas de pooling existem acima da camada convolucional, onde reduzem a amostra da saída da camada de convolução através de filtros de várias dimensões. Normalmente, são usadas camadas de pooling máximo ou médio, mas há vários outros tipos de camadas de pooling usadas em CNNs, dependendo do caso de uso.
Tipos de camadas de pooling
Existem diferentes tipos de pooling, como máximo, médio, global ou estocástico. Aprofunde-se para entender seus benefícios e como eles diferem.
Pooling máximo
O pooling máximo é o método de pooling mais comum. Ele divide o mapa de características de entrada em regiões menores, chamadas janelas de pooling ou campos receptivos. Estas são tipicamente de tamanho 2x2 ou 3x3. Em cada janela de pooling, ocorre uma operação de agregação, onde o valor máximo na grade 2x2 é selecionado.
O valor máximo corresponde à característica mais significativa dentro de cada região da imagem, facilitando para o sistema identificar padrões-chave.
Abaixo está o processo de pooling máximo.
- Crie janelas de pooling. O mapa de características é dividido em regiões não sobrepostas de tamanhos 2x2 ou 3x3.
- Escolha o valor máximo. O pooling máximo escolhe o valor mais alto para cada região.
- Produza um mapa de características pooled. Usando o valor mais alto de cada região, crie um mapa de características pooled. Este terá dimensões menores do que o mapa de características convoluído.
À medida que o tamanho do mapa de características é reduzido, também é reduzido o poder computacional necessário para processar a imagem. Este tipo de pooling captura as características mais importantes e descarta os detalhes irrelevantes. Isso torna a rede mais robusta a pequenos deslocamentos ou traduções em uma imagem.
Pooling médio
O pooling médio funciona da mesma forma que o pooling máximo, mas em vez de selecionar o valor máximo, ele toma o valor médio de cada região. Ao considerar todos os valores em uma região, o pooling médio retém mais informações sobre as características.
Aqui está como o pooling médio funciona:
- Divida o mapa de características. O mapa de características é dividido em regiões não sobrepostas.
- Calcule o valor médio. O pooling médio calcula a média de todos os valores em uma área.
- Desenvolva um mapa de características pooled. Esses valores médios compõem o mapa de características pooled. O mapa de características pooled produzido pelo pooling médio é mais suave e menos ruidoso do que o produzido pelo pooling máximo.
Pooling global
O pooling global é aplicado sobre todo o mapa de características e fornece um único valor para cada mapa de características. Este tipo de camada de pooling funciona nas etapas finais das redes neurais convolucionais, onde o mapa de características é convertido em um vetor de tamanho fixo antes de ser passado para as camadas totalmente conectadas.
O pooling global também inclui métodos de pooling máximo e médio. O pooling máximo global usa o valor máximo de todo o mapa de características, enquanto o pooling médio global toma o valor médio. Ele fornece um tamanho de saída fixo, independentemente do tamanho da entrada, tornando mais simples conectar a camadas densas totalmente conectadas.
Pooling estocástico
O pooling estocástico introduz aleatoriedade no processo de pooling. Ele escolhe valores com base na distribuição de probabilidade derivada de diferentes valores na região de pooling. Aqui, você não seleciona um valor máximo ou médio de diferentes áreas no mapa de características.
Fonte: Citeseerx
A aleatoriedade impede que a rede se ajuste demais aos dados de treinamento. Isso leva a uma melhor generalização, permitindo que a rede explore diferentes representações de características.
Benefícios e desafios das camadas de pooling
As camadas de pooling preservam as características mais críticas dos dados de entrada, oferecendo invariância de tradução. Isso permite que o modelo gere a mesma saída, independentemente de pequenas mudanças na entrada.
Essas camadas são cruciais no tamanho e complexidade dos modelos de aprendizado de máquina, tornando-as úteis em várias tarefas de aprendizado de máquina. Elas são colocadas após as camadas convolucionais em uma CNN, onde reduzem a amostra da saída, ajudando o modelo a processá-la mais rapidamente. Essas camadas também ajudam a selecionar as características mais importantes de uma imagem usando a técnica de pooling máximo.
Embora a camada de pooling reduza as dimensões de uma camada de entrada, ela também contribui para alguma perda de informação dos mapas de características. Há a possibilidade de suavizar demais os mapas de características, o que pode levar à perda de detalhes cruciais para a tarefa de regressão final.
Além disso, entram em jogo hiperparâmetros como regiões de pooling e tamanho de stride. O stride avalia quantos quadrados ou pixels os filtros pulam ao se moverem pela imagem da esquerda para a direita ou de cima para baixo. Você precisa ajustá-los para alcançar um desempenho ideal, o que pode ser demorado e exigir um conhecimento razoável do modelo.
Tornando as CNNs mais rápidas
As camadas de pooling tornam as redes neurais mais robustas contra distorções nos dados de entrada. Elas também melhoram o desempenho do modelo em novos dados não vistos, reduzindo a amostra e impedindo que ele se ajuste muito de perto aos dados de treinamento.
No geral, elas tornam as redes neurais convolucionais mais rápidas ao simplificar os dados enquanto mantêm informações importantes.
Aprenda sobre redes neurais recorrentes e entenda como elas facilitam o reconhecimento de fala e a legendagem de imagens.
Editado por Monishka Agrawal

Sagar Joshi
Sagar Joshi is a former content marketing specialist at G2 in India. He is an engineer with a keen interest in data analytics and cybersecurity. He writes about topics related to them. You can find him reading books, learning a new language, or playing pool in his free time.
