• Nenhum resultado encontrado

Predição de Características de Partículas Atmosféricas Utilizando Redes Neurais Convolucionais

N/A
N/A
Protected

Academic year: 2021

Share "Predição de Características de Partículas Atmosféricas Utilizando Redes Neurais Convolucionais"

Copied!
93
0
0

Texto

(1)

Vinícius Couto Biermann

Predição de Características de Partículas

Atmosféricas Utilizando Redes Neurais

Convolucionais

Florianópolis

2019

(2)
(3)

Vinícius Couto Biermann

Predição de Características de Partículas

Atmosféricas Utilizando Redes Neurais

Convolucionais

Monografia submetida ao Programa de Gra-duação em Ciência da Computação para a obtenção do Grau de Bacharel.

Universidade Federal de Santa Catarina Departamento de Informática e Estatística

Ciência da Computação

Orientador: Prof. Dr. Mauro Roisenberg

Coorientador: Me. Daniel Priori

Florianópolis

2019

(4)

Biermann, Vinícius Couto

Predição de Características de Partículas Atmosféricas Utilizando Redes Neu-rais Convolucionais / Vinícius Couto Biermann; Orientador: Prof. Dr. Mauro Roi-senberg; Coorientador: Me. Daniel Priori – 2019.

91 p. : il. (algumas color.) ; 30 cm.

Trabalho de Conclusão de Curso de Graduação – Universidade Federal de Santa Catarina, Departamento de Informática e Estatística, Ciência da Computação, Florianópolis, 2019.

Inclui referências

1. Ciência da Computação. 2. Inteligência Artificial. 3. Deep Learning. I. Roisenberg, Mauro. II. Priori, Daniel. III. Universidade Federal de Santa Catarina. IV. Título

(5)

Vinícius Couto Biermann

Predição de Características de Partículas

Atmosféricas Utilizando Redes Neurais

Convolucionais

Esta Monografia foi julgada aprovada para a obtenção do Título de "Bacharel em Ciência da Computação", e aprovada em sua forma final pelo Programa de Graduação em Ciência da Computação.

Florianópolis, 8 de dezembro de 2019:

Prof. José Francisco D. de G. C. Fletes

Coordenador do Curso

Banca Examinadora:

Prof. Dr. Mauro Roisenberg

Orientador

Me. Daniel Priori

Coorientador

Dra Giseli de Sousa

University of Hertfordshire, UK

Prof. Dr. Elder Rizzon Santos

Universidade Federal de Santa Catarina

Florianópolis

2019

(6)
(7)

Agradecimentos

Primeiramente, agradeço aos meus pais, meu irmão e o restante da minha família, pelo apoio, amor e ensinamentos.

Agradeço ao professor Mauro Roisenberg e ao Daniel Priori pela orientação e dedi-cação, assim como aos demais membros da banca avaliadora. Também aos demais profes-sores do departamento, pelas disciplinas ministradas e todos os servidores e funcionários que mantém a universidade.

Agradeço aos meus amigos e colegas de curso, que sempre estiveram ao meu lado e compartilharam do árduo processo de graduação e a inestimável amizade desde que nos conhecemos. Também aos meus amigos de fora do curso, que mesmo morando em outros estados ou países, sempre me deram apoio e trouxeram momentos de alegria.

Agradeço aos demais membros do Laboratório de Conexionismo e Ciências Cog-nitivas (L3C) do INE-UFSC, pela ajuda durante o desenvolvimento desse trabalho.

Agradeço aos professores(as) e colegas do Instituto Cultural Niten e da Associação Nipo-Catarinense, por tudo que me ensinam, pela compreensão e apoio, também a todos que participaram do meu processo de aprendizado até aqui.

Por fim, agradeço a todos que contribuíram para o avanço da humanidade e àqueles que permitiram meus estudos nesta universidade pública.

(8)
(9)

Resumo

A concentração de partículas prismáticas na atmosfera possui influências significativas em nosso planeta. Modelos climáticos são fortemente afetados por características de par-tículas como os cristais de gelo, presentes em nuvens, que alteram taxas de reflexão e absorção de radiação, alterando o clima terrestre. Uma forma de coletar amostras para o estudo de tais partículas é a utilização de sondas, que registram imagens de padrões bidimensionais de dispersão de luz de uma partícula capturada. Dessas imagens, pode-mos extrair informações úteis, como tamanho e formato. Para extrair estas informações de tamanho e formato, este relatório foi elaborado com o objetivo de implementar um ambiente de arquitetura Deep Learning com redes neurais convolucionais para um pro-blema de regressão em um conjunto de pequenas partículas atmosféricas com a intenção de prever o tamanho projetado de tais partículas. O principal aspecto da implementação, foi deixar o sistema invariante à possíveis rotações existentes nos dados das partículas, para tanto, uma abordagem de tratamento de imagens com o uso de transformadas rápi-das de Fourier e sua inversa foi utilizada. Os resultados obtidos do modelo desenvolvido foram satisfatórios, com um coeficiente de determinação 𝑅2 = 0.9901 no melhor dos

ex-perimentos realizados. Também foi feita uma comparação com os resultados já obtidos em um trabalho anterior que usou o mesmo conjunto de dados sobre diferentes técnicas de aprendizado de máquina.

Palavras-chaves: Inteligência Artificial. Deep Learning. Redes Neurais Convolucionais.

(10)
(11)

Abstract

The concentration of prismatic particles on the atmosphere has significant influences on our planet. Climate models are strongly affected by characteristics of atmospheric particles such as ice crystals, present in clouds, which can modify the reflection and absorption rates of radiation, thus changing Earth’s climate. One way of collecting samples for the study of such particles is the use of probes, which record the two-dimensional light scattering patterns of a captured particle. From those images, one can extract useful information, such as size and shape of particles. To extract those informations, the objective of this report is to implement a Deep Learning architecture environment with convolutional neural networks for a regression problem on a set of small atmospheric particles with the intention of predicting the projected size of these particles. The main aspect of the implementation is to make the system invariant to possible rotations which can exist in the particle data; thus, an approach of image processing using fast Fourier transforms and its inverse was used. The results obtained from the developed model were satisfactory, with a coefficient of determination 𝑅2 = 0.9901 on the best of the experiments performed.

These results were also compared with results obtained from a previous work that used the same dataset on different machine learning techniques.

Key-words: Artificial Intelligence. Deep Learning. Convolutional Neural Networks.

(12)
(13)

Lista de Figuras

Figura 1 – Alguns formatos de cristais de gelo. . . 24

Figura 2 – Sonda SID-2. . . 25

Figura 3 – Perceptron . . . . 27

Figura 4 – Multilayer Perceptron . . . 28

Figura 5 – Função Degrau . . . 29

Figura 6 – Sigmóide . . . 29

Figura 7 – Tangente Hiperbólica . . . 30

Figura 8 – Rectified Linear Unit . . . . 30

Figura 9 – Rotação de uma matriz em 180∘. . . 34

Figura 10 – Exemplo de formação de um feature map. . . . 35

Figura 11 – Os dois filtros Sobel como matrizes em escala de cinza. . . 36

Figura 12 – Exemplo de aplicação dos filtros Sobel. . . 37

Figura 13 – Convolução com stride 1 . . . . 38

Figura 14 – Convolução com stride 2 . . . . 38

Figura 15 – Matriz imagem com Padding 1 . . . 40

Figura 16 – Operação de Pooling . . . . 41

Figura 17 – Terminologia de camada convolucional. . . 41

Figura 18 – Exemplos de padrões de difração. . . 46

Figura 19 – Exemplos de rotação nos padrões de difração. . . 48

Figura 20 – FFT. . . 49

Figura 21 – IFFT. . . 51

Figura 22 – Fluxograma do sistema. . . 53

Figura 23 – Resultado de treino com IFFT . . . 58

Figura 24 – Resultado de teste com IFFT . . . 59

Figura 25 – Resultado de treino com FFT . . . 60

Figura 26 – Resultado de teste com FFT . . . 61

(14)
(15)

Lista de Tabelas

Tabela 1 – Trabalhos correlatos . . . 27 Tabela 2 – Comparação de resultados . . . 62

(16)
(17)

Lista de Abreviaturas e Siglas

2DLS 2-Dimensional Light Scattering - Dispersão bidimensional de luz

SID Small Ice Detector

ZM Zernike Moments - Momentos de Zernike

SVM Support Vector Machine - Máquina de vetores de suporte

SVR Support Vector Regression - Regressão por vetores de suporte

SVC Support Vector Classifier - Classificador por vetores de suporte

RFC Random Forests Classification - Classificação por floresta aleatória

FFT Fast Fourier Transform - Transformada rápida de Fourier

IFFT Inverse Fast Fourier Transform - Transformada Inversa Rápida de

Fou-rier

DNN Deep Neural Network - Rede neural profunda

RNN Recurrent Neural Networks - Redes neurais recorrentes

CNN Convolutional Neural Network - Redes neurais convolucionais

ReLU Rectified Linear Unit - Unidade linear retificada

(18)
(19)

Sumário

1 INTRODUÇÃO . . . . 19 1.1 Objetivos . . . 20 1.2 Método de Pesquisa . . . 21 1.3 Organização do Texto . . . 21 2 REVISÃO BIBLIOGRÁFICA . . . . 23 2.1 Partículas Atmosféricas . . . 23 2.1.1 A sonda SID . . . 24 2.2 Trabalhos Correlatos . . . 25 2.3 Fundamentos Teóricos . . . 27 2.3.1 Perceptron . . . . 27 2.3.2 Multilayer Perceptrons . . . 28 2.3.3 Funções de Ativação . . . 28 2.3.4 Backpropagation . . . . 30 2.4 Deep Learning . . . 31 2.4.1 Diferentes Arquiteturas . . . 31 2.4.2 Visão Computacional . . . 32

2.5 Redes Neurais Convolucionais . . . 32

2.5.1 Convoluções . . . 33 2.5.2 Detecção de Padrões . . . 35 2.5.3 Striding . . . . 37 2.5.4 Padding . . . 38 2.5.5 Pooling . . . . 40 2.5.6 Organização de uma CNN . . . 41 2.6 Redes pré-treinadas . . . 42 2.7 Métricas de avaliação . . . 43

3 APRESENTAÇÃO DOS DADOS E MODELO PROPOSTO . 45 3.1 O Dataset . . . 45

3.2 Normalização dos dados . . . 46

3.3 Gerando imagens de partículas e conjuntos de treino e teste . . 47

3.4 Invariância à Rotação . . . 47

3.4.1 Fast Fourier Transform . . . . 48

3.4.2 Inverse Fast Fourier Transform . . . 49

3.4.3 Espelhamento de FFT e IFFT . . . 50

(20)

4 EXPERIMENTOS E RESULTADOS . . . . 55 4.1 Experimento I . . . 55 4.2 Experimento II . . . 60 4.3 Comparações . . . 62 5 CONCLUSÕES . . . . 65 5.1 Trabalhos Futuros . . . 66 REFERÊNCIAS . . . . 67

APÊNDICES

69

APÊNDICE A – CÓDIGO FONTE DESENVOLVIDO . . . . 71

(21)

19

1 Introdução

A história das redes neurais começa com o trabalho de Mcculloch e Pitts (1943), como o primeiro modelo de representação de um esquema neural biológico em computa-dores. Ao longo de décadas foram feitos vários avanços para possibilitar a computação com esses modelos, como a criação do Perceptron de Rosenblatt (1958), o algoritmo de

Backpropagation de Rumelhart, Hinton e Williams (1986) e outros. Um dos modelos de

redes neurais artificiais é conhecido como redes neurais convolucionais, que evoluiu de um conjunto de ideias para representar a organização de um córtex visual de um animal e de outros modelos como o Neocognitron, de Fukushima (1980).

Uma rede neural é composta por unidades de processamento simples denominadas neurônios. Estas unidades estão distribuídas em diferentes camadas, que se interconectam através de saídas e entradas dos neurônios que as formam. Temos uma rede de camadas profundas, ou Deep Learning, quando o número de camadas aumenta, tendo como entrada de uma camada a saída da anterior, com o uso de operações não lineares no processamento de informações extraídas e transformadas. Durante muito tempo existiu uma barreira que impossibilitava o seu uso, pois quanto maior for o conjunto de dados e número de camadas, mais cresce a necessidade de processamento. Esse uso se tornou possível com os avanços no hardware, com processadores mais eficientes e, atualmente, com o uso do poder de processamento intenso de GPUs (Graphics Processing Units).

Diferentes classes de problemas, assim como o tipo de seus dados, exigem redes específicas para alcançar resultados satisfatórios. Assim, surgiram várias arquiteturas em

Deep Learning que se especializam em solucionar problemas de uma determinada classe

— i.e. cada tipo de problema possui uma arquitetura de rede mais adequada para sua resolução.

Redes neurais convolucionais tem sido usadas em aplicações desde jogos como Go, com a rede AlphaGo 1, até processamento de linguagens naturais e principalmente no

reconhecimento de padrões em imagens, utilizando, por exemplo, bancos de dados como o ImageNet 2, que hoje conta com mais de 14 milhões de imagens diversas. Por terem

o propósito de reconhecimento de padrões, tais redes foram utilizadas na resolução do problema proposto e, portanto, receberam um nível maior de detalhes nesta monografia. O problema tratado neste relatório foi o de regressão de imagens de partículas at-mosféricas com diâmetros pequenos, na ordem de alguns micrômetros (𝜇𝑚). Estas imagens são padrões bidimensionais de dispersão de luz (2DLS 3 patterns, em inglês). Espera-se

1 <https://deepmind.com/research/alphago/> 2 <http://www.image-net.org/>

(22)

20 Capítulo 1. Introdução

que as redes neurais convolucionais se mostrem adequadas para a resolução do problema, obtendo, no mínimo, resultados semelhantes aos já registrados com o uso de outras téc-nicas de aprendizagem que foram aplicadas ao mesmo conjunto de dados na dissertação original do problema descrita por Salawu (2015) e no trabalho continuado por Priori (2017).

1.1

Objetivos

A proposta deste relatório é a pesquisa de Deep Learning, com uma introdução de seus fundamentos e uma breve apresentação aos principais métodos utilizados nessa ciência. Será então dado um enfoque maior na técnica de redes neurais convolucionais e a utilização dessas técnicas na resolução do problema de predição de partículas atmosféricas.

Os objetivos são, portanto, divididos em: ∙ Objetivo Geral

– Utilizar redes neurais convolucionais inseridas em uma arquitetura de redes

neurais de camada profunda para prever características relevantes, tais como tamanho projetado de partículas prismáticas cristalinas, a partir de imagens de seus padrões de difração sob a incidência de feixes de luz. O sistema de processamento de dados e treinamento da rede neural desenvolvida deve ser invariante à rotações das imagens provenientes das intensidades de difração. ∙ Objetivos Específicos

– Estudar os conceitos básicos de Deep Learning. – Estudar redes convolucionais.

– Estudar as imagens dos padrões de difração das partículas e que características

poderiam ser extraídas delas.

– Estudar o método de Transformadas Rápidas de Fourier (FFT) para garantir

invariância à rotação das imagens no sistema desenvolvido.

– Montar um modelo de redes neurais convolucionais. – Realizar experimentos e obter resultados.

(23)

1.2. Método de Pesquisa 21

1.2

Método de Pesquisa

A primeira fase desse trabalho englobou a pesquisa e estudo do estado da arte em Deep Learning, principalmente em redes neurais convolucionais, e trabalhos anteriores que utilizam o mesmo conjunto de dados. Para tal, foram utilizados livros recentes, como os de Goodfellow, Bengio e Courville (2016) e Nielsen (2015), disponibilizados online de maneira pública, assim como artigos e teses relacionados ao tema, principalmente os de Salawu (2015), Priori (2017) e Salawu et al. (2017).

Na fase posterior, o conhecimento teórico serviu de base para o desenvolvimento de um código em MATLAB○R, onde uma rede convolucional teve seus parâmetros ajustados e foi treinada para prever o tamanho projetado das partículas através de imagens de seus padrões de difração de luz. Os dados de intensidade foram pré-processados para garantir à rede invariância à rotação. Resultados foram então comparados com os já obtidos em trabalhos anteriores para verificar a viabilidade do uso de redes convolucionais no problema proposto.

1.3

Organização do Texto

Esta monografia está estruturada nas seguintes partes: ∙ Introdução

∙ Revisão Bibliográfica ∙ Apresentação da Proposta ∙ Experimentos e Resultados ∙ Conclusões

(24)
(25)

23

2 Revisão Bibliográfica

Esse capítulo traz uma contextualização sobre partículas atmosféricas, explicando brevemente sua origem e influências, assim como experimentos atuais. O local de origem de partículas cristalinas onde o conjunto de dados utilizado se baseia. A seguir, é apre-sentado o Small Ice Detector, um tipo de sonda capaz de capturar e armazenar dados de dispersão de luz de pequenas partículas. Uma seção de trabalhos correlatos expõe pes-quisas anteriores que utilizaram o mesmo conjunto de dados e buscaram, com diferentes técnicas de aprendizado de máquina, prever o tamanho de partículas.

Uma grande parte desse relatório é colocada na seção de fundamentos teóricos, onde são enunciados conhecimentos base de redes neurais, como perceptron, diferentes funções de ativação e backpropagation. O tema de Deep Learning é introduzido e um enfo-que mais profundo é dado em redes neurais convolucionais, demonstrando cada elemento essencial para entender seu funcionamento, pois esse tipo de arquitetura será empregue como uma abordagem diferente de resolver o mesmo problema visto nos trabalhos corre-latos.

2.1

Partículas Atmosféricas

O aerossol é definido como um conjunto de pequenas partículas sólidas ou líquidas que estão suspensas em um gás. Quando queremos nos referir à partícula em si, usamos o termo partícula atmosférica (particulado ou material particulado). Tais partículas se originam de produção humana ou natural, podendo ser orgânicas ou inorgânicas. Alguns exemplos são: pólen; esporos; bactérias (FRÖHLICH-NOWOISKY et al., 2016); poeira vulcânica; produtos de combustão (LANGLEY RESEARCH CENTER, 1996); etc.

Por possuírem tamanhos microscópicos, pode-se imaginar que o ar esteja repleto dessas partículas e que a presença de uma grande quantidade delas pode afetar de al-guma maneira a vida no planeta. De fato, a existência de aerossóis na atmosfera tem significativas influências na Terra.

Diversos projetos de pesquisa tem como objetivo uma melhor compreensão de ae-rossóis em nuvens e os impactos climáticos causados por ambos. Um desses projetos é o experimento CLOUD (Cosmics Leaving Outdoor Droplets)1, da CERN 2, que estuda as

relações entre aerossóis e raios cósmicos. Com os novos dados obtidos, o entendimento so-bre a formação de novas partículas na troposfera permite uma melhor precisão na projeção do aumento de temperatura na Terra (CHALMERS; JARLETT, 2016).

1 Site oficial do experimento CLOUD: <https://home.cern/about/experiments/cloud> 2 Organisation Européenne pour la Recherche Nucléaire

(26)

24 Capítulo 2. Revisão Bibliográfica

Outras partículas que influenciam no clima são os cristais de gelo presentes princi-palmente na composição de nuvens do tipo cirrus. Essas nuvens se formam na troposfera, em altitudes entre 5 km e 14 km, cobrindo cerca de 30% da superfície do planeta e se concentram, em maior parte, na região dos trópicos. As cirrus fazem parte do balanço de radiação da Terra, onde podem aumentar ou diminuir a temperatura abaixo delas através de processos físicos de reflexão e absorção de radiações solares e da superfície do planeta, agindo como um efeito estufa natural (BARAN, 2009).

Os parâmetros para as taxas de reflexão e absorção de radiação estão ligados às características dos cristais de gelo, como tamanho e formato, e a concentração de massa de cristais nas nuvens. A Figura 1 mostra alguns dos formatos conhecidos dos cristais. Para a extração de informações dessas partículas, foram criadas sondas passíveis de serem acopladas em asas de aviões que então podem coletar e analisar os cristais diretamente no seu local de origem.

Figura 1 – Alguns formatos de cristais de gelo.

Em linha: agregado, bullet rosette, coluna, platô, coluna oca, esferoide, droxtal e esfera.

Fonte: Yang et al. (2005)

2.1.1

A sonda SID

O Small Ice Detector (SID) é uma série de instrumentos desenvolvidos pela univer-sidade de Hertfordshire, no Reino Unido, com o objetivo de coletar dados bidimensionais de dispersão de luz (Two-Dimensional Light Scattering, ou 2DSL) de partículas.

(27)

2.2. Trabalhos Correlatos 25 Para a captura de dados de uma partícula, um feixe de luz é emitido entre os dois "braços"da sonda (lado esquerdo da Figura 2) que apontam para a frente enquanto a aeronave a qual foi acoplada passa por uma nuvem para coletas. Quando uma partícula entra em contato com o laser, dois sensores detectam um pico na dispersão de luz causada e ativam o detector principal para a captura dos dados (STOPFORD, 2010).

Figura 2 – Sonda SID-2 com parte eletrônica exposta.

Fonte: Adaptado de Stopford (2010)

A sonda SID-2 consegue observar partículas de 5 a 100𝜇𝑚 operando em uma frequência de 10KHz, sendo possível coletar amostras de aproximadamente 9000 partículas por segundo (STOPFORD, 2010). A principal diferença entre a sonda original SID para a SID-2, é que SID possui apenas seis unidades de detectores para analisar uma partícula, o que resultava em uma avaliação bruta dos tamanhos e formatos coletados, enquanto o número de detectores em SID-2 foi elevado para trinta e dois, arranjados radialmente em torno do eixo do canhão de laser 3.

2.2

Trabalhos Correlatos

A dissertação de mestrado de Salawu (2015) é o trabalho original onde o conjunto de dados dos padrões 2DLS foram utilizados juntamente com algumas técnicas de apren-dizado de máquina para tentar estimar características das partículas, como tamanho e

aspect ratio.

Foram explorados métodos de aprendizado de máquina de regressão e classificação, assim como alguns métodos de scaling e normalização, como min-max scaling, z-score

scaling e log-scaling. Como os modelos utilizados eram sensíveis à rotações, foi necessário

também o uso de Zernike Moments (ZM) para torná-los invariantes à rotação.

Os melhores resultados foram obtidos com o uso de Support Vector Machines (SVM) em regressão para tamanho projetado de partículas, com Support Vector

Regres-sion (SVR) e classificação para classes de aspect ratio, com Support Vector Classifier

(28)

26 Capítulo 2. Revisão Bibliográfica

(SVC). Foi utilizado natural-log scaling, atingindo uma acurácia de 99%. Esse valor má-ximo de acurácia foi possível apenas em rotação de 20∘, já que em outros níveis de rotação o desempenho degradava.

Outro trabalho que explorou o mesmo conjunto de dados foi a dissertação de Priori (2017), dando continuação ao trabalho anterior, que busca o valor previsto de tamanho projetado das partículas. Foram empregadas quatro diferentes modelos de aprendizado de máquina: dois utilizando Feed Forward Multi-Layer Perceptron com regularização Baye-siana, um terceiro com Função de Base Radial, e o quarto um arquitetura Deep Learning do tipo Autoencoders.

Assim como no trabalho de Salawu, diversas técnicas de scaling e normalização foram testadas e, de acordo com Priori, os melhores desempenhos no processo de teste foram obtidos com a aplicação de ambos natural-log e z-score em sequência.

O modelo de autoencoders obteve os melhores resultados, especialmente quanto à predição com as menores partículas, onde os outros modelos não foram tão acurados, atin-gindo uma performance (𝑅2) de 99%. Enquanto o problema com a rotação de partículas

foi abordado com a utilização de ZM por Salawu, Priori utilizou Transformadas Rápidas de Fourier (FFT, do inglês Fast Fourier Transform), mantendo um resultado entre 98% e 99% em qualquer nível de rotação.

No artigo publicado por Salawu et al. (2017), tem-se uma continuação do trabalho de mestrado de Salawu. O novo sistema está dividido em três partes. Na primeira parte,

Zernike Moments foram novamente utilizados para garantir invariância à rotação no

sis-tema. Após, foi aplicado a técnica de Random forests classification (RFC) para prever a orientação de cada padrão 2DLS. O terceiro estágio contém implementações específicas de SVMs para cada uma das 133 orientações. Os modelos de SVM desenvolvidos foram utilizados para diferentes características como descrito a seguir:

∙ 133 SVRs para prever o tamanho de prismas hexagonais;

∙ 133 SVRs para prever o tamanho projetado de prismas hexagonais, descrito como o diâmetro médio de área projetada;

∙ 133 SVCs para prever o aspect ratio de prismas hexagonais.

Assim, com o resultado obtido na etapa de RFC, é determinado o preditor e classificador apropriado para o padrão 2DLS fornecido, e então ele é repassado ao estágio 3, onde os modelos treinados irão analisar o parão e dar como resultado os valores previstos das características. Os resultados atingiram acurácia de entre 98% e 99% para qualquer nível de rotação.

(29)

2.3. Fundamentos Teóricos 27 A Tabela 1 mostra uma comparação dos trabalhos correlatos focados na predição de tamanhos projetados das partículas.

Tabela 1 – Trabalhos correlatos

Autor Dataset Técnicas utilizadas Resultado

Salawu (2015) Partículas atmosféri-cas prismátiatmosféri-cas

SVR com ZM 99%

Priori Partículas atmosféri-cas prismátiatmosféri-cas

Autoencoders com FFT 99% Salawu (2017) Partículas

atmosféri-cas prismátiatmosféri-cas

ZM, RFC, SVR e SVC 99%

Fonte: Elaborada pelo autor.

2.3

Fundamentos Teóricos

2.3.1

Perceptron

Após o trabalho de Mcculloch e Pitts (1943), Frank Rosenblatt (1958) criou um modelo de neurônio artificial chamado de perceptron. Seu algoritmo é um classificador linear binário em sistemas com aprendizado supervisionado. Abaixo temos uma visão de um perceptron simples mostrado como um grafo.

Figura 3 – Perceptron ∑︀ ^ 𝑦 𝑏 𝑤2 𝑤1 𝑤3 𝑥1 𝑥2 𝑥3

Fonte: Elaborada pelo autor.

Dado um conjunto de valores binários de entrada, denominado por 𝑥1, 𝑥2, ..., 𝑥𝑛, o

perceptron produz uma saída binária ^𝑦. Outras duas entradas também utilizadas são os

seguintes dois parâmetros: o conjunto de weights (pesos), 𝑤1, 𝑤2, ..., 𝑤𝑛 e um número real

𝑏, denominado bias. O valor de saída do algoritmo se dá por:

^ 𝑦 = ⎧ ⎪ ⎨ ⎪ ⎩ 1, se 𝑊 · 𝑋 + 𝑏 > 0 0, se 𝑊 · 𝑋 + 𝑏 ≤ 0 (2.1)

(30)

28 Capítulo 2. Revisão Bibliográfica

onde 𝑊 e 𝑋 são matrizes que contém os valores de 𝑤 e 𝑥 respectivamente e

𝑊 · 𝑋 =

𝑛 ∑︁ 𝑖=1

𝑤𝑖𝑥𝑖 (2.2)

O valor de bias representa a inclinação de um neurônio ser ativado, ou seja, quanto maior for o seu valor, maior é a chance da saída de seu perceptron ser 1.

2.3.2

Multilayer Perceptrons

Uma rede com apenas uma camada só pode representar funções linearmente sepa-ráveis, portanto para que problemas mais complexos possam ser resolvidos, são utilizadas redes com múltiplas camadas. As camadas (layers) de uma rede multilayer são divididas nos seguintes grupos:

∙ Input Layer – Contém os dados de entrada da rede; ∙ Hidden Layers – Conjunto de camadas intermediárias;

∙ Output Layer – Camada com uma unidade que gera o valor da saída.

Para a contagem do número de camadas em uma rede, não é considerada a input

layer. A Figura 4 mostra uma representação de uma rede com três camadas, sendo duas

pertencentes ao conjunto das hidden layers, com 4 e 3 unidades em cada, e uma última de uma unidade pertencente à output layer. Para referências à camadas usamos [𝑛], onde

𝑛 é o número da camada.

Figura 4 – Multilayer Perceptron

𝑥1

𝑥2

𝑥3

^

𝑦

Fonte: Elaborada pelo autor.

2.3.3

Funções de Ativação

Seja 𝑧[𝑛] = 𝑊[𝑛]· 𝑎[𝑛−1]+ 𝑏[𝑛] um vetor com os valores de saída dos neurônios de

(31)

2.3. Fundamentos Teóricos 29

𝑧 é chamada de função de ativação ou de transferência. Portanto, uma ativação 𝑎 em uma

camada 𝑛 é dada por 𝑎[𝑛] = 𝑓 (𝑧[𝑛]). No caso onde são calculados os valores na primeira

camada, temos que 𝑎[0] é igual ao conjunto de entrada 𝑋.

O Perceptron original utilizava uma função degrau (Step Function) — i.e. os únicos dois valores possíveis são 0 e 1, como pode ser visto na equação 2.1 e na Figura 5. Por ser uma função com derivada sempre 0 para 𝑥 ̸= 0, pequenas mudanças em weights e

biases podem não gerar nenhuma mudança na saída, ou mudá-la completamente, não

permitindo um aprendizado mais controlado (NIELSEN, 2015). Figura 5 – Função Degrau

−4 −2 2 4

1

𝑥 𝑦

Fonte: Elaborada pelo autor.

Abaixo temos algumas das funções mais utilizadas atualmente.

∙ Função Sigmóide ou Logística: Seu formato é uma versão suave da função degrau, aceitando quaisquer valores entre 0 e 1 (NIELSEN, 2015).

𝜎(𝑧) = 1 1 + 𝑒−𝑧 (2.3) Figura 6 – Sigmóide −4 −2 2 4 0.5 1 𝑦 = 𝜎 𝑥 𝑥 𝑦

Fonte: Elaborada pelo autor.

∙ Função Tangente Hiperbólica: Muito similar à função sigmóide, pode ser definida como 𝑡𝑎𝑛ℎ(𝑧) = 2𝜎(2𝑧) − 1. Geralmente oferece um melhor desempenho durante

(32)

30 Capítulo 2. Revisão Bibliográfica

o treinamento da rede que a função sigmóide por ser mais próxima da identidade (GOODFELLOW; BENGIO; COURVILLE, 2016).

𝑡𝑎𝑛ℎ(𝑧) = 𝑒

𝑧− 𝑒−𝑧

𝑒𝑧+ 𝑒−𝑧 (2.4)

Figura 7 – Tangente Hiperbólica

𝑦 = tanh 𝑥 −1 −2 −1 1 2 1 𝑥 𝑦

Fonte: Elaborada pelo autor.

∙ Rectified Linear Unit - ReLU: Função muito utilizada por ser formada com duas partes lineares, o que preserva propriedades de modelos lineares que são de fá-cil otimização com métodos baseados em gradiente (GOODFELLOW; BENGIO; COURVILLE, 2016).

𝑅𝑒𝐿𝑈 (𝑧) = 𝑚𝑎𝑥(0, 𝑧) (2.5)

Figura 8 – Rectified Linear Unit

−4 −2 2 4 1 2 3 4 𝑦 = 𝑅𝑒𝐿𝑈 𝑥 𝑥 𝑦

Fonte: Elaborada pelo autor.

2.3.4

Backpropagation

Backpropagation é um procedimento criado para diminuir a diferença entre a saída

da rede e o valor real desejado. A ideia é calcular a função de perda (ou custo) e então retro-propagar4 derivações parciais na rede para atualizar valores dos parâmetros weight

(33)

2.4. Deep Learning 31 e bias de unidades presentes nas hidden layers (RUMELHART; HINTON; WILLIAMS, 1986).

Como a saída da função de ativação de uma unidade em uma camada 𝑙 é utilizada por todas as unidades da camada 𝑙 + 1, temos que uma variação Δ𝑎[𝑙]

𝑛 no n-ésimo neurônio da camada 𝑙 será propagada no cálculo de todas as unidades das próximas camadas, finalmente resultando em um valor diferente na saída final da rede.

É com o uso desse algoritmo que uma rede neural consegue alterar seus parâmetros para que esses valores aplicados no processo de aprendizagem consigam gerar uma saída mais próxima da desejada (fornecida para o treinamento), alcançando melhores resultados finais. Assim, o desenvolvedor da rede não precisa se preocupar com o cálculo de difíceis parâmetros, como o kernel, que é apresentado nas seções seguintes.

2.4

Deep Learning

Quando começamos a adicionar hidden layers em um modelo, ele é classificado como uma Deep Neural Network (DNN), onde o uso do termo deep se dá ao fato de que quando acrescentamos uma nova camada à rede, dizemos que ela fica mais profunda. Existem muitas nomenclaturas para definir modelos que possuem múltiplas camadas, mas a mais utilizada atualmente é Deep Learning. Na literatura, não existe um acordo sobre quantas camadas uma DNN precisa ter, as definições geralmente se preocupam em explicitar abstração e complexidade, mas no estado da arte, é comum encontrar redes com dezenas de camadas.

Deep Learning permite modelos computacionais compostos por múltiplas

cama-das de processamento aprenderem representações de informações em múltiplos níveis de abstração. Podemos dizer que as camadas iniciais de uma rede aprendem funções menos complexas, enquanto as camadas posteriores, com o uso das transformações da informa-ção obtidas das camadas iniciais, conseguem aprender funções mais complexas (LECUN; BENGIO; HINTON, 2015).

Tomando uma imagem de um rosto humano como exemplo, as primeiras cama-das podem detectar borcama-das, que são padrões simples. As camacama-das intermediárias podem agrupar as informações dessas bordas para formar partes de um rosto (e.g. olhos, lábios). As últimas camadas então, se encarregam de agrupar essas informações de partes para reconhecer uma face completa (NG, 2017).

2.4.1

Diferentes Arquiteturas

Como dito anteriormente, Deep Learning abrange diferentes arquiteturas que são apropriadas para resolução de problemas distintos. Esta seção apresenta brevemente outro

(34)

32 Capítulo 2. Revisão Bibliográfica

tipo de arquitetura que, assim como a convolucional, teve um grande nível de desenvolvi-mento e é amplamente usada, as Recurrent Neural Networks (RNNs).

RNNs são redes que atuam muito bem quando temos que processar dados se-quenciais (e.g. textos, falas) como entrada. RNNs tratam o conjunto de entrada como uma sequência de informações no tempo 𝑡, onde uma entrada 𝑋[𝑡]pode influenciar o

pro-cessamento de uma entrada 𝑋[𝑡+𝑛], com isso, em uma representação em grafo da rede,

poderíamos inserir um ciclo em uma camada. Uma propriedade dessas redes é o comparti-lhamento de parâmetros, o que permite aplicar o mesmo modelo em entradas de tamanhos variados, ou produzir uma saída com tamanho diferente da entrada (GOODFELLOW; BENGIO; COURVILLE, 2016).

Com isso, essas redes são utilizadas para o processamento de textos, quando que-remos, por exemplo, gerar uma tradução. Para isso, duas redes podem ser utilizadas, uma sobre o texto original, chamada de encoder e outra sobre a saída da primeira, chamada de

decoder, que produzirá o texto traduzido em outra linguagem. Um exemplo dessa

aplica-ção pode ser encontrado no sistema Google Neural Machine Translation, onde duas redes com 8 camadas cada foram utilizadas (WU et al., 2016).

2.4.2

Visão Computacional

O campo de visão computacional visa dar habilidades visuais aos computadores, podendo abstrair informações de uma imagem ou uma sequência de imagens. Com as arquiteturas de Deep Learning, vários avanços foram feitos, principalmente quando se quer reconhecer ou detectar objetos e padrões.

O YOLO 5(You Only Look Once) é um sistema de detecção e objetos construído

com 53 camadas convolucionais e capaz de processar imagens em 30 frames por segundo com uma média de precisão de 57.9% (REDMON; FARHADI, 2018).

Outro exemplo recente do uso de visão computacional é novamente o Google TranslateTM, onde um ambiente une o uso de redes convolucionais, que extraem de uma

imagem a informação das letras detectadas e as dá como entrada para uma RNN, efeti-vamente traduzindo o texto de uma imagem6.

2.5

Redes Neurais Convolucionais

As redes neurais convolucionais, ou CNNs (do inglês Convolutional Neural Networks), representam uma das mais importantes arquiteturas presentes nas redes Deep Learning. De influência dos resultados de estudos neurocientíficos do cérebro e sistema visual no sé-5 Disponível em: <https://pjreddie.com/darknet/yolo/>

(35)

2.5. Redes Neurais Convolucionais 33 culo XX, surgiram alguns dos princípios básicos utilizados nessas redes, como a resposta de neurônios a intensidades de luz ou padrões bem definidos.

Os conceitos que caracterizam uma CNN são explicados nas subseções a seguir, começando pela definição matemática de convolução, a operação que dá o nome a essas redes, e se estendendo em outros processos que auxiliam e corrigem problemas de uma convolução pura, dando mais ferramentas para o aumento da qualidade dos resultados obtidos em um treinamento.

2.5.1

Convoluções

A convolução é uma operação matemática que define uma regra de produção de uma função a partir de outras duas funções.

Uma convolução é definida como uma transformada integral: (𝑓 * 𝑔)(𝑥) =

∫︁ ∞

−∞

𝑓 (𝑥 − 𝑢)𝑔(𝑢)𝑑𝑢 (2.6)

Aqui, o símbolo * é o operador de convolução, não uma multiplicação usual. As funções

𝑓 e 𝑔 operam sobre o mesmo domínio de entradas. Uma função gerada pela convolução

depende das outras duas em todo o intervalo −∞ < 𝑥 < ∞ para calcular seu valor em um ponto 𝑥 qualquer.

Na arte de processamento de sinais (e.g. som e imagem), uma operação denominada

cross-correlation pode ser usada. Tal operação é similar à convolução, como veremos a

seguir. Para funções contínuas, é definida como: (𝑓 * 𝑔)(𝑥) =

∫︁ ∞

−∞𝑓 (𝑢)𝑔(𝑢 + 𝑥)𝑑𝑢 (2.7)

Para funções discretas, é definida por: (𝑓 * 𝑔)(𝑥) =

∑︁ 𝑢=−∞

𝑓 (𝑢)𝑔(𝑢 + 𝑥) (2.8)

Como queremos trabalhar com imagens, 𝑓 e 𝑔 são matrizes que representam, res-pectivamente, a input (imagem de entrada para a função) e o kernel (também comumente chamado de "filtro" ou "máscara"), utilizado para detectar padrões na imagem.

A simples diferença entre o uso de convolução e cross-correlation, é que na pri-meira o kernel é rotacionado 180∘ para realizar as operações, enquanto ele se mantém em operações de cross-correlation. A Figura 9 mostra a rotação de uma matriz.

Quando tratamos de redes neurais, o resultado não mudará se o kernel estiver ou não rotacionado, pois o algoritmo utilizado aprenderá de maneira igual. Como as duas formas podem gerar o mesmo resultado, o cross-correlation é geralmente o escolhido para ser implementado por simplificar o código escrito para uma operação. Existe também uma

(36)

34 Capítulo 2. Revisão Bibliográfica

Figura 9 – Rotação de uma matriz em 180∘. ⎡ ⎢ ⎣ 2 5 1 9 6 4 8 7 0 ⎤ ⎥ ⎦→ ⎡ ⎢ ⎣ 0 7 8 4 6 9 1 5 2 ⎤ ⎥ ⎦

Fonte: Elaborada pelo autor.

convenção da literatura, feita para facilitar o uso de termos, onde a operação feita por uma camada convolucional é chamada de convolução, mesmo que ela, efetivamente, seja de cross-correlation (NG, 2017).

O resultado de uma operação entre input e um kernel é denominado feature map e, para diferenciar do símbolo * utilizado anteriormente na definição de convolução, o símbolo ⊗ será usado. Assim, a fórmula que representa uma operação de convolução em duas dimensões pode ser dada por:

𝑓 𝑒𝑎𝑡𝑢𝑟𝑒𝑀 𝑎𝑝(𝑥, 𝑦) = (𝐼𝑛⊗𝐾𝑒𝑟)(𝑥, 𝑦) = 𝑙𝑖𝑛−1 ∑︁ 𝛼=0 ⎛ ⎝ 𝑐𝑜𝑙−1 ∑︁ 𝛽=0 𝐼𝑛(𝑥 + 𝛼, 𝑦 + 𝛽) · 𝐾𝑒𝑟(𝛼, 𝛽) ⎞ ⎠ (2.9) onde 𝐼𝑛 é a input, 𝐾𝑒𝑟 o kernel, 𝑙𝑖𝑛 e 𝑐𝑜𝑙 são, respectivamente, número de colunas e linhas do kernel, que devido ao fato do kernel ser uma matriz quadrada, terão um mesmo valor 𝑡, representando o tamanho da matriz (GOODFELLOW; BENGIO; COURVILLE, 2016).

A operação pode ser vista simplesmente como um produto interno usual entre o

kernel e uma região com as mesmas dimensões do kernel na input. É feita uma varredura

na matriz input para gerar cada elemento do feature map. Por exemplo, dado um kernel de dimensões 3 × 3, o elemento na posição (1, 2) de feature map é dado por:

𝑓 𝑒𝑎𝑡𝑢𝑟𝑒𝑀 𝑎𝑝(1, 2) = 2 ∑︁ 𝛼=0 ⎛ ⎝ 2 ∑︁ 𝛽=0 𝐼𝑛(1 + 𝛼, 2 + 𝛽) · 𝐾𝑒𝑟(𝛼, 𝛽) ⎞ ⎠ (2.10)

Um exemplo de formação completa pode ser visto na Figura 10, onde uma input dada por uma matriz 𝐼(3 × 4) e um kernel 𝐾(2 × 2) geram um feature map de dimensão 2 × 3.

Dado que uma input tenha dimensão 𝑛 × 𝑚 e um kernel de dimensão 𝑓 × 𝑓 seja usado, a dimensão de um feature map pode ser calculada da seguinte maneira:

(𝑛 − 𝑓 + 1) × (𝑚 − 𝑓 + 1) (2.11)

Veremos a seguir que essa fórmula ainda está muito ingênua e não se aplica re-almente na prática, portanto será modificada para incluir outras variáveis importantes,

(37)

2.5. Redes Neurais Convolucionais 35 Figura 10 – Exemplo de formação de um feature map.

Fonte: Goodfellow, Bengio e Courville (2016)

É relevante notar que as fórmulas apresentadas aqui pertencem à um contexto onde estamos trabalhando com operações de convolução bidimensionais, e precisam ser alteradas para adição ou remoção de uma ou mais dimensões.

2.5.2

Detecção de Padrões

A detecção de padrões em uma imagem é feita com diferentes valorações para os elementos de um filtro (iremos utilizar essa nomenclatura para referências ao kernel a partir de agora).

Para achar uma borda, por exemplo, um filtro Sobel (1968) pode ser utilizado. Esse tipo de filtro trabalha com uma matriz de intensidades de uma imagem, onde regiões com uma mudança de intensidade podem ser destacadas como uma borda encontrada. Existem na verdade, dois filtros diferentes, pois eles precisam detectar variações que estão em direções diferentes, um para mudanças horizontais, ou seja, paralelas ao eixo 𝑦, e outra para verticais, paralelas ao eixo 𝑥.

As seguintes matrizes apresentam as duas variações do filtro Sobel para detecção de bordas verticais(𝑉 ) e horizontais(𝐻).

(38)

36 Capítulo 2. Revisão Bibliográfica 𝑉 = ⎡ ⎢ ⎢ ⎢ ⎣ −1 0 1 −2 0 2 −1 0 1 ⎤ ⎥ ⎥ ⎥ ⎦ ; 𝐻 = ⎡ ⎢ ⎢ ⎢ ⎣ 1 2 1 0 0 0 −1 −2 −1 ⎤ ⎥ ⎥ ⎥ ⎦

Esses filtros geram valores positivos em uma variação de intensidades menores para maiores e valores negativos caso contrário. Se os valores forem altos, isso indica uma mudança brusca de intensidade, enquanto valores pequenos indicam mudanças suaves.

Figura 11 – Os dois filtros Sobel como matrizes em escala de cinza.

(a) Filtro vertical. (b) Filtro horizontal.

Fonte: Elaborada pelo autor.

A Figura 12 apresenta um exemplo de aplicação dos filtros Sobel em uma imagem simples em escala de cinza, apresentada em (a). Em (b) podemos ver a detecção de bordas verticais na imagem com o uso do filtro vertical. Observamos o mesmo em (c), as bordas horizontais com a aplicação do devido filtro. A imagem (d) foi obtida através da fórmula 𝐺 =√︁𝐺2

𝑣 + 𝐺ℎ2, onde 𝐺𝑣 e 𝐺ℎ são, respectivamente, o resultado da operação de convolução entre a imagem (a) com os filtros vertical e horizontal.

(39)

2.5. Redes Neurais Convolucionais 37 Figura 12 – Exemplo de aplicação dos filtros Sobel.

(a) Imagem original. (b) Filtro vertical aplicado.

(c) Filtro horizontal aplicado. (d) Convolução com ambos os filtros.

Fonte: Elaborada pelo autor.

2.5.3

Striding

Na operação de convolução vista até agora, percorremos a matriz da imagem de entrada movendo uma região de mesma dimensão do filtro com passos de tamanho 1, ou seja, a região pula apenas um pixel nas colunas e linhas da entrada para operar com o filtro e produzir o feature map. Tal operação pode ser vista na Figura 10.

Podemos alterar o tamanho desse passo com a utilização de striding.

Com a adição do striding, o cálculo de dimensão de um feature map dado anteri-ormente em 2.11 pode ser atualizado para:

⌊︃ 𝑛 − 𝑓 𝑠 + 1 ⌋︃ × ⌊︃ 𝑚 − 𝑓 𝑠 + 1 ⌋︃ (2.12) onde 𝑠 é o valor de striding.

Tomemos imagem e filtro de dimensão 7 × 7 e 3 × 3, respectivamente. A Figura 13 mostra a operação de convolução com 𝑠 = 1, gerando uma saída de dimensão 5 × 5, onde a formação de três elementos foi destacada para mostrar o passo 𝑠 = 1 de striding.

(40)

38 Capítulo 2. Revisão Bibliográfica

Figura 13 – Convolução com stride 1

Fonte: Elaborada pelo autor.

A Figura 14 nos dá a operação sobre mesma imagem e filtro, mas com 𝑠 = 2, gerando uma saída de dimensão 3 × 3. Novamente, a formação de três elementos foi destacada.

Figura 14 – Convolução com stride 2

Fonte: Elaborada pelo autor.

2.5.4

Padding

Quando produzimos um feature map, temos como saída uma matriz um pouco menor que a imagem original de entrada. Utilizando a primeira fórmula fornecida, o resultado será uma matriz de dimensão 𝑛 − 𝑓 + 1, mas como vimos acima, podemos utilizar um valor de striding maior que 1, o que nos dá um feature map com dimensão ainda menor.

Isso acaba se tornando um problema, pois muitas vezes queremos implementar diversas camadas convolucionais em nossa rede, e não queremos que a imagem fique menor a cada produto de uma convolução, pois isso acarretaria em uma perda de informações que podem ser obtidas da imagem de entrada.

Um segundo problema que pode ser encontrado na operação de convolução, é o mal uso de informações presentes nas bordas de uma imagem, pois os pixels que estão nelas são utilizados por poucas operações de convolução, devido à maneira de varredura da matriz.

(41)

2.5. Redes Neurais Convolucionais 39 Note que os quatro pixels que ficam nas extremidades da imagem aparecem apenas em uma operação. Isso pode ser visto nas Figuras 13 e 14, onde o pixel na primeira posição da imagem aparece na formação apenas do primeiro elemento do resultado. O mesmo acontece com as outras três extremidades da borda. A Figura 14 também mostra que o aumento do stride faz outros pixels não serem utilizados em mais de uma operação de convolução.

Para a resolução dos problemas acima, uma nova borda pode ser adicionada à imagem de entrada. O nome dado a essa técnica é zero padding, ou simplesmente padding, pois os elementos da borda inserida são zerados. Com essa borda adicional, poderemos manter a dimensão do feature map igual à da imagem original, ou pelo menos desacelerar o processo de redução da imagem. Além disso, os pixels que anteriormente pertenciam ao conjunto da borda da imagem, não mais pertencem, e as informações contidas neles podem ser melhor exploradas, pois estarão presentes em mais operações de convolução.

Dada uma quantia de padding 𝑝 e uma imagem de entrada com dimensão 𝑛 × 𝑚, a entrada com borda adicional a ser utilizada terá dimensão 𝑛 + 2𝑝 × 𝑚 + 2𝑝. O valor de

𝑝 é multiplicado por 2 para contar ambos os opostos horizontais e verticais da imagem.

Uma convolução pode ser classificada quanto ao seu valor de padding como: 1. Valid: Quando nenhum padding é aplicado.

2. Same: Quando o padding aplicado resultará em um feature map que mantém a dimensão da imagem de entrada.

Agora podemos atualizar o cálculo da dimensão do feature map de 2.12 adicionando o valor de padding. Chegamos em:

⌊︃ 𝑛 + 2𝑝 − 𝑓 𝑠 + 1 ⌋︃ × ⌊︃ 𝑚 + 2𝑝 − 𝑓 𝑠 + 1 ⌋︃ (2.13)

A Figura 15 mostra a adição de uma borda com valor 𝑝 = 1 em uma imagem original de dimensão qualquer. Note como o valor 𝑝 representa o número de linhas ou colunas que foram adicionadas, de maneira igual em cada lado da matriz, contendo todos os seus elementos zerados.

(42)

40 Capítulo 2. Revisão Bibliográfica

Figura 15 – Matriz imagem com Padding 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Matriz Original da Imagem 𝑝 𝑝 2 𝑝 𝑝 2 𝑝 𝑝

Fonte: Elaborada pelo autor.

2.5.5

Pooling

Uma última modificação que pode ser feita na saída de uma camada convolucional é a operação de pooling. Sua função é gerar uma nova matriz de saída construída com uma seleção de valores de regiões retangulares da saída original, em uma operação de varredura similar à já vista com a convolução.

Existem variações na operação de pooling, mas a mais utilizada na prática, seleci-ona da matriz original o valor máximo presente em uma vizinhança de dimensão 𝑓 × 𝑓 , onde 𝑓 é o tamanho da nova matriz gerada para a saída, e damos o nome de max pooling. Como geralmente queremos apenas detectar a existência de algumas características em uma imagem e não saber sua localização exata, com o pooling conseguimos um certo nível de invariância à translação, pois não precisamos saber onde em uma certa região o padrão se encontra, mas apenas que ele está lá. Note que ainda possuímos a posição em relação aos quadrantes utilizados na operação, portanto não há uma perda total de informações de posicionamento.

A dimensão da nova saída pode ser calculada com a mesma fórmula apresentada em 2.12, pois zero padding não é aplicado em uma camada de pooling. Além disso, os hyperparâmetros utilizados aqui são fixos, escolhidos pelo desenvolvedor da aplicação, e não precisam ser calculados pela rede com o uso de backpropagation, ou seja, não há nada que precise ser aprendido. Os valores mais utilizados são 𝑓, 𝑠 = 2 e 𝑓 = 3, 𝑠 = 2 (NG, 2017).

A Figura 16 mostra a aplicação de um pooling utilizando os parâmetros 𝑓 = 2 e

(43)

2.5. Redes Neurais Convolucionais 41 Figura 16 – Operação de Pooling

Fonte: Elaborada pelo autor.

2.5.6

Organização de uma CNN

Existem diferentes terminologias para quais passos fazem parte de uma denomi-nada camada convolucional, a Figura 17 representa um esquema de uma possível estrutu-ração da camada de uma rede neural convolucional em uma terminologia complexa daquilo que compõe uma camada convolucional, agrupando diferentes etapas em um conjunto.

Figura 17 – Terminologia de camada convolucional.

(44)

42 Capítulo 2. Revisão Bibliográfica

Da figura, podemos descrever uma camada convolucional como o conjunto de três etapas que aplicam transformações nas informações que percorrem a rede. A primeira,

convolution stage, é onde vemos o percorrimento da entrada e a aplicação da operação

de convolução gerando um feature map. É também nessa etapa que temos a aplicação de padding na imagem de entrada e o uso do valor de stride, alterando ou mantendo o tamanho da imagem de saída da etapa em relação ao da tamanho da entrada.

Na segunda etapa, Detector Stage: Nonlinearity, é onde temos a presença das fun-ções de ativação, que introduzem a não-linearidade na rede utilizando funfun-ções não lineares, como a ReLU apresentada anteriormente, assim a saída não é apenas uma transformação linear da entrada.

Para findar uma camada convolucional, o estágio de pooling existe para selecionar apenas as informações importantes enquanto reduz a dimensão do feature map, dimi-nuindo o número de parâmetros necessários nas próximas camadas, reduzindo o custo computacional e mantendo uma certa invariância a pequenas translações.

Assim, podemos representar uma camada convolucional como um bloco composto de três estágios, que representam os processos de:

∙ Convolução

∙ Função de Ativação não Linear ∙ Pooling

Esse bloco pode se repetir diversas vezes na totalidade de uma rede, realizando as operações sobre a saída da camada anterior, exceto na primeira, onde é utilizada a imagem de entrada. Após todas as camadas convolucionais, uma camada totalmente conectada (fully connected layer ) é adicionada, ou seja, todos os neurônios se conectam na saída da camada anterior. Ela combina as informações obtidas nas camadas anteriores para identificar padrões maiores nas imagens. Assim conseguimos então ter uma última seção para regressão linear, ou então uma função softmax para a aplicação de uma classificação.

2.6

Redes pré-treinadas

As vezes, o custo computacional e de tempo para o aprendizado de uma rede pode ser além do desejado (podendo levar dias para um treinamento) e o uso de uma técnica conhecida como transfer learning. Dizemos que é uma transferência de aprendizado, pois uma rede que já foi pré-treinada para um certo problema pode ser reutilizada para a solução de algum problema similar.

Em problemas onde os dados a serem tratados são imagens, redes pré-treinadas com a base de imagens do ImageNet podem ser utilizadas, como a AlexNet (KRIZHEVSKY;

(45)

2.7. Métricas de avaliação 43 SUTSKEVER; HINTON, 2012), GoogLeNet(Inception) (SZEGEDY et al., 2014) e VGG (SIMONYAN; ZISSERMAN, 2014).

2.7

Métricas de avaliação

Existem diversas métricas para avaliar a qualidade do treinamento de uma rede neural. Essas técnicas podem variar de acordo com a arquitetura e tipo de problema apresentado à rede. Por exemplo, em problemas de classificação, pode-se usar acurácia, precisão, etc. Para problemas de regressão, métricas como o coeficiente de determinação (or 𝑅2) são utilizadas 7 8.

O coeficiente de determinação pode ser determinado pela fórmula 2.14 9;

𝑅2 = 1 − 𝑆𝑄𝐸

𝑆𝑇 𝑄 (2.14)

Onde 𝑆𝑄𝐸 é a soma dos quadrados do erro, ou soma dos quadrados dos resíduos, e apresenta o desvio entre os valores reais e os preditos pelo modelo. 𝑆𝑄𝑇 é a soma total dos quadrados e apresenta a variância presente nos dados. As fórmulas de 𝑆𝑄𝐸 e 𝑆𝑄𝑇 estão representadas nas equações 2.15 e 2.16, respectivamente.

𝑆𝑄𝐸 =

𝑛 ∑︁ 𝑖=1

(𝑦𝑖− ^𝑦𝑖)2 (2.15)

onde 𝑦𝑖 é o valor da variável a ser prevista, ^𝑦𝑖 é o valor previsto para 𝑦𝑖 e 𝑛 é o número de observações; 𝑆𝑇 𝑄 = 𝑛 ∑︁ 𝑖=1 (𝑦𝑖− ¯𝑦)2 (2.16)

onde 𝑦𝑖 é a variável dependente, ¯𝑦 é a média dos valores 𝑦 e 𝑛 é o número de observações.

Quanto mais próximo de 1 o valor obtido por 𝑅2 for, melhor o modelo conseguiu

descrever as variáveis a serem previstas.

7 https://towardsdatascience.com/20-popular-machine-learning-metrics-part-1-classification-regression-evaluation-metrics-1ca3e282a2ce

8 <https://medium.com/usf-msds/choosing-the-right-metric-for-machine-learning-models-part-1-a99d7d7414e4> 9 <https://www.mathworks.com/help/stats/coefficient-of-determination-r-squared.html>

(46)
(47)

45

3 Apresentação dos Dados e Modelo

Pro-posto

Esse capítulo introduz o conjunto de dados e suas características, apresentando as medições de intensidade em elevação e azimutes diferentes que resultarão em matrizes individuais de orientação para cada padrão 2DLS. Nas seções seguintes é descrito como os dados foram normalizados e transformados em matrizes. A seção 3.4 e suas subseções tratam da importante característica de invariância à rotação necessária para a rede. Por fim, um diagrama de fluxo dos dados no sistema é revisado com explicações de cada passo.

3.1

O Dataset

O conjunto de dados cedido pela Universidade de Hertfordshire contém dados de partículas prismáticas hexagonais, geradas por um simulador, armazenados em arquivos no formato HDF5 (Hierarchical Data Format 5 ) com informações de 162 partículas at-mosféricas, cada uma com 133 orientações. Essas orientações são os três ângulos de Euler denominados 𝛼, 𝛽 e 𝛾, onde representam, respectivamente, inclinações de um corpo que rotaciona em relação aos eixos 𝑧, 𝑥 e 𝑦.

Um padrão 2DLS é associado a cada orientação de uma partícula e a intensidade desses padrões de difração, declarada como o atributo intensity, é indexada por outros dois atributos: elevation e azimuth. Elevação (ou altitude) e azimute são ângulos pertencentes ao sistema horizontal de coordenadas, que utiliza o horizonte do observador como um plano que divide uma esfera em dois hemisférios.

Elevation é dado como o ângulo formado pelo feixe de luz que incide na partícula

e foram considerados relevantes apenas aqueles com valores entre 6∘ e 25∘, enquanto em azimuth, todos os ângulos foram utilizados — i.e. de 0∘ a 360∘ (SALAWU, 2015). Assim, temos um total de 7.220 valores de intensidade obtidos pela multiplicação das vinte medições de elevação com as 361 de azimute, ou seja, de ((25 − 6) + 1) × 361.

Foi fornecido pelo professor Mauro Roisenberg, o arquivo carregaImagens.m, um código MATLAB○R que lê os arquivos .h5, retira as informações necessárias para o cálculo de intensidades e do tamanho projetado de cada partícula, armazenado no atributo size. O código finda sua execução gerando um arquivo no formato .csv (Comma-Separated

Values), uma matriz de 𝑛 × 133 linhas e 7.221 colunas, onde 𝑛 é o número de partículas

analisadas e como colunas são utilizados os valores de intensidade com adição do tamanho projetado no final. Portanto, para o conjunto completo das 162 partículas, a matriz tem

(48)

46 Capítulo 3. Apresentação dos Dados e Modelo Proposto

21.546 linhas e 7.221 colunas.

A Figura 18 apresenta exemplos de padrões de difração de luz de três partículas com tamanhos diferentes utilizando uma representação em coordenadas polares.

Figura 18 – Exemplos de padrões de difração.

Alguns exemplos de padrões de difração de partículas com tamanhos diferentes. Fonte: Priori (2017).

3.2

Normalização dos dados

Para a normalização dos dados, foi utilizado um conjunto composto por dois pro-cedimentos aplicados em sequência. A primeira operação processada sobre o conjunto de dados é a do logaritmo natural (ln(𝑥) ou log𝑒(𝑥)), onde sua função é reduzir o intervalo de características para uma escala mais razoável, melhorando o desempenho de uma rede neural (PRIORI, 2017).

Uma uniformização dos dados após o logaritmo natural é feita com a operação de

z-score, que desloca a média da amostra para zero e a deixa com um desvio padrão igual

à um. Dado um vetor 𝑧, obtemos o vetor normalizado com a seguinte fórmula:

𝑥′ = 𝑥 − ¯𝑥

𝑠 (3.1)

substituindo cada valor 𝑥 do vetor 𝑧 com um 𝑥′, onde ¯𝑥 e 𝑠 são, respectivamente,

a média e o desvio padrão da amostra. De acordo com Salawu (2015), essas duas técnicas aplicadas em sequência geraram os melhores resultados em seus experimentos.

As operações de normalização descritas acima foram aplicadas em cima da matriz composta por todas as orientações de cada partícula utilizada.

(49)

3.3. Gerando imagens de partículas e conjuntos de treino e teste 47

3.3

Gerando imagens de partículas e conjuntos de treino e teste

Após a normalização dos dados, cada linha da matriz, representando uma orien-tação diferente de uma partícula, é separada em uma matriz própria com duas dimensões e tamanho 20 × 361 — i.e. elevation × azimuth. Essa operação é dada por uma função de reshape, que seleciona, em agrupamentos de 20, os elementos de uma linha da matriz original para gerar cada coluna da nova matriz. Como 7220/20 = 361, temos nossas 361 colunas de azimuth. Um exemplo em imagem de uma partícula nesse estado pode ser visto na Figura 19 da próxima seção, sobre Invariância à Rotação.

O conjunto de todas as imagens é então dividido em dois subconjuntos. O primeiro contém 70% dos padrões e é utilizado durante a etapa de treino da rede neural, enquanto o segundo engloba os 30% restantes dos dados e é utilizado para testes. As imagens presentes no conjunto de testes sofrerão uma operação de rotação para aproximar mais o conjunto com dados obtidos no mundo real, pois nem sempre a coleta de difração se dará na mesma posição espacial, e queremos verificar se a rede consegue prever o tamanho de uma partícula nessas condições. Não foram separados dados para uma etapa de validação.

3.4

Invariância à Rotação

Durante o processo de coleta dos padrões 2DLS de uma partícula, ela pode estar rotacionada em qualquer um dos 360 ângulos possíveis em torno do eixo do laser dispa-rado, gerando uma imagem de difração diferente para cada grau de medição. Como uma partícula, mesmo estando rotacionada, deve sempre possuir o mesmo tamanho, quere-mos que o treinamento da rede se dê de tal forma que ela seja invariante à rotações nas imagens.

Para reproduzir o efeito de 𝜆 graus de rotação em uma partícula, foi utilizado uma função de circular shift (deslocamento circular) em cima da imagem — i.e. todas as colunas serão deslocadas 𝜆 posições em um determinado sentido, caso chegue no fi-nal da imagem será deslocada para o lado oposto. Uma função de geração de números pseudo-aleatórios com distribuição normal foi utilizada para criar um vetor 𝑟, de tamanho igual ao número de partículas do conjunto de teste e com valores inteiros entre 1 e 360. Cada elemento pertencente ao vetor 𝑟 representa um grau 𝜆 de rotação a ser aplicado na respectiva partícula de mesma posição no conjunto de teste.

A Figura 19 apresenta três imagens do padrão 2DLS da partícula l3.5_d6.9_flat em sua sétima orientação, que possui um tamanho projetado 27.3350𝜇𝑚. As primeiras duas imagens(a e b) mostram, respectivamente, o padrão de difração da partícula em sua forma original e o mesmo após sofrer uma rotação de 100∘. A ilustração (c) é um gráfico dos valores da primeira elevação e todos os azimutes presentes nas figuras (a) e (b),

(50)

48 Capítulo 3. Apresentação dos Dados e Modelo Proposto

podemos visualmente notar o deslocamento de 100 unidades para a direita. Utilizaremos essa mesma partícula para a continuação dos exemplos sobre invariância à rotação no restante desse capítulo.

Figura 19 – Exemplos de rotação nos padrões de difração.

(a) Padrão original. (b) Padrão rotacionado.

(c) Gráfico da primeira elevação.

Exemplo de rotação de 100∘ no padrão 2DLS de uma partícula. Fonte: Elaborada pelo autor.

3.4.1

Fast Fourier Transform

Para conseguir um sistema que seja invariante à rotação, foi utilizado o método de Fast Fourier Transform(FFT) 1, assim como no trabalho de Priori (2017). Aplicando

uma operação de FFT, saímos do domínio espacial na imagem e trabalhamos em cima do domínio de frequências.

A Figura 20 apresenta as imagens obtidas após a aplicação do método de FFT a partir dos dados anteriores da partícula (original e rotacionada). Para gerar as figuras (a) e (b), foram extraídos os valores absolutos para obter a magnitude do sinal FFT 2

e utilizada a função de FFT shift para deslocar os componentes de frequência zero para o centro da matriz, por questões de visibilidade. A imagem (c) expõe a diferença entre 1 Em português, Transformada Rápida de Fourier

2 <https://www.mathworks.com/help/signal/examples/practical-introduction-to-frequency-domain-analysis. html>

(51)

3.4. Invariância à Rotação 49 os valores de (a) e (b), podemos notar na barra de cores que os valores estão com uma precisão de ×10−14. De fato, se procurarmos pelos valores extremos de (c), encontramos:

∙ Mínimo: −5.6843 × 10−14

∙ Máximo: 5.6843 × 10−14

Podemos então classificar as duas imagens como sendo iguais, pois atingem uma precisão adequada para o modelo proposto.

Figura 20 – FFT.

(a) FFT do padrão original. (b) FFT do padrão rotacionado.

(c) Diferença entre (a) e (b).

Exemplo de aplicação da função FFT em uma partícula. Fonte: Elaborada pelo autor.

3.4.2

Inverse Fast Fourier Transform

Aplicamos a função de Inverse Fast Fourier Transform(IFFT) 3 para sair do

do-mínio de frequências e voltar ao dodo-mínio espacial. Para isso, não pode-se simplesmente aplicar diretamente a função IFFT no resultado obtido via FFT, pois as imagens retor-nariam para os padrões 2DLS originais, perdendo a invariância à rotação fornecida pelo 3 Em português, Transformada Inversa Rápida de Fourier

(52)

50 Capítulo 3. Apresentação dos Dados e Modelo Proposto

uso da função FFT. Aplicando o IFFT nos valores absolutos, ou de magnitude, gera-se imagens que são mais próximas do que seria um padrão normal de difração, porém ainda mantendo a invariância à rotação. Por esses resultados com as imagens, surgiu a ideia de realizar um experimento com IFFT, além do com apenas FFT, para observar se o uso de IFFT trará algum impacto positivo nos resultados.

A Figura 21 apresenta as imagens obtidas após a aplicação do método de IFFT a partir dos valores absolutos das matrizes geradas pelo FFT apresentadas na subseção anterior e na Figura 20, porém sem o uso da função de FFT shift. Em (a) e (b) podemos ver as imagens em escala de cinza resultantes da aplicação de IFFT como descrito acima. A imagem (c) expõe a diferença entre os valores de (a) e (b), podemos notar na barra de cores que os valores estão com uma precisão de ×10−15. De fato, se procurarmos pelos valores extremos de (c), encontramos:

∙ Mínimo: −1.7764 × 10−15

∙ Máximo: 1.7764 × 10−15

Podemos então classificar as duas imagens como sendo iguais, pois atingem uma precisão desejada.

3.4.3

Espelhamento de FFT e IFFT

O resultado das operações de FFT e IFFT é simétrico em relação ao eixo 𝑦. Isso vem da natureza da Transformada Discreta de Fourier e suas propriedades, pois estamos aplicando a operação em cima de vetores com valores reais (i.e. com parte imaginária zerada), gerando uma função par (simétrica em relação ao eixo 𝑦) como sinal de magnitude e uma ímpar (simétrica em relação à origem) para o sinal de fase.

Realmente, nota-se que esse espelhamento está presente nas imagens (a) e (b) de ambas as Figuras 20 e 21. Portanto, foram utilizadas para treinamento e teste da CNN desenvolvida apenas metade de cada imagem, com isso reduzindo em cerca de 50% o tempo de treino da rede.

(53)

3.5. Fluxograma do sistema desenvolvido 51 Figura 21 – IFFT.

(a) FFT do padrão original. (b) FFT do padrão rotacionado.

(c) Diferença entre (a) e (b).

Exemplo de aplicação da função IFFT em uma partícula. Fonte: Elaborada pelo autor.

3.5

Fluxograma do sistema desenvolvido

A Figura 22 apresenta um diagrama do fluxo geral de execução em 17 passos. É dividido em dois estágios4, o primeiro (passos 1 à 11) com o pré-processamento dos dados e o segundo (passos 12 à 17) com o treinamento e teste da CNN.

Nos passos 1 à 3, têm-se o carregamento do dataset, uma matriz gerada pelo código fornecido mencionado anteriormente. Os dados passam por uma normalização e então uma matriz para cada padrão é gerada. Em 4, uma permutação aleatória é feita para dividir o conjunto de matrizes e seus respectivos valores de tamanho projetado em 70% dados de treino (5) e os restantes 30% para dados de teste (6). Os padrões selecionados para treino são então rotacionados no passo 7.

A aplicação da operação de FFT nos passos 8 e 9 é onde garantimos a invariância à rotação do sistema. Em 10 e 11 aplicamos a IFFT, voltando para o domínio espacial. As matrizes resultantes do IFFT são transformadas em imagens em escala de cinza e 4 Cada estágio se encontra em um arquivo próprio no código desenvolvido.

Referências

Documentos relacionados

Avance para uma nova experiência com este robô limpa fundos que sobe pelas paredes, recomendado para piscinas de até 12 m. Custo-efectividade para assegurar a limpeza completa

Fita 1 Lado A - O entrevistado faz um resumo sobre o histórico da relação entre sua família e a região na qual está localizada a Fazenda Santo Inácio; diz que a Fazenda

libras ou pedagogia com especialização e proficiência em libras 40h 3 Imediato 0821FLET03 FLET Curso de Letras - Língua e Literatura Portuguesa. Estudos literários

Scherer Assessoria Empresarial Ltda, empresa integrante do Grupo Sigha, nomeada como Auxiliar Contábil e Gestor, nos Autos 0024946-3520128160021, por seu representante, César

Políticas públicas são ações governamentais que interferem na vida dos Políticas públicas são ações governamentais que interferem na vida dos cidadãos visando

discriminação. Em alguns casos, são expulsas de habitações arrendadas ou o seu negócio é afectado se as pessoas param de comprar os seus produtos. Estratégias para combater

Adicionalmente, a prote¸c˜ao de uma rede pode ser feita tanto na camada ´optica quanto na camada eletrˆonica. Por´em, como o objetivo deste trabalho ´e a investiga¸c˜ao do TGP,

De acordo com Chizzotti (2001), os questionários são questões elaboradas pelos pesquisadores, distribuídas por itens, através do qual os entrevistados respondem de