VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser...

25
VINICIUS EIJI MARTINS DEEP LEARNING PARA CLASSIFICAÇÃO DE IMAGENS LONDRINA 2018

Transcript of VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser...

Page 1: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

VINICIUS EIJI MARTINS

DEEP LEARNING PARA CLASSIFICAÇÃO DE IMAGENS

LONDRINA2018

Page 2: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

VINICIUS EIJI MARTINS

DEEP LEARNING PARA CLASSIFICAÇÃO DE IMAGENS

Versão Preliminar de Trabalho de Conclusãode Curso apresentado ao curso de Bachare-lado em Ciência da Computação da Univer-sidade Estadual de Londrina para obtençãodo título de Bacharel em Ciência da Compu-tação.

Orientador: Prof(a). Dr(a). Sylvio Bar-bon Junior

LONDRINA2018

Page 3: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

Ficha de identificação da obra elaborada pelo autor, através do Programa de GeraçãoAutomática do Sistema de Bibliotecas da UEL

Sobrenome, Nome.Título do Trabalho : Subtitulo do Trabalho / Nome Sobrenome. - Londrina, 2017.100 f. : il.

Orientador: Nome do Orientador Sobrenome do Orientador.Coorientador: Nome Coorientador Sobrenome Coorientador.Dissertação (Mestrado em Ciência da Computação) - Universidade Estadual de

Londrina, Centro de Ciências Exatas, Programa de Pós-Graduação em Ciência daComputação, 2017.

Inclui bibliografia.

1. Assunto 1 - Tese. 2. Assunto 2 - Tese. 3. Assunto 3 - Tese. 4. Assunto 4 - Tese. I.Sobrenome do Orientador, Nome do Orientador. II. Sobrenome Coorientador, NomeCoorientador. III. Universidade Estadual de Londrina. Centro de Ciências Exatas. Programade Pós-Graduação em Ciência da Computação. IV. Título.

Page 4: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

VINICIUS EIJI MARTINS

DEEP LEARNING PARA CLASSIFICAÇÃO DE IMAGENS

Versão Preliminar de Trabalho de Conclusãode Curso apresentado ao curso de Bachare-lado em Ciência da Computação da Univer-sidade Estadual de Londrina para obtençãodo título de Bacharel em Ciência da Compu-tação.

BANCA EXAMINADORA

Orientador: Prof(a). Dr(a). Sylvio BarbonJunior

Universidade Estadual de Londrina

Prof. Dr. Segundo Membro da BancaUniversidade/Instituição do SegundoMembro da Banca – Sigla instituição

Prof. Dr. Terceiro Membro da BancaUniversidade/Instituição do TerceiroMembro da Banca – Sigla instituição

Prof. Ms. Quarto Membro da BancaUniversidade/Instituição do Quarto

Membro da Banca – Sigla instituição

Londrina, 24 de novembro de 2018.

Page 5: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

Este trabalho é dedicado às crianças adultasque, quando pequenas, sonharam em se

tornar cientistas.

Page 6: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

AGRADECIMENTOS

Os agradecimentos principais são direcionados à Gerald Weber, Miguel Frasson,Leslie H. Watter, Bruno Parente Lima, Flávio de Vasconcellos Corrêa, Otavio Real Sal-vador, Renato Machnievscz1 e todos aqueles que contribuíram para que a produção detrabalhos acadêmicos conforme as normas ABNT com LATEX fosse possível.

Agradecimentos especiais são direcionados ao Centro de Pesquisa em Arquiteturada Informação2 da Universidade de Brasília (CPAI), ao grupo de usuários latex-br3 e aosnovos voluntários do grupo abnTEX2 4 que contribuíram e que ainda contribuirão para aevolução do abnTEX2.

1 Os nomes dos integrantes do primeiro projeto abnTEX foram extraídos de <http://codigolivre.org.br/projects/abntex/>

2 <http://www.cpai.unb.br/>3 <http://groups.google.com/group/latex-br>4 <http://groups.google.com/group/abntex2> e <http://abntex2.googlecode.com/>

Page 7: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

“Não vos amoldeis às estruturas destemundo, mas transformai-vos pela renovação

da mente, a fim de distinguir qual é avontade de Deus: o que é bom, o que Lhe é

agradável, o que é perfeito.(Bíblia Sagrada, Romanos 12, 2))

Page 8: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

MARTINS, V. E.. Deep Learning para classificação de imagens. 2018. 24f. Trabalhode Conclusão de Curso – Versão Preliminar (Bacharelado em Ciência da Computação) –Universidade Estadual de Londrina, Londrina, 2018.

RESUMO

Deep Learning é um tópico em alto crescimento nos últimos tempos graças a sua capa-cidade de solução dos mais diversos problemas computacionais que até então não apre-sentavam uma solução ou eram muito complexas e trabalhosas. Embora sua capacidadeesteja limitado ao poder de processamento das máquinas atuais, o uso de placas de GPUvêm possibilitando uma maior performance e maior viabilidade em diferentes nichos deaplicação. Nesse trabalho exploramos a aplicação de técnicas de Deep Learning em pro-blemas de classificação de imagens e como seu uso permite um desempenho superior àtécnicas tradicionais contribuindo para a resolução de diversos problemas na área de VisãoComputacional.

Palavras-chave: Deep Learning. Visão Computacional. Processamento de Imagem. Re-des Neurais. Venatura. Aprendizado de Máquina.

Page 9: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

MARTINS, V. E.. Deep Learning in image classification. 2018. 24p. Final Project –Draft Version (Bachelor of Science in Computer Science) – State University of Londrina,Londrina, 2018.

ABSTRACT

Deep Learning is a high trending topic nowadays thanks to its ability to solve a widerange of computer problems that were until then unsolvable or had very difficult andcomplex solutions. Although its capacity is limited by the processing power of currentmachines, the use of GPU cards enabled a higher performance and viability in variousapplication areas. In this work we explore the applications of Deep Learning in imageclassification and how it allows a higher performance than traditional techniques helpingto solve various problems in the area of Computer Vision.

Keywords: Deep Learning. Computer Vision. Image Processing. Neural Networks. Ve-natura. Machine Learning

Page 10: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

LISTA DE ILUSTRAÇÕES

Figura 1 – Arquitetura da AlexNet[1] . . . . . . . . . . . . . . . . . . . . . . . . . 17Figura 2 – Bloco de Construção da ResNet[2] . . . . . . . . . . . . . . . . . . . . 18Figura 3 – CNN derivada de AlexNet utilizada em Tensorflow . . . . . . . . . . . 21

Page 11: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

LISTA DE TABELAS

Tabela 1 – Cronograma de Execução . . . . . . . . . . . . . . . . . . . . . . . . . 23

Page 12: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

LISTA DE ABREVIATURAS E SIGLAS

ANN Artificial Neural Network

CNN Convolutional Neural Network

API Application Programming Interface

Page 13: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

LISTA DE SÍMBOLOS

𝑤 Peso

𝛼 Taxa de Aprendizado

∈ Pertence

Page 14: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

SUMÁRIO

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . 152.1 Aprendizado de Máquina . . . . . . . . . . . . . . . . . . . . . . . 152.1.1 Redes Neurais Artificiais . . . . . . . . . . . . . . . . . . . . . . . . . 152.2 Deep Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.2.1 CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.2.2 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2.3 ResNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.3 Tensorflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.3.1 Keras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3 DESENVOLVIMENTO . . . . . . . . . . . . . . . . . . . . . . . 213.1 Base de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2 Métodos e técnicas . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4 CRONOGRAMA DE EXECUÇÃO . . . . . . . . . . . . . . . . 23

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Page 15: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

14

1 INTRODUÇÃO

O ritmo acelerado de evolução computacional tem possibilitado o uso de técnicasavançadas para a resolução de problemas cada vez mais complexos antes impossíveis deserem solucionados. Uma dessas técnicas é o Deep Learning, um processo de aprendizadode máquina supervisionado que realiza a extração de elementos e descritores das amostrassem a cuidadosa análise de um especialista.

Nos últimos anos, Deep Learning têm se popularizado imensamente graças ao seualto desempenho preditivo que é muitas das vezes superior ao de técnicas tradicionaisde Aprendizado de Máquina. Em troca disso, essas técnicas exigem um grande poderde processamento para realizarem suas funções eficientemente mesmo com o auxílio deplacas gráficas, por esse motivo, técnicas de Deep Learning ganharam aplicações práticassomente nos últimos anos mesmo tendo sido propostas muitos anos a priori[3].

O desafio anual do ImageNet que consiste na criação de métodos e arquiteturasde aprendizado para a classificação da base de dados ImageNet[4] tem sido o palco decriação de várias arquiteturas de Deep Learning nos últimos anos, tais como a AlexNet[1]em 2012, Google Inception[5] em 2014 e ResNet[2] em 2015.

Nesse trabalho utilizamos algoritmos de Deep Learning tais como CNNs no campode reconhecimento e classificação de imagens, tanto classificações binárias quanto multirotulares e comparamos com outras técnicas de Aprendizado de Máquina, esperando al-cançar resultados superiores ou no mínimo equivalentes.

As arquiteturas utilizadas são em sua maioria baseadas em arquiteturas propostasanteriormente tais como as já citadas AlexNet e ResNet.

Para a implementação dos algoritmos utilizados nesse trabalho foram utilizadasas frameworks Tensorflow e Keras que possibilitam uma implementação simplificada demodelos em Python.

Os resultados serão obtidos a partir do cálculo da acurácia e erros obtidos a partirdos testes de validação e de treino para a detecção de overfitting.

Page 16: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

15

2 FUNDAMENTAÇÃO TEÓRICA

2.1 Aprendizado de Máquina

Aprendizado de Máquina é um campo de estudo na área de Inteligência Artifi-cial. Ele consiste em algoritmos e técnicas que, dadas características e descritores quedescrevem um problema, tenta solucionar dado problema por meio de um processo deaprendizado.

Algoritmos de aprendizado de máquina podem ser separados em duas categorias:Supervisionado e Não Supervisionado. Algoritmos supervisionados dependem da orienta-ção de um humano, eles normalmente passam por um processo de treino antes de seremaplicados.

O processo de treino de um algoritmo supervisionado consiste em induzir umafunção a partir de uma base de dados de treino, comparando a resposta adquirida com areal e utilizando o erro para melhorar cada vez mais a função de predição. Por isso, algo-ritmos supervisionados exigem que haja pelo menos uma fração de dados com respostasadquiridas manualmente.

Nesse trabalho utilizamos somente algoritmos de aprendizado de máquina super-visionados sendo eles em sua maioria no campo de Deep Learning explicado na seçãoabaixo.

2.1.1 Redes Neurais Artificiais

Redes Neurais Artificiais ou Artificial Neural Networks (ANN) são algoritmos deAprendizado de Máquina baseados inicialmente no sistema nervoso de animais, ou RedesNeurais Naturais. Eles são compostos por camadas de nós ou neurônios onde cada umpode ser definido pela Equação 2.1 onde 𝑥 é o valor de saída, 𝑤 é o peso do nó, 𝑎 é o valorde entrada e 𝑏𝑖𝑎𝑠 é um valor adicionado para alterar o resultado da ativação. Após isso,o valor de saída é passado por uma função de ativação.

𝑥 =𝑀∑︁

𝑖=1𝑤𝑖𝑎𝑖 + 𝑏𝑖𝑎𝑠 (2.1)

A função de ativação, como o nome diz, decide se o neurônio manda ou não seuvalor de saída para a próxima camada.

As camadas localizadas entre as camadas de entrada e saída de uma rede neuralartificial são chamadas de Hidden Layers e redes profundas tais como as utilizadas emDeep Learning costumam possuir várias dessas camadas.

Page 17: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

16

O processo de aprendizado de uma ANN consiste em inferir uma amostra ou umconjunto de amostras e calcular o erro/perda comparado com o resultado real a partir deuma função de perda (loss function) ajustado para uma taxa de aprendizado 𝛼 e utilizaresse valor para ajustar os valores de peso dos neurônios no que chamamos de GradientDescent.

2.2 Deep Learning

Deep Learning é uma área de Aprendizado de Máquina composto por algoritmosque realizam extração de descritores, transformação de dados e análise de padrões viaclassificação ou regressão a partir do processamento de várias camadas de informação nãolineares[6].

Isso automatiza a extração de descritores e tira esse processo das mãos humanasreduzindo assim o trabalho de seleção de descritores tão presentes em aprendizado demáquina tradicional e amenizando fator do erro humano. Junto com a alta capacidadepreditiva presente, principalmente em classificação de imagens, torna técnicas de DeepLearning muito atrativas.

Essas técnicas apresentam algumas desvantagens porém que inclusive contribuírampara o seu uso minimizado até tempos recentes. Uma delas é o alto poder computacionalexigido que aumenta várias vezes conforme a complexidade do problema a ser resolvidoaumenta além do tempo exigido para treinar um modelo. O uso de placas gráficas per-mitiu um aumento na eficiência significativo, mas elas ainda estão atrás de técnicas deaprendizado de máquina tradicionais nesse quesito.

2.2.1 CNN

Redes Neurais Convolucionais ou Convolutional Neural Networks (CNNs) são im-plementações de uma arquitetura de Rede Neural Artificial de Deep Learning que é com-posta primariamente por camadas de convolução [3].

Camadas de convolução são camadas neurais que têm a capacidade de extrairdescritores sem o auxílio de um agente humano utilizando operações de convolução sobreos valores de entrada, muitas vezes imagens.

Operações de convolução são realizadas a partir da multiplicação de duas matrizeselemento a elemento e o resultado é obtido a partir da soma dos valores das multiplicações.No nosso caso a multiplicação é entre uma matriz de convolução e uma região da imagem.

Considerando uma imagem como uma matriz de pixeis separada em 3 canais (ver-melho, azul e verde) deslizamos uma matriz de convolução de determinado tamanho sobrea imagem e realizamos convolução sobre cada região por onde a matriz passa, os resulta-

Page 18: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

17

dos formam um chamado mapa de descritores ou descritor de convoluções que tambémpode ser visto como uma "imagem"para uma próxima camada.

Chamamos essa matriz de convolução de kernel e a quantidade de pixeis passadasno deslize dessa matriz de stride. Cada nó da camada de convolução realiza uma convo-lução com o kernel e stride definidos pela camada sobre cada canal da imagem e gera umnovo canal para a nova "imagem"criada pela camada, desse modo a saída de uma camadade convolução possui tantos canais quanto a quantidade de nós na camada.

Após as camadas de convolução é tradicional inserir camadas totalmente conec-tadas para fazer o processamento dos descritores do mesmo modo que uma rede neuraltradicional, embora trabalhos recentes propõem arquiteturas de CNNs que não utilizamcamadas totalmente conectadas para realizar tarefas tais como segmentação semântica[7].

Em tarefas de classificação, após as camadas citadas anteriormente, temos umaúltima camada totalmente conectada de classificação com a quantidade de nós igual aquantidade de rótulos do problema seguido de uma função de ativação para transformara saída em valores probabilísticos.

2.2.2 AlexNet

AlexNet é uma arquitetura de CNN criada em 2012 que superou a performancede métodos estado-da-arte da época na competição do ImageNet.

A evolução da capacidade das placas gráficas junto com implementações altamenteotimizadas de convoluções 2D possibilitou a criação dessa arquitetura que na época erauma das maiores já existentes composta por oito camadas de convolução e três totalmenteconectadas[1] como pode ser visto na Figura 1.

Figura 1 – Arquitetura da AlexNet[1]

Na arquitetura descrita foram utilizadas duas placas gráficas, uma para as camadas

Page 19: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

18

superiores e outra para as inferiores presentes na figura.

Para evitar Overfitting foram utilizadas técnicas de Data Augmentation e Dropout.Data Augmentation, um processo que também foi utilizado nesse trabalho, consiste noaumento artificial do banco de dados gerando novas versões das mesmas amostras comtransformações tais como translações, rotações e espelhamento.

A técnica de Dropout consiste em zerar os valores de saída de um neurônio deuma camada com 50% de chance. Isso essencialmente elimina a contribuição de algunsneurônios e tira a garantia de que um neurônio possa depender em outro, obrigando assimo modelo a aprender descritores mais robustos.

2.2.3 ResNet

Essa arquitetura criada em 2015 tenta resolver o problema de degradação da acu-rácia quando redes tradicionais convergem introduzindo residuais no treinamento, isso é,conexões que fluem pela rede sem passar por funções não-lineares[2].

Essas redes são compostas primariamente por blocos de construção que podem servistos na Figura 2. Um bloco consiste de uma entrada 𝑥 que passa por duas camadasnão-lineares que em conjunto são definidas como 𝐹 (𝑥) e os valores de saída são somadoscom os valores inalterados de 𝑥, o chamado residual.

weight layer

weight layer

relu

+

relu

x

x Identity F(x)

F(x) + x

Figura 2 – Bloco de Construção da ResNet[2]

Uma implementação dessa arquitetura consiste de uma camada de entrada comuma convolução para diminuir a complexidade seguido de vários blocos de construçãopara por fim uma camada totalmente conectada para classificação.

2.3 Tensorflow

Tensorflow é uma interface e implementação para expressar e executar algoritmosde aprendizado de máquina [8]. Essa ferramenta possibilita o uso de aceleração gráfica de

Page 20: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

19

processamento, por esse entre outros motivos, Tensorflow é altamente aplicado em tarefasde Deep Learning.

Foi desenvolvida pela Google em 2015 como o sucessor da DistBelief, o primeirosistema de treinamento e inferência escalável e distribuído do projeto Google Brain.

O sistema utiliza um sistema de gráfico estático gerado antes da execução dacomputação. O grafo é composto por nós que apresentam 0 ou mais entradas e saídas erepresentam uma operação, tal como soma, subtração e etc. Os valores que fluem entre osnós do grafo são chamados de tensores e cada um possui um tipo definido na pré-execução.

Os grafos são executados dentro de uma sessão, e, por serem estáticos, eles podemser executados novamente em outras sessões sem precisar de uma redefinição.

O processo de treinamento e indução de um modelo no Tensorflow consiste naconstrução do grafo contendo a arquitetura, os pipelines de dados e outros nós úteis, opré-processamento dos dados de entrada e a execução do grafo sobre uma sessão ondeos valores contidos nos nós são atualizados. Esse processo só é válido quando se utiliza obaixo nível do Tensorflow.

A implementação do Tensorflow possui também uma API de alto nível que permiteuma construção mais simples de modelos, mas é limitada e abstrai vários conceitos taiscomo tensores, sessões e grafos. Por esses motivos, o uso da framework foi limitado à APIde baixo nível.

2.3.1 Keras

Keras é um API de alto nível escrito em Python especializada em redes neurais.Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow,Theano ou CNTK [9].

Ele possibilita a rápida construção e inferência de redes neurais com funções ecomandos simples que abstraem uma grande parte do funcionamento da framework basealém de oferecer utilidades de simples implementação, tais como Callbacks de Early Stop-ping, Learning Rate Decay e pipelines de dados.

O processo de treinar e inferir um modelo no Keras consiste na utilização de umadas duas APIs para a construção de tal (Sequencial ou Funcional), a aquisição e pré-processamento dos dados de entrada, o treinamento do modelo com uma base de treinojunto com utilidades que auxiliam tais como testes de validação e Callbacks e por fim omodelo pode ser utilizado para inferir sobre amostras do problema.

Como dito anteriomente, modelos podem ser construídos de dois modos: Sequen-cialmente ou Funcionalmente. A construção sequencial consiste no empilhamento de ca-madas sequencialmente conectando a última camada inserida com a nova camada. Isso

Page 21: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

20

permite uma construção muito simples e rápida de modelos com uma quantidade pequenade código, mas em compensação modelos mais complexos se tornam muito difíceis ou atéimpossíveis de implementar.

A construção funcional permite a construção de modelos mais complexos comuma sintaxe um pouco mais complexa. Nesse modo, camadas se comportam como funçõesretornando um tensor e conectando no tensor mandado como parâmetro. Modelos tambémpodem ser tratados como camadas e isso permite a reutilização de modelos como partesde outros modelos.

A API Funcional permite assim a criação de modelos complexos tais como cama-das conectadas paralelamente ou entre camadas distantes, múltiplas saídas e entradas ecamadas compartilhadas entre modelos. Um exemplo de uma arquitetura que só é possívelcriar funcionalmente no Keras é a ResNet[2].

Como também utilizamos Tensorflow para o treinamento de modelos, essa fra-mework também serviu de base para o Keras.

Page 22: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

21

3 DESENVOLVIMENTO

3.1 Base de Dados

Nesse trabalho foi utilizada uma base de dados binária que consiste em imagensde carnes suínas segmentadas em pequenos quadrados de 50x50 pixeis onde o objetivo édetectar se há ou não Venatura baseado na aparência de veias na superfície.

Como as duas classes estão desbalanceadas, com uma possuindo uma quantidadede amostras várias vezes maior que a outra, foi realizado Data Augmentation sobre elascom operações de espelhamento.

Esse processo deixou as duas classes com o mesmo número de amostras além deaumentar drasticamente a quantidade de amostras no geral.

3.2 Métodos e técnicas

Foram utilizadas diversas arquiteturas de CNNs derivadas das arquiteturas Alex-Net e ResNet.

Utilizando Tensorflow foi criada uma versão simplificada da AlexNet que pode servista na figura 3.

Input Data50x50x3

Conv125x25x128

Conv213x13x128

Conv37x7x128

Dense1 128

Dense2 128

Softmax2

(classes)

Predicted BinaryClass

Figura 3 – CNN derivada de AlexNet utilizada em Tensorflow

A arquitetura é uma rede simples com 7 camadas mais a saída. As quatro primeirascamadas constituem convoluções simples de 1x1. Ao final dessas camadas se encontramduas camadas totalmente conectadas com o intuito de realizar a predição e finalmenteuma camada softmax para classificar.

Page 23: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

22

Além dessa arquitetura também foi utilizada uma versão da ResNet com umaquantidade menor de blocos comparado à sua proposta inicial. Essa arquitetura foi im-plementada no Keras por conta de sua maior complexidade.

Page 24: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

23

4 CRONOGRAMA DE EXECUÇÃO

As atividades a serem realizadas são as seguintes:

∙ Atividade 1: Treinamento e avaliação da AlexNet simplificada no Tensorflow;

∙ Atividade 2: Treinamento e avaliação da ResNet simplificada no Keras;

∙ Atividade 3: Análise dos resultados

∙ Atividade 4: Escrita do TCC

Setembro Outubro Novembro DezembroAtividade 1 X XAtividade 2 X XAtividade 3 X XAtividade 4 X X X X

Tabela 1 – Cronograma de Execução

Page 25: VINICIUSEIJIMARTINS€¦ · Ele utiliza uma framework de Deep Learning como base, podendo ela ser Tensorflow, Theano ouCNTK[9]. Ele possibilita a rápida construção e inferência

24

REFERÊNCIAS

[1] KRIZHEVSKY, A.; SUTSKEVER, I.; HINTON, G. E. Imagenet classification withdeep convolutional neural networks. In: Advances in neural information processingsystems. [S.l.: s.n.], 2012. p. 1097–1105.

[2] HE, K. et al. Deep residual learning for image recognition. In: Proceedings of theIEEE conference on computer vision and pattern recognition. [S.l.: s.n.], 2016. p.770–778.

[3] LECUN, Y. et al. Gradient-based learning applied to document recognition.Proceedings of the IEEE, IEEE, v. 86, n. 11, p. 2278–2324, 1998.

[4] DENG, J. et al. Imagenet: A large-scale hierarchical image database. In: IEEE.Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on.[S.l.], 2009. p. 248–255.

[5] SZEGEDY, C. et al. Going deeper with convolutions. In: Proceedings of the IEEEconference on computer vision and pattern recognition. [S.l.: s.n.], 2015. p. 1–9.

[6] DENG, L.; YU, D. Deep Learning: Methods and Applications. [S.l.], 2014.Disponível em: <https://www.microsoft.com/en-us/research/publication/deep-learning-methods-and-applications/>.

[7] LONG, J.; SHELHAMER, E.; DARRELL, T. Fully convolutional networks forsemantic segmentation. In: The IEEE Conference on Computer Vision and PatternRecognition (CVPR). [S.l.: s.n.], 2015.

[8] ABADI, M. et al. TensorFlow: Large-Scale Machine Learning on HeterogeneousSystems. 2015. Software available from tensorflow.org. Disponível em: <https://www.tensorflow.org/>.

[9] CHOLLET, F. et al. Keras. 2015. <https://keras.io>.