UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO” CÂMPUS DE ILHA SOLTEIRA RICARDO FERNANDO NUNES Classificação de Imagens Baseada no Aprendizado Profundo e na Teoria da Ressonância Adaptativa Ilha Solteira – SP 2024 RICARDO FERNANDO NUNES CLASSIFICAÇÃO DE IMAGENS BASEADA NO APRENDIZADO PROFUNDO E NA TEORIA DA RESSONÂNCIA ADAPTATIVA Tese apresentada à Faculdade de Engenharia da Universidade Estadual Paulista – UNESP, Câmpus de Ilha Solteira, como requisito para a obtenção do título de Doutor em Engenharia Elétrica. Área de Conhecimento: Automação. Orientador: Prof. Dr. Carlos Roberto Minussi Ilha Solteira - SP 2024 Nunes Classificação de Imagens Baseada no Aprendizado Profundo e na Teoria da Ressonância AdaptativaIlha Solteira2024 118 Sim Tese (doutorado)Engenharia ElétricaAutomaçãoNão FICHA CATALOGRÁFICA Desenvolvido pelo Serviço Técnico de Biblioteca e Documentação Nunes, Ricardo Fernando. Classificação de imagens baseada no aprendizado profundo e na teoria da ressonância adaptativa / Ricardo Fernando Nunes. -- Ilha Solteira: [s.n.], 2024 114 f. : il. Tese (doutorado) - Universidade Estadual Paulista. Faculdade de Engenharia de Ilha Solteira. Área de conhecimento: Automação, 2024 Orientador: Carlos Roberto Minussi Inclui bibliografia 1. Rede convolucional profunda. 2. Teoria da ressonância adaptativa. 3. Classificação de imagem. N972c IMPACTO POTENCIAL DESTA PESQUISA Esta pesquisa de doutorado excursionou adentro de uma fronteira do conhecimento humano nominada inteligência artificial (IA). Neste contexto, as grandes corporações usam, habitualmente, as inovações produzidas por pesquisadores e cientistas, em especial das universidades, aliada ao grande poder econômico, buscam monopolizar as aplicações nas várias áreas da atividade humana, tais como, os grandes modelos chatbot, nas comunicações, saúde, entre outras que representam vastos lucros e protagonismos. Invariavelmente, implantam unidades geradoras de eletricidade de grande porte para atender exclusivamente as suas demandas. Desenvolvem sistemas para atenderem os seus interesses em detrimento do que a sociedade efetivamente necessita. Usam mão de obra barata para treinarem as redes neurais artificiais. Contudo, diferentemente, há bastante espaço para o desenvolvimento de sistemas visando à resolução de problemas essencialmente de interesse social, tentando desvendar a complexidade da IA e transformando em algo tangível e útil de forma mais democrática possível. Este é o foco desta pesquisa. Por conseguinte, alternativamente aos modelos atuais de inteligência artificial, sobretudo no campo de visão computacional, amplamente utilizados na atualidade, essa pesquisa apresenta um estudo de um modelo alternativo que forneça maior confiabilidade e com desempenho competitivo em relação às técnicas atuais, que seja flexível de modo a viabilizar futuras implementações em diversas áreas, como: saúde, robótica, transporte, segurança. POTENTIAL IMPACT OF THIS RESEARCH This doctoral research explored a frontier of human knowledge called artificial intelligence (AI). In this context, large corporations habitually use innovations produced by researchers and scientists, especially from universities, combined with great economic power, they seek to monopolize applications in various areas of human activity, such as large chatbot models, in communications, health, among others that represent vast profits and prominence. They invariably deploy large electricity generating units to exclusively meet their demands. They develop systems to meet their interests to the detriment of what society actually needs. They use cheap labor to train artificial neural networks. However, differently, there is plenty of room for the development of systems aimed at solving problems essentially of social interest, trying to unravel the complexity of AI and transforming it into something tangible and useful in the most democratic way possible. This is the focus of this research. Therefore, as an alternative to current artificial intelligence models, especially in the field of computer vision, which are widely used today, this research presents a study of an alternative model that provides greater reliability and competitive performance in relation to current techniques, which is flexible in terms of in order to enable future implementations in various areas, such as: health, robotics, transport, security. AGRADECIMENTOS O início e finalização deste trabalho só foi possível pelo incentivo, apoio e colaboração de diferentes pessoas e instituições que cruzaram o meu caminho formativo ao longo da minha trajetória acadêmico-profissional. Em especial, agradeço: Aos meus pais, Marcos Luiz Nunes e Conceição de Souza Silva Nunes, por todo incentivo e apoio ao longo da minha trajetória de vida; sou grato a cada conselho, a cada suor e luta para conseguir dar educação aos filhos mesmo diante de tantas adversidades sociais e econômicas. Ao meu irmão, Eduardo Fernando Nunes, meu parceiro desde sempre; em que dividimos tudo, desde balas e chocolates, mas, principalmente histórias, experiências e expectativas de vida. À minha companheira de vida, Thamiris Silva Fernandes; que esteve ao meu lado durante a trajetória do doutorado, muitas vezes oferecendo ouvidos, ombros e abraços nos momentos de dúvidas e frustações, mas também nos de alívio e felicidade. A todos os professores que cruzaram minha trajetória formativa, da escola à universidade. Aos docentes e funcionários do Departamento de Engenharia Elétrica e da Seção de Pós-Graduação da FEIS/UNESP, pelos ensinos ministrados e cordialidade. Ao meu orientador, Prof. Dr. Carlos Roberto Minussi, por todas as oportunidades dadas a mim ao longo destes anos. Oportunidade de aprender, de crescer e de me reinventar a cada reunião. Oportunidade de partilhar comigo todo o conhecimento e sua dedicação em prol da ciência. A todos os amigos que fiz durante o curso que diretamente ou indiretamente colaboraram para a realização deste trabalho, pelas trocas de conhecimento e boas recordações. A todos os companheiros do Laboratório de Sistemas Inteligentes, em especial, ao Haislan Ranelli Santana Bernardes e ao Anthony Ferreira Lamarca, compartilhando conhecimentos, apoios, frustações e boas notícias. Ao Instituto Federal de Educação, Ciência e Tecnologia do Estado de São Paulo (IFSP) pelo incentivo acadêmico. RESUMO Com o recente desenvolvimento de grandes bancos de dados e do processamento paralelo, entre outras facilidades computacionais, as Redes Convolucionais Profundas, com sua alta precisão de classificação, ganharam muitos destaques em tarefas de visão computacional. Estas redes retém uma grande quantidade de conhecimento, pois, normalmente, são treinadas de forma otimizada com muitas imagens, o que demanda um longo período. Entretanto, em suas formas clássicas, utilizam o algoritmo de retropropagação e, portanto, apresentam fragilidades como, esquecimento catastrófico, alucinação e passividade a ataques adversários. Por outro lado, as técnicas de transferência de conhecimento possibilitam aproveitar o vasto conhecimento retido nestas redes e utilizar, por exemplo, uma rede neural da família da Teoria da Ressonância Adaptativa como um agente classificador. Este estudo propõe um modelo, denominado de VGG ARTMAP Fuzzy, que utiliza a arquitetura VGG-16 para extração de características de imagens e uma rede neural ARTMAP Fuzzy para a classificação. O modelo é testado por meio de simulações com bancos de dados relativos à diferentes aplicações de problemas de visão computacional e seu desempenho é validado tanto pela acurácia de suas respostas em testes quanto aos tempos de treinamento e teste. Palavras-chave: rede convolucional profunda; teoria da ressonância adaptativa; classificação de imagem. ABSTRACT With the recent development of large databases and parallel processing, among other computational facilities, Deep Convolutional Networks, with their high classification accuracy, have gained much prominence in computer vision tasks. These networks retain a large amount of knowledge because they are usually trained in an optimized way with many images, which requires a long period of time. However, in their classical forms, they use the backpropagation algorithm and, therefore, present weaknesses such as catastrophic forgetting, hallucination and passivity to adversarial attacks. On the other hand, knowledge transfer techniques make it possible to take advantage of the vast knowledge retained in these networks and use, for example, a neural network from the Adaptive Resonance Theory family as a classifying agent. This study proposes a Fuzzy VGG ARTMAP model, which uses the VGG-16 architecture for image feature extraction and a Fuzzy ARTMAP neural network for classification. The model is tested through simulations with databases related to different applications of computer vision problems and its performance is validated both by the accuracy of its responses in tests and by the training and testing times. Keywords: deep learning network, adaptive resonance theory, image classification. LISTA DE FIGURAS Figura 1 - Inteligência artificial, aprendizado de máquina e aprendizado profundo. ............... 15 Figura 2 - Demonstração de um ataque de exemplo adversário. .............................................. 19 Figura 3 - Arquitetura básica de uma rede neural convolucional. ............................................ 25 Figura 4 - Operação de uma CNN para classificação de imagens............................................ 26 Figura 5 - Processamento de uma imagem pelo processo de convolução. ............................... 27 Figura 6 - Ilustração de duas camadas convolucionais............................................................. 28 Figura 7 - Exemplos de campos receptíveis. ............................................................................ 29 Figura 8 - Diferentes tipos de tratamento da borda da imagem durante a convolução: (a) valor zero assumido; (b) adjacência considerada; (c) borda desconsiderada. ................................... 31 Figura 9 - Convolução com stride com valor 1 e sem padding. ............................................... 31 Figura 10 - Exemplos de funções de ativações usadas em redes neurais profundas. ............... 33 Figura 11 - Operações de pooling: tamanho 2x2 e stride 2. ..................................................... 34 Figura 12 - Arquitetura LeNet-5. .............................................................................................. 36 Figura 13 - Arquitetura AlexNet. ............................................................................................. 37 Figura 14 - Comparação entre camadas convolucionais: (a) tradicional em CNN e (b) mlpconv. .................................................................................................................................... 38 Figura 15 - Comparação entre camadas totalmente conectadas: (a) flatten e (b) global average pooling. ..................................................................................................................................... 39 Figura 16 - Arquitetura da Network in Network. ...................................................................... 39 Figura 17 - Arquitetura VGGnet-16 (configuração-D). ........................................................... 41 Figura 18 - Estrutura do Módulo Inception: (a) Conceito básico do módulo Inception (b) Módulo Inception com redução de dimensionalidade. ............................................................. 42 Figura 19 - Arquitetura rede GoogLeNet. ................................................................................ 43 Figura 20 - Bloco residual de duas camadas. ........................................................................... 44 Figura 21 - Arquiteturas de blocos residuais: (a) comum; (b) Bottleneck. ............................... 46 Figura 22 - Comparação entre exemplos de blocos residuais de dimensão 256: (a) ResNet; (b) ResNext. ................................................................................................................................... 47 Figura 23 - Conexões entre blocos densos: etapa de propagação............................................. 48 Figura 24 - Comparação entre aprendizados: (a) tradicional; (b) por transferência. ................ 53 Figura 25 - Representação do aprendizado de transferência a partir da definição de domínio e tarefa. ........................................................................................................................................ 54 Figura 26 - Abordagens de transferência de aprendizado para CNNs. .................................... 58 Figura 27 - Anatomia da rede ART elementar. ........................................................................ 64 Figura 28 - Fluxograma do algoritmo de treinamento da rede ART 1. .................................... 68 Figura 29 - Classificação por hiper-retângulo de uma categoria. ............................................. 69 Figura 30 - Anatomia e algoritmo de treinamento da rede ART Fuzzy. .................................. 70 Figura 31 - Arquitetura básica das redes ARTMAP................................................................. 73 Figura 32 - Algoritmo da rede ARTMAP Fuzzy. ..................................................................... 75 Figura 33 - Arquitetura VGG-ARTMAP Fuzzy: versão com achatamento. ............................ 78 Figura 34 - Arquitetura VGG-ARTMAP Fuzzy: versão com pooling médio global. .............. 78 Figura 35 - VGG 16 adaptada com camada densa. .................................................................. 80 Figura 36 - MNIST: Exemplos de amostras ambíguas............................................................. 81 Figura 37 - VGG ARTMAP Fuzzy com achatamento - relação do número de categorias da ARTa por amostra para o conjunto MNIST. ............................................................................ 83 Figura 38 - VGG ARTMAP Fuzzy com achatamento - relação do tempo de treinamento por amostra para o conjunto MNIST. ............................................................................................. 83 Figura 39 - VGG ARTMAP Fuzzy com achatamento - Desempenho do sistema para a etapa de teste com o conjunto MNIST. .............................................................................................. 84 Figura 40 - VGG ARTMAP Fuzzy com pooling médio global - relação do número de categorias da ARTa por amostra para o conjunto MNIST. ...................................................... 86 Figura 41 - VGG ARTMAP Fuzzy com pooling médio global - relação do tempo de treinamento por amostra para o conjunto MNIST. ................................................................... 86 Figura 42 - VGG ARTMAP Fuzzy com pooling médio global - Desempenho do sistema para a etapa de teste com o conjunto MNIST. ................................................................................. 87 Figura 43 - VGG-16 curvas de acurácias de treinamento e validação por época. .................... 88 Figura 44 - VGG 16 adaptada - Desempenho do sistema para a etapa de teste com o conjunto MNIST. ..................................................................................................................................... 89 Figura 45 - Exemplos de amostras adversárias do MNIST. ..................................................... 91 Figura 46 - VGG-16 adaptada - Desempenho do sistema para a etapa de teste com o conjunto MNIST adversário. ................................................................................................................... 92 Figura 47 - VGG ARTMAP Fuzzy com achatamento - Desempenho do sistema para a etapa de teste com o conjunto MNIST adversário. ............................................................................ 93 Figura 48 - Exemplos de amostras: Brain MRI Images for Brain Tumor Detection................ 94 Figura 49 - Exemplos de amostras: Car vs Bike Classification. .............................................. 95 Figura 50 - Exemplos de amostras: Muffin vs chihuahua. ....................................................... 96 Figura 51 - Exemplos de amostras: Ripe and Unripe Tomatoes. ............................................. 96 Figura 52 - Exemplos de amostras: Rock-Paper-Scissors game. ............................................. 97 Figura 53 - Exemplos de amostras: Traffic Sign. ..................................................................... 98 LISTA DE TABELAS Tabela 1 - Arquiteturas de ResNet para ImageNet. .................................................................. 45 Tabela 2 - Arquiteturas de DenseNets. ..................................................................................... 50 Tabela 3 - Relação entre as diferentes configurações de aprendizagem de transferência. ....... 56 Tabela 4 - Diferentes abordagens usadas em diferentes configurações. .................................. 57 Tabela 5 - Exemplo de processamento por One-Hot-Encoding. .............................................. 79 Tabela 6 - Dados de treinamento e teste do conjunto MNIST - VGG ARTMAP Fuzzy com achatamento. ............................................................................................................................. 82 Tabela 7 - Dados de treinamento e teste do conjunto MNIST - VGG ARTMAP Fuzzy com pooling médio global. ............................................................................................................... 85 Tabela 8 - Dados de treinamento e teste do conjunto MNIST - VGG adaptada. ..................... 88 Tabela 9 - Comparação de acurácias para MNIST. .................................................................. 90 Tabela 10 - Acurácias e tempo de treinamento de VGG ARTMAP Fuzzy com pooling médio global e VGG-16 adaptada. ...................................................................................................... 99 LISTA DE ABREVIATURAS E SIGLAS ANN Artificial Neural Network ART Adaptive Resonance Theory AE Auto-Encoder BIM Basic Iterative Method CNN Convolutional Neural Network DBN Deep Belief Network DL Deep Learning DNN Deep Neural Network DRL Deep Reinforcement Learning ERF Effective Receptive Field FC Fully Connected FCN Fully Convolutional Network FGSM Fast Gradient Sign Method GAN Generative Adversarial Network GPU Graphics Processing Unit GRU Gated Recurrent Units IA Inteligência Artificial ILSVRC ImageNet LargeScale Visual Recognition Challenge LSTM Long Short-Term Memory LTM Long-Term Memory ML Machine Learning MCP McCulloch-Pitts NiN Network in Network PGD Projected Gradient Descent ReLU Rectified Linear Activation Function RF Receptive Field RNA Redes Neurais Artificiais RNN Recurrent Neural Networks STM Short-Term Memory VG Vanishing Gradient VGG Visual Geometry Group WTA Winner Take All SUMÁRIO 1 INTRODUÇÃO ................................................................................................... 15 1.1 A PROBLEMÁTICA DO APRENDIZADO PROFUNDO ................................. 18 1.2 ALTERNATIVAS AO APRENDIZADO PROFUNDO ...................................... 20 1.3 OBJETIVOS .......................................................................................................... 21 1.4 JUSTIFICATIVA .................................................................................................. 22 1.5 ORGANIZAÇÃO DO TEXTO ............................................................................. 22 2 REDES NEURAIS CONVOLUCIONAIS ........................................................ 24 2.1 ARQUITETURA DA REDE NEURAL CONVOLUCIONAL ............................ 24 2.1.1 Camada convolucional ........................................................................................ 26 2.1.1.1 Mapas de caraterísticas .......................................................................................... 27 2.1.1.2 Campo receptível ................................................................................................... 29 2.1.1.3 Padding .................................................................................................................. 30 2.1.1.4 Stride ...................................................................................................................... 31 2.1.1.5 Função de ativação ................................................................................................ 32 2.1.2 Camada de pooling .............................................................................................. 33 2.1.3 Camada totalmente conectada ........................................................................... 34 2.2 ARQUITETURAS POPULARES DE CNNS ....................................................... 35 2.2.1 LeNet ..................................................................................................................... 35 2.2.2 AlexNet.................................................................................................................. 36 2.2.3 Network in Network ............................................................................................ 37 2.2.4 VGGnet ................................................................................................................. 40 2.2.5 GoogLeNet ............................................................................................................ 41 2.2.6 ResNet ................................................................................................................... 44 2.2.7 ResNext ................................................................................................................. 46 2.2.8 DenseNet ............................................................................................................... 48 3 TRANSFERÊNCIA DE APRENDIZADO ....................................................... 51 3.1 APRENDIZADO TRADICIONAL E APRENDIZADO TRANSFERIDO ......... 52 3.2 DEFINIÇÕES E NOTAÇÕES .............................................................................. 53 3.3 CONFIGURAÇÕES DE TRANSFERÊNCIA DE APRENDIZADO .................. 54 3.3.1 Transferência de conhecimento indutiva .......................................................... 54 3.3.2 Transferência de conhecimento transdutiva ..................................................... 55 3.3.3 Transferência de conhecimento não supervisionada ........................................ 56 3.4 ABORDAGENS DE APRENDIZAGEM DE TRANSFERÊNCIA ..................... 56 3.5 TRANSFERÊNCIA DE APRENDIZADO PARA REDES CONVOLUCIONAIS . ............................................................................................................................... 58 3.5.1 Estratégias de transferência de aprendizado .................................................... 59 3.6 TRANSFERÊNCIA NEGATIVA ......................................................................... 60 4 TEORIA DA RESSONÂNCIA ADAPTATIVA ............................................... 62 4.1 CARACTERÍSTICAS E DINÂMICA DAS REDES ART .................................. 63 4.2 ART 1 .................................................................................................................... 65 4.3 ART FUZZY .......................................................................................................... 68 4.4 ARTMAP E ARTMAP FUZZY ............................................................................ 72 5 VGG ARTMAP FUZZY ...................................................................................... 76 6 SIMULAÇÕES E RESULTADOS ..................................................................... 80 6.1 MNIST ................................................................................................................... 81 6.1.1 VGG ARTMAP Fuzzy com achatamento ......................................................... 81 6.1.2 VGG ARTMAP Fuzzy com pooling médio global ............................................ 84 6.1.3 VGG-16 adaptada ................................................................................................ 87 6.1.4 Considerações sobre os resultados: MNIST ...................................................... 89 6.2 MNIST ADVERSÁRIO ........................................................................................ 90 6.2.1 VGG-16 adaptada ................................................................................................ 91 6.2.2 VGG ARTMAP Fuzzy com achatamento ......................................................... 92 6.2.3 Considerações sobre os resultados: MNIST adversário .................................. 93 6.3 OUTROS BANCOS DE DADOS ......................................................................... 94 6.3.1 Brain MRI Images for Brain Tumor Detection ................................................ 94 6.3.2 Car vs Bike Classification ................................................................................... 95 6.3.3 Muffin vs chihuahua ............................................................................................ 95 6.3.4 Ripe and Unripe Tomatoes ................................................................................. 96 6.3.5 Rock-Paper-Scissors game .................................................................................. 96 6.3.6 Traffic Sign ........................................................................................................... 97 6.3.7 Considerações sobre os resultados: outros bancos de dados ........................... 98 7 CONSIDERAÇÕES FINAIS ............................................................................ 100 7.1 CONSIDERAÇÕES GERAIS ............................................................................. 100 7.2 VARIANTES ....................................................................................................... 101 7.3 PROCESSAMENTO COMPUTACIONAL ....................................................... 102 7.4 ATAQUES ADVERSÁRIOS .............................................................................. 102 7.5 SUGESTÕES PARA TRABALHOS FUTUROS ............................................... 103 REFERÊNCIAS ................................................................................................. 106 15 1 INTRODUÇÃO O aprendizado de máquina, popularmente conhecido como Machine Learning (ML), é um campo de pesquisa que utiliza algoritmos para extrair informações de dados brutos e representá-los por meio de algum tipo de modelo matemático. Várias ciências estão associadas ao aprendizado de máquina, incluindo inteligência artificial (IA), psicologia e teoria da informação Alom et al. (2019); Zhang et al. (2021). O aprendizado de máquina possui a tarefa de identificar padrões de exemplos de treinamento e aplicar esses padrões (ou representações) aprendidos a novos dados não vistos. Por isto, às vezes é chamado de aprendizado superficial, por causa da sua natureza de aprender representações de camada única ou poucas camadas - na maioria dos casos (Dong; Wang; Abbas, 2021). A eficiência dos algoritmos de aprendizado de máquina depende muito da qualidade da representação dos dados de entrada. Uma representação de dados ruim geralmente leva a degradação do desempenho. Deste modo, a construção de recursos a partir de dados brutos, conhecida como engenharia de recursos, é fundamental e, portanto, uma importante direção de pesquisa em aprendizado de máquina há muito tempo (Goodfellow; Bengio; Courville, 2016; Pan;Yang, 2010). A engenharia de recursos (ou atributos), normalmente, é muito específica em seu domínio e requer um esforço humano intenso. Comparativamente, algoritmos de aprendizado profundo - Deep Learning (DL) - realizam extração de recursos de maneira automática, o que permite aos pesquisadores extrair recursos discriminativos com pouco conhecimento de domínio e esforço humano mínimo. Como ilustrado na Figura 1, o aprendizado profundo é um subcampo do aprendizado de máquina que, por sua vez, é um subcampo da inteligência artificial (Alom et al., 2019). Figura 1 - Inteligência artificial, aprendizado de máquina e aprendizado profundo. Fonte: Elaboração do próprio autor. A história do aprendizado de máquina e, consequentemente, do aprendizado profundo, começou em 1943, quando o modelo McCulloch-Pitts (MCP) foi introduzido e ficou I 16 conhecido como o protótipo do modelo de um neurônio artificial (McCulloch; Pitts, 1943). Após o modelo MCP, a teoria Hebbiana, originalmente utilizada para os sistemas biológicos no ambiente natural, foi implementada (Hebb, 1949). Em seguida, o primeiro modelo matemático de um neurônio biológico chamado “perceptron”, no contexto do sistema de cognição, foi introduzido em 1958 (Rosenblatt, 1958). No final do primeiro inverno da inteligência artificial, Werbos introduziu o algoritmo retropropagação (backpropagation) (Werbos, 1974) e o uso de erros no treinamento de modelos de aprendizado, abriu as portas para as redes neurais modernas. Em 1980, o “neocogitron”, que inspirou a rede neural convolucional, foi introduzido (Fukushima; Miyake, 1982), enquanto as Redes Neurais Recorrentes (RNNs) foram propostas em 1986 (Jordan, 1986). Em seguida, LeNet fez uma Rede Neural Profunda (DNN) básica funcionar na década de 1990 (LeCun et al., 1998). Esta rede foi fundamental para o surgimento de redes profundas muito utilizadas no campo de visão computacional - as Redes Neurais Convolucionais (CNN). Apesar de técnicas de inteligência artificial existirem, pelo menos, desde a década de 1950, as arquiteturas desses modelos estagnaram por muito tempo por causa da falta de recursos que os fizessem realmente disseminar, como o processamento de hardware, por exemplo. Foi a partir do desenvolvimento do Big Data e do processamento paralelo em GPU’s que foi possível processar grandes quantidades de dados em grandes modelos de aprendizado de máquinas. A disponibilidade e o crescimento explosivo de dados, além do notável avanço nas tecnologias de hardware, levaram ao surgimento de novos estudos em aprendizado distribuído e profundo. Originado das Redes Neurais Artificiais (RNAs) e após décadas de desenvolvimento, o aprendizado profundo evoluiu como uma estrutura forte e eficiente que pode ser aplicada a um amplo espectro de problemas complexos de aprendizado, que eram difíceis de resolver usando as técnicas tradicionais de aprendizado de máquina no passado. O avanço do aprendizado profundo foi tão radical que hoje pode superar o desempenho em nível humano em classificação de imagens, por exemplo Deng et al. (2009); Russakovsky et al. (2015a). O aprendizado profundo permite que modelos computacionais compostos por várias camadas de processamento e com alto nível de abstração aprendam com a experiência e percebam o mundo em termos de hierarquia de conceitos. Deste modo, as redes profundas consistem em várias camadas empilhadas uma após a outra e capturam representações sucessivas. A guinada quando se trata de aprendizado profundo é como se aprende uma função 𝑓(∙). De modo geral, modelos não profundos - comumente referidos na literatura como 17 “superficiais” (do termo em inglês: shallow) - buscam diretamente por uma função que possa, a partir de um conjunto de parâmetros, gerar o resultado desejado. Por outro lado, o aprendizado profundo utiliza métodos que aprendem 𝑓(∙) por meio de composições de funções, como exemplificadas na Equação (1).: 𝑓(𝑥) = 𝑓𝑙((…𝑓2(𝑓1(𝑥1,𝑊1),𝑊2)… ),𝑊𝑙) (1) De modo que, o índice 𝑙 se refere a uma camada; a função 𝑓𝑙(∙) toma como entrada um vetor de dados 𝑥𝑙 e gera, como saída, o próximo vetor: 𝑥𝑙+1; 𝑊𝑙 é o conjunto de parâmetros que cada função utiliza para realizar a transformação dos dados de entrada. Diferentes métodos de aprendizado compõe o aprendizado profundo, incluindo aprendizado supervisionado, semissupervisionado e não supervisionado. Estes métodos são aplicados a um amplo espectro de tarefas complexas de aprendizado de máquina, e.g.: visão computacional (Krizhevsky; Sutskever; Hinton, 2012; LeCun et al., 1998; Simonyan; Zisserman, 2014), reconhecimento de fala (Hinton, Geoffrey et al., 2012), processamento de linguagem natural (Sutskever; Vinyals; Le, 2014), saúde (Chen et al., 2017), robótica (Siau; Wang, 2018) e muitos outros. As técnicas de aprendizado profundo também são vastas, dentre as mais comuns, cita- se: Deep Neural Network (DNN), Rede Neural Convolucional (CNN), Rede Neural Recorrente (RNN), Long Short-Term Memory (LSTM), Gated Recurrent Units (GRU), Auto- Encoder (AE), Deep Belief Network (DBN), Generative Adversarial Network (GAN) e Deep Reinforcement Learning (DRL). O aprendizado profundo, com suas altas precisões em diversas tarefas, trouxe uma grande revolução nos serviços baseados em inteligência artificial na internet, incluindo serviços de IA baseados na computação de empresas em nuvem. O uso extensivo de aplicativos baseados em aprendizado profundo pode ser visto em ambientes críticos de segurança, como detecção de malware, carros autônomos, drones e robótica (Alom et al., 2019; Dong; Wang; Abbas, 2021). Com os recentes avanços nos sistemas de reconhecimento facial, caixas eletrônicos e telefones celulares usam autenticação biométrica como recurso de segurança; sistemas controláveis por voz e modelos de reconhecimento automático de fala tornaram possíveis produtos como Amazon Alexa, Apple Siri e Microsoft Cortana (Chakraborty et al., 2021). 18 1.1 A PROBLEMÁTICA DO APRENDIZADO PROFUNDO As redes neurais profundas, em suas formas clássicas, são definidas por uma arquitetura feedforward que utiliza o algoritmo de retropropagação com aprendizado supervisionado. Deste modo, os pesos são alterados quando, em resposta a um vetor de entrada, seu filtro adaptativo gera um vetor de saída que não corresponde ao vetor de saída desejado. Consequentemente, o aprendizado profundo compartilha as mesmas características computacionais do algoritmo de retropropagação: o ajuste de peso não local durante o aprendizado por erro (Grossberg, 2020). Um dos problemas do aprendizado profundo está relacionado ao seu método de treinamento, que pode experienciar o esquecimento catastrófico, i.e., em qualquer estágio do aprendizado, uma parte imprevisível de sua memória pode entrar em colapso (McCloskey; Cohen, 1989). Além disto, a computação resultante - descoberta automaticamente por retropropagação via aprendizado supervisionado - pode ser difícil de interpretar e ter propriedades contraintuitivas (Goodfellow; Shlens; Szegedy, 2014). Na conjuntura de algoritmos especializados em visão computacional, Szegedy, et al. (2013) revelaram uma outra fraqueza intrigante das redes neurais profundas: as redes profundas modernas, apesar de suas altas precisões, são surpreendentemente suscetíveis a ataques adversários (do inglês Adversarial Attacks). Ataques adversários – muitas vezes abordados como exemplos adversários - são amostras projetadas com adição de pequenas perturbações para provocar erros em classificações. Na Figura 2 é representado um exemplo de ataque por uma imagem adversária, apresentada em Goodfellow; Shlens; Szegedy (2014). Ao olho humano, muitas vezes, estas perturbações são quase imperceptíveis, ou até mesmo invisíveis. Entretanto, para uma rede neural, são capazes de produzir uma classificação equivocada com a confiança significativamente alta, i.e., as redes profundas preveem a classe errada com maior confiança do que todas as outras classes. Existem vários métodos de como adicionar ruídos às imagens para criarem ataques adversários, destacam-se Su; Vargas; Sakurai, (2019) que foram capazes de criar um ruído de apenas um pixel que ocasiona erros na classificação quando se usa as redes profundas. Para este propósito, alteraram pontos específicos de dados localizados próximos aos limites de decisão que alteram as classificações das classes. 19 Figura 2 - Demonstração de um ataque de exemplo adversário. Fonte: Adaptado de: Goodfellow; Shlens; Szegedy (2014). Um ataque adversário pode conter vários objetivos, e.g.: a redução de confiança do classificador, o classificador produz a previsão correta, porém com menor confiança; um ataque não direcionado, o classificador gera qualquer classe além da previsão correta; ou ainda um ataque direcionado, quando o objetivo é que o classificador resulte uma classificação específica diferente da correta (Costa et al., 2024). Outra característica importante dos ataques adversários é que podem ser classificados de acordo com a quantidade de conhecimento ao qual o invasor tem acesso, i.e., são considerados ataques caixa branca quando o atacante tem acesso à arquitetura ou aos dados; ou ataques caixa preta, quando o atacante consegue apenas acessar a previsão ou pares de entrada e saída da arquitetura. Muitas pesquisas relacionadas a ataques adversários, bem como suas contramedidas, surgiram desde que Szegedy, et al. (2013) demonstraram a vulnerabilidade dos algoritmos de aprendizado de máquina (Akhtar; Mian, 2018; Bai et al., 2021; Chakraborty et al., 2021). Todavia, foi com a migração das redes profundas dos laboratórios para o mundo real que despontou preocupações sobre a segurança e a integridade de aplicações dependentes destes algoritmos. Kurakin; Goodfellow; Bengio (2018) foram os primeiros a demonstrar que ataques adversários no mundo físico, i.e., exemplos adversários impressos que podem ser classificados incorretamente, quando visualizados por meio da câmera de um smartphone. Posteriormente, (Eykholt et al., 2018) alcançam altas taxas de classificações incorretas ao criar diferentes perturbações em placas de sinais de trânsito reais. Os ataques adversários, em muitos casos, são concentrados em algoritmos baseados em gradiente descendente e utilizam perturbações para maximizar o erro de redes profundas, e.g., Método de Sinal de Gradiente Rápido, ou Fast Gradient Sign Method (FGSM) (Goodfellow; Shlens; Szegedy, 2014), Método Iterativo Básico, ou Basic Iterative Method 20 (BIM) (Kurakin; Goodfellow; Bengio, 2016a) e ataque de Descida de Gradiente Projetada, Projected Gradient Descent (PGD) (Madry et al., 2017). Por serem treinadas por retropropagação, além de intrinsicamente possuírem pontos cegos e características não intuitivas, estes estudos expõem uma grande vulnerabilidade destes algoritmos. Deste modo, para Grossberg, (2020), apesar de técnicas de aprendizado profundo fazerem classificações com alta precisão, elas não são totalmente explicáveis e, portanto, não podem ser usadas com plena confiança. De forma complementar, no que diz respeito ao seu treinamento, o aprendizado profundo tem outra grande falha prática: exige tempo e trabalho não apenas para coletar uma grande quantidade de dados, mas também para rotulá-los. Neste aspecto, as áreas de aprendizagem semissupervisionada, aprendizagem contínua, aprendizagem por transferência e meta-aprendizagem têm se destacado. 1.2 ALTERNATIVAS AO APRENDIZADO PROFUNDO Como consequência de seus bons resultados, atualmente, o aprendizado profundo é amplamente utilizado em diversas aplicações. Entretanto, diferentes tipos de ataques aproveitam as vulnerabilidades de redes profundas para comprometer um sistema de aprendizado. Portanto, é extremamente importante fornecer robustez aos algoritmos de aprendizado profundo. Chakraborty, et al. (2021) citam que existem poucas contramedidas fortes que podem ser usadas para mitigar os efeitos de ataques adversários e projetar um sistema robusto de aprendizado profundo. Dentre as contramedidas propostas nos últimos anos: o uso da técnica de Data Augmentation no treinamento (Kurakin; Goodfellow; Bengio, 2016b), destilação (Hinton; Vinyals; Dean, 2015; Papernot; McDaniel; Wu; et al., 2016) e rede adversária generativa (Samangouei; Kabkab; Chellappa, 2018). Entretanto, Chakraborty, et al. (2021) destacam que, embora as eficiências dos mecanismos propostos, eles são específicos e não poderiam ser usados como uma solução única para todos os tipos de ataques. Para Bai, et al. (2021), entre as várias estratégias de defesa existentes, o treinamento adversário é uma das abordagens mais eficazes para modelos de aprendizado profundo se defender contra os ataques adversários. Ao contrário de outras estratégias de defesa, o treinamento adversário visa aumentar a robustez dos modelos intrinsecamente, deste modo, os modelos treinados adversamente têm melhores desempenhos quando enfrentam exemplos adversários aos comparados com modelos treinados de modo padrão. No entanto, o treinamento com exemplos adversários não é prático em razão da necessidade de otimização 21 restrita e computacionalmente custosa. Além disto, a implementação dessas estratégias de defesa pode levar à degradação do desempenho e eficiência do modelo em questão (Goodfellow; Shlens; Szegedy, 2014; Szegedy et al., 2013). Como supracitado, a maioria das técnicas de ataques adversários são fundamentadas em aprendizados baseados em gradiente descendente, a base do algoritmo de treinamento por retropropagação. Além disto, redes feedforward profundas possuem pontos cegos intrínsecos, não são explicáveis e, durante o treinamento, que necessita de aprendizado por experiência de erro, o ajuste de peso não local pode ocasionar esquecimento catastrófico. Sem garantias contra o esquecimento catastrófico, um algoritmo de aprendizado não é plenamente confiável (Grossberg, 2020). Todas estas caraterísticas e vulnerabilidades fortalecem a necessidade de investigação de novas alternativas, com algoritmos baseados em técnicas de redes neurais que não são de arquitetura feedforward profundas, tampouco são dependentes do algoritmo de retropropagação. As redes baseadas na Teoria da Ressonância Adaptativa - Adaptive Resonance Theory (ART) superam os problemas computacionais de retropropagação e aprendizado profundo, pois são capazes de aprender - incrementalmente - padrões de entrada arbitrários de maneira rápida, auto-organizada e estável, refinar o conhecimento e não perder informações já aprendidas. As memórias aprendidas são dinamicamente autoestabilizadas para evitar o esquecimento catastrófico de informações previamente aprendidas, mas ainda são úteis em resposta ao aprendizado futuro. Estas características aludem ao dilema da plasticidade e estabilidade. A teoria ART é flexível e, portanto, as arquiteturas de redes baseadas nesta teoria de aprendizado, a partir de técnicas de transferência de conhecimento, podem ser compatíveis com algoritmos baseados em aprendizado profundo (como as redes neurais convolucionais) e aproveitem as características visuais aprendidas dos densos conjuntos de dados de visão computacional. Desta forma, em conjunto com redes profundas já treinadas, as redes baseadas em ART podem ser utilizadas como classificadores. 1.3 OBJETIVOS O objetivo deste estudo é propor um modelo híbrido, denominado de VGG ARTMAP Fuzzy, que aproveita a experiência de redes convolucionais, pela arquitetura de aprendizado profundo VGG-16 com pesos pré-treinados no banco de dados ImageNet e associa, pela 22 técnica de transferência de aprendizado, com uma rede neural ARTMAP Fuzzy, responsáveis pelas etapas de extração de característica e de classificação, respectivamente. O modelo proposto é validado a partir de simulações de bancos de dados composto por diferentes tipos de imagens e seu comportamento é investigado pelos âmbitos tanto da acurácia quanto aos tempos de treinamentos e testes, uma vez que estes parâmetros também são significativos no campo de visão computacional. 1.4 JUSTIFICATIVA Redes convolucionais que alcançam alto desempenho de ponta para diferentes tarefas de visão computacional retém uma grande quantidade de conhecimento, pois, normalmente, são treinadas a partir de milhões de imagens, o que requer um alto poder computacional e um longo período para esta tarefa. Muito destes modelos pré-treinados estão disponíveis publicamente para download, permitindo o uso em diversas aplicações. Com o uso de técnicas de transferência de aprendizado, redes baseadas na Teoria da Ressonância Adaptativa (ART) podem usufruir da vastidão de conhecimento adquirido por longos treinamentos de redes profundas e atuar como classificadores das características de imagens extraídas pelas CNNs. Por respeitarem o dilema da estabilidade e plasticidade, as Redes ARTs possuem vantagens em relação às redes com camadas totalmente conectadas e podem ser utilizadas como classificadoras das características extraídas das camadas convolucionais. Além disto, ao contrário do algoritmo de retropropagação, que podem apresentar esquecimento catastrófico, estas redes permitem futuros treinamentos sem comprometer os conhecimentos anteriormente adquiridos. 1.5 ORGANIZAÇÃO DO TEXTO O conteúdo desta pesquisa está dividido em sete capítulos. O Capítulo 1 introduziu sobre Machine Learning e Aprendizado Profundo e, além de seus atributos e qualidades, expos também suas vulnerabilidades que motivaram e justificaram a tese. Continuamente, os três capítulos subsequentes apresentam a tríade de fundamentos necessários para embasar a proposta. No Capítulo 2 é apresentada a base das Redes Neurais Convolucionais, suas principais características e as propriedades das principais arquiteturas destas redes. As definições e notações da transferência de aprendizado são apresentadas no Capítulo 3. Neste momento, também são explanadas as vantagens de se utilizar esse tipo de treinamento em relação ao treinamento tradicional; as configurações e abordagens de 23 transferências possíveis; e as principais transferências de aprendizado para redes neurais convolucionais. A Teoria da Ressonância Adaptativa é apresentada no Capítulo 4. São destacadas suas características que justificam a alternativa ao aprendizado profundo clássico. Adicionalmente, são apresentadas as principais arquiteturas clássicas das redes neurais baseadas nessa teoria, seus embasamentos matemáticos e os algoritmos em fluxogramas. No Capítulo 5 é apresentada a proposta da tese: duas variantes de modelos híbridos de redes neurais que, pela técnica de transferência de aprendizado, integraram-se o Aprendizado Profundo à Teoria da Ressonância Adaptativa. Além disto, é explanado a motivação da escolha das redes neurais bases para o modelo híbrido e suas principais características. No Capítulo 6 é realizada a validação por meio de diferentes simulações e seus respectivos resultados. Para comparação aos modelos híbridos propostos, foi criada uma terceira rede neural composta apenas por conceitos de aprendizado profundo. Neste Capítulo também são apresentados diferentes bancos de dados utilizados que visão validar os modelos em múltiplas aplicações de problemas de visão computacional. Além disto, é explorado a vulnerabilidade dos modelos à ataques adversários (introduzidos no Capítulo 1) por meio de testes adversários a partir dos modelos pré-treinados. Finalmente, no Capítulo 7 são apresentadas e exploradas em diversos contextos as conclusões finais trabalho de pesquisa e as sugestões para trabalhos futuros que podem ser desenvolvidos seguindo esta linha de atuação. 24 2 REDES NEURAIS CONVOLUCIONAIS As formas tradicionais de RNAs apresentam grandes limitações para processamento de dados em imagens, pois, normalmente, a imagem é apresentada a partir de um processo de vetorização e, portanto, o número de pixels da imagem se torna correspondente ao de neurônios na camada de entrada da rede neural. Mesmo para imagens com dimensões pequenas a vetorização de imagens exige uma elevada capacidade de memória e poder computacional, principalmente na fase de treinamento. Se considerar, por exemplo, uma imagem colorida de 64 × 64 pixels - portanto, com 3 canais - como entrada de uma RNA tradicional, o número de pesos associados a apenas um único neurônio da primeira camada será de 64 × 64 × 3 = 2.288. A vetorização de uma imagem ainda apresenta um problema adicional: despreza toda a estrutura espacial que permite entender a relação entre os pixels vizinhos em uma determinada imagem. Uma Rede Neural Convolucional - Convolutional Neural Network (CNN), por outro lado, é capaz de capturar padrões espaciais por meio da camada convolucional uma vez que, a convolução permite filtrar as imagens considerando sua estrutura bidimensional. Utilizar o processo de convolução também torna o processamento de imagens computacionalmente gerenciável por meio da filtragem das conexões por proximidade. Ao invés de conectar cada pixel a um neurônio, as CNNs restringem as conexões para que um neurônio receba como entrada apenas uma pequena subseção da camada anterior, como, por exemplo, um conjunto de 5 × 5 pixels. Esta característica permite que cada neurônio seja responsável por processar apenas certa porção de uma imagem, análogo ao funcionamento de neurônios corticais no cérebro, uma vez que cada neurônio responde apenas a uma pequena porção do seu campo visual completo. Desde sua introdução na década de 1980 (Denker et al., 1988; Fukushima; Miyake, 1982; LeCun, 1989; LeCun et al., 1989), a CNN foi projetada como uma categoria de rede neural especializada em dados visuais. Entretanto, essa arquitetura também é frequentemente utilizada para outros tipos de aplicações, tais como, processamento de linguagem natural (Kalchbrenner; Grefenstette; Blunsom, 2014; Poria et al., 2016; Wang et al., 2015) e reconhecimento de fala (Abdel-Hamid et al., 2012; Huang et al., 2019; Xiong et al., 2018). 2.1 ARQUITETURA DA REDE NEURAL CONVOLUCIONAL A arquitetura de CNN é composta por uma hierarquia multicamadas de três tipos: camadas convolucionais, camadas de subamostragem (popularmente citadas como camadas de pooling) e camadas densas. Na Figura 3 é ilustrado um exemplo de uma arquitetura de 25 CNN simplificada. Por ser tratar de uma rede neural profunda, este modelo consiste em uma camada de entrada, uma camada de saída e muitas camadas ocultas. As camadas ocultas do modelo CNN consistem, principalmente, em camadas convolucionais, camadas de pooling e, em algumas arquiteturas, camadas totalmente conectadas. Figura 3 - Arquitetura básica de uma rede neural convolucional. Fonte: Elaboração do próprio autor. As camadas convolucionais usam um banco de filtros para realizar múltiplas transformações para extrair recursos úteis de informações correlacionadas localmente e armazená-las nos mapas de características (features maps). Camadas de pooling fazem a subamostragem da informação além de tornar a entrada invariante a distorções geométricas. As camadas densas, também referidas como camadas totalmente conectadas, normalmente utilizadas no final da arquitetura, combinam e processam as características extraídas pelas camadas antecedentes para realizar a classificação. A quantidade de camadas define a profundidade da rede, do mesmo modo que as redes mais profundas, normalmente, são capazes de identificar padrões com níveis mais altos detalhamentos. O funcionamento geral de uma CNN de várias camadas para classificação de imagens é ilustrado na Figura 4. Entrada amadas convolucionais amadas de pooling amada densa ampo receptível apas de características E trator de características lassifica o 26 Figura 4 - Operação de uma CNN para classificação de imagens. Fonte: Adaptado de: (Huang; Le, 2021). As primeiras camadas convolucionais são as responsáveis por extrair características simples da imagem de entrada, como bordas, linhas e assim por diante. Em seguida, os recursos resultantes são enviados para as camadas mais profundas para gerar recursos de maior especificidade, como representações de nariz, olhos e ouvidos. As etapas de extração de características de imagens são aprofundadas nas Seções 2.1.1 e 2.1.2. Finalmente, esses recursos de saída são nivelados em um vetor de recursos unidimensional, em seguida, alimenta as camadas totalmente conectadas (Seção 2.1.3) para classificação/previsão final. 2.1.1 Camada convolucional Estas camadas realizam convoluções entre a imagem de entrada (ou mapa de características) e os diversos filtros da CNN para extração de características. Um filtro - também conhecido como máscara, núcleo ou kernel - é uma matriz com coeficientes que atuam de modo a processar os valores referentes ao nível de cada pixel da imagem original para gerar uma imagem filtrada. Os filtros de uma rede convolucional são equivalentes aos neurônios enquanto seus coeficientes correspondem aos pesos sinápticos da rede e, portanto, são os parâmetros adaptáveis durante à fase de treinamento. Um filtro pode corrigir, suavizar ou realçar determinadas regiões. O tamanho do filtro os valores de seus coeficientes definem qual o tipo de filtragem é aplicado. Um filtro também pode fornecer uma medida de quão próximo uma região da entrada se assemelha a uma característica – uma feature. Esta característica pode ser qualquer aspecto proeminente, e.g., uma aresta vertical, uma aresta horizontal, um arco, uma diagonal etc. No processo de convolu o, o filtro percorre a imagem original “deslizando” sobre os pixels e, a cada interação, sobrepõe um pixel-alvo na imagem e realiza o produto ponto a ponto dos elementos da região sobreposta com os elementos da máscara de posição 27 equivalente para gerar, no pixel equivalente na imagem filtrada, um valor de intensidade processado. Normalmente, o pixel-alvo é o pixel central da máscara. Matematicamente, a partir de uma imagem 𝑓 e uma máscara 𝑤, a convolução bidimensional discreta é definida pela Equação (2): 𝑤(𝑥, 𝑦) ∗ 𝑓(𝑥, 𝑦) = ∑ ∑ 𝑤(𝑖, 𝑗) ∙ 𝑓(𝑥 − 𝑖, 𝑦 − 𝑗) 𝑏 𝑗=−𝑏 𝑎 𝑖=−𝑎 (2) Em que 𝑥 e 𝑦 correspondem aos índices horizontais e verticais da imagem 𝑓(𝑥, 𝑦) e da máscara 𝑤(𝑥, 𝑦), 𝑎 e 𝑏 se referem, respectivamente, à metade da altura e largura da máscara 𝑤. Na Figura 5 é apresentado um exemplo de diagrama do processo de convolução (Backes; Sá Junior, 2019). Figura 5 - Processamento de uma imagem pelo processo de convolução. Fonte: Elaboração do próprio autor. Por questões de simetria, é comum a utilização de máscaras de tamanho 𝑁 × 𝑁 de modo que 𝑁 é um número ímpar e, por questão computacional para a maioria das aplicações, recomenda-se utilizar valores pequenos de 𝑁; de modo geral: 𝑁 ≤ 7 (Backes; Sá Junior, 2019). A seguir, serão abordadas algumas propriedades e hiperparâmetros fundamentais para o processamento de features em uma camada de convolução. Embora fundamentais, esses hiperparâmetros não são exclusivos da camada convolucional e são comumente utilizados nas camadas de pooling (Seção 2.1.2), por exemplo. 2.1.1.1 Mapas de caraterísticas Os mapas de características, ou mapas de ativação (frequentemente abordados por seus termos em inglês: feature map ou activation map), capturam o resultado da aplicação dos 28 filtros à entrada, que pode ser a imagem de entrada ou um outro mapa de características. Cada filtro na camada convolucional extrai alguma característica e os diversos mapas gerados são empilhados de modo a formar matrizes multidimensionais, ou tensores, cuja profundidade é igual ao número de filtros. Entender as dimensões das camadas convolucionais, e o que elas representam, permite entender o comportamento de extração de características da rede convolucional. Seja uma CNN com 𝐿 camadas convolucionais, 𝑙 = 1 ,2 , … , 𝐿. A 𝑙 − é𝑠𝑖𝑚𝑎 camada é composta por 𝑛 mapas de características 𝑓𝑙 ∈ 𝑅ℎ𝑙 ×𝑤𝑙×𝑑𝑙 (altura ℎ𝑙, largura 𝑤𝑙 e profundidade 𝑑𝑙) que são resultados da convolução de 𝑛 filtros com os mapas de características da camada anterior 𝑓𝑙−1. Uma segunda notação - mais intuitiva - representa as dimensões dos mapas de características como 𝑑𝑙@ℎ𝑙 × 𝑤𝑙. Na Figura 6 ilustra-se um exemplo de CNN composta por duas camadas convolucionais, com 4 filtros de tamanho 𝑘1 = 5 × 5 e 6 filtros de tamanho 𝑘2 = 3 × 3, respectivamente. Figura 6 - Ilustração de duas camadas convolucionais. Fonte: Elaboração do próprio autor. Na entrada da CNN do exemplo da Figura 6 é apresentada uma imagem RGB, o que justifica a dimensão 150 × 150 × 3. Adicionalmente, considera-se que a convolução é feita a partir da extensão da imagem com preenchimento por zeros de modo que seja possível realizar ao mesmo tempo a filtragem para todos os pixels e preservação do tamanho da imagem. Este procedimento é conhecido por padding e será abordado na Seção 2.1.1.3. 29 Como a imagem possui três canais, na primeira camada convolucional, ter-se-á a composição de um tensor de dimensões 4 × 5 × 5 × 3, ou seja, quatro filtros de tamanho 5 × 5, com profundidade de tamanho três. Após a convolução, utiliza-se uma função de ativação, comumente a função ReLU (Seção 2.1.1.5) que trunca os pixels negativos para zero. Deste modo, a saída da primeira camada é composta por quatro mapas de características de dimensões 150 × 150 × 4. A segunda camada, que recebe como entrada o tensor 150 × 150 × 4, possui seis filtros de dimensões 3 × 3 × 4 e gera como saída um tensor de tamanho 150 × 150 × 6. A partir do exemplo é possível notar que a dimensão do tensor da camada convolucional anterior gera a profundidade da camada seguinte. Portanto, no exemplo supracitado, se fosse adicionado uma terceira camada convolucional, os filtros teriam profundidade seis. 2.1.1.2 Campo receptível Nas camadas totalmente conectadas, cada unidade tem acesso a toda a região de entrada. Entretanto, em uma camada convolucional cada unidade depende apenas de uma região local da entrada. Para CNNs, o tamanho desta região da entrada, que produz uma feature, é definido como Campo Receptivo, ou Receptive Field (RF). Em outras palavras, o RF é a região da entrada que uma feature particular é afetada. A Figura 7 ilustra exemplos de campos receptíveis para uma rede de duas camadas convolucionais compostas apenas por filtros de dimensões 3 × 3. A área verde na camada de entrada denota o campo receptivo de um pixel na primeira camada convolucional, de mesmo modo, a área em amarelo da primeira camada convolucional representa o campo receptivo de um pixel na segunda camada. Figura 7 - Exemplos de campos receptíveis. Fonte: Elaboração do próprio autor. 30 O principal interesse no tamanho do campo receptivo concerne à entrada; especificamente, ao quanto de sua área a CNN é capaz de processar. A área da entrada que ativa um neurônio nas camadas convolucionais subsequentes é denominada de Campo Receptivo Efetivo, ou Effective Receptive Field (ERF): Ainda no exemplo da Figura 7, na camada de entrada, a área em amarelo representa o ERF da feature destacada na segunda camada. O ERF é essencial em muitas tarefas de visão computacional, como por exemplo, a detecção de objetos e segmentação de imagens, uma vez que, se a rede neural convolucional não tiver um campo receptivo grande o suficiente, alguns dos objetos maiores na imagem de entrada podem não ser detectados e/ou segmentados. Calcular o tamanho do ERF pode ajudar a projetar os tamanhos de filtros adequados para melhorar o desempenho das CNNs (Le; Borji, 2017). O tamanho do RF é simplesmente igual ao do filtro da camada anterior e, portanto, RF e ERF serão os mesmos na primeira camada convolucional. No entanto, conforme a arquitetura da CNN avança com as camadas de convolução empilhadas, os campos receptíveis apresentam uma relação piramidal. A partir de uma rede totalmente convolucional, ou Fully Convolutional Network (FCN) - ou seja, uma rede sem camadas totalmente conectadas (abordado na seção 2.1.3) - com 𝐿 camadas, 𝑙 = 1 , 2 , … , 𝐿. O ERF de uma imagem na camada de entrada pode ser obtido de forma recursiva pela Equação (3) (Araujo; Norris; Sim, 2019): 𝑟0 = ∑((𝑘𝑙 − 1)∏𝑠𝑖 𝑙−1 𝑖=1 ) + 1 𝐿 𝑙=1 (3) Tal que: 𝑟0: Tamanho do campo receptível em relação à entrada 𝑘𝑙: Tamanho do filtro da 𝑙 − é𝑠𝑖𝑚𝑎 camada 𝑠𝑖: Tamanho do stride (Seção 2.1.1.4) das camadas anteriores a 𝑙. 2.1.1.3 Padding No processo de convolução, as bordas da imagem precisam receber um tratamento especial, uma vez que parte do filtro sobrepõe pixels inexistentes. O padding é o tratamento mais popular caso seja necessário manter as informações apresentadas nas bordas e a dimensionalidade na imagem resultante durante a operação de convolução. Este procedimento consiste em assumir o valor zero para os pixels ao redor da imagem, conforme ilustrado na Figura 8. 31 Outras possíveis soluções para o tratamento da borda são: considerar um valor adjacente nas extremidades do filtro ou desconsiderar os pixels da borda e efetuar a operação somente nas posições onde a máscara se encaixa (sem padding). Neste último caso, a imagem resultante terá dimensões menores. Exemplos de três tratamentos de borda durante a convolução são apresentados na Figura 8. Figura 8 - Diferentes tipos de tratamento da borda da imagem durante a convolução: (a) valor zero assumido; (b) adjacência considerada; (c) borda desconsiderada. Fonte: Elaboração do próprio autor. 2.1.1.4 Stride Outro parâmetro importante na etapa de convolução é o stride, i.e., a dimensão do passo que o filtro “desliza” sobre a imagem no processo de convolu o. O stride com o valor unitário significa que a convolução será aplicada em todos os pixels da imagem. Um exemplo de uma convolução com stride 1 e sem padding é ilustrada na Figura 9. Figura 9 - Convolução com stride com valor 1 e sem padding. Fonte: Elaboração do próprio autor. Como representado na imagem, o tamanho do filtro, o stride e o padding são hiperparâmetros que interferem nas dimensões do mapa de característica resultante da 0 0 0 3 3 13 0 3 13 1 4 1 3 3 13 1 4 1 3 13 1 4 1 0 4 10 14 1 11 4 4 10 14 1 11 4 10 14 1 11 7 2 10 12 12 7 2 10 12 12 7 2 10 12 12 4 3 2 2 12 4 3 2 2 12 4 3 2 2 12 (a) (b) (c) 32 convolução. A Equação (4) pode ser utilizada para calcular as dimensões, tanto na horizontal quanto na vertical, de saída. 𝑛𝑜𝑢𝑡 = 𝑛𝑖𝑛 + 2𝑝 − 𝑘 𝑠 + 1 (4) Tal que: 𝑛𝑜𝑢𝑡 : dimensão da saída; 𝑛𝑖𝑛 : dimensão da entrada; 𝑝 : dimensão do padding; 𝑘 : dimensão do filtro; 𝑠 : dimensão do stride. A redução, nas dimensões dos mapas de características, produz pouca invariância à escala e à posição dos objetos, o que é uma propriedade útil em tarefas de reconhecimento de objetos. Entretanto, em algumas aplicações, como redução de ruído ou segmentação de imagem, é importante manter as dimensões espaciais constantes (ou até maiores) após a convolução, visto que estas aplicações exigem previsões com maior dependência ao nível de pixel. Além disso, o controle da dimensão permite projetar redes mais profundas (ou seja, com mais camadas de peso), evitando um colapso rápido das dimensões do recurso de saída. 2.1.1.5 Função de ativação A operação de convolução ajuda no processo de extração de recursos úteis em pontos de dados correlacionados localmente e os valores das saídas dos filtros convolucionais, uma entrada de valor real, é então atribuída à unidade de processamento não linear (função de ativação), que restringe para este valor um pequeno intervalo, como [0; 1] e [-1; 1]. A aplicação de uma função de ativação após as camadas de peso é muito importante, que não apenas ajuda no aprendizado de abstrações, mas também incorpora a não linearidade no espaço de recursos (Goodfellow; Bengio; Courville, 2016). Uma rede neural sem função de ativação torna-se um modelo linear. Na ausência de não linearidades, uma rede empilhada de camadas de peso é equivalente a um mapeamento linear do domínio de entrada para o domínio de saída. Uma função não linear também pode ser entendida como um mecanismo de comutação ou seleção, que decide se um neurônio irá disparar ou não, dadas todas as suas entradas. Por causa do algoritmo de retropropagação, comumente utilizado nas redes profundas, baseado em gradiente descendente, as funções de ativação devem ser diferenciáveis para permitir a propagação de erro. Algumas das funções de ativação mais 33 comuns que são usadas em redes neurais profundas são ilustradas na Figura 10 (Li et al., 2022). Figura 10 - Exemplos de funções de ativações usadas em redes neurais profundas. Fonte: Elaboração do próprio autor. No contexto de imagens, a função de ativação mais popular nas camadas convolucionais é a função ReLU (Rectified Linear Activation Function) que cancela todos os valores negativos e possui um comportamento linear para os positivos. A ReLU apresenta comportamento simples o que permite seu rápido processamento em cálculo, característica com uma importância prática especial em redes neurais profundas. A popularidade e a eficácia da ReLU fomentaram o desenvolvimento de outras variantes que abordam algumas das deficiências da função de ativação ReLU, por exemplo, ReLU com vazamento (ou Leaky ReLU) que não reduz completamente as entradas negativas para zero (Dubey; Jain, 2019; Khan et al., 2018; Li et al., 2022; Nair; Hinton, 2010). 2.1.2 Camada de pooling A saída da função de ativação não linear geralmente é seguida por uma subamostragem (pooling) que ajuda a resumir os resultados e aumenta a robustez da entrada contra distorções geométricas como mudanças de escala, posicionamento e translação. Ou seja, a camada de pooling recebe como entrada os valores dos mapas de características processados com a não linearidade e combina seus coeficientes por meio de uma função de agrupamento. As funções de pooling mais populares são de média ou máxima - popularmente = , L L L 34 citadas como average pooling ou max pooling (Goodfellow; Bengio; Courville, 2016; Khan et al., 2018). Como resultado, se tem uma matriz agrupada com apenas partes dos dados de entrada - os mais significativos – e, consequentemente, os cálculos são minimizados; além de evitar o problema de superposição de informação. Semelhante à camada de convolução, na camada de pooling se faz necessário configurar o tamanho da região agrupada e o passo. Na Figura 11 são ilustrados exemplos de operações de pooling 2 × 2 de mínima, média e máxima, ambos com o stride 2. Figura 11 - Operações de pooling: tamanho 2x2 e stride 2. Fonte: Elaboração do próprio autor. 2.1.3 Camada totalmente conectada As matrizes multidimensionais, que representam a saída da camada convolucional, passam por um processo de vetorização, ou achatamento (flatten), na camada totalmente conectada - ou Fully Connected (FC). A camada FC corresponde essencialmente a camadas de convolução com filtros de tamanho 1 × 1 e cada unidade em uma camada totalmente conectada é densamente conectada a todas as unidades da camada anterior. Por exemplo, se a camada convolucional anterior à camada FC propaga um tensor de dimensão 4 × 4 × 5, esses dados s o “achatados” para um vetor de dimens o 1 × (4 × 4 × 5) = 1 × 80. Portanto, cada neurônio na camada FC possuirá 80 pesos de forma a produzir uma combinação linear do vetor. De fato, uma camada totalmente conectada é idêntica a uma camada de peso da arquitetura Multi-layer Perceptron. 35 Em muitos casos, as camadas totalmente conectadas são posicionadas apenas no final da arquitetura. No entanto, algumas arquiteturas de redes convolucionais utilizam esse tipo de camada em um posicionamento intermediário (Khan et al., 2018). 2.2 ARQUITETURAS POPULARES DE CNNS Neste tópico são apresentadas as arquiteturas mais populares, consideradas a “espinha dorsal” das NNs. Dentre elas, ser o dispostas tanto as arquiteturas pioneiras, populares em visão computacional e de simples entendimento, e alguns dos modelos mais recentes da CNN, relativamente mais complexos e construídos tendo como base os projetos convencionais. Deste modo, é possível notar que há uma ascensão natural de técnicas e recursos nessas arquiteturas, evidenciando a evolução dos projetos ao longo dos últimos anos. Muitos dos modelos abordados a seguir participaram do ImageNet LargeScale Visual Recognition Challenge (ILSVRC), uma competição que ocorreu entre os anos de 2010 e 2017 e tornou-se referência em desafios de detecção e classificação de objetos em imagens. O principal pretexto do seu sucesso é a utilização de um conjunto de dados gigantesco: o ImageNet; que, a partir da versão de 2012 é composto por mais de 15 milhões de imagens de alta resolução rotuladas em cerca de 22.000 categorias. O ILSVRC usa um subconjunto de 1.000 categorias, sendo cada uma com, aproximadamente, 1.000 imagens. Ao todo, 1,28 milhões de imagens são utilizadas para o treinamento, mais 50.000 imagens para validação e 100.000 imagens para o teste (Deng et al., 2009; Russakovsky et al., 2015b). 2.2.1 LeNet Uma das arquiteturas pioneiras de CNNs é a LeNet-5, aplicada à identificação de dígitos manuscritos. Este modelo é muito popular por apresentar um comportamento simples e direto. Seu nome se refere ao autor e à sua arquitetura, composta por um total de 5 camadas de pesos (LeCun et al., 1998). Na devida ordem, a LeNet-5 - Figura 12 - consiste em: uma camada de entrada que recebe imagens de 32 × 32 pixels; uma camada convolucional composta por 6 filtros de dimensões 5 × 5 seguida por uma camada de subamostragem 2 × 2 para extrair recursos; uma segunda camada de convolução composta por 16 filtros de 5 × 5 seguida por mais uma camada de subamostragem 2 × 2; posteriormente, uma camada de convolução composta por filtros de dimensões 5 × 5 formam 120 unidades de dimensões 1 × 1, seguida por um conjunto de duas camadas totalmente conectadas, com respectivamente, 84 e 10 neurônios, no final do modelo para atuar como classificador dos recursos extraídos. As ativações após as 36 camadas de pesos são comprimidas por não linearidades do tipo sigmoide, tangente hiperbólica e a função de base radial. Figura 12 - Arquitetura LeNet-5. Fonte: Adaptado de: (LeCun et al., 1998). 2.2.2 AlexNet Vencedora da ILSVRC 2012, a rede neural AlexNet foi a primeira arquitetura de CNN a ser utilizada em larga escala e levou ao ressurgimento de redes neurais profundas em visão computacional (Krizhevsky; Sutskever; Hinton, 2012). A principal diferença entre a arquitetura AlexNet e seus antecessores é o aumento da profundidade da rede, que leva a um número significativamente maior de parâmetros ajustáveis, além de truques de regularização usados, tais como, o dropout de ativação e o data augmentation, o que proporciona a redução do over-fitting e uma melhor generalização para exemplos não vistos (Hinton et al., 2012; O’Shea; Nash, 2015; Srivastava et al., 2014). Outro aspecto diferenciador do AlexNet é o uso da não linearidade ReLU após cada camada convolucional e totalmente conectada, o que melhora substancialmente a eficiência do treinamento em comparação com as funções sigmoide e tangente hiperbólica (tradicionalmente usadas até aquele momento) que devido às suas naturezas de saturação, sofrem com o problema do Vanishing Gradient (VG) e dificultam o treinamento da rede. Na Figura 13 são representados os detalhes estruturais de cada camada do modelo AlexNet, que consiste em cinco camadas convolucionais, algumas das quais são seguidas por camadas de subamostragem do tipo max pooling, e três camadas totalmente conectadas. A rede neural contabiliza mais de 60 milhões de parâmetros de treinamento e 650.000 neurônios. magem de entrada 32 × 32 × 1 apas de caraterísticas 6@28 × 28 apas de caraterísticas 6@14 × 14 Subamostragem 2 × 2 onvolu o 5 × 5 onvolu o 5 × 5 Subamostragem 2 × 2 apas de caraterísticas 16@10 × 10 apas de caraterísticas 16@5 × 5 onvolu o 5 × 5 120 unidades 8 unidades 10 unidades 37 Figura 13 - Arquitetura AlexNet. Fonte: Adaptado de: Krizhevsky; Sutskever; Hinton (2012). A primeira camada convolucional extrai as características da imagem de entrada - RGB de dimensões 224 × 224 × 3 - com 96 filtros de tamanho 11 × 11 × 3 e stride de 4 pixels. Em seguida, uma subamostragem de tamanho 3 × 3 e stride 2 os reduz para a dimensão 27 × 27. A segunda camada convolucional recebe como entrada a saída normalizada e agrupada da primeira camada convolucional, realiza padding 2 e a processa a partir de 256 filtros de tamanho 5 × 5 × 96 com stride 1; em seguida, uma nova subamostragem 3 × 3 e stride 2 disponibiliza para a terceira camada convolucional 256 mapas de ativação de dimensões 13 × 13. A terceira, quarta e quinta camadas convolucionais são conectadas umas às outras sem quaisquer camadas de subamostragem ou normalização, entretanto, mantêm as dimensões dos mapas de características devido ao tamanho do filtro (3 × 3) e a utilização de padding de dimensão 1. Isto posto, a terceira camada convolucional dispõe 384 filtros de tamanho 3 × 3 × 256, a quarta camada convolucional de 384 filtros de tamanho 3 × 3 × 384, a quinta camada convolucional de 256 filtros de tamanho 3 × 3 × 384 e, finalmente, uma última subamostragem por max pooling 3 × 3 é realizada antes da etapa de classificação. Na etapa de classificação, as duas primeiras camadas totalmente conectadas possuem 4096 neurônios cada e são interconectadas pela técnica de dropout. A camada final totalmente conectada, ou seja, a camada de saída contém 1.000 unidades, pois, utiliza a função de ativação softmax para classificar, a partir dos recursos extraídos da imagem de entrada, em uma das mil classes do conjunto de dados ImageNet. 2.2.3 Network in Network A LeNet, AlexNet e VGG (esta última que será apresentada a seguir) compartilham um padrão de design comum: extrair recursos explorando a estrutura espacial por meio de 38 uma sequência de convoluções e camadas de pooling e pós processá-los por meio de camadas totalmente conectadas. As melhorias no LeNet por AlexNet e VGG residem principalmente em como estas redes ampliam e aprofundam esses dois módulos: extração de recursos e classificação. Estes três modelos apresentam dois grandes desafios: o número de parâmetros exigidos nas camadas totalmente conectadas no final das arquiteturas e a incapacidade de adicionar camadas totalmente conectadas no entremeio da rede para aumentar o grau de não linearidade: este processo destruiria a estrutura espacial e, potencialmente, exigiria mais memória durante o treinamento (Zhang et al., 2021). Lin; Chen; Yan (2013), autores da arquitetura Network in Network (NiN), introduziram duas novas ideias para oferecer uma alternativa capaz de resolver ambos os problemas: Primeiramente, em substituição aos filtros lineares convencionais, propuseram a incorporação de camadas totalmente conectadas do tipo MLP entre as saídas das camadas convolucionais tradicionais, esta estrutura é denominada de camada mlpconv. Os neurônios das camadas MLP é equivalente a filtros convolucionais de tamanho 1 × 1. Os autores defendem que substituir um filtro convolucional por um aproximador de função não linear mais potente pode aumentar a capacidade de abstração do modelo local e, portanto, aumenta a capacidade de expressividade não linear do modelo. Na Figura 14 é apresentada uma comparação desta estrutura com a de uma camada convolucional tradicional. Figura 14 - Comparação entre camadas convolucionais: (a) tradicional em CNN e (b) mlpconv. Fonte: (Lin; Chen; Yan, 2013). Outra contribuição da proposta da NiN é a substituição de camadas totalmente conectadas tradicionais vista no final de outros modelos por subamostragens do tipo pooling médio global. Conforme comparação representada na Figura 15, este esquema de pooling combina, por média, todas as ativações dentro de cada mapa de características para obter uma única pontuação de classificação que é, em seguida, encaminhada para uma camada do tipo soft-max para classificação. (a (b 39 Figura 15 - Comparação entre camadas totalmente conectadas: (a) flatten e (b) global average pooling. Fonte: (Bu et al., 2020). A proposta deste modelo de CNN é diminuir parâmetros com uma rede neural simples e leve e, deste modo, sua principal aplicação se dá em conjuntos de dados de pequena escala em dispositivos móveis e sistema embarcados (Khan et al., 2018). Figura 16 - Arquitetura da Network in Network. Fonte: Adaptado de: Khan et al. (2018); Lin; Chen; Yan (2013); Zhang et al. (2021). A arquitetura da NiN, ilustrada na Figura 16, procede das mesmas estruturas iniciais de convolução do AlexNet, i.e., consiste em camadas convolucionais com filtros de tamanho 11 × 11, 5 × 5 e 3 × 3, respectivamente. Cada camada convolucional é seguida por um par de camadas totalmente conectadas e uma camada de max pooling com janela de 3 × 3 e stride de tamanho 2. Blocos de regularização dropout são utilizados após todas as camadas de max pooling - com exceção da última - para contribuir em direção a um menor erro de teste e maior generalização da rede. Como supracitado, na última camada mlpconv, utiliza-se uma subamostragem do tipo pooling médio global (Global average pooling) para extrair a média de cada mapa de característica e gerar um vetor resultante propagado a uma camada classificadora com função do tipo softmax. (a (b 40 2.2.4 VGGnet Embora não tenha sido o vencedor do ILSVRC no ano de 2014, a arquitetura VGG (Simonyan; Zisserman, 2014) é um dos modelos de CNN mais populares desde a sua introdução em 2014. A razão de sua popularidade está na simplicidade de seu modelo: a proposta de utilizar pequenas dimensões de largura e altura das camadas convolucionais, enquanto expande a profundidade ao decorrer da rede. Com esta proposta, se atinge redes muito profundas com filtros convolucionais pequenos que são capazes de extrair maior detalhamento da entrada. Seu nome é um acrônimo do departamento de Ciências da Engenharia da Universidade de Oxford Visual Geometry Group (VGG). Os autores da VGG introduziram variações de configurações de VGGnets, que seguem o mesmo projeto genérico composto em blocos, com a diferença apenas nas profundidades e, de acordo com eles, a principal contribuição de seu trabalho é uma avaliação completa de redes de profundidade crescente. A configuração de VGGnet menos profunda (a configuração A) possui 11 camadas de peso, sendo 8 camadas convolucionais e 3 camadas FC; à medida que, a mais profunda (configuração E) possui 19 camadas de peso na rede, sendo 16 camadas convolucionais e 3 camadas FC. Dentre todas as variações, as configurações D e E (comumente referidas como VGGnet-16 e VGGnet-19 na literatura) são as mais bem sucedidas. Os blocos do projeto genérico das VGGnets são constituídos a partir da sequência: uma camada convolucional com stride 1 e padding, para manter a resolução, uma não linearidade como uma ReLU e uma camada de max-pooling com janela de 2 × 2 e stride 2 para reduzir a resolução. Com exceção de apenas uma configuração que utiliza filtros de convolução 1 × 1, todas as demais arquiteturas VGGnet são constituídas estritamente de filtros de convolução de tamanho 3 × 3 - o menor tamanho necessário para capturar a noção de pixels vizinhos. O conjunto de camadas convolucionais (que tem uma profundidade diferente em diferentes arquiteturas) é seguido por três camadas totalmente conectadas: as duas primeiras têm 4096 unidades cada e a terceira e final, que é composta pela ativação soft-max para realizar classificação da ILSVRC, contém, portanto, 1000 unidades. A configuração das camadas totalmente conectadas é a mesma para todas as VGGnets. Na Figura 17 têm-se representado o modelo VGGnet-16. Este modelo possui 138 milhões de parâmetros treináveis e, semelhante ao AlexNet, usa dropouts de ativação nas duas primeiras camadas totalmente conectadas para evitar o overfitting. 41 Figura 17 - Arquitetura VGGnet-16 (configuração-D). Fonte: Adaptado de: (Simonyan; Zisserman, 2014). Os autores apontam que existem duas vantagens na estratégia de utilização de filtros 3 × 3 empilhados em relação a uma única camada de filtros de maior dimensão. A primeira é triplicar o número de retificação não lineares, o que torna a função de decisão mais discriminativa. Em segundo lugar, a diminuição do número de parâmetros mantendo a dimensão do campo receptivo efetivo. Visto que, por exemplo, o empilhamento de duas camadas convolucionais com filtros de tamanho 3 × 3 (sem subamostragem espacial entre elas) proporciona um campo receptivo efetivo equivalente ao de uma camada composto por filtros 5 × 5; três destas camadas dispõem equivalência a um campo receptivo efetivo de uma camada com filtros 7 × 7. Ou seja, supondo uma pilha de três camadas de convolução 3 × 3 tenham C canais de profundidade, a pilha é parametrizada por 3(32𝐶2) = 27𝐶2 pesos; por outro lado, uma camada convolucional de 7 × 7 exigiria 1(72𝐶2) = 49𝐶2 pesos, ou seja, 81% parâmetros a mais (Simonyan; Zisserman, 2014). Deste modo, filtros menores reduzem relativamente o número de parâmetros e, portanto, proporcionam treinamentos e testes mais eficientes e, consequentemente, permitem empilhar mais camadas que oportunizam redes mais profundas com melhores desempenhos nas tarefas de visão computacional. 2.2.5 GoogLeNet As redes supracitadas consistem em uma arquitetura sequencial com camadas empilhadas umas sobre as outras para criar uma arquitetura profunda composta por apenas um magem de entrada 224× 224× 3 onvolu o 96@11× 11 64@224× 224 128@112× 112 256@56× 56 512@28× 28 3 × 3 2 512@14× 14 4096@1× 1 1000@1× 1 512@7× 7 42 caminho. Neste caminho, diversas camadas podem ser utilizadas, tais como: convolução, pooling, ReLU, dropout e camadas totalmente conectadas. A arquitetura GoogLeNet (Szegedy et al., 2015) é o primeiro modelo popular que utiliza uma arquitetura mais complexa com várias ramificações. Este modelo, vencedor da competição ILSVRC no ano de 2014, usa em sua estrutura os pontos fortes do NiN (Lin; Chen; Yan, 2013), combinados a blocos repetidos (Simonyan; Zisserman, 2014) e uma composição de filtros convolucionais. Várias versões aprimoradas e estendidas do GoogLeNet foram propostas a posteriori, no entanto, nesta seção, apenas a arquitetura enviada ao ILSVRC 2014 do GoogLeNet será discutida. O bloco fundamental de constru o da rede GoogLeNet é o módulo “Inception”, representado na Figura 18. Este módulo ganhou tanto destaque que a arquitetura da rede é também comumente mencionada como “Inception Network”. Figura 18 - Estrutura do Módulo Inception: (a) Conceito básico do módulo Inception (b) Módulo Inception com redução de dimensionalidade. Fonte: Adaptado de: (Szegedy et al., 2015). Conforme ilustrado na Figura 18(a), o módulo consiste em quatro ramificações paralelas. As três primeiras ramificações usam, respectivamente, camadas convolucionais com janelas de 1 × 1, 3 × 3 e 5 × 5 para extrair informações de diferentes tamanhos espaciais. Além disto, de modo que as operações de pooling são essenciais para o sucesso das redes convolucionais tradicionais, um caminho alternativo de pooling foi adicionado em paralelo a estes estágios. Este caminho reduz as dimensões de altura e largura das entradas, sintetizando as informações da camada anterior, de modo a preservar características que são propagadas para as camadas subsecutivas. A ideia central do módulo Inception é colocar todos os blocos básicos de processamento que ocorrem em uma rede convolucional de forma sequencial regular em paralelo e combinar suas representações na saída. As ramificações usam padding e stride apropriados para fornecer as mesmas dimensões de altura e largura à saída. × × × × × × × × × × × 43 Embora a arquitetura ilustrada na Figura 18 (a) possa cobrir a estrutura esparsa ideal, o problema, no entanto, é que, se todos os mapas de características de cada bloco forem simplesmente concatenados sem nenhuma alteração ao longo da dimensão de profundidade, resultará em um mapa de características de saída de dimensão muito alta, que pode acarretar à uma explosão computacional de processamento em poucos estágios. Para superar este problema, foi proposto o módulo Inception representado na Figura 18 (b), que realiza redução da dimensão da profundidade a partir de convolução de janelas 1 × 1 antes de passar pela extração de características pelos filtros de convolução 3 × 3 e 5 × 5. Isto significa que, enquanto os filtros de convolução e pooling operam no domínio espacial, i.e., ao longo da altura e largura, a camada de dimensões 1 × 1 combina informações ao longo da profundidade. A arquitetura GoogLeNet representada na Figura 19 possui 9 módulos Inceptions empilhados, que resulta em uma rede profunda de 22 camadas (se considerar as camadas dos módulos, o número total de camadas na rede é maior do que 100). Semelhante ao NiN, o GoogleNet usa o pooling médio global seguido por uma camada totalmente conectada no final da rede de classificação pela função Softmax. Para melhorar a capacidade de generalização da rede utiliza-se uma camada de dropout antes da camada de classificação. Todas as convoluções, incluindo as dentro dos módulos Inception, usam ativação linear retificada. Maiores detalhes da rede, com dimensões exatas de todas as camadas em cada bloco, são disponibilizados em Szegedy et al. (2015). Figura 19 - Arquitetura rede GoogLeNet. Fonte: Adaptado de: (Szegedy et al., 2015). Embora a arquitetura do GoogLeNet pareça muito mais complexa do que seus antecessores, como a AlexNet e a VGGnet, ela envolve um número significativamente reduzido de parâmetros (6 milhões, em comparação com 62 milhões no AlexNet e 138 milhões de parâmetros no VGGnet), portanto, apresenta um consumo de memória muito menor, melhor eficiência e alta precisão (Khan et al., 2018). 44 2.2.6 ResNet A Rede Residual, do inglês Residual Network (ResNet), da Microsoft, venceu o desafio ILSVRC 2015 com um grande salto no desempenho: reduziu a taxa de erro top-5 para 3,6%. A título de comparação, a GoogleLeNet, vencedora do ano anterior, apresentou um desempenho de 6,7%. A principal característica da arquitetura da ResNet é o Bloco Residual, ilustrado na Figura 20, desenvolvido com uma cone o direta, chamada de “skip”, que ignora o treinamento de algumas camadas e se conecta diretamente à saída. Desta forma, o bloco residual combate o problema de convergência, causado por fuga/explosão de gradiente, e possibilita o treinamento de redes substancialmente mais profundas do que as usadas anteriormente. Esta arquitetura de bloco é semelhante à apresentada na rede Highway que apresenta conexões de skip com comutação para controlar o fluxo de sinal através de suas ramificações - principal e skip. Estes comutadores possuem parâmetros, são dependentes de dados e permite que a rede decida qual ramificação é mais útil para a tarefa final. Em contrapartida, o skip proposto na ResNet não é disposto com um parâmetro de treinamento (He et al., 2016; Srivastava; Greff; Schmidhuber, 2015). Figura 20 - Bloco residual de duas camadas. Fonte: Adaptado de: (He et al., 2016). Para entender estas conexões, considere o bloco residual ilustrado na Figura 20: dada uma entrada 𝑥, as camadas de pesos CNN juntamente com uma função ReLU implementam uma transformação nesta entrada, representada por 𝐹(𝑥). Por intermédio da conexão de skip, a entrada é adicionada diretamente a esta transformação. Desta forma, a função de transformação em um bloco residual é dividida em um termo de identidade (que representa a entrada) e um termo residual que ajuda a focar na transformação dos mapas de características de resíduos (He et al., 2016; Khan et al., 2018). Dado que na saída de um bloco residual tem-se 𝐻(𝑥) = 𝐹(𝑥) + 𝑥, as camadas de peso aprendem apenas as funções de representação residual 𝐹(𝑥) = 𝐻(𝑥) − 𝑥 em vez de aprender × × ( ) + ( ) 45 a representação do sinal diretamente. À medida que o mapeamento de recursos residuais é muitas vezes mais simples do que o mapeamento aprendido nas arquiteturas convencionais, a ResNet alcança um aprendizado estável de modelos muito profundos. Várias configurações de ResNet foram propostas, na Tabela 1 são apresentadas as configurações de arquiteturas de ResNets desenvolvidas para a ImageNet, publicadas por HE et al. (2016). Da mesma forma que o módulo inicial no GoogleNet, a ResNet compreende vários blocos residuais empilhados uns sobre os outros. Todavia, estes blocos se derivam do design da camada convolucional 3 × 3 da VGGnet. Tabela 1 - Arquiteturas de ResNet para ImageNet. Nome da camada Tamanho da saída 18 camadas 34 camadas 50 camadas 101 camadas 152 camadas conv_1 112 × 112 7 × 7, 64, stride 2 conv2_x 56 × 56 max pooling 3 × 3, stride 2 [ 3 × 3, 64 3 × 3, 64 ] × 2 [ 3 × 3, 64 3 × 3, 64 ] × 3 [ 1 × 1, 64 3 × 3, 64 1 × 1, 256 ] × 3 [ 1 × 1, 64 3 × 3, 64 1 × 1, 256 ] × 3 [ 1 × 1, 64 3 × 3, 64 1 × 1, 256 ] × 3 conv3_x* 28 × 28 [ 3 × 3, 128 3 × 3, 128 ] × 2 [ 3 × 3, 128 3 × 3, 128 ] × 4 [ 1 × 1, 128 3 × 3, 128 1 × 1, 512 ] × 4 [ 1 × 1, 128 3 × 3, 128 1 × 1, 512 ] × 4 [ 1 × 1, 128 3 × 3, 128 1 × 1, 512 ] × 8 conv4_x* 14 × 14 [ 3 × 3, 256 3 × 3, 256 ] × 2 [ 3 × 3, 256 3 × 3, 256 ] × 6 [ 1 × 1, 256 3 × 3, 256 1 × 1, 1024 ] × 6 [ 1 × 1, 256 3 × 3, 256 1 × 1, 1024 ] × 23 [ 1 × 1, 256 3 × 3, 256 1 × 1, 1024 ] × 36 conv5_x* 7 × 7 [ 3 × 3, 512 3 × 3, 512 ] × 2 [ 3 × 3, 512 3 × 3, 512 ] × 3 [ 1 × 1, 512 3 × 3, 512 1 × 1, 2048 ] × 3 [ 1 × 1, 512 3 × 3, 512 1 × 1, 2048 ] × 3 [ 1 × 1, 512 3 × 3, 512 1 × 1, 2048 ] × 3 1 × 1 Average pooling, 1000 camadas densas FC com função de ativação Softmax *Nota: Nas camadas conv3_1, conv4_1 e conv5_1 são utilizados max pooling 3 × 3 com stride 2. Fonte: Adaptado de: (He et al., 2016) Para redes menos profundas, como a ResNet-18 e ResNet-34, os autores consideram o bloco residual ilustrado na Figura 21 (a), composto de duas camadas convolucionais 3 × 3. Como sinais são somados, esse projeto de bloco residual requer que a saída tenha a mesma forma que a entrada. Na iminência de alterar o número de canais, faz-se necessária a introdução de uma camada convolucional 1 × 1, com o objetivo de transformar a entrada na forma desejada para possibilitar a operação de adição. Consequentemente, para redes mais profundas, como a ResNet-50, ResNet-101 e ResNet-152, os autores utilizam uma variante de bloco residual, 46 composto por uma pilha de três camadas ao invés de duas, denominado de bloco residual de gargalo (Bottleneck Residual Block) - ilustrado na Figura 21 (b). As três camadas são convoluções de dimensões 1 × 1, 3 × 3 e 1 × 1, respectivamente. As camadas 1 × 1 são responsáveis, respectivamente, por reduzir e depois aumentar (restaurar) dimensões, deixando a camada 3 × 3 com um “gargalo” de entrada menor. Deste modo, o uso de um “gargalo” reduz o número de parâmetros e multiplica ões de matrizes. A ideia é tornar os blocos residuais mais estreitos e possibilitar o aumento da profundidade da rede com menos parâmetros. Figura 21 - Arquiteturas de blocos residuais: (a) comum; (b) Bottleneck. Fonte: Adaptado de: (He et al., 2016). Com esta ideia de projeto modificado dos blocos residuais, as redes de maior profundidade mostraram um bom desempenho sem nenhum ajuste excessivo nos dados de treinamento. 2.2.7 ResNext A arquitetura ResNext combina os pontos fortes dos projetos VGG, ResNet e Inception: composta pela repetição de blocos (como no VGG) que agrega um conjunto de transformações (como Inception) e as combina com as conexões residuais (da ResNet). Isso aplica um conjunto de transformações aos mapas de características de entrada e mescla com saídas resultantes antes de encaminhar as ativações de saída para o próximo módulo (Xie et al., 2017). × × × × × 47 A diferença entre o bloco ResNext ao módulo Inception é manifestada pelos três aspectos principais: Primeiro, contém um número maior de ramificações em comparação com o módulo Inception. Em segundo lugar, em contraste com diferentes tamanhos de filtros em diferentes ramificações da arquitetura Inception, a sequência de filtros em cada ramificação é idêntica a outras ramificações no módulo ResNext. Isso simplifica as escolhas de parâmetros da arquitetura ResNext, em comparação com o módulo Inception. Finalmente, o bloco ResNext contém conexões de skip que foram utilizadas nas redes residuais e consideradas cruciais no treinamento de redes muito profundas (Khan et al., 2018). A arquitetura geral do ResNext é equivalente ao design do ResNet mostrado na Tabela 1. A única diferença é que os blocos residuais são substituídos pelos blocos ResNext. Uma comparação entre os blocos é mostrada na Figura 22. Enquanto o bloco ResNet compreende uma única ramificação principal ao lado de uma conexão de skip, o bloco ResNext consiste em várias ramificações, formalmente denominadas de cardinalidade, e cada uma das quais implementa uma transformação. Juntamente com a profundidade e a largura, a cardinalidade é vista pelos autores como a próxima (next) dimensão vital nas redes neurais - originando o nome da rede (Xie et al., 2017). Para fins de comparação, o bloco ResNext proposto com 32 ramificações, Figura 22 (b), possui aproximadamente o mesmo número de parâmetros que o bloco ResNet ilustrado na Figura 22(a). Cada transformação é mostrada como: # número de canais de entrada, # dimensões do filtro, # número de canais de saída. Figura 22 - Comparação entre exemplos de blocos residuais de dimensão 256: (a) ResNet; (b) ResNext. Fonte: Adaptado de: (Xie et al., 2017). De modo geral, os dados são processados na sequência: divisão, transformação e união - como apresentado no módulo Inception. No exemplo da Figura 22, cada ramificação reduz , × , , × , , × , , × , , × , , × , , × , , × , , × , , × , , × , , × , 48 os dados para 4 canais, os transformam por convoluções 3 × 3 sem alterar o número de canais e, posteriormente, são devolvidos à dimensão 256. Esses tensores de 256 dimensões são somados e as conexões de skip adiciona a entrada ao resultado. Todo o processamento tem, aproximadamente, o mesmo número de parâmetros do que um bloco ResNet equivalente. ResNeXt é um exemplo de como o projeto de redes neurais convolucionais evoluiu ao longo do tempo: e istem alguns “truques” que levam a redes mais rápidas e precisas a um custo mais eficiente, i.e., computação mais moderada ao parametrizar o tamanho das ativações (número de canais) (Zhang et al., 2021). 2.2.8 DenseNet A ResNet mudou significativamente a visão de como parametrizar as funções em redes profundas dado que o uso de conexões skip, sobretudo, evita o problema de fuga/explosão de gradiente e permitem o treinamento de redes muito profundas. A Rede Convolucional Densa (DenseNet) estende essa ideia ao propagar a saída de cada camada para todas as camadas subsequentes, facilitando efetivamente a propagação da informação nas direções para frente e para trás durante o treinamento da rede. O nome DenseNet surge do fato de que a dependência entre variáveis se torna bastante densa. A última camada dessa cadeia está densamente conectada a todas as camadas anteriores. As conexões são realizadas a partir de blocos densos e são representadas na Figura 23. Figura 23 - Conexões entre blocos densos: etapa de propagação Fonte: Adaptado de: (Zhang et al., 2021). Esta estratégia permite conexões entre todas as camadas da rede que possibilitem que elas “conversem” entre si e descubram automaticamente a melhor maneira de combinar recursos de vários estágios em uma rede profunda. Como uma das consequências destas conexões, as características das camadas iniciais são passadas diretamente para as camadas posteriores sem qualquer perda de informação. Em contrapartida, enquanto as redes convolucionais tradicionais com 𝐿 camadas têm 𝐿 conexões diretas, a DenseNet possuirá 𝐿(𝐿+1) 2 conexões diretas. Um efeito - possivelmente contraintuitivo - deste padrão de 49 conectividade denso é que ele requer menos parâmetros do que as redes convolucionais tradicionais, uma vez que não há necessidade de reaprender mapas de características redundantes. Além de ser caracterizada pelo padrão de conectividade entre suas camadas, a DenseNet também utiliza a operação de concatenação - ao invés do operador de adição no ResNet - para preservar e reutilizar recursos de camadas anteriores. Como resultado, é realizado um mapeamento de 𝑥 para seus valores após aplicar uma sequência de funções cada vez mais complexa (Zhang et al., 2021):