DenseNet (Rede Neural Convolucional Densamente Conectada) é uma arquitetura de rede neural para reconhecimento de imagens que conecta cada camada a todas as outras camadas de forma feed-forward. Diferentemente das redes neurais convolucionais tradicionais com L camadas que possuem L conexões, a DenseNet possui L(L+1)/2 conexões diretas. Para cada camada, os mapas de características de todas as camadas anteriores são usados como entradas, e seus próprios mapas de características são usados como entradas para todas as camadas subsequentes. Esse padrão de conectividade densa foi introduzido em um artigo de 2016 por Gao Huang, Zhuang Liu, Laurens van der Maaten e Kilian Q. Weinberger, e foi apresentado na Conferência IEEE de Visão Computacional e Reconhecimento de Padrões (CVPR) de 2017.
A arquitetura foi projetada para resolver o problema do gradiente desaparecendo em redes profundas. Ao fornecer caminhos curtos das camadas iniciais para as camadas posteriores e para a função de perda, a DenseNet facilita o fluxo de gradientes durante o treinamento. Ela também incentiva a reutilização de características, pois cada camada recebe conhecimento coletivo de todas as camadas anteriores, resultando em modelos mais compactos. A DenseNet alcançou resultados notáveis nos benchmarks ImageNet e CIFAR, frequentemente exigindo menos parâmetros do que arquiteturas comparáveis, como modelos de aprendizado profundo baseados em conexões residuais.
Conectividade Densa e Taxa de Crescimento
Em uma DenseNet, a l-ésima camada recebe os mapas de características de todas as camadas anteriores, x_0, x_1, ..., x_{l-1}, como entrada. A saída da l-ésima camada é definida como x_l = H_l([x_0, x_1, ..., x_{l-1}]), onde [x_0, x_1, ..., x_{l-1}] denota a concatenação dos mapas de características. A função H_l é uma operação composta que tipicamente inclui normalização em lote, uma ativação de unidade linear retificada (ReLU) e uma convolução 3x3. Essa concatenação, em vez de soma, distingue a DenseNet das redes residuais, que usam conexões de salto aditivas.
Cada camada adiciona um número fixo de mapas de características, denominado taxa de crescimento k. Se cada H_l produz k mapas de características, então a l-ésima camada tem k_0 + k*(l-1) mapas de características de entrada, onde k_0 é o número de canais na imagem de entrada. Taxas de crescimento comuns são 12, 24 e 32. Uma taxa de crescimento menor resulta em uma rede mais estreita, enquanto valores maiores aumentam a capacidade. A conectividade densa significa que o número total de mapas de características cresce quadraticamente com a profundidade, mas o uso de camadas de gargalo e compressão ajuda a controlar o tamanho do modelo.
Camadas de Gargalo e Compressão
Para melhorar a eficiência computacional, a DenseNet incorpora uma camada de gargalo em cada H_l para arquiteturas como a DenseNet-B. A camada de gargalo consiste em normalização em lote, ReLU, uma convolução 1x1 que reduz o número de mapas de características para 4k, seguida por uma convolução 3x3. Esse design reduz o número de canais de entrada para a convolução 3x3, diminuindo a contagem de parâmetros e o custo computacional. Por exemplo, na DenseNet-BC, o gargalo é combinado com compressão.
A compressão, denotada pelo parâmetro theta (com valores menores ou iguais a 1), é aplicada nas camadas de transição. Uma camada de transição, posicionada entre blocos densos, consiste em normalização em lote, uma convolução 1x1 e uma operação de pooling médio 2x2. A convolução 1x1 reduz o número de mapas de características por um fator de theta. Quando theta é menor que 1, a rede é referida como DenseNet-C. A combinação de gargalo e compressão, DenseNet-BC, mostrou-se particularmente eficaz, alcançando alta precisão com menos parâmetros do que outras arquiteturas.
Blocos Densos e Camadas de Transição
A rede é organizada em blocos densos, onde a conectividade densa é aplicada dentro de cada bloco. Entre os blocos, as camadas de transição controlam o tamanho dos mapas de características. Uma arquitetura DenseNet típica para ImageNet, como a DenseNet-121, consiste em quatro blocos densos com 6, 12, 24 e 16 camadas respectivamente, com uma taxa de crescimento de 32. A primeira camada de convolução antes do primeiro bloco denso tem 64 canais. Após o bloco denso final, uma camada de pooling médio global e um classificador softmax produzem a saída. As camadas de transição entre os blocos usam compressão para reduzir o número de mapas de características, o que ajuda a diminuir a pegada de memória do modelo.
Treinamento e Desempenho
Os modelos DenseNet são treinados usando descida de gradiente estocástica com momentum, decaimento de peso e um cronograma de taxa de aprendizado que inclui aquecimento e decaimento. Técnicas de aumento de dados, como recorte aleatório, inversão e normalização, são comumente empregadas. No conjunto de dados ImageNet Large Scale Visual Recognition Challenge (ILSVRC) 2012, a DenseNet-201 alcançou uma taxa de erro top-1 de 22,15% e uma taxa de erro top-5 de 6,20%, o que era competitivo com os resultados de ponta da época. No CIFAR-10 e CIFAR-100, a DenseNet-BC com uma taxa de crescimento de 12 alcançou taxas de erro de 3,46% e 17,18% respectivamente, superando muitas variantes de redes residuais com menos parâmetros.
A conectividade densa também fornece uma forma implícita de supervisão profunda, pois cada camada tem acesso direto ao gradiente da função de perda. Essa propriedade reduz a necessidade de classificadores auxiliares. A DenseNet foi amplamente adotada em várias tarefas de visão computacional, incluindo segmentação semântica, detecção de objetos e análise de imagens médicas. Seus princípios de design influenciaram arquiteturas subsequentes, como aquelas usadas em sistemas de inteligência artificial para compreensão de imagens.
Impacto e Variantes
O sucesso da DenseNet levou a várias variantes e extensões. Por exemplo, o conceito de conectividade densa foi combinado com outros mecanismos em modelos como Redes de Caminho Duplo, que mesclam conexões residuais e densas. No contexto da pesquisa em aprendizado de máquina, a DenseNet tem sido usada como espinha dorsal para extração de características em muitas aplicações. Seu uso eficiente de parâmetros a torna adequada para implantação em dispositivos com recursos limitados, incluindo aqueles da Samsung Electronics e outros fabricantes de hardware móvel. A arquitetura também serviu como referência para estudos sobre design de redes neurais, como aqueles que exploram o impacto da largura, profundidade e cardinalidade. Embora arquiteturas mais recentes, como os transformadores, tenham se tornado dominantes em algumas áreas, a DenseNet permanece um modelo fundamental no design de redes neurais convolucionais.