avaliaçãododesempenhodaplataformaintel … · 2018. 5. 28. · das sinapses no cérebro se altera...

58
Universidade de Brasília Instituto de Ciências Exatas Departamento de Ciência da Computação Avaliação do Desempenho da plataforma Intel Galileo Geração 2 no Treinamento de Redes Neurais Artificiais Stéphannie Louretti A. P. Chiang Monografia apresentada como requisito parcial para conclusão do Curso de Engenharia da Computação Orientador Prof. Dr. Alexandre Zaghetto Brasília 2018

Upload: others

Post on 31-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Universidade de BrasíliaInstituto de Ciências Exatas

Departamento de Ciência da Computação

Avaliação do Desempenho da plataforma IntelGalileo Geração 2 no Treinamento de Redes Neurais

Artificiais

Stéphannie Louretti A. P. Chiang

Monografia apresentada como requisito parcialpara conclusão do Curso de Engenharia da Computação

OrientadorProf. Dr. Alexandre Zaghetto

Brasília2018

Page 2: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Universidade de BrasíliaInstituto de Ciências Exatas

Departamento de Ciência da Computação

Avaliação do Desempenho da plataforma IntelGalileo Geração 2 no Treinamento de Redes Neurais

Artificiais

Stéphannie Louretti A. P. Chiang

Monografia apresentada como requisito parcialpara conclusão do Curso de Engenharia da Computação

Prof. Dr. Alexandre Zaghetto (Orientador)CIC/UnB

Prof. Dr. Bruno Macchiavello Prof. Matheus MendelsonCIC/UnB FGA/UnB

Prof. Dr. Ricardo Pezzuol JacobiCoordenador do Curso de Engenharia da Computação

Brasília, 27 de Fevereiro de 2018

Page 3: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Dedicatória

À minha mãe, Goretti, pelas demonstrações de amor, paciência e carinho.

iii

Page 4: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Agradecimentos

À minha mãe Maria Goretti Albergaria de Jesus Perez, por ter sempre se ded-icado a mim desde o momento que eu nasci e por ter lutado ao meu lado durante osmomentos mais difíceis da minha vida.

Ao meu avô Moysalvo Albergaria Perez (in memoriam), por ter dedicado a mimtantos momentos de sua vida e ter sido meu maior exemplo de disciplina.

Ao meu pai Chiang Jin Guan, pela ajuda financeira.Aos meus padrinhos Ardeckiria Albergaria de Jesus Perez e Manoel Muniz

dos Santos, dois exemplos de dedicação e perseverança.À minha família que sempre me motivou e me apoiou nas minhas decisões.Ao meu namorado Gustavo Albergaria Brízida Bächtold, por ter me ajudado

tanto com essa monografia e por ter sempre demonstrado muita paciência comigo.Aos meus amigos, por terem me propiciado tantos momentos de descontração e apoio.Ao professor Alexandre Zaghetto, por ter me ajudado tanto durante minha for-

mação acadêmica e por ter demonstrado sempre boa vontade durante a orientação dessetrabalho, sempre fui sua grande admiradora.

Ao professor Flavio Barros Vidal, por ter me ajudado com as matrículas durante otempo que o professor Zaghetto esteve fora.

À Steve Jobs, por ter sido minha maior fonte de inspiração durante minha formaçãoacadêmica.

iv

Page 5: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Resumo

Uma rede neural artificial é um processador paralelamente distribuído formado porvárias unidades de processamento simples que tem a capacidade natural de armazenarconhecimento experimental e torná-lo disponível para o uso. Dentre as diversas finalidadespossíveis, as mais utilizadas são classificação de padrões, categorização, aproximação defunções e predição. Neste trabalho, a rede neural será utilizada para a classificação depadrões da flor Íris. A placa Intel Galileo Geração 2 foi criada com o propósito deauxiliar comunidades educacionais e criadoras, logo é capaz de realizar diversos tipos deprocessos com alta eficiência. Porém, quando se trata de treinamento de redes neuraisnão se sabe qual a verdadeira capacidade da placa. Este trabalho consiste na utilizaçãode redes neurais artificiais na placa Galileo Geração 2 e na avaliação do seu desempenhono treinamento dessas redes através da analise do consumo energético da mesma por meioda realização de testes individuais. Nele foi possível observar que a placa Intel GalileoGeração 2 é uma boa ferramenta para aqueles que buscam trabalhar com redes neuraissem se preocupar com o consumo energético, já que a placa não apresenta maior consumode energia quando utiliza redes neurais mais complexas.

Palavras-chave: redes neurais, Intel Galileo, gasto energético

v

Page 6: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Abstract

"An artificial neural network is a parallel distributed processor made up of severalsimple processing units that have the natural ability to store experimental knowledge andmake it available for use"[7]. Among the several possible purposes, the most used arepattern classification, categorization, approximation of functions and prediction. In thiswork, the neural network will be used to classify Iris flower patterns. The Intel GalileoGeneration 2 board was created for the purpose of assisting educational and creativecommunities, so it is capable of performing many types of processes with high efficiency.However, when it comes to neural network training it is not known what is the truecapacity of the board. This work consists in the use of artificial neural networks in theGalileo Generation 2 board and in the evaluation of its performance in the training ofthese networks by analyzing the energy consumption of the same by means of individualtests. It was possible to observe that the Intel Galileo Generation 2 board is a goodtool for those who seek to work with neural networks without worrying about energyconsumption, since the board does not present greater energy consumption when usingmore complex neural networks.

Keywords: neural networks, Intel Galileo, energy expenditure

vi

Page 7: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Sumário

1 Introdução 11.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.3 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.4 Descrição dos capítulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Fundamentação Teórica e Trabalhos Correlatos 42.1 Redes Neurais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1.1 O cérebro e o neurônio biológico . . . . . . . . . . . . . . . . . . . . 52.1.2 Modelo de Neurônio . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.3 Neurônio com um vetor de entrada . . . . . . . . . . . . . . . . . . 82.1.4 Representação Matemática . . . . . . . . . . . . . . . . . . . . . . . 92.1.5 Funções de Transferência . . . . . . . . . . . . . . . . . . . . . . . . 102.1.6 Arquiteturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.1.7 Fluxo de Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.1.8 Preparação de dados . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2 Classificação de padrões . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.2.1 Percepção de máquina . . . . . . . . . . . . . . . . . . . . . . . . . 172.2.2 Matriz de confusão . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.3 Plataforma Intel® Galileo . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.3.1 Placa Intel® Galileo Geração 2 . . . . . . . . . . . . . . . . . . . . 18

3 Metodologia Proposta 203.1 Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1.1 Conjunto de dados Iris . . . . . . . . . . . . . . . . . . . . . . . . . 203.2 Algoritmo de treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2.1 Feed Forward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.2.2 BackPropagation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3 Código . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

vii

Page 8: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

3.4 Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4 Resultados Experimentais 264.1 Análise de resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5 Conclusões e Trabalhos Futuros 305.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Referências 32

Apêndice 33

A Código utilizado no projeto 34

Anexo 42

I Tabela de valores do conjunto de dados Iris 43

viii

Page 9: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Lista de Figuras

2.1 Representação em diagrama de blocos do sistema nervoso [7] . . . . . . . . 52.2 Célula Piramidal e suas partes: dendritos, corpo celular e axônio [7] . . . . 62.3 Neurônio de entrada única [9] . . . . . . . . . . . . . . . . . . . . . . . . . 72.4 Neurônio com um vetor de entrada onde R = número de elementos no vetor

de entrada [9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.5 Neurônio com um vetor de entrada em notação abreviada onde R = número

de elementos no vetor de entrada [9] . . . . . . . . . . . . . . . . . . . . . . 92.6 Modelo matemático de um neurônio. Independentemente das entradas, a

saída normalizada é normalmente apresentada como um número real nointervalo [0,1] ou [-1,1], dependendo da função de transferência. [7] . . . . . 10

2.7 Quatro tipos clássicos de funções de ativação: (a) threshold, (b) piecewiselinear, (c) sigmoid e (d) gaussiana. [16] . . . . . . . . . . . . . . . . . . . . 11

2.8 Taxonomia das arquiteturas de redes neurais artificiais [16] . . . . . . . . . 112.9 Rede neural com uma camada de neurônios onde R = número de elementos

no vetor de entrada e S = número de neurônios na camada [9] . . . . . . . 122.10 Matriz de pesos W [9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.11 Notação abreviada de uma rede neural com uma camada de neurônios onde

R = número de elementos no vetor de entrada e S = número de neurôniosna camada 1 [9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.12 Rede neural com múltiplas camadas de neurônios [9] . . . . . . . . . . . . . 142.13 Notação abreviada de uma rede neural com múltiplas camadas de neurônios

[9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.14 Matriz de confusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.15 Placa Intel® Galileo Geração 2 . . . . . . . . . . . . . . . . . . . . . . . . 182.16 Especificações da Placa Intel® Galileo Geração 2 . . . . . . . . . . . . . . . 19

3.1 Espécies de Iris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2 Rede Neural com 4 entradas e 2 camadas . . . . . . . . . . . . . . . . . . . 223.3 Rede Neural com uma camada de entrada, uma camada escondida e uma

camada de saída [16] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

ix

Page 10: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

4.1 Gráfico Neurônios x Épocas e Neurônios x Tempo . . . . . . . . . . . . . . 274.2 Gráfico Neurônios x ACC . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

x

Page 11: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Lista de Tabelas

4.1 Valores obtidos na segunda fase de testes . . . . . . . . . . . . . . . . . . . 264.2 Matriz de confusão para 10 neurônios. ACC = 0,9333. . . . . . . . . . . . 284.3 Matriz de confusão para 40 neurônios. ACC = 0,7200. . . . . . . . . . . . 284.4 Matriz de confusão para 80 neurônios. ACC = 0,6400. . . . . . . . . . . . 284.5 Matriz de confusão para 160 neurônios. ACC = 0,3333. . . . . . . . . . . . 28

I.1 Conjunto de dados Iris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

xi

Page 12: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Capítulo 1

Introdução

Redes Neurais Artificiais são compostas por simples elementos operando em paralelo.Esses elementos procuram imitar a estrutura básica do sistema nervoso biológico, o neurô-nio [6]. Como na natureza, a funcionalidade da rede é determinada pelas conexões entreestas pequenas centrais de processamento (modelo conexionista). Pode-se treinar umarede neural para realizar uma função particular, ajustando os valores das conexões entreos neurônios, ou seja, ajustando as eficiências sinápticas. Dessa maneira, o conhecimentofica armazenado nessas conexões e simplesmente emerge como conseqüência da ação emparalelo dessa coletividade [15].

Os primeiros documentos mencionados sobre redes neurais ou neurocomputação da-tam de 1943 com McCulloch e Pitts que projetaram a estrutura que é conhecida comoa primeira rede neural. Estes pesquisadores propuseram um modelo de neurônio comouma unidade de processamento binária e provaram que esta unidade é capaz de executarmuitas operações. Apesar dele ser muito simples, trouxe uma grande contribuição para asdiscussões sobre a construção dos primeiros computadores digitais, permitindo a criaçãodos primeiros conceitos matemáticos de dispositivos artificiais que buscavam analogiasbiológicas [4].

Com o passar do tempo, em 1948, N. Wiener criou a palavra cibernética para descre-ver, de forma unificada, controle e comunicação nos organismos vivos e nas máquinas. Em1949, Donald O. Hebb apresentou uma hipótese a respeito da maneira com que a forçadas sinapses no cérebro se altera em resposta à experiência. Em particular, ele sugeriuque as conexões entre células que são ativadas ao mesmo tempo tendem a se fortalecer,enquanto que as outras conexões tendem a se enfraquecer. Esta hipótese passou a influirdecisivamente na evolução da teoria de aprendizagem em RNAs [4].

Eventualmente, uma expectativa exagerada criada pelos próprios pesquisadores destaárea caiu sobre o estudo de redes neurais. Essa expectativa fez com que os resultados nãofossem à altura do esperado agravando o financiamento das pesquisas. Em 1969, vários

1

Page 13: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

autores passaram a argumentar quanto às limitações básicas das redes da época, a come-çar pela impossibilidade de se implementar regras lógicas tão simples. Historicamente,essa discussão paralisou as pesquisas na área de redes neurais, com isso os pesquisadorespassaram a buscar por alternativas dentro do campo da engenharia e, principalmente, dalógica matemática, que, na época, encontrava-se em franca expansão, devido às grandesconquistas realizadas na área de computação [3].

Foi somente a partir de 1982 que nomes como Teuvo Kohonen, Stephen Grossberg,B. Widrow, James Anderson, Edoardo Caianiello, Kunuhito Fukushima, Igor Aleksander,entre outros, passaram a publicar diversas propostas para o desenvolvimento e para asaplicações de redes neurais, conseguindo assim, novamente estabelecer um campo con-creto para o renascimento da área. Esta retomada do interesse pela exploração das redesneurais artificiais deu-se por principalmente: os melhores conhecimentos da estrutura realdo cérebro; a disponibilidade de computadores com maior capacidade de cálculo; o desen-volvimento de novos algoritmos de aprendizado [4] [3].

Recentemente, redes neurais artificiais tem se tornado a solução para muitas aplica-ções computacionais, porém o processamento de redes neurais envolve um alto consumode energia devido a sua alta complexidade computacional. Como resultado, aparelhos ali-mentados por bateria ainda não são capazes de rodar redes neurais artificiais complexaspor causa de seu orçamento energético limitado [14].

1.1 MotivaçãoCom o aumento da importância das redes neurais, redes mais eficientes e mais econô-

micas precisam ser cada vez mais estudadas. Devido ao fato de ser um tema complexoe ter uma infinidade de aplicações, essas aplicações tem sido o centro de cada vez maisestudos e cada vez mais cobiçadas no mercado de trabalho. Apesar desse foco atual emredes neurais, um denominador em comum de todas essas aplicações tem sido esquecido:o gasto energético. Devido a tal fato, esse estudo esta sendo realizado para ajudar a supriresta demanda.

1.2 ProblemaPor um tema recente, a eficiência energética de redes neurais tem sido pouco estudada

no campo científico. Com base nisso, este trabalho busca utilizar placas Intel® Galileopara analisar esta eficiência energética.

2

Page 14: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

1.3 ObjetivosO objetivo principal deste trabalho é analisar o gasto energético da placa Intel® Galileo

no treinamento de Redes Neurais ArtificiaisOs objetivos específicos são:

• realizar uma revisão de literatura acerca de Redes Neurais e Intel® Galileo;

• escolher um algoritmo de treinamento da rede neural para a realização dos testes;

• verificar o gasto energético de uma placa Intel® Galileo com Redes Neurais deconfigurações diferentes e

• relatar os resultados obtidos da realização dos testes.

1.4 Descrição dos capítulos• Capítulo 2: apresentação da fundamentação teórica e trabalhos correlatos;

• Capítulo 3: proposta de método para solucionar o problema;

• Capítulo 4: apresentação dos resultados experimentais obtidos;

• Capítulo 5: conclusão observada a partir dos resultados obtidos e proposta de tra-balhos futuros.

3

Page 15: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Capítulo 2

Fundamentação Teórica e TrabalhosCorrelatos

O projeto se baseia na correta aplicação dos conceitos de redes neurais e Intel Galileo.Nos tópicos a seguir, cada um dos conceitos essenciais para a implementação do projetoé explicado em sua singularidade.

2.1 Redes NeuraisO reconhecimento de que o cérebro humano processa informações de forma diferente

de um computador digital vem motivando cada vez mais as pesquisas acerca de redesneurais. O cérebro, como um computador, pode ser interpretado como um sistema deprocessamento de informações, altamente complexo, não linear e paralelo [7]. Assim, apartir do modelo do cérebro, uma rede neural é uma maquina projetada para realizar umatarefa particular ou função de interesse.

Uma rede neural é um processador maciçamente paralelamente distribuído constituídode unidades de processamento simples, que têm a propensão natural para armazenar co-nhecimento experimental e torná-lo disponível pra o uso [7]. Ela se assemelha ao cérebroem dois aspectos: O conhecimento é adquirido pela rede a partir de seu ambiente atravésde um processo de aprendizagem; Forças de conexão entre neurônios, conhecidas comopesos sinápticos, são utilizadas para armazenar o conhecimento adquirido[7].

O algoritmo de aprendizagem modifica os pesos sinápticos da rede de forma ordenada,desse modo o objetivo pode ser alcançado. A teoria dos filtros adaptativos lineares, jábem estabelecida e aplicada em diversas áreas, possui princípios similares ao método demodificação dos pesos sinápticos, sendo esse o tradicional para o projeto de redes neurais.Uma rede neural pode, também, modificar a sua própria topologia, fato que foi inspiradono fato em que os neurônios no cérebro humano podem morrer e novas conexões são for-

4

Page 16: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

madas.De modo a atingir um bom desempenho, uma interligação maciça de células compu-

tacionais simples (neurônios ou unidades de processamento) é utilizada pela rede neural.Os dois principais componentes que geram poder computacional de uma rede neural

são: a sua estrutura maciçamente paralelamente distribuída e a sua habilidade de apren-der e generalizar.

Assim, o uso de redes neurais oferece as seguintes propriedades úteis e capacidade:não-linearidade, mapeamento de entrada-saída, adaptabilidade, resposta a evidencias, in-formação contextual, tolerância a falhas, implementação em VLSI, uniformidade de analisee projeto e analogia neurobiológica.

2.1.1 O cérebro e o neurônio biológico

O sistema nervoso humano pode ser visto como um sistema de três estágios comomostrado na Figura 2.1:

Figura 2.1: Representação em diagrama de blocos do sistema nervoso [7]

O cérebro, peça central do sistema, é representado pela rede neural. Essa, por suavez, recebe continuamente informações, as interpreta e produz uma resposta adequada.As setas da imagem acima representam a transmissão de sinal. Os receptores, a pri-meira camada, recebem os estímulos externos e os convertem em impulsos elétricos, sendotransmitidos para a rede neural (cérebro). Uma vez a informação sendo interpretada, osatuadores converterão os impulsos elétricos gerados pela rede neural em respostas discer-níveis como saídas do sistema [7].

A célula fundamental do sistema nervoso central é o neurônio, tendo a função de con-duzir impulsos elétricos (estímulos elétricos originados das reações físico-químicas). Essecomponente possui três partes: dendritos, corpo celular e axônio [7].

Os dendritos são finos prolongamentos, que se ramifica e adquirem o formato de umaárvore (árvore dendrítica). A sua função é receber os estímulos de vários outros neurô-nios.

O corpo celular é onde as principais organelas celulares do neurônio são encontra-das(núcleo, mitocôndria, centríolo, lisossomo...) [7]. Ele também é responsável pelo pro-

5

Page 17: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

cessamento de toda a informação que chega dos dendritos, pela produção de um potencialde ativação que indica se o neurônio pode instigar um impulso elétrico junto com seuaxônio.

O axônio, por fim, é um único prolongamento cuja principal função é guiar os impulsoselétricos para outro neurônios de conexão, ou para neurônios diretamente conectados aotecido muscular (junção neuro-muscular). A terminação do axônio é também compostade ramos chamados terminais sinápticos.

Os neurônios aparecem em uma grande variedade de tamanhos e formas dependendoda sua localização no cérebro. Na Figura 2.2 pode-se ver uma célula piramidal, que é umdos tipos mais comuns de neurônios corticais:

Figura 2.2: Célula Piramidal e suas partes: dendritos, corpo celular e axônio [7]

6

Page 18: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Diferentemente das portas lógicas, os neurônios orgânicos possuem uma velocidade detransmissão mais lenta do que estas. Na tentativa de compensar essa taxa de operaçãorelativamente lenta, a quantidade de neurônios acaba sendo espantosa, havendo conexõesmaciças entre si.

As sinapses são uma região que permite a transmissão do impulso elétrico de umneurônio para outro. O tipo mais comum de sinapse é a sinapse química. Vale ressaltarque essa conexão pode impor ao neurônio receptivo excitação ou inibição, mas não ambas.

2.1.2 Modelo de Neurônio

O bloco de construção fundamental para redes neurais é o neurônio de entrada única,como na Figura 2.3:

Figura 2.3: Neurônio de entrada única [9]

Há três operações funcionais distintas que ocorrem neste neurônio. Em primeiro lugar,a entrada escalar p é multiplicada pelo peso escalar w para formar o produto wp, tambémum escalar. Em segundo lugar, a entrada wp ponderada é adicionado ao viés escalar bpara formar a entrada n. Neste caso, o viés esta movendo a função f para a esquerda poruma quantidade b. O viés é muito parecido com um peso, exceto que tem uma entradaconstante de 1. E finalmente, a entrada é passada através da função de transferência f,que produz a saída de um escalar.

Os nomes dados a estes três processos são: a função de peso, a função de entrada ea função de transferência. Para muitos tipos de redes neurais, a função de peso é umproduto de um o peso vezes a entrada, mas outras funções de peso podem ser utilizadas.Note que w e b são ambos parâmetros escalares ajustáveis do neurônio. A ideia centralda rede neural é que estes parâmetros podem ser ajustados de modo que a rede apresenta

7

Page 19: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

um comportamento desejado ou interessante. Assim, pode-se treinar a rede para fazerum trabalho específico, ajustando os parâmetros de peso ou viés.

2.1.3 Neurônio com um vetor de entrada

O neurônio simples pode ser estendido para lidar com entradas que são vetores[9]. Umneurônio com um único vetor de entrada R-elemento é mostrado na Figura 2.4 abaixo:

Figura 2.4: Neurônio com um vetor de entrada onde R = número de elementos no vetorde entrada [9]

Nele, os elementos de entrada individuais p1, p2...pR, são multiplicados pelos pesos w1,1;w1,2;...w1,R. E os valores ponderados são alimentados para a junção de soma. A sua somaé simplesmente Wp, o produto escalar da matriz (de única linha) W e do vetor p.

O neurônio tem um viés b, que é somado com as entradas ponderadas para formar aentrada n. A entrada n é o argumento da função de transferência f.

Para o modelo acima existe uma notação abreviada (Figura 2.5).A Figura 2.5 de um único neurônio mostrado acima contém uma grande quantidade dedetalhes. Quando considera-se redes com muitos neurônios, e talvez camadas de muitosneurônios, há tantos detalhes que os principais pensamentos tendem a ser perdidos. Assim,os autores criaram uma notação abreviada para um neurônio individual. Nela, o vetor deentrada p é representado pela barra vertical sólida escura no lado esquerdo. As dimensõesde p são mostradas abaixo do símbolo P na Figura como R × 1. Assim, p representa umvetor de R elementos de entrada.

Como antes, uma constante 1 entra no neurônio como uma entrada e é multiplicadapor um viés escalar b. A entrada para a função de transferência F é: N, a soma do viés

8

Page 20: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Figura 2.5: Neurônio com um vetor de entrada em notação abreviada onde R = númerode elementos no vetor de entrada [9]

b e o produto Wp. Esta soma é passada para a função de transferência F para obter asaída A do neurônio, que neste caso é um escalar.

Note que se houvesse mais do que um neurônio, a saída da rede seria um vetor.A Figura também define uma camada de uma rede. Uma camada inclui os pesos,

a multiplicação e operações de soma (aqui realizadas, tal como um produto vetor Wp),o viés b, e a função de transferência f. Assim, existem três operações que ocorrem nacamada: a função de ponderação, a função de entrada e a função de transferência.

2.1.4 Representação Matemática

Um modelo matemático não linear de um neurônio pode ser encontrado na Figura 2.6.Neste modelo é possível perceber que o conjunto de estímulos, p1, p2, p3, ..., pR são

amplificadas ou atenuadas através do uso dos pesos sinápticos w1,1, w1,2, w1,3, ..., w1,R

produzindo uma soma ponderada n apresentada na equação 2.1. Destaca-se que o uso doíndice k indica que trata-se do k-ésimo neurônio de uma rede neural artificial e o uso doíndice i indica tratar-se do i-ésimo estímulo aplicado ao neurônio.

n =R∑

i=1w1,ipi (2.1)

À essa soma ponderada pode ser adicionado um valor externo comumente chamado deviés (b) que tem o intuito de realizar uma polarização no neurônio. A polarização tem porobjetivo elevar ou diminuir de maneira ad hoc o valor de n fazendo com que um neurônioative-se mais facilmente ou menos facilmente dependendo do valor de b.

A adição do viés à soma ponderada Wp gera uma saída n (Equação 2.2) que por sua

9

Page 21: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Figura 2.6: Modelo matemático de um neurônio. Independentemente das entradas, asaída normalizada é normalmente apresentada como um número real no intervalo [0,1] ou[-1,1], dependendo da função de transferência. [7]

vez é o valor de entrada para a função de transferência f(n) conforme se observa na Figura2.6.

n = Wp + b (2.2)

A função de transferência define a saída a do neurônio, que é representada pela Equa-ção 2.3. Nota-se que quando existe uma polarização realizada pela inserção de um viés,a = f(n) e que quando não existe polarização, a = f(Wp).

a =

f(n), se b 6= 0

f(Wp), se b = 0(2.3)

2.1.5 Funções de Transferência

Para completar o entendimento acerca do modelo de neurônio apresentado anterior-mente resta apresentar um detalhamento sobre como agem as funções de transferência.A função de transferência f(n), define a saída de um neurônio em termos do campo localinduzido n [7]. Dados um conjunto de entradas, uma distribuição sináptica e um viés,a função de transferência define a saída do neurônio. A Figura 2.7 apresenta gráficos de

10

Page 22: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

alguns tipos clássicos de funções de ativação [7].

Figura 2.7: Quatro tipos clássicos de funções de ativação: (a) threshold, (b) piecewiselinear, (c) sigmoid e (d) gaussiana. [16]

Ao analisar as funções de transferência apresentadas na Figura 2.7 é possível perceberque todas possuem valores positivos para a saída, em verdade, a saída f(n) é denotadapelo intervalo [0,1], onde {f(n) ∈ < | 0 ≤ f(n) ≤ 1} e, em termos teóricos (não aplicáveiscomputacionalmente), a entrada n é denotada por {n ∈ < | −∞ < n < +∞}.

2.1.6 Arquiteturas

Dois ou mais dos neurônios mostrados anteriormente podem ser combinados numacamada, e uma rede em particular pode conter um ou mais de tais camadas. Assim, aarquitetura da rede pode ser de uma camada de neurônios ou de múltiplas camadas deneurônios. Neste sentido podemos observar a Figura 2.8 que apresenta a taxonomia daspossíveis arquiteturas de uma rede neural artificial [7][1][10][11].

Figura 2.8: Taxonomia das arquiteturas de redes neurais artificiais [16]

11

Page 23: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Uma camada de neurônios

Primeiro, considerando uma única camada de neurônios (Figura 2.9), temos uma redede uma camada com elementos de entrada R e neurônios S. Nesta rede, cada elemento dovector P de entrada está ligada a cada entrada de neurônios através da matriz de pesosW (Figura 2.10)[9]. Cada neurônio reúne os valores de entrada ponderados e o viés paraformar a sua própria saída de escalar N. Os vários N em conjunto, formam um vetor deentrada n. E finalmente, as saídas da camada de neurônio formar um vetor coluna a. Aexpressão para uma saída é mostrada na parte inferior da Figura 2.9.

Figura 2.9: Rede neural com uma camada de neurônios onde R = número de elementosno vetor de entrada e S = número de neurônios na camada [9]

É possível notar que é comum que o número de entradas para uma camada ser diferentedo número de neurônios (isto é, R não é necessariamente igual a S). Assim, os elementosdo vetor de entrada entram na rede através da matriz de peso W.

Esta mesma rede mostrada anteriormente também pode ser desenhada em notaçãoabreviada (Figura 2.11).

Nela, p é um vetor de entrada de comprimento R, W é uma matriz S x R, a e b sãovetores de S de comprimento. Conforme definido anteriormente, a camada de neurônio

12

Page 24: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Figura 2.10: Matriz de pesos W [9]

Figura 2.11: Notação abreviada de uma rede neural com uma camada de neurônios ondeR = número de elementos no vetor de entrada e S = número de neurônios na camada 1[9]

inclui a matriz de peso, as operações de multiplicação, o vetor viés b, o somatório, e osblocos de função de transferência.

Múltiplas camadas de neurônios

Uma rede pode ter várias camadas. Cada camada tem uma matriz de peso W, umvetor viés b, e um vetor de saída a[9]. Assim, na rede mostrada abaixo (Figura 2.12) háentradas R1, neurônios S1 na primeira camada, neurônios S2 na segunda camada, etc.Ou seja, é comum para as camadas diferentes de ter diferentes números de neurônios.

Pode-se observar na que uma constante de entrada 1 é alimentada para o viés de cadaneurônio e que as saídas de cada camada intermediária são as entradas para a camadaseguinte. Assim, a camada 2 pode ser analisada como uma rede de uma camada comentradas S1, neurônios S2 e uma matriz de peso W2 de S2 por S1. Logo, a entrada paraa camada 2 é A1 e a saída é A2.

As camadas de uma rede multicamadas têm papéis diferentes. Uma camada que pro-

13

Page 25: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Figura 2.12: Rede neural com múltiplas camadas de neurônios [9]

duz a saída de rede é denominada uma camada de saída. E todas as outras camadas sãochamadas de camadas ocultas.

Assim, como a rede anterior, a rede de múltiplas camadas também pode ser represen-tada pela notação abreviada (Figura 2.13).

Figura 2.13: Notação abreviada de uma rede neural com múltiplas camadas de neurônios[9]

14

Page 26: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

2.1.7 Fluxo de Trabalho

Quando se deseja implementar redes neurais, o fluxo de trabalho para o processo dedesenvolvimento tem sete passos:

• Levantar dados

• Criar a rede

• Configurar a rede

• Inicializar os pesos e vieses

• Treinar a rede

• Validar a rede (análise pós-treino)

• Utilizar a rede

Os dados geralmente são coletados fora do framework da rede neural que, depois decriada, precisa ser configurada e treinada. A configuração involve modelar a rede para quefique compatível com o problema que se quer resolver, como definido por dados amostrais.

Depois de configurada, os parâmetros da rede chamados pesos e vieses precisam serajustados, para que a performance da rede seja otimizada. Esse processo de ajuste éreferenciado como treinamento da rede.

Tanto a configuração quanto o treino requerem que a rede receba dados de exemplo.

2.1.8 Preparação de dados

Antes de iniciar o processo de design de rede, primeiro deve-se recolher e preparardados de amostra. Logo, uma rede só pode ser tão precisa quanto os dados que sãousadas para treinar a rede. Assim, é importante que os dados cubram a gama de entradaspara as quais será utilizada a rede.

Redes multicamadas podem ser treinadas para generalizar bem dentro da faixa deentradas para os quais eles foram treinadas. No entanto, elas não têm a capacidade deextrapolar com exatidão para além desta gama, por isso, é importante que os dados detreinamento abranjam toda a gama do espaço de entrada.

Depois que os dados foram coletados, há duas etapas que precisam ser executadas antesque os dados sejam usados para treinar a rede: os dados precisam ser pré-processados, eeles precisam ser divididos em sub-grupos (ou subsets).

15

Page 27: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Funções de processamento de entrada e saída

Funções de processamento de entrada transformam os dados de entrada do usuárionuma forma que seja mais fácil ou mais eficiente para a rede neural. Isso pode acelerar aaprendizagem para muitas redes.

Já funções de processamento de saída são usadas para transformar vetores alvos dadospelo usuário para serem usadas na rede neural.

Divisão de dados

Ao treinar redes multicamadas, geralmente primeiro se divide os dados em três subgru-pos para a otimização do treinamento. O primeiro subgrupo é o grupo de treinamento,que é usado para calcular o gradiente e atualizar os pesos e vieses da rede, o segundosubgrupo é o grupo de validação e o terceiro subgrupo é o grupo de teste.

O erro no conjunto de validação é monitorado durante o processo de treinamento.Este erro normalmente diminui durante a fase inicial de treinamento, assim como o errodo conjunto de treinamento. No entanto, quando a rede começa a reajustar os dados, oerro no grupo de validação tipicamente começa a subir.

Já o erro conjunto de teste não é utilizado durante o treinamento, mas é usado paracomparar modelos diferentes. E também é útil para traçar o erro do conjunto de testedurante o processo de treinamento. Se o erro no conjunto de teste atinge um mínimo emum número de iteração significativamente diferente do que o erro conjunto de validação,isso pode indicar uma má divisão do conjunto de dados.

Existem funções para fazer a divisão de dados em grupos de treinamento, validaçãoe teste, porém, a divisão de dados normalmente é realizado automaticamente quandose treina a rede. A função de divisão é acessada automaticamente sempre que a rede étreinada, e é usado para dividir os dados em subgrupos treinamento, validação e de testes.

2.2 Classificação de padrõesUm dos inúmeros possíveis usos para redes neurais é a classificação de padrões, o ato

de pegar dados brutos e realizar uma ação baseada na categoria do padrão [12]. Antes defalar de Classificação de Padrões é interessante comentar a existência de vários tipos depadrões, como exemplo: padrões visuais, temporais e lógicos. De forma genérica pode-seafirmar que encontramos reconhecimento de padrões em todas atividades inteligentes.

A tarefa de reconhecer padrões utilizando redes neurais artificiais não é algo trivialcomo ocorre para seres humanos. Para um computador faz-se necessário o uso de algorit-mos e fórmulas.

16

Page 28: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

2.2.1 Percepção de máquina

É natural que devamos procurar projetar e construir máquinas que possam reconhecerpadrões [12]. Do reconhecimento automatizado de fala, identificação de impressões di-gitais, reconhecimento de caracteres ópticos, identificação de seqüência de DNA e muitomais, é claro que um reconhecimento de padrão confiável e preciso por máquina seriaimensamente útil. Além disso, ao resolver a miríade de problemas necessários para cons-truir esses sistemas, obtemos uma compreensão e apreciação mais profunda dos sistemasde reconhecimento de padrões no mundo natural - sobretudo nos seres humanos. Paraalgumas aplicações, como a fala e o reconhecimento visual, nossos esforços de design po-dem, de fato, ser influenciados pelo conhecimento de como estes são resolvidos, tanto naárea de desenvolvimento como no próprio hardware de uso especial.

2.2.2 Matriz de confusão

Quando analisamos os erros que podem surgir na classificação de padrões podemosutilizar, além dos gráficos, a matriz de confusão (Figura 2.14).

Figura 2.14: Matriz de confusão

No campo do machine learning, uma matriz de confusão, também conhecida comouma matriz de erro, é um layout de tabela específico que permite a visualização do de-sempenho de um algoritmo. O nome deriva do fato de que ela facilita ver se o sistemaestá confundindo duas classes (isto é, se está classificando um como o outro). Ao analisar-mos uma matriz, cada coluna da matriz representa as instâncias de uma classe previstaenquanto cada linha representa as instâncias em uma classe real (ou vice-versa).

Assim, na análise preditiva, uma matriz de confusão, é uma tabela com duas linhase duas colunas que informa o número de falsos positivos, falsos negativos, verdadeirospositivos e verdadeiros negativos. Isto permite uma análise mais detalhada do que a mera

17

Page 29: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

proporção de acertos (precisão), já que a precisão não é uma métrica de confiança para odesempenho real de um classificador, uma vez que irá produzir resultados enganosos se oconjunto de dados é desequilibrado (isto é, quando o número de amostras em diferentesclasses variar demais).

2.3 Plataforma Intel® Galileo

2.3.1 Placa Intel® Galileo Geração 2

A placa Intel® Galileo de segunda geração (Figura 2.15) oferece um controlador deplaca única para a comunidade de criadores, estudantes e desenvolvedores profissionais.Baseada no Intel® QuarkTM SoC X1000, um sistema de classe 32-bit Intel® Pentiumnum chip (SoC), o processador Intel® genuíno e capacidades I/O nativas da placa Intel®Galileo (Gen 2) fornece uma oferta completa para uma ampla gama de aplicações. Cer-tificada Arduino e desenhada para ser hardware-, software- e pino-compatível com umaampla gama de shields Arduino Uno R3, a placa Intel® Galileo geração 2 também ofe-rece um ambiente de desenvolvimento mais simples e mais custo-efetivo comparado comdesigns baseados em processadores Intel® Atom e Intel® Core. Na Figura 2.16 temos asespecificações da placa [8] e os esquemáticos da mesma podem ser encontrados no site daprópria Intel®.

Figura 2.15: Placa Intel® Galileo Geração 2

18

Page 30: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Figura 2.16: Especificações da Placa Intel® Galileo Geração 2

19

Page 31: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Capítulo 3

Metodologia Proposta

Neste capítulo é apresentado o método proposto para a solução do problema.

3.1 ProjetoPara que fosse possível determinar o gasto energético da placa Intel® Galileo Geração

2 no treinamento de Redes Neurais foi elaborado um projeto com as seguintes etapas:

• Determinação do objetivo da rede neural

• Projeto da arquitetura do sistema

• Elaboração do código

• Realização dos testes e coleta de dados

• Análise de resultados

Foi determinado que o objetivo da rede neural seria a classificação de padrões e foiusado o exemplo da flor Iris introduzido pelo estatístico e biólogo britânico Ronald Fisherno seu artigo The use of multiple measurements in taxonomic problems em 1936 [5].

3.1.1 Conjunto de dados Iris

O conjunto de dados Iris consiste em 50 amostras de cada uma das três espéciesda flor Iris (Iris setosa, Iris virginica and Iris versicolor) [5]. Foram medidas quatrocaracterísticas de cada amostra: o comprimento e a largura das sépalas e pétalas, emcentimetros. Com base na combinação destas quatro características, Fisher desenvolveuum modelo discriminante linear para distinguir as espécies umas das outras. Na TabelaI.1 do Anexo 1 temos o conjunto de dados Iris e nas Figuras 3.1a, 3.1b e 3.1c temos cadauma das espécies.

20

Page 32: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

(a) Iris setosa

(b) Iris virginica

(c) Iris versicolor

Figura 3.1: Espécies de Iris

21

Page 33: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

3.2 Algoritmo de treinamento

Figura 3.2: Rede Neural com 4 entradas e 2 camadas

A rede neural utilizada no projeto foi desenhada para ter 4 entradas e 2 camadas,sendo que o número de neurônios na camada escondida e na camada de saída variam deacordo com o teste realizado (Figura 3.2).

O algoritmo de treinamento escolhido para a rede neural foi o backpropagation, queconsiste basicamente de duas etapas [7]:

• Propagação do sinal para frente ou Feed Forward. Nesta etapa, um vetor-coluna éaplicado à camada de entrada da rede e seus efeitos são propagados até a saídas darede, produzido como resposta um número real no caso de um único neurônio nacamada de saída, ou um conjunto de números reais no caso da rede neural apresentarum conjunto de neurônios na camada de saída. Durante a propagação, os valoresdas sinapses e dos vieses são mantidos constantes.

• Retropropagação do erro para trás ou Backpropagation. Um sinal de erro é obtidoatravés da subtração entre a resposta real e a resposta desejada. Este sinal é entãopropagado para trás, realizando o ajuste dos valores sinápticos e viés de maneiraque a resposta real da rede se aproxime da resposta desejada.

22

Page 34: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

3.2.1 Feed Forward

Figura 3.3: Rede Neural com uma camada de entrada, uma camada escondida e umacamada de saída [16]

Para a rede da Figura 3.3, a propagação se inicia com o cálculo do chamado campolocal induzido uj(m) para cada neurônio j da camada oculta segundo a Equação 3.1, ondexi(m) é o elemento i do sinal de entrada na iteração m, wij(m) é o valor da sinapse quevem do elemento i da camada de entrada para o neurônio j da camada oculta e R1 é onúmero de elementos do vetor de entradas [?].

uj(m) =R1∑i=0

wij(m)xi(m) (3.1)

Se i=0 então x0(m)=+1 e wj0 = bj(m), onde bj(m) é o viés do neurônio j da camadaoculta, cuja saída é dada pela Equação 3.2, onde fj é a função de transferência do neurônioj.

vj(m) = fj(uj(m)) (3.2)

De maneira similar àquela apresentada na Equação 3.1 o campo local induzido para oneurônio k da camada de saída é dado pela Equação 3.3 onde vj(m) é a saída do neurônioj da camada oculta na iteração m, wkj é o valor da sinapse que vem do neurônio j dacamada oculta para o neurônio k da camada de saída e R2 é o número de neurônios dacamada oculta.

uk(m) =R2∑j=0

wkj(m)vj(m) (3.3)

23

Page 35: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Se j=0 então v0(m)=+1 e wk0 = bk(m), onde bk(m) é o viés do neurônio k da camadade saída, cuja saída é dada pela Equação 3.4 onde fk é a função de transferência doneurônio k.

vk(m) = fk(uk(m)) (3.4)

Com o cálculo de vk(m), a primeira etapa foi concluída, que é processo de propagaçãodo sinal, restando agora realizar a segunda etapa, que é a retropropagação do erro e,consequentemente, realizar ajustes das sinapses e viés.

3.2.2 BackPropagation

O erro ek(m) é calculado através da subtração do resultado esperado tk(m) pelo re-sultado obtido pelo processo de propagação do sinal vk(m), conforme pode ser visto naEquação 3.5 [7].

ek(m) = tk(m)− vk(m) (3.5)

Calculado o erro ek(m), agora é necessário retropropagá-lo ajustando as sinapses eviés da rede. O primeiro passo para realizar a retropropagação dos erros é calcular osgradientes [13] locais para cada neurônio.

Para cada neurônio da camada de saída os gradientes são dados pela Equação 3.6 epara cada neurônio da camada escondida os gradientes são dados pela Equação 3.7, ondeR3 é a quantidade de neurônios da camada de saída.

δk(m) = f ′k(vk(m))ek(m) (3.6)

δj(m) = f ′j(vj(m))

R3∑k=1

δk(m)wkj(m) (3.7)

Uma vez calculados os gradientes locais, estes são utilizados para calcular a atualizaçãodas sinapses e viés. A atualização dos valores das sinapses que ligam os neurônios dacamada escondida aos neurônios da camada de saída é realizada segundo a Equação 3.8e, similarmente, a atualização das sinapses que ligam os sinais da camada de entrada aosneurônios da camada escondida é dada pela Equação 3.9.

wkj(m+ 1) = wkj(m) + ηvj(m)δk(m) (3.8)

wji(m+ 1) = wji(m) + ηxi(m)δj(m) (3.9)

24

Page 36: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Finalmente, os vieses da camada escondida e da camada oculta são atualizados, res-pectivamente, pelas Equações 3.10 e 3.11.

bk(m+ 1) = bk(m) + ηδk(m) (3.10)

bj(m+ 1) = bj(m) + ηδj(m) (3.11)

O termo η é a taxa de aprendizagem e f ′(∗) é a diferenciação em relação ao argu-mento. Para que a rede neural melhore sua performance é necessário que vários conjuntosde entradas padrão sejam inseridos na camada de entrada e que a propagação e a retro-propagação ocorram diversas vezes. Por fim, um critério de parada deve ser criado, vistoque o resultado ótimo pode não ser encontrado. Um exemplo de critério de parada é, porexemplo, quando a taxa absoluta da variação do erro médio quadrático para um conjuntode padrões de entrada ter alcançado um valor mínimo desejado.

3.3 CódigoNo Apêndice A temos o código utilizado pela placa Intel® Galileo Geração 2 para o

treinamento da rede neural classificadora do conjunto de dados Iris. O código foi inicial-mente escrito em C e adaptado para C-Arduíno com base nas notas de aula disponibiliza-das pelo Prof. Alexandre Zaghetto [2] e utiliza o algoritmo de Backpropagation descritoanteriormente.

3.4 TestesPara que fosse possível obter os dados foram realizados 4 testes individuais utilizando

uma bateria 9V em cada. Os testes consistem no treinamento de redes neurais na placaIntel® Galileo Geração 2, todas com o objetivo de classificar o conjunto de dados Iris.Durante os testes são obtidos os seguintes dados: voltagem inicial da bateria, correnteinicial, corrente durante o teste, tempo de duração da bateria e quantidades de épocascalculadas. Os testes finalizavam quando cada bateria esgotava.

25

Page 37: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Capítulo 4

Resultados Experimentais

Neste capítulo são apresentados os resultados experimentais observados a partir do métodoproposto no capítulo anterior.

4.1 Análise de resultadosOs resultados da primeira fase de testes foram obtidos através dos testes descritos no

capítulo anterior.Os testes ocorreram sem intercorrências. O primeiro teste foi realizado com 10 neurô-

nios e decorreu ao longo de 5 min, calculando 67 épocas. A corrente medida ao longo doteste foi de 4,1 a 5,2 mA. O segundo teste foi realizado com 20 neurônios e decorreu aolongo de 8 min, calculando 62 épocas. A corrente medida ao longo do teste foi de 4,3 a5,8 mA. O terceiro teste foi realizado com 40 neurônios e decorreu ao longo de 10min,calculando 43 épocas. A corrente medida ao longo do teste foi de 4,2 a 5,8 mA. O quartoteste foi realizado com 80 neurônios e decorreu ao longo de 16min, calculando 29 épocas.A corrente medida ao longo do teste foi de 4,1 a 5,7 mA.

Após essa primeira fase de testes foi percebido que o multímetro estava interferindonos resultados obtidos, assim foi realizada uma nova fase de testes sem o multímetro ondefoi medido apenas o tempo e a quantidades de épocas calculadas, os resultados obtidosencontram-se na Tabela 4.1 a seguir:

10 neurônios 40 neurônios 80 neurônios 160 neurôniosTempo (min) 19 20 23 19Épocas 264 85 51 19

Tabela 4.1: Valores obtidos na segunda fase de testes

26

Page 38: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Ao longo dessa segunda fase de testes foi observado que, embora o tempo de duraçãoda bateria fosse praticamente o mesmo, quanto maior a quantidade de neurônios menorera o seu poder de processamento pois a rede neural calculava menos épocas, Figura 4.1.

Figura 4.1: Gráfico Neurônios x Épocas e Neurônios x Tempo

Abaixo, temos também, as matrizes de confusão (Tabelas 4.2, 4.3, 4.4, 4.5), o valorde acurácia (ACC) obtidos ao final de cada teste e o gráfico de acurácia (Figura 4.2).A acurácia foi calculada somando os valores da diagonal principal da matriz e dividindoo resultado por 75, o número de amostras utilizada na validação da rede neural. Valeexplicar que existe uma quarta classe não mostrada nas matrizes: a dos dados que foramclassificados como uma classe não existente.

27

Page 39: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Condição verdadeiraIris setosa Iris versicolor Iris virginica

Condição prevista Iris setosa 25 0 0Iris versicolor 0 20 0Iris virginica 0 4 25

Tabela 4.2: Matriz de confusão para 10 neurônios. ACC = 0,9333.

Condição verdadeiraIris setosa Iris versicolor Iris virginica

Condição prevista Iris setosa 25 0 0Iris versicolor 0 4 0Iris virginica 0 4 25

Tabela 4.3: Matriz de confusão para 40 neurônios. ACC = 0,7200.

Condição verdadeiraIris setosa Iris versicolor Iris virginica

Condição prevista Iris setosa 25 0 0Iris versicolor 0 13 14Iris virginica 0 10 10

Tabela 4.4: Matriz de confusão para 80 neurônios. ACC = 0,6400.

Condição verdadeiraIris setosa Iris versicolor Iris virginica

Condição prevista Iris setosa 0 0 0Iris versicolor 0 25 25Iris virginica 0 0 0

Tabela 4.5: Matriz de confusão para 160 neurônios. ACC = 0,3333.

28

Page 40: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Figura 4.2: Gráfico Neurônios x ACC

29

Page 41: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Capítulo 5

Conclusões e Trabalhos Futuros

Recentemente redes neurais se mostraram a solução para muitas aplicações computa-cionais, porém o processamento de uma rede neural demanda num alto gasto energéticodevida a sua alta complexidade computacional. Como resultado aparelhos que utilizambateria como fonte de alimentação não podem custear redes neurais complexas devidoa seu limitado orçamento energético [14]. Com isso em mente, espera-se que conformeaumentamos a complexidade de uma rede neural, o gasto energético da mesma aumentepois a rede estaria demandando mais energia da fonte energética.

Porém, pode-se concluir a partir dos resultados experimentais obtidos que, quandoutilizada redes neurais para classificação de padrões na placa Intel® Galileo Geração 2com baterias 9V, o tempo de duração da bateria foi praticamente o mesmo para todosos teste, o que mostra que conforme aumentamos o número de neurônios, ou seja, au-mentamos a complexidade da rede, a placa não utilizou mais energia da bateria. Apesardisso, foi possível observar que conforme aumentamos o número de neurônios o númerode épocas calculadas reduziu e consequentemente a acurácia também reduziu. Com essaconclusão é possível deduzir a seguinte fórmula para o custo da placa (equação 5.1):

Custo = En×NEp

(5.1)

Onde, En = Energia, N = Número de neurônios, Ep = Número de épocas calculadas.Assim, observa-se que a placa Intel® Galileo Geração 2 é capaz de compensar o gasto

energético através de algum circuito interno gerenciador de energia, o que mostra quea placa é uma boa ferramenta para aqueles que buscam utilizar redes neurais em suasaplicações sem se preocupar com o gasto energético.

30

Page 42: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

5.1 Trabalhos FuturosDentre os possíveis trabalhos futuros estão:

• A realização de mais testes com redes neurais realizando tarefas diferentes

• A elevação da regra ao limite, ou seja, aumentar o número de neurônios até que sejapossível verificar um aumento do gasto energético

• A realização de testes com placas diferentes

31

Page 43: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Referências

[1] Jianchang Mao Anil K. Jain e KM Mohiuddin. Artificial neural networks: A tutorial.1996. 11

[2] L. P. Calôba. Notas de aula: Redes Neurais Artificiais. CT/DEL/UFRJ, Rio deJaneiro, 2001. 25

[3] Leandro Nunes de Castro Silva. Análise e síntese de estratégias de aprendizado pararedes neurais artificiais, 1998. 2

[4] Marco Antonio Ferreira Finocchio. Noções de redes neurais artificiais, 2014. 1, 2

[5] R. A. Fisher. The use of multiple measurements in taxonomic problems. 1936. 20

[6] J. S. Griffith. Mathematical Neurobiology: An Introduction to the Mathematics ofthe Nervous System. Academic Press, London and New York, 1971. 1

[7] Simon Haykin. Neural Networks: A Comprehensive Foundation. Prentice Hall, USA,1999. vi, ix, 4, 5, 6, 10, 11, 22, 24

[8] Intel. Documentação da placa intel galileo. 18

[9] Martin T. Hagan Mark Hudson Beale e Howard B. Demuth. Matlab: Neural networktoolbox user’s guide, 2016. ix, 7, 8, 9, 12, 13, 14

[10] Mark H. Beale Martin T. Hagan, Howard B. Demuth e Orlando De Jesús. Neuralnetwork design. PWS publishing company, Boston, 1996. 11

[11] Dan W. Patterson. Artificial neural networks: theory and applications. Prentice HallPTR, 1998. 11

[12] Peter E. Hart Richard O. Duda e David G. Stork. Pattern Classification. Wiley,USA, 2001. 16, 17

[13] James Stewart. Calculus: early transcendentals. Cengage Learning, 2015. 24

[14] Vivienne Sze Tien-Ju Yang, Yu-Hsin Chen. Designing energy-efficient convolutionalneural networks using energy-aware pruning, 2017. 2, 30

[15] Alexandre Zaghetto. Codificação de imagens médicas usando imposição da razãosinal/ruído local mínima, 2004. 1

32

Page 44: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

[16] Cauê Zaghetto. Detecção do mal-posicionamento rotacional de dedos em dispositi-vos de captura de impressões digitais multivista sem toque utilizando redes neuraisartificiais, 2016. ix, 11, 23

33

Page 45: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Apêndice A

Código utilizado no projeto

#include <SD.h>

#include <math.h>

#define NINPUT 4

#define NHIDDEN 10

#define NOUTPUT 3

#define ALFA 0.100000

double tgh (double);

double lin (double);

double sig (double);

double dtgh (double);

double dlin (double);

double dsig (double);

File myFile, myFile2;

int led = 13;

void setup() {

int i, j, tam, k;

int epoca = 0;

char c = ’ ’;

char str[20];

34

Page 46: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

double aux, temp;

double *x, *y, *y_;

double *u, *v;

double *e;

double *b;

double *delta_b;

double *g;

double *d;

double alfa;

double um = 1;

int nInput;

int nHidden;

int nOutput;

pinMode(led, OUTPUT);

// Abre comunicacoes serial e espera a porta abrir:

Serial.begin(9600);

while (!Serial) {

; // espera a porta serial conectar

}

Serial.print("Initializing SD card...");

if (!SD.begin(4)) {

Serial.println("Initialization failed!");

return;

}

Serial.println("Initialization done.");

myFile = SD.open("inputTarget.txt", FILE_READ);

if (myFile) {

nInput = NINPUT;

nHidden = NHIDDEN;

nOutput = NOUTPUT;

35

Page 47: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

//---------- inicializar alfa

alfa = ALFA;

x = (double *)calloc(nInput, sizeof(double)); //input

y = (double *)calloc(nOutput, sizeof(double)); //target

y_ = (double *)calloc(nOutput, sizeof(double));

e = (double *)calloc(nOutput, sizeof(double));

u = (double *)calloc((nHidden+nOutput), sizeof(double));

v = (double *)calloc((nHidden+nOutput), sizeof(double));

b = (double *)calloc((nHidden+nOutput), sizeof(double)); //bias

delta_b = (double *)calloc((nHidden+nOutput), sizeof(double)); //delta bias

g = (double *)calloc((nHidden+nOutput), sizeof(double)); //g

d = (double *)calloc((nHidden+nOutput), sizeof(double)); //delta

//---------- pesos hidden layer

double **wh;

wh = (double **)malloc(nInput*sizeof(double *));

for (i=0; i<nInput; i++)

wh[i] = (double *)malloc(nHidden*sizeof(double));

//---------- pesos output layer

double **wo;

wo = (double **)malloc(nHidden*sizeof(double *));

for (i=0; i<nHidden; i++)

wo[i] = (double *)malloc(nOutput*sizeof(double));

//---------- delta pesos hidden layer

double **delta_wh;

delta_wh = (double **)malloc(nInput*sizeof(double *));

for (i=0; i<nInput; i++)

delta_wh[i] = (double *)malloc(nHidden*sizeof(double));

//---------- delta pesos output layer

double **delta_wo;

delta_wo = (double **)malloc(nHidden*sizeof(double *));

for (i=0; i<nHidden; i++)

36

Page 48: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

delta_wo[i] = (double *)malloc(nOutput*sizeof(double));

//---------- inicializar bias

for (i=0; i<nHidden+nOutput; i++) {

b[i] = ((double)(rand()%201+(-100)))/100;

while (b[i] == 0) b[i] = ((double)(rand()%201+(-100)))/100;

}

//---------- inicializar pesos

for (i=0; i<nInput; i++) {

for (j=0; j<nHidden; j++) {

wh[i][j] = ((double)(rand()%201+(-100)))/100;

while (wh[i][j] == 0) wh[i][j] = ((double)(rand()%201+(-100)))/100;

}

}

for (i=0; i<nHidden; i++) {

for (j=0; j<nOutput; j++) {

wo[i][j] = ((double)(rand()%201+(-100)))/100;

while (wo[i][j] == 0) wo[i][j] = ((double)(rand()%201+(-100)))/100;

}

}

//---------- input targets

tam = myFile.parseInt();

double **it;

it = (double **)malloc((tam)*sizeof(double *));

for (i=0; i<tam; i++)

it[i] = (double *)malloc((nInput+nOutput)*sizeof(double));

for (i=0; i<tam; i++) {

for (j=0; j<(nInput+nOutput); j++) {

temp = myFile.parseFloat();

it[i][j] = temp;

}

}

digitalWrite(led, HIGH);

delay(10);

37

Page 49: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

while (epoca<100000) { //10000 epocas

for (k=0; k<tam; k++) {

for (j=0; j<nInput; j++) {

x[j]=it[k][j];

}

for (i=0; i<nOutput; i++) {

y[i]=it[k][i+nInput];

}

//------------------ feed forward --------------------

//------------------ hidden layer --------------------

for (i=0; i<nHidden; i++) {

u[i] = um*b[i];

}

for (j=0; j<nInput; j++) {

for (i=0; i<nHidden; i++) {

u[i] = u[i] + wh[j][i]*x[j];

}

}

for (i=0; i<nHidden; i++) {

v[i] = sig(u[i]);

}

//------------------ output layer --------------------

for (i=0; i<nOutput; i++) {

u[i+nHidden] = um*b[i+nHidden];

}

for (j=0; j<nHidden; j++) {

for (i=0; i<nOutput; i++) {

u[i+nHidden] = u[i+nHidden] + wo[j][i]*v[j];

}

}

for (i=0; i<nOutput; i++) {

v[i+nHidden] = sig(u[i+nHidden]);

38

Page 50: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

}

//----------- saida

for (i=0; i<nOutput; i++) {

y_[i] = v[i+nHidden];

}

//----------- erro

for (i=0; i<nOutput; i++) {

e[i] = y[i]-y_[i];

}

//------------------ backpropagation ------------------

for (j=0; j<nHidden; j++) {

g[j] = dsig(v[j]);

}

for (j=0; j<nOutput; j++) {

g[j+nHidden] = dsig(v[j+nHidden]);

}

//------------------ delta ----------------------------

//------------------ output layer ---------------------

for (i=0; i<nOutput; i++) {

d[i+nHidden] = e[i]*g[i+nHidden];

}

//------------------ hidden layer ---------------------

for (j=0; j<nOutput; j++) {

for (i=0; i<nHidden; i++) {

d[i] = d[i] + d[j+nHidden]*wo[i][j];

}

}

for (i=0; i<nHidden; i++) {

d[i] = d[i]*g[i];

}

//----------- atualizacao das sinapses ----------------

//---------------------- bias -------------------------

for (i=0; i<nHidden+nOutput; i++) {

39

Page 51: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

delta_b[i] = 2*alfa*um*d[i];

b[i] = b[i]+delta_b[i];

}

//------------------ pesos hidden layer ---------------

for (i=0; i<nHidden; i++) {

for (j=0; j<nInput; j++) {

delta_wh[j][i] = 2*alfa*x[j]*d[i];

wh[j][i] = wh[j][i]+delta_wh[j][i];

}

}

//------------------ pesos output layer ---------------

for (i=0; i<nHidden; i++) {

for (j=0; j<nOutput; j++) {

delta_wo[i][j] = 2*alfa*v[i]*d[j+nHidden];

wo[i][j] = wo[i][j]+delta_wo[i][j];

}

}

//------------------ imprime bias pesos ---------------

Serial.print("\nepoca ");

Serial.print(epoca);

Serial.print("\ntest ");

Serial.print(k);

Serial.print("\nbias\n");

for (i=0; i<nHidden+nOutput; i++) {

Serial.print(b[i],6);

Serial.print("\n");

}

Serial.print("\npesos hidden\n");

for (i=0; i<nInput; i++) {

for (j=0; j<nHidden; j++) {

40

Page 52: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Serial.print(wh[i][j],6);

Serial.print("\n");

}

}

Serial.print("\npesos output\n");

for (i=0; i<nHidden; i++) {

for (j=0; j<nOutput; j++) {

Serial.print(wo[i][j],6);

Serial.print("\n");

}

}

}

epoca++;

}

digitalWrite(led, LOW);

delay(10);

// Fecha o arquivo:

myFile.close();

} else {

// Se o arquivo nao abrir, imprime um erro:

Serial.println("Error opening inputTarget.txt");

}

return;

}

double tgh (double x){

double y;

y = 2/(1+exp(-2*x))-1;

return y;

}

double lin (double x){

double y;

41

Page 53: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

y = x;

return y;

}

double sig (double x){

double y;

y = 1/(1+exp(-x));

return y;

}

double dtgh (double x){

double y;

y = 1-x*x;

return y;

}

double dlin (double x){

double y;

y = 1;

return y;

}

double dsig (double x){

double y;

y = x*(1-x);

return y;

}

void loop() {

}

42

Page 54: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

Anexo I

Tabela de valores do conjunto dedados Iris

Sepal length Sepal width Petal length Petal width Species4.3 3.0 1.1 0.1 I.setosa4.4 2.9 1.4 0.2 I.setosa4.4 3.0 1.3 0.2 I.setosa4.4 3.2 1.3 0.2 I.setosa4.5 2.3 1.3 0.3 I.setosa4.6 3.1 1.5 0.2 I.setosa4.6 3.4 1.4 0.3 I.setosa4.6 3.6 1.0 0.2 I.setosa4.6 3.2 1.4 0.2 I.setosa4.7 3.2 1.3 0.2 I.setosa4.7 3.2 1.6 0.2 I.setosa4.8 3.4 1.6 0.2 I.setosa4.8 3.0 1.4 0.1 I.setosa4.8 3.4 1.9 0.2 I.setosa4.8 3.1 1.6 0.2 I.setosa4.8 3.0 1.4 0.3 I.setosa4.9 3.0 1.4 0.2 I.setosa4.9 3.1 1.5 0.1 I.setosa4.9 3.1 1.5 0.2 I.setosa4.9 3.6 1.4 0.1 I.setosa4.9 2.4 3.3 1.0 I.versicolor4.9 2.5 4.5 1.7 I.virginica

43

Page 55: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

5.0 3.6 1.4 0.3 I.setosa5.0 3.4 1.5 0.2 I.setosa5.0 3.0 1.6 0.2 I.setosa5.0 3.4 1.6 0.4 I.setosa5.0 3.2 1.2 0.2 I.setosa5.0 3.5 1.3 0.3 I.setosa5.0 3.5 1.6 0.6 I.setosa5.0 3.3 1.4 0.2 I.setosa5.0 2.0 3.5 1.0 I.versicolor5.0 2.3 3.3 1.0 I.versicolor5.1 3.5 1.4 0.3 I.setosa5.1 3.8 1.5 0.3 I.setosa5.1 3.7 1.5 0.4 I.setosa5.1 3.3 1.7 0.5 I.setosa5.1 3.4 1.5 0.2 I.setosa5.1 3.8 1.9 0.4 I.setosa5.1 3.8 1.6 0.2 I.setosa5.1 2.5 3.0 1.1 I.versicolor5.2 3.5 1.4 0.2 I.setosa5.2 3.5 1.5 0.2 I.setosa5.2 3.4 1.4 0.2 I.setosa5.2 4.1 1.5 0.1 I.setosa5.2 2.7 3.9 1.4 I.versicolor5.3 3.7 1.5 0.2 I.setosa5.4 3.9 1.7 0.4 I.setosa5.4 3.7 1.5 0.2 I.setosa5.4 3.9 1.3 0.4 I.setosa5.4 3.4 1.7 0.2 I.setosa5.4 3.4 1.5 0.4 I.setosa5.4 3.0 4.5 1.5 I.versicolor5.5 4.2 1.4 0.2 I.setosa5.5 3.5 1.3 0.2 I.setosa5.5 2.3 4.0 1.3 I.versicolor5.5 2.4 3.8 1.1 I.versicolor5.5 2.4 3.7 1.0 I.versicolor

44

Page 56: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

5.5 2.5 4.0 1.3 I.versicolor5.5 2.6 4.4 1.2 I.versicolor5.6 2.9 3.6 1.3 I.versicolor5.6 3.0 4.5 1.5 I.versicolor5.6 2.5 3.9 1.1 I.versicolor5.6 3.0 4.1 1.3 I.versicolor5.6 2.7 4.2 1.3 I.versicolor5.6 2.8 4.9 2.0 I.virginica5.7 4.4 1.5 0.4 I.setosa5.7 3.8 1.7 0.3 I.setosa5.7 2.8 4.5 1.3 I.versicolor5.7 2.6 3.5 1.0 I.versicolor5.7 3.0 4.2 1.2 I.versicolor5.7 2.9 4.2 1.3 I.versicolor5.7 2.8 4.1 1.3 I.versicolor5.7 2.5 5.0 2.0 I.virginica5.8 4.0 1.2 0.2 I.setosa5.8 2.7 4.1 1.0 I.versicolor5.8 2.7 3.9 1.2 I.versicolor5.8 2.6 4.0 1.2 I.versicolor5.8 2.7 5.1 1.9 I.virginica5.8 2.8 5.1 2.4 I.virginica5.8 2.7 5.1 1.9 I.virginica5.9 3.0 4.2 1.5 I.versicolor5.9 3.2 4.8 1.8 I.versicolor5.9 3.0 5.1 1.8 I.virginica6.0 2.2 4.0 1.0 I.versicolor6.0 2.9 4.5 1.5 I.versicolor6.0 2.7 5.1 1.6 I.versicolor6.0 3.4 4.5 1.6 I.versicolor6.0 2.2 5.0 1.5 I.virginica6.0 3.0 4.8 1.8 I.virginica6.1 2.9 4.7 1.4 I.versicolor6.1 2.8 4.0 1.3 I.versicolor6.1 2.8 4.7 1.2 I.versicolor

45

Page 57: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

6.1 3.0 4.6 1.4 I.versicolor6.1 3.0 4.9 1.8 I.virginica6.1 2.6 5.6 1.4 I.virginica6.2 2.2 4.5 1.5 I.versicolor6.2 2.9 4.3 1.3 I.versicolor6.2 2.8 4.8 1.8 I.virginica6.2 3.4 5.4 2.3 I.virginica6.3 3.3 4.7 1.6 I.versicolor6.3 2.5 4.9 1.5 I.versicolor6.3 2.3 4.4 1.3 I.versicolor6.3 3.3 6.0 2.5 I.virginica6.3 2.9 5.6 1.8 I.virginica6.3 2.7 4.9 1.8 I.virginica6.3 2.8 5.1 1.5 I.virginica6.3 3.4 5.6 2.4 I.virginica6.3 2.5 5.0 1.9 I.virginica6.4 3.2 4.5 1.5 I.versicolor6.4 2.9 4.3 1.3 I.versicolor6.4 2.7 5.3 1.9 I.virginica6.4 3.2 5.3 2.3 I.virginica6.4 2.8 5.6 2.1 I.virginica6.4 2.8 5.6 2.2 I.virginica6.4 3.1 5.5 1.8 I.virginica6.5 2.8 4.6 1.5 I.versicolor6.5 3.0 5.8 2.2 I.virginica6.5 3.2 5.1 2.0 I.virginica6.5 3.0 5.5 1.8 I.virginica6.5 3.0 5.2 2.0 I.virginica6.6 2.9 4.6 1.3 I.versicolor6.6 3.0 4.4 1.4 I.versicolor6.7 3.1 4.4 1.4 I.versicolor6.7 3.0 5.0 1.7 I.versicolor6.7 3.1 4.7 1.5 I.versicolor6.7 2.5 5.8 1.8 I.virginica6.7 3.3 5.7 2.1 I.virginica

46

Page 58: AvaliaçãodoDesempenhodaplataformaIntel … · 2018. 5. 28. · das sinapses no cérebro se altera em resposta à experiência. Em particular, ... o uso de redes neurais oferece

6.7 3.1 5.6 2.4 I.virginica6.7 3.3 5.7 2.5 I.virginica6.7 3.0 5.2 2.3 I.virginica6.8 2.8 4.8 1.4 I.versicolor6.8 3.0 5.5 2.1 I.virginica6.8 3.2 5.9 2.3 I.virginica6.9 3.1 4.9 1.5 I.versicolor6.9 3.2 5.7 2.3 I.virginica6.9 3.1 5.4 2.1 I.virginica6.9 3.1 5.1 2.3 I.virginica7.0 3.2 4.7 1.4 I.versicolor7.1 3.0 5.9 2.1 I.virginica7.2 3.6 6.1 2.5 I.virginica7.2 3.2 6.0 1.8 I.virginica7.2 3.0 5.8 1.6 I.virginica7.3 2.9 6.3 1.8 I.virginica7.4 2.8 6.1 1.9 I.virginica7.6 3.0 6.6 2.1 I.virginica7.7 3.8 6.7 2.2 I.virginica7.7 2.6 6.9 2.3 I.virginica7.7 2.8 6.7 2.0 I.virginica7.9 3.8 6.4 2.0 I.virginica

Tabela I.1: Conjunto de dados Iris

47