UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO” FACULDADE DE ENGENHARIA CÂMPUS DE ILHA SOLTEIRA WILLIAN DE ASSIS PEDROBON FERREIRA Rede Neural ARTMAP Fuzzy Implementada em Hardware Aplicada na Previsão da Qualidade do Ar em Ambiente Interno Ilha Solteira 2021 WILLIAN DE ASSIS PEDROBON FERREIRA Rede Neural ARTMAP Fuzzy Implementada em Hardware Aplicada na Previsão da Qualidade do Ar em Ambiente Interno Tese apresentada à Faculdade de Engenharia – UNESP – Câmpus de Ilha Solteira como parte dos requisitos exigidos para obtenção do t́ıtulo de Doutor em Engenharia Elétrica. Área de Conhecimento: Automação. Prof. Dr. Alexandre César Rodrigues da Silva Orientador Prof. Dr. Ian Andrew Grout University of Limerick - Irlanda Coorientador Ilha Solteira 2021 . . . FICHA CATALOGRÁFICA Desenvolvido pelo Serviço Técnico de Biblioteca e Documentação Ferreira, Willian de Assis Pedrobon. Rede neural ARTMAP Fuzzy implementada em hardware aplicada na previsão da qualidade do ar em ambiente interno / Willian de Assis Pedrobon Ferreira. -- Ilha Solteira: [s.n.], 2021 100 f. : il. Tese (Doutorado em Engenharia Elétrica) - Universidade Estadual Paulista. Faculdade de Engenharia de Ilha Solteira. Área de conhecimento: Automação, 2021 Orientador: Alexandre César Rodrigues Da Silva Co-orientador: Ian Andrew Grout Inclui bibliografia 1. Rede neural ARTMAP Fuzzy . 2. Internet das coisas. 3. Qualidade do ar. 4. Tempo real. 5. Hardware. 6. FPGA. F383r UNIVERSIDADE ESTADUAL PAULISTA Rede Neural ARTMAP Fuzzy Implementada em Hardware Aplicada na Previsão da Qualidade do Ar em Ambiente Interno TÍTULO DA TESE: CERTIFICADO DE APROVAÇÃO AUTOR: WILLIAN DE ASSIS PEDROBON FERREIRA ORIENTADOR: ALEXANDRE CESAR RODRIGUES DA SILVA Aprovado como parte das exigências para obtenção do Título de Doutor em ENGENHARIA ELÉTRICA, área: Automação pela Comissão Examinadora: Prof. Dr. ALEXANDRE CESAR RODRIGUES DA SILVA (Participaçao Virtual) Departamento de Engenharia Elétrica / Faculdade de Engenharia de Ilha Solteira - UNESP Prof. Dr. GUILHERME DE AZEVEDO E MELO (Participaçao Virtual) Departamento de Engenharia Elétrica / Faculdade de Engenharia de Ilha Solteira - UNESP Profª. Drª. MARA LUCIA MARTINS LOPES (Participaçao Virtual) Departamento de Matemática / Faculdade de Engenharia de Ilha Solteira - UNESP Profª. Drª. YARA DE SOUZA TADANO (Participaçao Virtual) Departamento de Matemática / Universidade Tecnológica Federal do Paraná - UTFPR Prof. Dr. MAICON APARECIDO SARTIN (Participaçao Virtual) Departamento de Ciência da Computação / Universidade do Estado do Mato Grosso - UNEMAT Ilha Solteira, 25 de agosto de 2021 Faculdade de Engenharia - Câmpus de Ilha Solteira - Avenida Brasil Centro 56, 15385000, Ilha Solteira - São Paulo http://www.ppgee.feis.unesp.brCNPJ: 48.031.918/0015-20. Alexandre César Rodrigues da Silva AGRADECIMENTOS Agradeço a Deus, por me conceder saúde e por não me deixar faltar nada. Aos meus pais, Emı́dio e Solange, pelo apoio e suporte. Ao meu irmão, Tarćısio, companheiro sempre presente. Ao meu orientador Prof. Dr. Alexandre César Rodrigues da Silva e coorientador Prof. Dr. Ian Andrew Grout da Universidade de Limerick, Irlanda, por terem possibilitado o desenvolvido deste trabalho. Aos membros da banca, por se disponibilizarem para auxiliar na avaliação deste trabalho. Aos amigos do Laboratório de Processamento de Sinais e Sistemas Digitais, pela cooperação e longa amizade constrúıda durante todos esses anos. Ao Thiago Costa de Paiva, pelo aux́ılio em etapas primordiais do desenvolvimento da descrição do hardware. À Poliana, pelos incentivos, paciência e companhia em todos os momentos. O presente trabalho foi realizado com apoio da Coordenação de Aperfeiçoamento de Pessoal de Nı́vel Superior - Brasil (CAPES) - Código de Financiamento 001. RESUMO Tecnologias elaboradas na Internet das Coisas e em áreas relacionadas proporcionaram vários avanços no desenvolvimento de sensores e de interfaces computacionais miniaturizadas, que são empregadas em serviços de monitoramento e auxiliam diversos cenários da sociedade moderna. Com o uso de algoritmos de aprendizado de máquina para processar informações amostradas por sensores, a atuação automática dos sistemas computacionais em resposta aos comportamentos existentes beneficiou vários processos, trazendo otimização, segurança e bem-estar aos cidadãos assistidos. Nesse contexto insere-se esta pesquisa, cujo objetivo foi a implementação de um sistema embarcado com treinamento on-line, possibilitando uma aprendizagem cont́ınua para realizar previsões em tempo real. A aplicação alvo foi o monitoramento e a previsão de séries temporais com dados da qualidade de ar em ambiente interno utilizando-se a rede neural ARTMAP fuzzy, que emprega conceitos da Teoria da Ressonância Adaptativa. Sensores de baixo custo amostraram os seguintes componentes em um ambiente doméstico utilizado como quarto e escritório: ı́ndice da qualidade de ar interno calculado automaticamente por uma biblioteca da Bosch, temperatura, umidade, dióxido de carbono, compostos orgânicos voláteis e material particulado. A melhor acurácia das previsões univariadas foi a da temperatura, com porcentagem de erro médio absoluto igual a 2,8 na previsão 1 hora à frente, e de 6,4 nas previsões 24 horas à frente. Para obter previsões do ı́ndice da qualidade do ar com maior acurácia, foram verificadas algumas combinações multivariadas como entradas da ARTMAP fuzzy, sendo o melhor resultado da previsão 1 hora à frente obtido com a temperatura e umidade, com 31,3 de porcentagem de erro médio absoluto, que foi 15,2% menor em comparação à previsão univariada desse ı́ndice. Com o intuito de aprimorar o tempo de resposta da rede neural ARTMAP fuzzy, foi projetada uma arquitetura de hardware em uma FPGA (field-programmable gate array). Foi proposto um novo gerenciamento da manutenção das categorias da rede neural ARTMAP fuzzy, que economizou 70% do uso de memória do estudo de caso em hardware. Considerando ambos os tempos de treinamento e predição, a FPGA foi em média 84 e 683 vezes mais rápida que um laptop com um processador Intel Core-i5 8250U e um Raspberry Pi 3, respectivamente, que processaram o algoritmo da ARTMAP fuzzy implementado em Python. Palavras-chave: rede neural ARTMAP fuzzy. internet das coisas. qualidade do ar. tempo real. hardware. FPGA. ABSTRACT Internet of Things and related technological areas have provided several advances in the development of sensors and miniaturized computer interfaces, which are employed in monitoring services and help various scenarios of modern society. With the use of machine learning algorithms to process sensor data, the automatic computer systems feedback in response to existing behaviors benefited several processes, bringing optimization, safety, and well-being to assisted citizens. However, the association of machine learning algorithms with dense data volumes requires high computational processing rates. In this context, this research is included, whose objective was the implementation of an embedded system with online training, enabling continuous learning to perform real-time predictions. The target application was the monitoring and prediction of indoor air quality time series data using the fuzzy ARTMAP neural network, which employs concepts of Adaptive Resonance Theory. Low-cost sensors sampled the following components in a domestic indoor environment used as a bedroom and office: indoor air quality index automatically calculated by a Bosch library, temperature, humidity, carbon dioxide, volatile organic compounds, and particulate matter. The best univariate prediction accuracy was the temperature, with a mean absolute percentage error equal to 2.8 for 1 hour ahead prediction, and 6.4 for 24 hours ahead predictions. To obtain more accurate air quality index prediction, some multivariate combinations were verified as fuzzy ARTMAP input, being the best 1 hour ahead prediction result obtained by temperature and humidity with a mean absolute error percentage of 31.3, which was 15.2% lower compared to the univariate prediction of this index. To improve the fuzzy ARTMAP neural network, a hardware field-programmable gate array (FPGA) architecture was designed. A new proposed ARTMAP fuzzy neural network clusters management saved 70% memory usage of the hardware study case. Considering both training and prediction operations, the FPGA was on average 84 and 683 times faster than a laptop with an Intel Core-i5 8250U processor and a Raspberry Pi 3, respectively, which processed a fuzzy ARTMAP Python implementation. Keywords: fuzzy ARTMAP neural network. internet of things. air quality. real-time. hardware. FPGA. LISTA DE FIGURAS Figura 1 – Etapas realizadas neste trabalho 16 Figura 2 – Paradigmas de computação anteriores à IoT 17 Figura 3 – Aprimoramento de sistemas IoT com técnicas de IA 18 Figura 4 – Camadas de processamento aplicadas em sistemas IoT 20 Figura 5 – Estrutura elementar da rede neural ART 27 Figura 6 – Arquitetura da rede neural ART fuzzy 29 Figura 7 – Fluxograma da rede neural ART fuzzy 32 Figura 8 – Arquitetura da rede neural ARTMAP fuzzy 34 Figura 9 – Fluxograma da rede neural ARTMAP fuzzy com treinamento off-line 35 Figura 10 – Arquitetura da rede neural ARTMAP fuzzy com treinamento on-line 37 Figura 11 – Fluxograma da rede neural ARTMAP fuzzy com treinamento on-line 39 Figura 12 – Fluxograma do cálculo de uma predição da rede ARTMAP fuzzy 41 Figura 13 – Diagrama de ligação dos sensores ao Raspberry Pi 3 44 Figura 14 – Sensores utilizados nessa pesquisa 46 Figura 15 – Séries temporais dos dados amostrados 47 Figura 16 – Série temporal modelada em janelas deslizantes sobrepostas 49 Figura 17 – Diferentes metodologias de normalização dos padrões de entrada da rede neural ARTMAP fuzzy 51 Figura 18 – Previsões univariadas com normalização por linha 53 Figura 19 – Previsões univariadas com normalização por coluna 55 Figura 20 – Matrizes de correlação das séries temporais com atraso de até 3 lags 57 Figura 21 – Previsões univariadas 24 horas à frente 60 Figura 22 – Matriz de correlação dos compostos do ar 63 Figura 23 – Previsões do IAQ aplicando normalização por linha e séries temporais multivariadas 64 Figura 24 – Previsão do IAQ aplicando normalização por coluna e séries temporais multivariadas 64 Figura 25 – Taxa de dados produzidos por várias aplicações 69 Figura 26 – Fluxograma da rede neural ARTMAP fuzzy com o novo gerencia- mento de categorias 73 Figura 27 – Diagrama de blocos da entidade ARTMAP fuzzy 76 Figura 28 – Diagrama de blocos da entidade ARTa 77 Figura 29 – Exemplo de uso do vetor flag clustera 78 Figura 30 – Diagrama de blocos da entidade WTA 79 Figura 31 – Diferentes metodologias de mapeamentos Inter-ART 80 Figura 32 – Diagrama de blocos da entidade IACM 81 Figura 33 – Diagrama de blocos da entidade pred pattern 82 Figura 34 – Diagrama de sequência da rede ARTMAP fuzzy em hardware 83 Figura 35 – Número de categorias criadas durante o treinamento on-line da rede neural ARTMAP fuzzy em hardware 85 Figura 36 – Tempos de treinamento e predição executados em diferentes dispositivos 86 Figura 37 – Dados da qualidade do ar atualizados em tempo real 99 Figura 38 – Configuração do servidor Node-RED 99 LISTA DE QUADROS Quadro 1 – Poluentes t́ıpicos do ar em ambientes internos 24 Quadro 2 – Informações dos sensores utilizados nesse trabalho 43 Quadro 3 – Classificação do IAQ calculado pelo BSEC 44 Quadro 4 – Parâmetros da ARTMAP fuzzy com normalização por linha 52 Quadro 5 – Avaliação das previsões univariadas 56 Quadro 6 – Número de categorias criadas nas avaliações univariadas 59 Quadro 7 – Avaliação das previsões univariadas 24 horas à frente 61 Quadro 8 – Avaliação das previsões do IAQ com séries temporais multivariadas 65 Quadro 9 – Avaliação da rede ARTMAP fuzzy com diferentes números de categorias 72 Quadro 10 –Hardware da FPGA utilizado na descrição em VHDL 84 Quadro 11 –Comparação da acurácia da rede neural ARTMAP fuzzy implemen- tada em software e em hardware 85 Quadro 12 –Tempos de execução em segundos de diferentes dispositivos 86 Quadro 13 –Relação de tempos de execução da FPGA com os dos dispositivos baseados em software 87 Quadro 14 –Avaliação das previsões do IAQ 24 horas à frente com séries temporais multivariadas 100 Quadro 15 –Número de categorias criadas nas avaliações de séries temporais multivariadas 100 LISTA DE ABREVIATURAS E SIGLAS µg/m3 Micrograma por metro cúbico AmI Ambiental inteligence ARMA Autoregressive Moving Average ART Adaptive Resonance Theory ASIC Application-specific integrated circuit BSEC Bosch Sensortec Environmental Cluster CO Monóxido de carbono CO2 Dióxido de carbono DL Deep learning DSP Digital signal processor EPA Environmental Protection Agency FPGA Field-programmable gate array FSM Finite state machine GPU Graphics processing unit HLS High-level synthesis HVAC Heating, ventilating and air conditioning IA Inteligência artificial IACM Inter-ART cluster manager IAQ Indoor air quality IoT Internet of Things IP Intellectual property LSTM Long short-term memory LUT Look-up table MAE Mean absolute error MAPE Mean absolute pencentage error MENS Micro-electromechanical systems ML Machine learning NO2 Dióxido de nitrogênio NOx Óxidos nitrosos O3 Ozônio OS-ELM On-line Sequential Extreme Learning Machine PLD Programmable logic device PM Particulate matter PM10 Part́ıculas com diâmetros de até 10 micrômetros PM2.5 Part́ıculas com diâmetros de até 2,5 micrômetros ppb Partes por bilhão ppm Partes por milhão RFID Radio-frequency identification RMSE Root mean squared error Rn Radônio RNA Rede neural artificial SO2 Dióxido de enxofre TPU Tensor processing unit VOC Volatile organic compound WTA Winner takes all SUMÁRIO 1 INTRODUÇÃO 13 1.1 OBJETIVOS 15 2 ASSOCIAÇÃO DE ALGORITMOS DE MACHINE LEARNING À APLICAÇÕES IoT 17 2.1 PLATAFORMAS IoT BASEADAS EM SOFTWARE E HARDWARE 19 2.2 FERRAMENTAS EMPREGADAS NO MONITORAMENTO E NA PREVI- SÃO DA QUALIDADE DE AR 22 3 TEORIA DA RESSONÂNCIA ADAPTATIVA 27 3.1 REDE NEURAL ART FUZZY 29 3.2 REDE NEURAL ARTMAP FUZZY 33 3.2.1 Rede neural ARTMAP fuzzy com treinamento on-line 37 3.2.2 Cálculo de uma predição com a rede neural ARTMAP fuzzy 40 4 PREVISÃO DE COMPONENTES DA QUALIDADE DE AR COM A REDE NEURAL ARTMAP FUZZY 42 4.1 SISTEMA PROPOSTO 42 4.1.1 Amostragem de dados 44 4.2 REDE NEURAL ARTMAP FUZZY APLICADA NA PREVISÃO DE SÉRIES TEMPORAIS 48 4.2.1 Avaliações de séries temporais univariadas 51 4.2.2 Previsão do IAQ aplicando séries temporais multivariadas 62 5 IMPLEMENTAÇÃO DA REDE NEURAL ARTMAP FUZZY EM HARDWARE 68 5.1 PROPOSTA DE UM NOVO GERENCIAMENTO DE CATEGORIAS 70 5.2 OPERAÇÕES ARITMÉTICAS MODELADAS EM PONTO FIXO 74 5.3 ARQUITETURA DA REDE NEURAL ARTMAP FUZZY EM HARD- WARE 75 5.4 AVALIAÇÃO DA DESCRIÇÃO EM HARDWARE 83 6 CONCLUSÕES 89 6.1 TRABALHOS FUTUROS 90 REFERÊNCIAS 92 APÊNDICE A -- DASHBOARD PARA VISUALIZAÇÃO DOS DADOS EM TEMPO REAL 99 APÊNDICE B -- AVALIAÇÃO DAS PREVISÕES DO IAQ APLICANDO SÉRIES TEMPORAIS MULTIVARIADAS 100 13 1 INTRODUÇÃO A tecnologia está cada vez mais presente no cotidiano e tornou-se fundamental para promover melhorias na qualidade de vida da sociedade moderna. Atualmente existem vários serviços fornecidos por dispositivos eletrônicos, muitas vezes transparentes aos usuários, que auxiliam na execução de atividades em diversas aplicações. Tarefas executadas manualmente vêm sendo automatizadas por sistemas computacionais autônomos, proporcionando conforto e segurança às pessoas. Para possibilitar a interação homem-máquina, é indispensável estudar comporta- mentos existentes com a finalidade de identificar padrões das ações e dos ambientes monitorados. O sensoriamento dessas caracteŕısticas foi amplamente promovido após a ascensão da Internet das Coisas, ou IoT (Internet of Things), que auxiliou no desenvolvimento de novas tecnologias empregadas na implementação de vários tipos de sensores. Em centros urbanos, por exemplo, há grande interesse na coleta de informações em tempo real de diversos contextos, como dados ambientais (qualidade de ar, rúıdo sonoro), dados de infraestrutura e informações da dinâmica das cidades (tráfego de véıculos e fluxo de pessoas) (WANG et al., 2019). Além dos fenômenos f́ısicos, estuda-se também o comportamento das pessoas, que pode ser realizado por meio de sensores móveis e sensores corporais, como acelerômetros e giroscópios (CHEN et al., 2019). Um dos objetivos de obter informações que caracterizam comportamentos de ambientes e pessoas é a inserção de atuadores nas situações monitoradas, cujo papel é influenciar, de alguma forma, a execução dos procedimentos existentes no contexto analisado. Considerando essas mudanças obtidas com a densa aplicação de sensores e atuadores em centros urbanos, surgiu o conceito de cidades inteligentes, cujo fundamento é a obtenção de melhorias no gerenciamento de recursos e de processos baseando-se no monitoramento para gerar serviços eficientes que auxiliem os cidadãos (WANG et al., 2019; DU et al., 2019). Diante da grande quantidade de dados gerados pelas cidades inteligentes, é necessário interpretar e identificar padrões das informações para que os sistemas IoT possam atuar e fornecer as respostas desejadas de acordo com o contexto analisado. Esta necessidade foi 14 amplamente atendida aplicando-se conceitos da inteligência artificial (IA) para desenvolver algoritmos de aprendizagem capazes de extrair conhecimento dos dados amostrados. Além disso, os algoritmos inteligentes se adaptam automaticamente de acordo com as mudanças e comportamentos existentes, fazendo com que as respostas destes sistemas permaneçam atualizadas (DU et al., 2019). O aprendizado de máquina, ou ML (machine learning), é um campo da IA de grande interesse no estudo e desenvolvimento de algoritmos inteligentes. Adicionalmente, uma importante extensão do ML é o aprendizado profundo, ou DL (deep learning). O objetivo dessas linhas de pesquisa é desenvolver sistemas computacionais capazes de aprender a partir de padrões dos dados processados. Com o conhecimento adquirido pela interação do algoritmo com os est́ımulos do ambiente, criam-se modelos matemáticos generalizados capazes de reconhecer padrões e comportamentos existentes, possibilitando o cálculo de predições nos contextos observados. O processamento da densa quantidade de dados aplicando algoritmos de ML e DL pode demandar altas capacidades computacionais. Considerando aplicações IoT, é comum enviar dados de sensores via Internet para serviços de computação em nuvem. Todo processamento é realizado remotamente em servidores com alta capacidade computacional, e os resultados são transmitidos de volta aos dispositivos IoT (SAMIE; BAUER; HENKEL, 2019). Contudo, podem surgir algumas limitações nesta abordagem, como alta latência e consequentemente baixa taxa de transferência de dados. Uma alternativa para se obter processamento e respostas em tempo real, geralmente exigidos em sistemas IoT, é migrar o processamento remoto para camadas mais próximas aos terminais de amostragem de dados, isto é, interpretar os dados em aplicações de computação de borda (SHAFIQUE et al., 2018). Assim, o processamento de dados é realizado mais próximo dos sensores, o que minimiza gargalos de latência e aumenta a privacidade das informações (VERHELST; MOONS, 2017). Outra possibilidade de realizar análises localmente é a implementação de dispositivos IoT inteligentes, cujo processamento é realizado no mesmo dispositivo que os sensores são conectados. A implementação de aplicações IoT com processamento embarcado fundamentalmente utiliza dispositivos digitais baseados em software e hardware (VIEL et al., 2018). Sistemas com nicho em software utilizam processadores para executar instruções de linguagem de programação, sendo compreendidos desde dispositivos minimalistas, como microcontroladores, até sistemas complexos, como DSPs (digital signal processors). Por outro lado, a abordagem de hardware é baseada em dispositivos lógicos programáveis, ou 15 PLDs (programmable logic devices), que possibilitam projetar arquiteturas personalizáveis por meio de circuitos digitais reconfiguráveis. Há vantagens e desvantagens no uso de software ou hardware, considerando parâmetros espećıficos, que devem ser analisados para se obter a eficiência necessária pelos sistemas inteligentes embarcados. Entre os dispositivos de hardware, o recurso de executar cálculos paralelamente da FPGA (field-programmable gate array) as tornam uma opção viável de hardware para desenvolver sistemas ML complexos (DINIZ et al., 2017). Da mesma forma, no DL, a possibilidade de implementar sistemas adaptáveis e reconfiguráveis capacita as FPGAs, que fornecem integridade e desempenho necessário para executar o treinamento e predições em sistemas embarcados (STORNAIUOLO; SANTAMBROGIO; SCIUTO, 2018). Em relação aos contextos dinâmicos das cidades inteligentes, para que sejam feitas análises atualizadas, o monitoramento é realizado aplicando-se amostragem cont́ınua de dados. Dessa forma, é necessário que os algoritmos de ML aplicados em sistemas IoT sejam treinados constantemente para que forneçam respostas em tempo real (PÉREZ- SÁNCHEZ; FONTENLA-ROMERO; GUIJARRO-BERDIÑAS, 2018). Esta abordagem de treinamento também é conhecida como aprendizagem on-line. 1.1 OBJETIVOS Diante do contexto apresentado, o objetivo deste trabalho foi aprimorar a capacidade de atuação de dispositivos IoT embarcados por meio do desenvolvimento de um algoritmo de ML empregando treinamento on-line. Dessa forma, uma das principais contribuições desta pesquisa foi propor um sistema que beneficia aplicações em tempo real, pois a abordagem de treinamento on-line possibilita incrementar o conhecimento do algoritmo de ML constantemente com dados recém amostrados. As etapas desenvolvidas durante o desenvolvimento deste trabalho estão apresentadas na Figura 1. O algoritmo de ML considerado foi a rede neural ARTMAP fuzzy, que emprega conceitos da Teoria da Ressonância Adaptativa. Um dos principais diferenciais dessa rede neural é a possibilidade de incrementar o seu conhecimento por meio do armazenamento de novas informações, mas sem afetar o conhecimento previamente adquirido. O sistema foi aplicado na previsão da qualidade de ar em ambiente interno. A amostragrm de dados foi realizada em um quarto onde reside uma pessoa, que também foi utilizado como escritório de trabalho remoto durante a pandemia. Utilizando sensores de baixo custo, foram monitoradas as seguintes variáveis: umidade, temperatura, 16 Figura 1 – Etapas realizadas neste trabalho Fonte: Elaboração do próprio autor gás carbônico, compostos orgânicos voláteis e material particulado. Adicionalmente, considerou-se o IAQ (Indoor Air Quality), que é um ı́ndice calculado automaticamente por uma biblioteca da Bosch que mensura a qualidade do ar. Os dados foram modelados em séries temporais por meio de janelas deslisantes sobrepostas, possibilitando realizar o treinamento supervisionado da rede neural ARTMAP fuzzy para calcular a previsão até 24 horas à frente. O sistema foi implementado na linguagem de programação Python. Além da abordagem em software, outro objetivo deste trabalho foi o desenvolvimento em hardware da ARTMAP fuzzy com treinamento on-line, que foi descrita em VHDL e sintetizada em uma FPGA. Visando otimizar o uso de memória de sistemas embarcados, foi proposta uma nova metodologia da manutenção das categorias dessa rede neural, possibilitando reduzir o consumo de recursos computacionais sem afetar a acurácia das predições. O restante do texto está organizado como segue. No Caṕıtulo 2 apresenta-se uma revisão sobre algoritmos de ML empregados em aplicações IoT e sobre os conceitos aplicados em estudos da qualidade de ar. No Caṕıtulo 3 apresenta-se uma introdução sobre a Teoria da Ressonância Adaptativa, incluindo a extensão de alguns operadores da rede neural ARTMAP fuzzy para aprimorar o treinamento on-line. O desenvolvimento do sistema proposto em software está apresentado no Caṕıtulo 4, e o aprimoramento realizado em hardware está apresentado no Caṕıtulo 5. Por fim, no Caṕıtulo 6 apresentam-se as conclusões deste trabalho e posśıveis perspectivas para sua continuidade. 17 2 ASSOCIAÇÃO DE ALGORITMOS DE MACHINE LEARNING À APLICAÇÕES IoT A idealização de utilizar entidades computacionais para interagir com as pessoas surgiu na década de 1980, quando pesquisadores identificaram a possibilidade de inserir tecnologias no cotidiano. Entretanto, o ńıvel tecnológico daquele peŕıodo não permitiu que interfaces computacionais fossem incorporadas às aplicações, devido às limitações de tamanho e desempenho computacional, além de questões relacionadas ao fornecimento de energia. Mesmo assim, Mark Weiser (WEISER, 1991) foi um dos pioneiros a visualizar os benef́ıcios que poderiam ser obtidos por meio dos conceitos que se tornariam a IoT. Apresentam-se, na Figura 2, as áreas que contribúıram para o desenvolvimento da IoT. Inicialmente na computação ub́ıqua (WEISER; GOLD; BROWN, 1999) e pervasiva, definiram-se novos conceitos de software e hardware para inserir sistemas computacionais de forma transparente nos ambientes. O principal objetivo foi realizar processamento de informações em segundo plano para fornecer feedback automáticos aos usuários. Figura 2 – Paradigmas de computação anteriores à IoT Fonte: Adaptado de Sezer, Dogdu e Ozbayoglu (2018) Avanços na fabricação de semicondutores durante a década de 1990 incrementaram a capacidade de extração de caracteŕısticas em vários contextos. Com o desenvolvimento de sistemas microeletromecânicos, ou MEMS (micro-electromechanical systems), surgiram novos sensores e atuadores embarcados empregados na inteligência ambiental, ou AmI (ambiental inteligence), cujo foco é desenvolver ambientes que se adaptam para atender às necessidades dos usuários, de maneira não intrusiva (LINDWER et al., 2003). Posteriormente, o interesse na identificação por radiofrequência, ou RFID (radio- frequency identification), deu origem ao termo IoT, sendo mencionado primeiramente por Kevin Ashton (ASHTON, 2009). Paralelamente, avanços nas redes de sensores sem fio foram fundamentais no suporte às inovações introduzidas pela IoT e auxiliaram na 18 integração dos seus componentes. Desde o surgimento das áreas relacionadas à IoT, discutiu-se a possibilidade de fornecer, aos dispositivos computacionais, uma função maior do que apenas capturar dados e atuar por meio de processos simplificados. Para isso, a tomada de decisão dos sistemas IoT foi aprimorada com técnicas de IA, como está apresentado na Figura 3. Consequentemente, dispositivos IoT se tornaram qualificados para agirem de maneira inteligente, refletindo o aprendizado obtido durante a interação com os agentes externos. Figura 3 – Aprimoramento de sistemas IoT com técnicas de IA Fonte: Adaptado de Alam et al. (2017) Para adquirir conhecimento, os algoritmos de ML passam por processos de aprendizado realizados na fase de treinamento. Essa etapa é baseada em técnicas de treinamento supervisionado, não supervisionado e por reforço. Na abordagem supervisionada, rotulam-se os dados de entrada para que os modelos de aprendizado produzam padrões de sáıdas desejados com base nas caracteŕısticas dos dados de treinamento (SEZER; DOGDU; OZBAYOGLU, 2018). Quando os dados não possuem rótulos, empregam-se algoritmos de aprendizado não supervisionado, cuja essência é agrupar informações em conjuntos, seguindo critérios de semelhança. No aprendizado por reforço, a iteração entre o agente e o ambiente permite que o algoritmo aprenda com as ações executadas para melhorar o propósito programado (VALLADARES et al., 2019). Uma importante extensão do ML é o DL. Esses modelos matemáticos são implementados por arquiteturas de redes neurais artificiais (RNA) com várias camadas que executam processamentos não lineares e permitem a extração de caracteŕısticas hierárquicas, reproduzindo a capacidade cognitiva do cérebro humano (MOHAMMADI et al., 2018). 19 Diversas aplicações da sociedade moderna foram beneficiadas por sistemas IoT inteligentes. Considerando centros urbanos, pode-se citar serviços inteligentes que abrangem cidadãos, economia, governo, transporte e gerenciamento sustentável do ambiente (KIRIMTAT et al., 2020). A diversidade de sensores utilizados nas situações monitoradas gera dados heterogêneos, e essa abundância de dados é essencial para extrair conhecimento e calcular predições nas cidades inteligentes (ALAM et al., 2017). A IoT também oferece ferramentas para a agricultura (LIU et al., 2020) e indústria (MUHURI; SHUKLA; ABRAHAM, 2019). Pesquisadores consideram as melhorias obtidas com a utilização da IoT e áreas relacionadas (IA e big data) como sendo a quarta revolução desses ramos, que são denominadas agricultura 4.0 e indústria 4.0. Com o aprimoramento do gerenciamento de recursos por meio do monitoramento e das tomadas de decisões inteligentes, espera-se que a produtividade dessas áreas aumente. A grande variedade de contextos monitorados por tecnologias derivadas da IoT e IA produz quantidades significativas de dados. Estas informações são geralmente gerenciadas como dados em formato de big data ou streaming (MOHAMMADI et al., 2018). Na abordagem de big data, armazenam-se grandes bancos de dados que demandam altas taxas de processamento computacional e, usualmente, não exigem respostas instantâneas. Por outro lado, dados em streaming não são armazenados e são processados após a amostragem, sendo esperadas respostas em curtos peŕıodos. Para atender o desempenho de sistemas IoT envolvendo operações de IA, pode- se realizar o processamento e o gerenciamento de dados em diversos dispositivos computacionais baseados em software e em hardware. Na próxima seção, apresenta-se um estudo comparativo entre essas duas metodologias. 2.1 PLATAFORMAS IoT BASEADAS EM SOFTWARE E HARDWARE Para que as respostas de sistemas IoT sejam calculadas nos tempos estipulados, é essencial considerar as configurações da infraestrutura que controla os dados amostrados. Nesse processo são analisadas questões de comunicação entre os sensores e as demais entidades computacionais que armazenam e processam as informações. Atualmente, existem diferentes metodologias de software e hardware para otimizar processos computacionais. Tradicionalmente, o uso de hardware na implementação de sistemas IoT associa componentes f́ısicos como sensores, atuadores e interfaces computacionais baseadas em microprocessadores, que processam software. No entanto, 20 o uso de hardware também se refere à aplicação de dispositivos com arquiteturas especializadas que oferecem grandes capacidades de processamento computacional. Os principais dispositivos baseados em hardware são GPUs (graphics processing unit), ASICs (application-specific integrated circuit) e FPGAs. Determinar a abordagem ideal de software ou de hardware para implementar sistemas IoT inteligentes requer uma análise prévia das caracteŕısticas da aplicação. Consumo de energia, técnicas de amostragem, armazenamento de dados e tempo de resposta são alguns dos pontos que definem as melhores metodologias a serem usadas para garantir o desempenho necessário. Nesse processo, é comum considerar diferentes camadas de processamento, como está apresentado na Figura 4. Em todas as camadas é posśıvel utilizar plataformas baseadas em software e em hardware. Figura 4 – Camadas de processamento aplicadas em sistemas IoT Fonte: Elaboração do próprio autor Uma abordagem comum para processar grandes bancos de dados da IoT é o uso de serviços em nuvem. Além da grande capacidade de armazenamento, a computação em nuvem contém vários núcleos de processamento e compartilha informações entre vários servidores, permitindo o uso do processamento distribúıdo. Atualmente, existem serviços de computação em nuvem com processamento em hardware, como a TPU (tensor processing unit) do Google, que é um ASIC projetado para realizar cálculos de algoritmos de ML e DL. Aplicações que requerem baixo tempo de resposta podem ser afetadas se forem executadas na nuvem, devido à posśıveis altas latências na comunicação. Esta limitação pode ser amenizada realizando processamento mais próximo aos dispositivos IoT por meio de dispositivos presentes na computação de borda. Nesta camada de processamento há sistemas baseados em software, como microsservidores e tablets (PACHECO et al., 2018), e plataformas de hardware, como as FPGAs (DAMLJANOVIC; LANZA-GUTIERREZ, 2018). O tempo de resposta de aplicações IoT é ainda mais cŕıtico em contextos que exigem 21 atuação em tempo real. Uma possibilidade de otimizar o tempo de resposta é realizar processamento de dados nos próprios dispositivos que os sensores são conectados, surgindo o conceito de sensores inteligentes. Entre os sistemas embarcados baseados em software que processam dados da IoT, os microcontroladores frequentemente gerenciam a comunicação com sensores e executam ações simples, pois possuem capacidades de armazenamento e processamento limitados. Há alternativas de sistemas baseados em software com capacidade computacional superior, como microprocessadores (AMATO et al., 2017) e smartphones (ZEBIN et al., 2019). Mesmo com desempenho computacional aprimorado, sistemas embarcados baseados em software podem sofrer gargalos em aplicações em tempo real. Fatores como processamento sequencial podem limitar a taxa de processamento e de transferência de dados. Esse cenário torna-se mais cŕıtico quando há vários sensores operando simultaneamente, pois são produzidos mais dados e há maior necessidade de gerenciamento e processamento eficiente para atender às restrições de tempo de resposta. Uma possibilidade de aumentar a taxa de transferência de dados é utilizar dispositivos com processamento paralelo, que é uma das especialidades do hardware. Com arquiteturas projetadas para executar cálculos simultâneos, GPUs, ASICs e FPGAs podem otimizar a taxa de operações e da transferência de dados, diminuindo o tempo de resposta de sistemas IoT inteligentes. Com foco em sistemas embarcados, as GPUs não são muito atraentes pois consomem muita energia. ASICs possuem menor consumo, no entanto, apresentam arquitetura fixa (LEE; SHIN; YOO, 2017) e o custo financeiro de implementação é alto. Por sua vez, a FPGA é uma opção mais balanceada considerando-se consumo de energia e flexibilidade para projetar diferentes arquiteturas de hardware, pois possui arquitetura reconfigurável (LACEY; TAYLOR; AREIBI, 2016). Adicionalmente, outros recursos das FPGAs que permitem otimizar algoritmos de ML são alto desempenho de cálculos, paralelismo, alto rendimento e processamento em tempo real (MOLANES et al., 2018). Uma importante etapa do projeto de arquiteturas de hardware em FPGAs é a organização de dados. Os padrões de acesso à memória devem ser analisados com o intuito de otimizar as operações matemáticas. Considerando algoritmos de ML e DL, utilizam-se vários conceitos da álgebra linear, como operações com matriz. Portanto, um aspecto importante para otimizar algoritmos de IA em FPGAs é aprimorar operações matriciais (WOEHRLE; KIRCHNER, 2018). Uma alternativa que suporta álgebra matricial é a álgebra tensorial, cujo objetivo 22 é generalizar representações matriciais. Os tensores também são um tópico de pesquisa para otimizar algoritmos de DL embarcados em hardware (IBRAHIM; VALLE, 2018) Outra flexibilidade das FPGAs é a possibilidade de modelar diferentes operações aritméticas. Para acelerar os cálculos de algoritmos inteligentes, vários pesquisadores exploram conceitos de DSP nas FPGAs. Uma metodologia comum é realizar quantização de ponto flutuante em ponto fixo. Nesse processo, é posśıvel representar números utilizando menos bits (GUO et al., 2018). Na modelagem em ponto fixo, deve-se realizar um estudo com o objetivo de determinar a quantidade necessária de bits para armazenar corretamente os resultados das operações matemáticas, como no cálculo de filtros (OSTA et al., 2018). Como descrito, as FPGAs são dispositivos digitais baseados em hardware com vários recursos que podem ser amplamente explorados em sistemas IoT embarcados e inteligentes, em que todos os estágios dos algoritmos de ML e DL são realizados. Uma das vantagens de executar o processamento no dispositivo IoT é a obtenção de respostas mais rapidamente, e é uma área que ainda precisa ser mais estudada e explorada (MOHAMMADI et al., 2018). Atualmente, um importante serviço desenvolvido na IoT é o monitoramento e a previsão da qualidade do ar. Na próxima seção apresentam-se as técnicas empregadas no estudo da qualidade do ar com foco em ambientes internos. Também é apresentada uma revisão de técnicas de IA, empregadas para analisar e predizer componentes relacionados às condições do ar. 2.2 FERRAMENTAS EMPREGADAS NO MONITORAMENTO E NA PREVISÃO DA QUALIDADE DE AR A constante evolução tecnológica traz inúmeros benef́ıcios à vida humana. No entanto, o consumo descontrolado dos recursos naturais vem desgastando o meio ambiente, e uma das consequências é a poluição ambiental. Entre os tipos de poluição, a má qualidade do ar é uma grande ameaça à saúde e aos ecossistemas (EUROPEAN ENVIRONMENT AGENCY, 2018). O estudo da qualidade do ar tornou-se uma das preocupações ambientais mais discutidas, dando origem à várias poĺıticas e diretrizes para fornecer informações sobre a qualidade do ar em ambientes internos e externos (PIERPAOLI; RUELLO, 2018). A qualidade do ar em determinados ambientes pode ser medida baseando-se em 23 valores padronizados ou por diretrizes da qualidade do ar. Os padrões são definidos por autoridades e agências reguladoras, e as diretrizes são obtidas por meio de experimentos cient́ıficos para garantir saúde e segurança dentro das especificações consideradas (ABDUL-WAHAB et al., 2015). Atualmente, existem várias entidades dedicadas ao estudo da qualidade do ar, como a Organização Mundial de Saúde, a Agência de Proteção Ambiental, ou EPA (Environmental Protection Agency), e a Comissão Europeia. Cada instituição pode fornecer diferentes conjuntos de informações e definições, que são adotados por diferentes regiões ou páıses. Os ńıveis de poluentes do ar são expressos em diferentes unidades de medida, sendo os mais comuns microgramas por metro cúbico (µg/m3), partes por milhão (ppm) e partes por bilhão (ppb) (WILLIAMS et al., 2014). Alguns dos poluentes mais comuns considerados pelos sistemas de monitoramento são gás ozônio (O3), material particulado, ou PM (particulate matter), monóxido de carbono (CO), dióxido de nitrogênio (NO2), dióxido de enxofre (SO2), chumbo (Pb), gás radônio (Rn) e compostos orgânicos voláteis, ou VOC (volatile organic compound). Para classificar a qualidade do ar como segura, além de intervalos estipulados para as concentrações dos poluentes, é necessário determinar um peŕıodo máximo de exposição para o cenário analisado. Existem diferentes intervalos de tempo, como os adotados pela EPA, que consistem em peŕıodos médios de horas (1, 8 e 24) e peŕıodos médios de meses (3 e 12) (WORLD HEALTH ORGANIZATION, 2010). É comum apenas haver preocupação com a qualidade do ar em ambientes externos (SEGUEL et al., 2017). No entanto, controlar a qualidade do ar em ambientes internos tem sido igualmente importante. Várias conferências são realizadas atualmente pela comunidade cient́ıfica e agências governamentais para discutir a necessidade de melhores condições do ı́ndice da qualidade ar de ambientes internos, também mencionada como IAQ (indoor air quality) (BAHNFLETH, 2017). A necessidade imediata de estudar o IAQ se deve à tendência das pessoas ficarem em ambientes fechados por até 90% do tempo (KLEPEIS et al., 2001). A poluição interna pode se originar de fontes presentes nos próprios ambientes fechados, que também são suscet́ıveis à poluição do ar externo (WORLD HEALTH ORGANIZATION, 2010). Exemplos de ambientes internos incluem casas, locais de trabalho (escritórios), edif́ıcios públicos (hospitais, escolas, teatros, bibliotecas e restaurantes) e cabines de véıculos (TANABE, 2017). Os danos à saúde causados pela exposição de ar polúıdo em ambientes internos podem 24 ser notados rapidamente ou a longo prazo. Os efeitos imediatos aparecem logo após o primeiro contato, podendo causar irritação nos olhos, narinas, dor de cabeça, tontura e fadiga. Esses sintomas variam de pessoa para pessoa e o tratamento pode ser feito simplesmente eliminando a fonte de poluentes do ar. Os efeitos a longo prazo aparecem após exposições repetitivas e duradouras, causando consequências mais graves como problemas respiratórios, card́ıacos e podem até se tornarem fatais (ENVIRONMENTAL PROTECTION AGENCY, 2017). Apresentam-se, no Quadro 1, alguns dos poluentes mais comuns presentes em ambientes internos, as principais fontes e efeitos colaterais. Quadro 1 – Poluentes t́ıpicos do ar em ambientes internos Poluentes Fonte e danos à saúde Dióxido de carbono (CO2) Fontes: aparelhos a gás e querosene não ventilados; produção de produtos de combustão; respiração humana. Danos à saúde: dificuldade de concentração; sonolência; aumento da taxa respiratória. Monóxido e carbono (CO) Fontes: fumaça de cigarro; combustão de combust́ıveis fósseis. Danos à saúde: tonturas; dor de cabeça; náusea; cianose; efeitos cardiovasculares; morte. Formaldéıdo Fontes: desgaseificação do isolamento de espuma e de madeira compensada; carpetes e tecidos; colas e adesivos; combustão de produtos, incluindo fumaça de cigarro. Danos à saúde: reações hipersenśıveis ou alérgicas; erupções cutâneas; irritação dos olhos, de membranas respiratórias e mucosas; odor desagradável. Óxidos nitrosos (NOx) Fontes: combustão de fornos e aparelhos a gás; fumaça de cigarro; exaustores de solda; motores a gás e a diesel. Danos à saúde: irritação dos olhos e de membranas mucosas e nasais. Ozônio (O3) Fontes: fotocopiadoras; purificadores de ar eletrostáticos; arco elétrico; poluição atmosférica. Danos à saúde: irritação dos olhos, trato respiratório e membranas mucosas; agravamento de doenças respiratórias crônicas. Radônio (Rn) Fontes: subsolos de edif́ıcios; materiais de construção; águas subterrâneas. Danos à saúde: Não são conhecidos efeitos agudos para a saúde, mas a exposição prolongada pode levar ao aumento do risco de câncer de pulmão devido à radiação alfa. Compostos orgânicos voláteis (VOCs) Fontes: tintas; produtos de limpeza; naftalina; colas; fotocopiadoras; materiais de calafetagem de silicone; inseticidas; herbicidas; combust́ıveis; asfalto; vapores de gasolina; fumaça de cigarro; ralos; cosméticos e outros produtos de uso pessoal. Danos à saúde: náuseas; tontura; irritação dos olhos, trato respiratório e membranas mucosas; dor de cabeça; fadiga. Fonte: Adaptado de Occupational Safety and Health Administration (1999) Também é importante considerar o monitoramento interno de PM, que é composto por part́ıculas sólidas e ĺıquidas de diversos tamanhos dispersos no ar. Nas análises, é comum a mensuração de part́ıculas com diâmetro de até 2,5 µm e 10 µm, que são respectivamente denominadas PM2.5 e PM10. 25 Materiais particulados em ambientes internos são provenientes de atividades como culinária, combustão (queima de velas, lareiras, aquecedores sem ventilação adequada e fumaça de cigarro) e podem ser biológicos. Podem causar irritação nos olhos, nariz e garganta, agravamento dos sintomas de doenças coronárias e respiratórias e morte prematura em pessoas com doenças card́ıacas ou pulmonares (ENVIRONMENTAL PROTECTION AGENCY, 2017). Além de poluentes, outros componentes que afetam o IAQ é a temperatura e a umidade relativa do ar. Esses dois parâmetros refletem o ńıvel de conforto térmico que está diretamente relacionado à produtividade em ambientes internos (ABDUL-WAHAB et al., 2015). Sistemas de aquecimento, ventilação e ar condicionado, ou HVAC (heating, ventilating and air conditioning) são fundamentais para controlar o IAQ, pois influenciam o controle de temperatura e umidade, e contribuem para a diluição de poluentes em ambientes internos (FONSECA et al., 2018). A análise da qualidade do ar requer o uso de estações de monitoramento com sensores e equipamentos especializados. Tradicionalmente, estações de monitoramento da qualidade do ar em ambientes externos baseiam-se em equipamentos grandes, pesados e significativamente caros. Esses sistemas geralmente realizam poucas amostragens por hora. Entretanto, o comportamento dinâmico dos centros urbanos faz com que os ńıveis de poluição mudem rapidamente, o que pode tornar o monitoramento da qualidade do ar ineficiente. Outra dificuldade é aumentar a cobertura de monitoramento, pois é necessário realocar as estações ou instalar mais unidades (YI et al., 2015). No entanto, o desenvolvimento de sensores MEMS de baixo custo alterou o cenário de monitoramento e a análise da qualidade do ar (KUMAR et al., 2015). A aquisição de sensores tornou-se mais acesśıvel, auxiliando o monitoramento local para fornecer informações mais realistas em comparação às previsões meteorológicas realizadas com dados regionais (AYYALASOMAYAJULA et al., 2016). Também há interesse no desenvolvimento de sensores de baixo custo voltados para o monitoramento de ambientes internos (CHOJER et al., 2020; SAINI; DUTTA; MARQUES, 2021). A diferença no custo destes sensores em relação às opções mais caras também reflete na acurácia das medições. A escolha correta dos sensores utilizados na implementação de um sistema de monitoramento da qualidade do ar deve considerar as necessidades da aplicação. As caracteŕısticas dos sensores que devem ser analisadas incluem detecção de poluentes, alcance de medição, precisão e polarização, requisitos de calibração, tempo de resposta, durabilidade e custo (WILLIAMS et al., 2014). 26 Há diferentes tecnologias empregadas na implementação de sensores aplicados no monitoramento da qualidade do ar. A detecção de gás geralmente é realizada por sensores eletroqúımicos, cataĺıticos, de estado sólido (semicondutores), por absorção de radiação infravermelha e por detector de fotoionização (CHOU, 2000). Para medir PM, os sensores mais comuns são monitores de atenuação de radiação beta, microbalanças oscilantes de elemento cônico e sensores óticos (BADURA et al., 2018). A ampla disponibilidade de sensores de baixo custo empregados no monitoramento de ar em ambientes internos possibilitou o desenvolvimento de pesquisas que compreendem vários contextos atualmente. Para interpretar as informações, pode-se aplicar algoritmos de ML, pois oferecem grande capacidade de análise e reconhecimento de padrões considerando dados de IAQ (WEI et al., 2019). Com o conhecimento adquirido pelos algoritmos de aprendizado é posśıvel, por exemplo, estudar como o comportamento humano é influenciado pelo IAQ (LIN et al., 2017) ou ainda, controlar atuadores para gerenciar o conforto térmico e a economia de energia em ambientes internos (VALLADARES et al., 2019). Outro serviço que envolve o estudo da qualidade de ar em ambientes internos e que sistemas IoT inteligentes são fundamentais é o cálculo de previsões dos parâmetros monitorados. Uma possibilidade para organizar dados de IAQ monitorados continuamente é por meio de séries temporais. Essa técnica é amplamente aplicada em várias abordagens de sistemas de aprendizado, como k-means (CARON et al., 2019), RNAs tradicionais baseadas na backpropagation (CHEN; MIHARA; WEN, 2018) e também em redes neurais propostas no DL, como a arquitetura LSTM (long short-term memory) (LOY-BENITEZ et al., 2019). Assim, IoT e algoritmos de ML são áreas essenciais empregadas na implementação de sistemas de monitoramento e predição da qualidade do ar. Mesmo com várias pesquisas explorando esse tema na atualidade, ainda é necessário investigar e desenvolver metodologias para garantir a confiabilidade dos sistemas de monitoramento da qualidade do ar em tempo real (MARQUES; PITARMA, 2019). Como uma das principais contribuições desta pesquisa, propõe-se implementar e avaliar o desempenho de uma rede neural desenvolvida aplicando-se os conceitos da Teoria da Ressonância Adaptativa, mais especificamente a rede neural ARTMAP fuzzy, para calcular a previsão de componentes da qualidade de ar em ambientes internos. No próximo caṕıtulo apresenta-se uma introdução dessa teoria. 27 3 TEORIA DA RESSONÂNCIA ADAPTATIVA A Teoria da Ressonância Adaptativa, ou ART (Adaptive Resonance Theory) foi proposta em 1976 por Stephen Grossberg. É um modelo matemático inspirado pela capacidade cogitativa de sistemas biológicos baseando-se em dois dilemas: plasticidade e estabilidade. A plasticidade representa a habilidade de aprender novos padrões à medida que o sistema interage com os agentes externos do ambiente, unindo novos padrões de entradas em grupos espećıficos. Por outro lado, a estabilidade garante a manutenção do conhecimento previamente adquirido, separando os novos padrões criados dos já existentes (CARPENTER; GROSSBERG, 1987b). As RNAs da famı́lia ART são modelos auto-organizáveis, que aplicam um processo de competição e busca para agrupar padrões de entrada. As ações executadas durante o aprendizado da rede ART são controladas por dois subsistemas, o subsistema de atenção e o subsistema de orientação (CARPENTER; GROSSBERG, 1987b). A arquitetura dessa RNA está apresentada na Figura 5. Figura 5 – Estrutura elementar da rede neural ART Fonte: Adaptado de Carpenter e Grossberg (1987b) Os neurônios artificiais da rede ART são organizados em duas camadas localizadas no subsistema de atenção. A camada F1 é responsável pelo processamento das informações recebidas na entrada, e a camada F2 armazena os padrões reconhecidos em categorias. As camadas F1 e F2 são conectadas por vetores de pesos que armazenam o conhecimento adquirido durante a fase de treinamento. Ao receber um padrão de entrada, inicia-se o reconhecimento dessas informações com 28 o cálculo da função de escolha para analisar a similaridade entre a entrada e todas as categorias existentes. No processo de busca, seleciona-se a categoria que gerar a maior função de escolha, sendo considerada a hipótese mais apta para representar o padrão de entrada. A verificação de similaridade é realizada na comparação aplicando-se o parâmetro de vigilância, que aceita ou recusa a associação do padrão de entrada à categoria vencedora na busca. Caso o critério de vigilância não seja aceito, a categoria é exclúıda do processo de busca aplicando-se o reset por meio do subsistema de orientação. As etapas de comparação e busca são repetidas até que uma categoria passe no teste de vigilância, fazendo com que a rede entre em ressonância e seja atualizada, isto é, treine os pesos da categoria selecionada e associada ao padrão de entrada. Quando todas as categorias são testadas e nenhuma satisfaz o teste de vigilância, uma categoria é criada para representar o novo padrão de entrada. Dessa forma, os subsistemas de atenção e orientação operam de maneira complementar durante o treinamento da rede neural ART. O subsistema de atenção lida com informações já conhecidas, garantindo a estabilização da representação dos padrões existentes. Por outro lado, o gerenciamento de novos padrões é executado pelo subsistema de orientação, que é essencial para determinar quando é necessário criar novas categorias (CARPENTER; GROSSBERG, 1987b). Essas relações entre os subsistemas das redes ART traduzem os dilemas da plasticidade e estabilidade, que garantem a manutenção do aprendizado sem perder o conhecimento adquirido. A primeira RNA da famı́lia ART foi apresentada em 1987, denominada ART- 1 (CARPENTER; GROSSBERG, 1987b). Esse modelo processa apenas dados binários, aplicando treinamento não supervisionado para agrupar os padrões de entradas apresentados à rede. Adicionalmente, outras arquiteturas com treinamento não supervisionado foram propostas, como a ART-2, que processa tanto dados binários como analógicos (CARPENTER; GROSSBERG, 1987a). A teoria da ressonância adaptativa também foi explorada na metodologia de treinamento supervisionado por meio da rede ARTMAP (CARPENTER; GROSSBERG; REYNOLDS, 1991). Uma importante extensão da rede neural ART surgiu com a associação de propriedades da lógica fuzzy (ZADEH, 1965) para obter a arquitetura ART fuzzy (CARPENTER; GROSSBERG; ROSEN, 1991). Esta rede é capaz de processar dados analógicos e binários, e foi aplicada na implementação da ARTMAP, surgindo a ARTMAP fuzzy (CARPENTER et al., 1992). Nas próximas seções são apresentados detalhes dos algoritmos de algumas 29 RNAs da famı́lia ART. 3.1 REDE NEURAL ART FUZZY Entre os modelos da famı́lia de redes neurais ART, a ART fuzzy é a mais difundida (SILVA; ELNABARAWY; WUNSCH, 2019). A arquitetura da ART fuzzy apresentada na Figura 6 é semelhante à ART-1, alterando-se apenas alguns operadores devido à agregação de propriedades da lógica fuzzy. A diferença básica entre as operações das redes ART-1 e ART fuzzy é a substituição da interseção binária, isto é, a operação AND (∩), pelo operador AND da lógica fuzzy (∧), o que proporciona a capacidade de processar dados analógicos e binários. Pode-se inserir uma camada adicional na ART fuzzy (F0), responsável pelo pré-processamento dos padrões de entrada. Os dados que compõem os padrões de entrada (a) das redes ARTs são organizados em vetores linha. Figura 6 – Arquitetura da rede neural ART fuzzy Fonte: Adaptado de Lopes (2005) O pré-processamento da ART fuzzy consiste na normalização dos padrões de entrada, padronizando todos os valores no intervalo [0,1]. Esta operação é necessária para evitar a proliferação de categorias (CARPENTER; GROSSBERG; ROSEN, 1991). A normalização é aplicada separadamente em cada variável que forma os padrões de entrada, com o objetivo de não desconfigurar a amplitude de diferentes tipos de informações. Considerando um conjunto com n padrões de entrada, cada um com M variáveis, a normalização de uma variável pode ser realizada agrupando em um vetor v todos os n valores da variável em questão e aplicar a equação 1: v̂ = v |v| (1) 30 em que |v| é a norma de um vetor: |v| = n∑ i=1 |vi| (2) Outra operação necessária no pré-processamento é a aplicação da codificação complemento definida por: I = (â, âc) = [â1, · · · , âM︸ ︷︷ ︸ â , 1− â1, · · · , 1− âM︸ ︷︷ ︸ âc ] (3) produzindo vetores com o dobro da dimensão original (2M). Esta codificação preserva e unifica a amplitude dos padrões de entrada, pois a norma de todos os vetores se torna a mesma: |I| = M∑ i=1 ai + M∑ i=1 (1− ai) = M (4) O algoritmo ART é iniciado pela comparação da similaridade entre a entrada I e cada categoria j armazenada na camada F2 por meio da função de escolha, que é calculada por: Tj(I) = |I ∧ wj| α + |wj| (5) sendo wj a matriz de pesos que conecta as camadas F1 e F2, a qual armazena o conhecimento da rede neural, α (α > 0) o parâmetro de escolha, que influencia a sequência de busca das categorias, e (∧) o operador AND da lógica fuzzy definido por: (x ∧ y) = min(xi, yi) (6) A busca por uma categoria suficientemente semelhante ao padrão de entrada capaz de representá-lo é iniciada selecionando-se o valor Tj com maior valor e menor ı́ndice: TJ = max {Tj : j = 1, · · · , N} (7) A similaridade entre a categoria J e o padrão de entrada é verificada por meio do teste de vigilância calculado por: |I ∧ wJ | |I| ≥ ρ (8) sendo ρ (ρ ∈ [0, 1]) o parâmetro de vigilância, que controla a ocorrência da ressonância verificando a combinação dos valores da entrada e dos pesos armazenados em wJ (LOPES, 2005). Quanto menor for o valor de ρ, maior é o grau de generalização da rede, produzindo 31 uma menor quantidade de categorias. Contudo, maiores valores de ρ diminuem a generalização e geram mais categorias com melhor qualidade de representação dos padrões de entradas (CARPENTER; GROSSBERG; ROSEN, 1991). Caso a condição da inequação 8 seja satisfeita, a rede entra no estado de ressonância e ativa a atualização dos pesos wJ , calculados por: wJ = β(I ∧ wJ) + (1− β)wJ (9) sendo β a taxa de treinamento (β ∈ [0, 1]). Utilizando-se β = 1, o treinamento é dito rápido, e a atualização dos pesos ocorre em apenas um ciclo de treinamento. Quando tem- se valores β < 1, são necessários mais ciclos de aprendizagem considerando cada padrão de entrada para atualizar os pesos, o que caracteriza o treinamento lento. Nas ocasiões em que uma categoria não satisfaz o teste de vigilância, aplica-se o reset (TJ = 0) para exclúı-la da busca e o próximo maior valor TJ é o novo candidato a ser testado. Esse processo se repete até ocorrer a ressonância com alguma categoria existente. Caso contrário, o padrão de entrada ainda desconhecido pela rede é associado à uma nova categoria. Na etapa subsequente, indica-se qual foi o neurônio vencedor selecionado para representar o padrão de entrada por meio do vetor de atividade da camada F2: yj = { 1, j = J 0, j 6= J (10) Uma alternativa otimizada para implementar a rede ART fuzzy é a adição de novas categorias de acordo com a necessidade. Dessa forma, no ińıcio do treinamento há apenas uma categoria (N = 1) com os pesos w1 inicializados com os valores da primeira entrada. A cada entrada apresentada à rede, utiliza-se um contador (count = 1) para armazenar a quantidade de categorias verificadas durante a busca, até que haja ressonância. Caso o padrão de entrada seja inédito, isto é, quando nenhum neurônio da camada F2 passar no teste de vigilância, o novo padrão de entrada é adicionado ao conhecimento da rede criando-se uma categoria. Consequentemente, insere-se uma linha na matriz de pesos wj com os valores da entrada, e o número de categorias é incrementado em uma unidade. Apresenta-se, na Figura 7, o fluxograma das operações aplicadas no treinamento da ART fuzzy. A leitura de n padrões de entrada, os quais correspondem aos exemplos de treinamento, é realizada apenas uma vez e os dados são armazenados na matriz A, que 32 possui n linhas e M colunas. Foi considerada a metodologia de iniciar o algoritmo com apenas uma categoria aplicando o treinamento rápido. Um contador auxiliar (i) verifica a quantidade de padrões apresentados à rede até a finalização do treinamento. Figura 7 – Fluxograma da rede neural ART fuzzy Fonte: Adaptado de Lopes (2005) É importante ressaltar que o treinamento das redes neurais ARTs não se limita a um grupo fixo de exemplos de treinamento, pois os dilemas da plasticidade e da estabilidade 33 garantem simultaneamente a adição de novas categorias e a manutenção do conhecimento adquirido. Logo, essas redes são capazes de aprenderem e reconhecerem novos padrões continuamente. Mesmo empregando treinamento não-supervisionado, a arquitetura da ART fuzzy gera a sáıda y na camada F2, que indica o ı́ndice da categoria ativa caso ocorra ressonância. Contudo, esse processo não caracteriza efetivamente uma classificação do modo que ocorre nos algoritmos de ML com treinamento supervisionado, cujas respostas baseiam-se em valores utilizados durante o treinamento para identificar os padrões reconhecidos. A famı́lia das redes ARTs também possui uma arquitetura baseada no treinamento supervisionado, que é denominada ARTMAP. Assim como a ART fuzzy, também foram associadas operações da lógica fuzzy às operações da ARTMAP, surgindo a ARTMAP fuzzy. Na sequência apresentam-se mais detalhes desta rede neural. 3.2 REDE NEURAL ARTMAP FUZZY A ARTMAP fuzzy é um modelo de RNA auto-organizável que emprega a abordagem de treinamento supervisionado para reconhecer sucessões aleatórias de padrões de entrada. Utilizando-se um método de mapeamento que combina a atividade de dois módulos ART fuzzy, este sistema oferece uma aprendizagem estável e incremental (CARPENTER et al., 1992). Apresenta-se, na Figura 8, a arquitetura da rede ARTMAP fuzzy. Os módulos ARTa e ARTb são responsáveis por aprenderem e agruparem os padrões de entrada e sáıda, respectivamente, considerando parâmetros de vigilância ρa e ρb e empregando o algoritmo da rede ART fuzzy, que podem ser processados paralelamente. Sempre que a rede recebe um novo padrão de entrada, o parâmetro de vigilância da ARTa é inicializado com o valor base ρa. Durante o treinamento da ARTMAP fuzzy, apresentam-se pares (a, b) à rede, sendo a a entrada e b a sáıda associada. Com as classificações dispońıveis nas camadas de sáıda F a 2 e F b 2 , o módulo Inter-ART recebe essas informações para gerenciar o mapeamento entre as categorias de entrada e sáıda ativas por meio de um processo denominado match tracking. Entre a camada F a 2 e o módulo Inter-ART, adiciona-se uma matriz de pesos (wab j ), a qual é atualizada para armazenar o mapeamento entre as categorias ativas de entrada (TJ) e sáıda (TK), o que só acontece se o teste de vigilância aplicado no match tracking ocorrer, que é calculado por: 34 Figura 8 – Arquitetura da rede neural ARTMAP fuzzy Fonte: Adaptado de Carpenter et al. (1992) |yb ∧ wab J | |yb| ≥ ρab (11) sendo yb o vetor de atividade da camada Fb 2 e ρab o parâmetro de vigilância do módulo Inter-ART. Quando a inequação 11 não é satisfeita, aplica-se um reset na categoria J e o parâmetro ρa é incrementado ligeiramente, calculado por: ρa = |Ia ∧ wa J | |Ia| + ε (12) em que ε é o incremento aplicado, que corresponde a um valor positivo próximo de zero. Esta operação é realizada para que não ocorra novamente a classificação incorreta da entrada atual no módulo ARTa. Inicia-se então a busca por uma categoria que se associe corretamente à sáıda desejada da ARTb. Caso nenhuma categoria existente seja associada ao padrão de entrada, cria-se uma categoria na camada F a 2 , adicionando uma linha à matriz de pesos wab para mapear os novos dados à sáıda armazenada na ARTb. Quando se obtém uma classificação correta entre os padrões de entrada e sáıda, as conexões de mapeamento destas categorias são atualizadas calculando-se: wab Jk = { 1, k = K 0, k 6= K (13) fazendo com que a conexão entre as categorias ativas (J e K) seja preenchida com o valor 1 e os demais ı́ndices da linha J de wab sejam 0. Apresenta-se, na Figura 9, o fluxograma do treinamento da rede ARTMAP fuzzy 35 considerado neste trabalho. Esta metodologia de aprendizado possui algumas diferenças em relação ao algoritmo original proposto por Carpenter et al. (1992). Figura 9 – Fluxograma da rede neural ARTMAP fuzzy com treinamento off-line Fonte: Adaptado de Barros (2013) 36 Assim como na rede ART fuzzy apresentada, considerou-se a inicialização da aprendizagem da ARTMAP fuzzy com apenas uma categoria (Na = 1 e N b = 1) com os dados da primeira entrada (wa 1 = Ia1 ) e da respectiva sáıda (wb 1 = Ib1), incrementando esses parâmetros conforme a ocorrência de novos padrões de entrada. Os pesos da matriz wab são inicializados com o valor 1, indicando que a categoria recém-criada ainda não foi associada a nenhum padrão de sáıda. Os exemplos de treinamento são organizados em duas matrizes, que contém os padrões de entrada (A) e as respectivas sáıdas (B). Outra mudança ocorre na aplicação do teste de vigilância do módulo Inter-ART, que sempre é verificado no algoritmo tradicional da ARTMAP fuzzy. Contudo, a rede utilizada neste trabalho somente ativa o módulo Inter-ART se a busca por categorias para representarem o padrão de entrada considerado não criar nenhuma categoria nos módulos ART fuzzy (BARROS, 2013). Essa verificação é realizada por meio de variáveis auxiliares (novoa e novob), que indicam quando categorias são criadas. A aprendizagem apresentada no fluxograma da Figura 9 pode ser caracterizada como uma abordagem de treinamento off-line, pois considera um conjunto fixo de exemplos de treinamento. Logo, sistemas de ML baseados nessa técnica de aprendizagem costumam calcular predições isoladamente do treinamento do algoritmo, que é realizado apenas uma vez com dados previamente amostrados. O treinamento off-line pode não garantir boas predições em aplicações cujos dados são amostrados em tempo real, pois os exemplos de treinamento podem tornarem-se obsoletos e não representarem corretamente posśıveis mudanças no comportamento dos sinais ao decorrer do tempo. Uma alternativa para manter o algoritmo de predição sempre atualizado é realizar a aquisição de conhecimento constantemente, que é uma caracteŕıstica do treinamento on- line. Nessa metodologia, pode-se utilizar dados amostrados antes do ińıcio da operação do algoritmo, assim como é feito no treinamento off-line, contudo a aprendizagem continua durante a operação do sistema em tempo real. Dessa forma, o sistema inteligente realiza predições e simultaneamente incrementa o conhecimento por meio do treinamento considerando os padrões de entrada recém amostrados. A ARTMAP fuzzy é uma RNA interessante para implementar sistemas de aprendizagem on-line, pois armazena o conhecimento adquirido e possibilita a criação de novas categorias para incrementar a capacidade de classificação de novos padrões. Embora a arquitetura tradicional da ARTMAP fuzzy, apresentada na Figura 8, suporte o processamento do treinamento on-line, apresenta-se na próxima subseção o 37 desenvolvimento de uma variação da rede ARTMAP fuzzy para aprimorar o treinamento on-line e a predição de aplicações em tempo real. 3.2.1 Rede neural ARTMAP fuzzy com treinamento on-line Sempre que a rede neural ARTMAP fuzzy recebe um padrão de entrada desconhecido durante a aprendizagem, cria-se uma categoria para incorporar essas novas informações à arquitetura da rede. Esta caracteŕıstica é essencial para manter o conhecimento do sistema sempre atualizado, mas pode tornar-se inconveniente dependendo da operação do sistema. Um exemplo é considerar a implementação da ARTMAP fuzzy com treinamento on-line em um sistema embarcado. O processamento constante durante extensos peŕıodos produziria um elevado número de categorias, exigindo quantidades de memórias significativas, o que pode ser um recurso limitado em sistemas embarcados. Uma alternativa para amenizar esse problema é a realização de um gerenciamento mais adequado para permitir a criação de novos neurônios na ARTMAP fuzzy. Foi com este objetivo que Marchiori et al. (2011) propôs uma mudança na camada F a 2 , separando as categorias que armazenam as informações dos padrões de entrada em dois grupos: categorias temporárias (F t 2) e categorias definitivas (F d 2 ), como pode ser visualizado na arquitetura apresentada na Figura 10. Cada conjunto de categorias possui distintas matrizes de pesos entre as camadas que estão interligadas. Figura 10 – Arquitetura da rede neural ARTMAP fuzzy com treinamento on-line Fonte: Elaboração do próprio autor No grupo temporário, são alocadas as categorias recém-criadas no módulo ARTa. O critério para uma categoria temporária tornar-se definitiva é que ela seja selecionada 38 um número mı́nimo de vezes (Nmin) para representar padrões de entrada durante o treinamento. Por outro lado, excluem-se as categorias temporárias que não forem selecionadas para classificar os padrões de entrada após a rede receber um determinado número de entradas (Nmax), já que são consideradas como informações irrelevantes. Aplicando esse gerenciamento na ARTMAP fuzzy, garante-se a constante atualização do conhecimento da rede neural, mantendo-se as informações mais importantes no grupo de categorias definitivas e, simultaneamente, se faz um uso mais otimizado de memória, pois descartam-se as informações com pouca frequência de uso. As etapas dessa abordagem de treinamento estão apresentadas no fluxograma da Figura 11. Se houver a disponibilidade de dados amostrados anteriormente, o treinamento da ARTMAP fuzzy pode começar na abordagem off-line, como demonstrada na Figura 9. No ińıcio da fase on-line, o conhecimento obtido durante o treinamento off-line é alocado no grupo de categorias temporárias. Por outro lado, se a aprendizagem for iniciada diretamente no modo on-line, a rede não possui nenhum conhecimento temporário. Independentemente da inicialização das categorias temporárias consideradas, o treinamento on-line sempre começa sem neurônio definitivo, sendo o número de categorias definitivas nulo (Nd = 0) e as matrizes de pesos relacionadas definidas como vazias (wd = wabd = {}). Para realizar o gerenciamento das categorias da camada F a 2 , dois novos contadores são implementados por vetores que possuem o número de posições igual ao número de categorias temporárias (N t). O countRj armazena o número de ressonâncias que cada categoria temporária obteve, o qual é comparado com o parâmetro Nmin para tornar-se definitivo. Já o contador countCj armazena a quantidade de ciclos de treinamento, isto é, o número de entradas apresentadas à rede, que as categorias não foram escolhidas no teste de vigilância para excluir as informações com pouca frequência de uso. No treinamento on-line, o processamento do módulo ARTb é o mesmo aplicado na aprendizagem off-line. Na ARTa, a busca por uma categoria que atenda ao parâmetro de vigilância ρa considera todas as categorias temporárias e definitivas, sendo escolhida a que possuir a maior função de escolha. Quando nenhum neurônio da camada F a 2 classifica um novo padrão de entrada, cria-se uma categoria temporária com estas informações e adiciona-se uma posição no vetor countR, inicializada com o valor 1. Na etapa subsequente, o módulo Inter-ART é ativado se nenhuma categoria for criada nos módulos ARTa e ARTb durante a busca por neurônios que classifiquem as entradas da ARTMAP fuzzy. Caso não haja nenhuma categoria nova, é verificado se o neurônio 39 Figura 11 – Fluxograma da rede neural ARTMAP fuzzy com treinamento on-line Fonte: Adaptado de Barros (2013) 40 da ARTa selecionado na busca é temporário ou definitivo, comparando-se os valores máximos das funções de escolha (TJ e TL) para considerar as variáveis corretas no teste de vigilância Inter-ART. Quando a condição estipulada por ρab não é satisfeita, incrementa-se o parâmetro ρa, aplica-se o reset e a busca por outra categoria da camada F a 2 continua até que todas sejam verificadas, ou uma nova seja adicionada. Quando o teste de vigilância Inter-ART é satisfeito, realiza-se a ressonância na categoria ativa da rede ARTa, a qual já foi classificada como temporária ou definitiva antes dos cálculos executados no módulo Inter-ART. Contudo, se uma categoria foi criada durante o processamento dos módulos ART fuzzy, isto é, ao menos uma das variáveis novoa ou novob é diferente de zero, também é necessário verificar os valores máximos das funções de escolha para identificar se a ressonância da ARTa será realizada em uma categoria temporária ou definitiva. Com a finalização do processamento dos módulos ARTs, se a categoria ativa da ARTa for definitiva, a atualização dos pesos do módulo Inter-ART para realizar o mapeamento entre as atividades dos módulos ARTa fuzzy e ARTb fuzzy é realizada automaticamente. Por outro lado, quando a categoria ativa é temporária, incrementa-se o contador de ressonâncias countR no ı́ndice correspondente e é verificado se essa categoria obteve o número mı́nimoNmin de ressonâncias para tornar-se definitiva. Se o neurônio permanecer no grupo temporário, apenas atualiza-se os pesos Inter-ART temporários relacionados. Mas se foi obtido o número de ressonâncias necessárias, a categoria torna-se definitiva e aplica-se a atualização dos pesos Inter-ART correspondentes no grupo definitivo. A etapa subsequente à atualização dos pesos Inter-ART é atualizar a quantidade de ciclos das categorias temporárias não ativadas e verificar quais serão exclúıdas por terem ficado Nmax ciclos sem classificar uma entrada. Sempre que um padrão de entrada é apresentado à rede, as etapas da aprendizagem on-line são executadas. 3.2.2 Cálculo de uma predição com a rede neural ARTMAP fuzzy Para realizar predições com a ARTMAP fuzzy, é necessário apenas do vetor de entrada a. Nesse caso, o sistema de classificação interno executado no algoritmo do módulo ARTa fuzzy associa o padrão de entrada à categoria J da camada F a 2 com maior função de escolha para verificar o teste de vigilância ARTa. Caso o teste de vigilância seja satisfeito, o resultado da predição é a categoria K do módulo ARTb fuzzy que foi mapeada à categoria J durante o treinamento. A verificação do mapeamento é realizada na linha J da matriz wab, sendo a categoria K identificada pela posição que possuir o valor 1 dessa linha. A 41 resposta da rede neural ao padrão de entrada corresponde à linha K da matriz de pesos wb. Se o teste de vigilância não for satisfeito durante a classificação, significa que o padrão de entrada é novidade para o conhecimento da rede, e nenhuma resposta é obtida. O fluxograma das etapas empregadas na predição da rede ARTMAP fuzzy está apresentado na Figura 12. Ressalta-se que na abordagem de treinamento on-line as predições são calculadas em tempo real e concorrentemente ao treinamento da rede. Logo, é posśıvel utilizar a mesma implementação para processar o treinamento e o cálculo das predições, sendo necessário identificar a situação que os dados de entrada representam. Figura 12 – Fluxograma do cálculo de uma predição da rede ARTMAP fuzzy Fonte: Elaboração do próprio autor Na Figura 12 não foi representada a separação das categorias do módulo ARTa fuzzy que ocorre na arquitetura especializada aplicada no treinamento on-line. Quando há a distinção de categorias definitivas e temporárias da ARTa fuzzy, na predição ambas as matrizes de pesos wt j e wd l são consideradas nos cálculos da função de escolha para verificar a associação do padrão de entrada com uma categoria do módulo ARTa fuzzy. Apresenta-se no próximo caṕıtulo a implementação da rede neural ARTMAP fuzzy com treinamento on-line para realizar previsões em tempo real da qualidade de ar de ambientes internos. 42 4 PREVISÃO DE COMPONENTES DA QUALIDADE DE AR COM A REDE NEURAL ARTMAP FUZZY O desenvolvimento de sistemas IoT baseados em sensores ambientais permite realizar a análise de várias caracteŕısticas f́ısicas e verificar a existência de componentes com potencial de risco à saúde e ao bem-estar. Com monitoramento constante, pode-se emitir informações e alertas em tempo real, contendo estat́ısticas dos compostos monitorados. Esses sistemas podem ser aprimorados aplicando-se algoritmos de ML para processarem os dados amostrados. Consequentemente, a extração do conhecimento é realizada com maior eficácia, tornando posśıvel a implementação de serviços de previsões baseando-se nas tendências das situações estudadas. Um dos objetivos desse trabalho foi o desenvolvimento de um algoritmo de ML, com treinamento on-line, capaz de realizar a previsão de dados ambientais em tempo real. Com foco na qualidade de ar em ambientes internos, propõe-se utilizar sensores de baixo custo para amostrar sinais do ambiente monitorado e uma rede neural ARTMAP fuzzy com treinamento on-line para calcular as previsões. Apresentam-se, na sequência, os dispositivos e as configurações do sistema projetado. 4.1 SISTEMA PROPOSTO Para realizar a análise da qualidade de ar em ambientes internos, foram considerados alguns dos componentes mais usuais examinados pela literatura especializada. Dessa forma, os seguintes sensores foram utilizados: • BME680: desenvolvido pela Bosch, é um sensor digital para medição de gás, pressão, umidade e temperatura com alta acurácia (BOSCH SENSORTEC, 2019); • MH-Z19B: sensor da Winsen Electronics Technology que realiza medições de CO2 por meio de raio infravermelho não dispersivo (WINSEN, 2016); • SGP30: produzido pela Sensirion (SENSIRION, 2020a), é um sensor de gás especializado na leitura de VOC; • PMS7003: sensor de PM produzido pela Plantower (PLANTOWER, 2016). Realiza a leitura de material particulado com diâmetros de até 1, 2,5 e 10 micrômetros. 43 Apresenta-se, no Quadro 2, a tecnologia de fabricação, a acurácia de leitura e a faixa de detecção dos sensores citados. A acurácia dos sensores MH-Z19B e do PMS7003 são compostas por dois valores, sendo o primeiro uma porcentagem de variação em relação ao valor da leitura e o segundo uma variação adicional considerando o composto amostrado. O sensor SGP30 é senśıvel a vários gases, sendo os principais o etanol e hidrogênio, com 10% e 15% de acurácia de medição, respectivamente. Quadro 2 – Informações dos sensores utilizados nesse trabalho Sensor Tecnologia de fabricação Leitura Acurácia Faixa de detecção BME680 Óxido metálico IAQ - 0∼500 Temperatura 0∼65◦C: ±1◦C -40◦C∼85◦C Umidade 20∼80% de umidade a 25◦C: ±3% 0%∼100% de umidade Pressão 0∼65◦C: ±0,6 hPa 300∼1100 hPa MH-Z19B Infravermelho CO2 3% + ±50 ppm 0∼5000 ppm SGP30 Óxido metálico VOC 10% a 15% 0∼60000 ppb PMS7003 Difração a laser Material particulado PM2.5: 10% + ±10 µg/m3 PM2.5: 0∼500 µg/m3 Fonte: Elaboração do próprio autor Com relação ao IAQ medido pelo BME680, trata-se de um ı́ndice da qualidade do ar calculado pelo BSEC (Bosch Sensortec Environmental Cluster), que é um software de código fechado de propriedade da Bosch. Como resultado bruto, o sensor de gás gera um valor de resistência correspondente à concentração de poluentes existentes no ar, incluindo gases provenientes de pinturas e lixo, além de VOCs eliminados pelo cozimento e consumo de alimentos, pela respiração e pela sudorese. A partir dos valores da resistência, o algoritmo do BSEC se calibra automaticamente considerando medições recentes, o que garante eficientes e consistentes medições de IAQ (BOSCH SENSORTEC, 2019). O IAQ calculado pelo BSEC varia de 0 a 500. Nessa escala, maiores valores representam piores condições de poluição do ambiente. Após a calibração do BSEC, que geralmente ocorre em até 4 dias após o ińıcio de operação, o valor de IAQ tipicamente associado à boa qualidade de ar fica em torno de 25, enquanto IAQs com valores próximos de 250 caracterizam ar polúıdo (BOSCH SENSORTEC, 2019). No Quadro 3 apresentam- se os ńıveis de poluição associados a diferentes faixas de valores IAQ e as ações sugeridas para amenizar a ação dos poluentes. 44 Quadro 3 – Classificação do IAQ calculado pelo BSEC IAQ Qualidade do ar Impacto de exposição em longos peŕıodos Ação sugerida 0-50 Excelente Ar puro, indicado para o bem-estar Nenhuma ação necessária 51-100 Boa Sem irritação ou impacto ao bem-estar Nenhuma ação necessária 101-150 Levemente polúıdo Posśıvel redução do bem-estar Ventilação sugerida 151-200 Moderadamente polúıdo Possibilidade de irritações mais significantes Aumentar a ventilação com ar puro 201-250 Fortemente polúıdo A exposição pode levar a efeitos como dor de cabeça, dependendo do tipo de VOCs Otimizar a ventilação 251-350 Severamente polúıdo Problema de saúde mais grave posśıvel se houver a presença de VOCs prejudicais Contaminação deve ser identificada se o ńıvel for atingido mesmo sem a presença de pessoas. Maximizar a ventilação e reduzir a ocupação do ambiente >351 Extremamente polúıdo Dores de cabeça e posśıveis problemas neurotóxicos Contaminação precisa ser verificada. Evitar a ocupação do ambiente e maximizar a ventilação Fonte: Adaptado de Bosch Sensortec (2019) 4.1.1 Amostragem de dados O sistema embarcado para amostrar e armazenar os dados da qualidade do ar foi implementado utilizando um Raspberry Pi 3 modelo B. As conexões dos sensores com o minicomputador estão apresentadas na Figura 13. O relógio do sistema foi sincronizado com um relógio de tempo real modelo DS3231 conectado ao barramento da comunicação I2C. Para respeitar o limite de corrente da comunicação I2C, o BME680 e o SGP30 foram conectados através de um multiplexador TCA9548A. O Raspberry Pi 3 possui apenas uma interface RS-232, que foi utilizada na comunicação do PMS7003. Utilizou-se um Arduino Uno conectado à porta USB do Raspberry Pi 3 para obter-se uma interface RS-232 adicional, sendo o MH-Z19B conectado ao microcontrolador. Para aumentar a acessibilidade os dados amostrados foram armazenados na nuvem por meio da conexão do Raspberry Pi 3 à Internet. Figura 13 – Diagrama de ligação dos sensores ao Raspberry Pi 3 Fonte: Elaboração do próprio autor O ambiente considerado nesta avaliação foi um quarto onde reside uma pessoa. Devido 45 aos trabalhos remotos desenvolvidos em ambientes domésticos durante a pandemia, esse quarto também foi utilizado como escritório durante o peŕıodo de amostragem dos dados. Trata-se de um cômodo, com aproximadamente 11 metros quadrados, situado em um apartamento na cidade de Ilha Solteira, São Paulo. O conjunto de hardware foi instalado a cerca de 50 cent́ımetros do chão. As taxas de amostragem dos sensores foram definidas como segue: • BME680 e SGP30: o BME680 pode operar em três modos utilizando-se a biblioteca BSEC. No modo cont́ınuo, a amostragem é de 1 Hz, sendo recomendada apenas para testes rápidos. Em aplicações a longo prazo, recomenda-se a utilização dos modos baixo consumo (low power) ou ultra baixo consumo (ultra low-power), que respectivamente empregam taxas de amostragem de 0,33 Hz e 3,3 mHz. Nesta aplicação escolheu-se o modo de operação de baixo consumo, obtendo-se amostras a cada 3 segundos. Utilizou-se a mesma taxa de amostragem no SGP30; • MH-Z19B: o tempo de resposta da leitura de 90% do CO2 (T90) captado pelo MH-Z19B é no máximo 120 segundos. Dessa forma, verificou-se que repentinas leituras não geraram variações expressivas nos valores, sendo definido uma taxa de amostragem de 0,25 Hz para obter leituras em intervalos de 15 segundos; • PMS7003: no modo cont́ınuo de operação, o PMS7003 realiza leituras na frequência aproximada de 1 Hz, sendo a adotada nesta avaliação. É importante ressaltar que o condicionamento dos sinais dos sensores não foi foco dessa pesquisa. Considerando os sensores de gás, foram adquiridas placas de circuito impresso já implementadas pela fabricante CJMCU, que contém o BME680 e o SGP30 e de outros componentes elétricos. A aquisição de dados do BME680 foi realizada utilizando-se as bibliotecas disponibilizadas pela Bosch, e no SGP30 as instruções da comunicação I2C foram implementadas. Em relação aos dispositivos com comunicação RS-232, isto é, o PMS7003 e o MH-Z19B, os dados recebem tratamentos definidos pelos fabricantes e são disponibilizados por meio de protocolos seriais. Os sensores utilizados nessa pesquisa estão apresentados na Figura 14. As diferentes quantidades de dados produzidas pelas taxas de amostragens distintas foram padronizadas, calculando-se a média no peŕıodo de uma hora, o que resultou em 24 valores de cada variável por dia de amostragem. Para possibilitar o monitoramento da qualidade do ar do ambiente assistido em tempo real, implementou-se um servidor de computação de borda no Raspberry Pi 3. Esse módulo do sistema embarcado foi configurando aplicando-se o Node-Red, que é uma ferramenta utilizada com frequência no gerenciamento do fluxo de dados em aplicações 46 IoT. Um exemplo de leitura dos dados e os nós da configuração no Node-Red estão apresentadas no Apêndice A, respectivamente na Figura 37 e na Figura 38. Figura 14 – Sensores utilizados nessa pesquisa (a)BME680 (b)SGP30 (c)PMS7003 (d)MH-Z19B Fonte: Elaboração do próprio autor A amostragem ocorreu de 20 de outubro a 11 de dezembro de 2020. Durante esse peŕıodo, houve alguns erros de leitura e, consequentemente, alguns dados dos sensores não foram armazenados. Contudo, a amostragem descontinuada não prejudicou o treinamento e a predição da rede neural ARTMAP fuzzy devido à modelagem dos exemplos de treinamento utilizada, a qual é apresentada na próxima seção. Os valores das variáveis presentes nesta avaliação estão plotados nos gráficos da Figura 15. Os peŕıodos em que houve erros de leituras estão destacados em vermelho. Na metodologia de treinamento utilizada, a rede ARTMAP fuzzy é inicializada sem categoria. Como o conhecimento da rede neural é incrementado à medida que recebe novas entradas, é interessante que na inicialização do sistema seja efetuado apenas o 47 treinamento da RNA durante um certo peŕıodo, sem realizar o cálculo de predição. Dessa forma, a previsão é liberada apenas quando houver conhecimento suficiente armazenado nas categorias da ARTMAP fuzzy. Nesse contexto, definiu-se que durante a primeira semana a RNA apenas seria treinada, peŕıodo compreendido por 168 padrões de entrada, o qual está indicado pela linha vertical tracejada vermelha na Figura 15. No recebimento dos 1008 padrões de entrada subsequentes, que estão à direita da linha vermelha, manteve- se o treinamento e iniciaram-se os cálculos das predições, caracterizando uma abordagem de treinamento on-line capaz de realizar o cálculo de previsões em tempo real. Figura 15 – Séries temporais dos dados amostrados 100 200 IA Q Treinamento Treinamento e Previsão Dados desconsiderados 25000 50000 75000 G ás (o h m ) 250 500 S IA Q 30 35 T em p er at u ra (◦ C ) 25 50 U m id ad e (% ) 0 10000 V O C (p p b ) 500 1000 C O 2 (p p m ) 21/10/2020 27/10/2020 02/11/2020 08/11/2020 14/11/2020 20/11/2020 26/11/2020 02/12/2020 08/12/2020 0 20 P M 2 .5 (u g/ m 3 ) Fonte: Elaboração do próprio autor 48 Além do parâmetro IAQ calculado pelo BSEC, considerou-se também a variante IAQ estático, ou SIAQ (static indoor air quality), que é indicado para situações que o sensor permanece imóvel durante a operação (BOSCH SENSORTEC, 2019). Outras variáveis do BME680 analisadas foram o valor bruto da resistência do sensor de gás, a temperatura e a umidade. O VOC é proveniente do SPG30 e o CO2 do MH-Z19B. O material particulado amostrado pelo PMS7003 considerado foi o de part́ıculas com até 2,5 micrômetros, isto é, PM2.5. Na próxima seção apresentam-se as metodologias de treinamento e de predição envolvendo a rede neural ARTMAP fuzzy visando a previsão da qualidade de ar em ambientes internos modelada em séries temporais. 4.2 REDE NEURAL ARTMAP FUZZY APLICADA NA PREVISÃO DE SÉRIES TEMPORAIS Com o objetivo de utilizar a rede ARTMAP fuzzy para calcular a previsão dos compostos da qualidade de ar, é necessário obter um modelo de treinamento supervisionado a partir da amostragem cont́ınua dos sensores. Uma possibilidade é a organização das informações em janelas deslizantes, que agrupam os dados temporais discretizados para gerar os padrões de entrada da RNA. Definiu-se a utilização de janelas deslizantes sobrepostas de tamanho fixo. Para gerar uma janela, a cada instantes de tempo t da série temporal discretizada, consideram-se n valores precedentes, os quais denominam-se lags, para formarem uma janela deslisante. A quantidade de lags define o tamanho da sobreposição de janelas adjacentes. Dessa forma, os componentes de uma janela deslisante da série temporal são organizados no vetor v, como apresentado na equação 14: v = [v(t− n), . . . , v(t− 1), v(t)] (14) Um exemplo desse modelo de treinamento com sobreposição de 3 lags está apresentado na Figura 16. O treinamento se inicia no instante t3, já que são necessárias 3 amostragens anteriores para se obter a primeira janela. A cada nova amostragem da série temporal, gera-se um padrão de entrada, o qual é apresentado à rede neural ARTMAP fuzzy. Além dos valores discretizados da série temporal organizados no vetor v, é necessário adicionar informações históricas aos padrões de entrada, de modo que a rede neural ARTMAP fuzzy realize a classificação baseando-se nos valores da variável e em informações 49 Figura 16 – Série temporal modelada em janelas deslizantes sobrepostas Fonte: Elaboração do próprio autor temporais correspondentes. Assim como utilizado por Lopes (2005), os dados temporais considerados nesse trabalho para identificar o histórico dos padrões de entrada foram o dia da semana e a hora do dia, respectivamente representados pelas variáveis d e h que compõem o vetor t descrito na equação 15: t = [d, h] (15) Dessa forma, os padrões de entrada da ARTMAP fuzzy são definidos pela equação 16: a = [t, v] (16) A sáıda b da rede neural consiste no valor da variável v no instante de tempo subsequente ao da entrada, sendo representada pela equação 17: b = [v(t+ 1)] (17) Conforme descrito no Caṕıtulo 3, durante a fase de aprendizagem da ARTMAP fuzzy, é necessário apresentar à rede os vetores de entrada (a) e de sáıda (b) para que seja realizado o mapeamento entre o padrão de entrada e a sáıda correspondente. O conhecimento é armazenado nas matrizes de pesos definidas internamente na arquitetura da rede (wa j , wb k, wab). Neste trabalho, para realizar o cálculo de uma predição com a rede ARTMAP fuzzy, não foi aplicado o teste de vigilância do módulo ARTa fuzzy como apresentado no fluxograma da Figura 12, pois desejou-se garantir uma resposta na sáıda da rede. Dessa 50 forma, a partir do cálculo da função de escolha das categorias temporárias e definitivas do módulo ARTa fuzzy, selecionou-se a categoria J com maior função de escolha, já que é a melhor candidata para representar o padrão de entrada apresentado à rede durante o cálculo da predição. A abordagem de treinamento apresentada permite o cálculo de previsões um instante à frente de cada amostragem, como definida na equação 17. Contudo, desejou-se obter previsões mais adiante. Para isso, realizaram-se predições utilizando-se a sáıda da rede neural como sua própria entrada para construir padrões de entrada subsequentes à última amostragem de dados. Para verificar o desempenho da rede neural ARTMAP fuzzy na predição dos compostos da qualidade do ar, nas avaliações foram inclúıdos os seguintes itens: • Normalização: uma das etapas do pré-processamento da rede neural ARTMAP fuzzy é a normalização dos dados, que tem o objetivo de transformar as informações de entrada em valores entre 0 e 1. É comum organizar os dados que alimentam a rede ARTMAP fuzzy na forma matricial. Nessa abordagem, os padrões de entrada são dispostos nas linhas, que por sua vez são formados por variáveis dispostas nas colunas, como pode ser visualizado na Figura 17. Por exemplo, o primeiro padrão de entrada está na linha a0, e na primeira coluna estão todos os valores da variável dia. É posśıvel aplicar diferentes cálculos para normalizar os valores dessas matrizes, sendo que nessa pesquisa foram consideradas a normalização de dados por linha e por colunas, como segue: – Linha: tradicionalmente, cada exemplo de treinamento é normalizado separadamente. Por exemplo, considerando a normalização do padrão de entrada a0 apresentado na Figura 17(a), calcula-se o somatório dos a0i valores dessa linha para normalizá-los aplicando-se equação 18: a0i = a0i∑nA i=1 a0i (18) – Coluna: também foi analisada a normalização exclusiva de cada variável. Para isso, todos os valores de uma coluna são divididos pelo maior valor dela mesma. Como exemplo, apresenta-se na Figura 17(b) a representação da normalização dos diaj valores da variável dia aplicando-se a equação 19: diaj = diaj argmax(dia) (19) 51 Figura 17 – Diferentes metodologias de normalização dos padrões de entrada da rede neural ARTMAP fuzzy (a)Linha (b)Coluna Fonte: Elaboração do próprio autor • Tamanho das janelas deslizantes: para evitar a definição emṕırica do tamanho da sobreposição das janelas deslizantes, os treinamentos e as predições foram executados considerando diferentes quantidades de lags ; • Análise univariada e multivariada: foram estudadas séries temporais univariadas, isto é, apenas uma variável no vetor v para prever essa mesma informação no instante de tempo subsequente. Adicionalmente, com foco na obtenção de melhores resultados na previsão do IAQ, verificaram-se algumas combinações de múltiplas variáveis na entrada da rede neural. Resumindo, o objetivo das avaliações em software foi principalmente encontrar a configuração dos parâmetros estudados que ofereceram a melhor exatidão na previsão do IAQ. Assim, verificaram-se simultaneamente diferentes técnicas de normalização dos dados de entrada da rede ARTMAP fuzzy e tamanhos de sobreposição das janelas deslizantes, aplicadas em várias combinações de variáveis de entrada. A rede neural ARTMAP fuzzy foi implementada na linguagem de programação Python, executada em um laptop com processador Intel Core i5-8250U e 8 GB de memória RAM. Ressalta-se que as avaliações apresentadas nesse caṕıtulo não foram executadas em um sistema embarcado, nem em tempo real. Contudo, executou-se o treinamento on-line da rede neural, reproduzindo com fidelidade os acontecimentos que ocorreriam em uma aplicação do sistema com amostragem de dados em tempo real. 4.2.1 Avaliações de séries temporais univariadas Os componentes do ar foram aplicados em processamentos distintos da rede ARTMAP fuzzy. O peŕıodo de previsão foi definido em 24 horas à frente, sempre calculado no recebimento de cada padrão de entrada. Os parâmetros da ARTMAP fuzzy utilizados 52 com normalização dos dados por linha estão apresentados no Quadro 4. O único valor alterado na normalização por coluna foi o parâmetro de vigilância da ARTb fuzzy, que foi ρb = 0, 96. Em relação aos parâmetros do treinamento on-line, definiu-se que as categorias temporárias deveriam ser ativadas 2 vezes para se tornarem definitivas (Nmax = 2), e excluem-se as que ficassem por duas semanas inativas, isto é, aquelas que não classificassem nenhuma entrada após a RNA receber 336 padrões (Nmin = 336). Quadro 4 – Parâmetros da ARTMAP fuzzy com normalização por linha Parâmetros Valor Parâmetro de escolha (α) 1,0 Taxa de treinamento (β) 1,0 Parâmetro de vigilância ARTa base (ρa) 0,99 Parâmetro de vigilância ARTb (ρb) 0,997 Parâmetro de vigilância Inter-ART (ρab) 1,0 Incremento do ρa (ε) 0,0001 Parâmetros exclusivos do treinamento on-line Valor Nmax 2 Nmin 336 Fonte: Elaboração do próprio autor Para realizar o processamento dos dados, as séries temporais foram modeladas em janelas deslizantes sobrepostas, conforme descrito anteriormente. Foram consideradas sobreposições de 1 a 3 lags, combinadas com normalização das entradas por linha e por coluna. A avaliação consistiu em utilizar dados referentes a uma semana (168 entradas) para iniciar o treinamento e, após esse peŕıodo, iniciar o cálculo das previsões nas 6 semanas subsequentes (1008 entradas). O treinamento da ARTMAP fuzzy foi executado em todos os padrões de entrada, caracterizando na aprendizagem on-line da rede neural. Considerou-se apenas a plotagem dos resultados referentes à utilização de janelas deslizantes com sobreposição de 1 lag, devido à similaridade dos gráficos das respostas obtidas com os demais tamanho de sobreposição. As previsões calculadas pela ARTMAP fuzzy aplicando-se normalização por linha estão representadas nos gráficos da Figura 18. Nesse caso, a normalização por linha foi aplicada apenas nas entradas da ARTa fuzzy, que possui entre 4 e 6 componentes as quais variam de acordo com o tamanho da sobreposição das janelas deslizantes. As entradas da ARTb fuzzy foram normalizadas por coluna, pois apresentam apenas um componente referente ao instante subsequente da série temporal. Ressalta-se que, para se obter o valor correto da predição é necessário desfazer a normalização. Logo, para cada linha normalizada é necessário armazenar o somatório calculado, assim como na normalização por coluna é preciso guardar o maior valor existente. 53 No geral, a normalização por linha gerou previsões ruidosas, principalmente quando os dados reais apresentaram mais variações. Esse comportamento fica mais viśıvel no componente VOC, sendo que até aproximadamente o dia 14 de novembro, a concentração ficou constantemente próximo de 0 ppb e com previsões próximas aos valores amostrados. Após o ińıcio da oscilação da concentração do VOC, a previsão tornou-se mais ruidosa, e mesmo com a estabilidade dos dados reais após o dia 28 de novembro, as sáıdas da ARTMAP fuzzy continuaram a apresentar picos, prejudicando a exatidão das previsões. Figura 18 – Previsões univariadas com normalização por linha 100 200 IA Q Real Previsão Dados desconsiderados 25000 50000 75000 G ás (o h m ) 250 500 S IA Q 30 35 T em p er at u ra (◦ C ) 25 50 U m id ad e (% ) 0 10000 V O C (p p b ) 500 1000 C O 2 (p p m ) 27/10/2020 02/11/2020 08/11/2020 14/11/2020 20/11/2020 26/11/2020 02/12/2020 08/12/2020 0 20 P M 2 .5 (u g/ m 3 ) Fonte: Elaboração do próprio autor Nota-se também que a norma