uso de redes neurais artificiais como ferramenta de...

51
Juliana de Oliveira Gomes Cristóvão Uso de Redes Neurais Artificiais como Ferramenta de Otimização de Vendas Niterói - RJ, Brasil Data 2018

Upload: others

Post on 25-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

Juliana de Oliveira Gomes Cristóvão

Uso de Redes Neurais Artificiais como Ferramenta de Otimização de Vendas

Niterói - RJ, Brasil

Data 2018

Page 2: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

Juliana de Oliveira Gomes Cristóvão

Uso de Redes Neurais Artificiais como Ferramenta de Otimização de Vendas

Trabalho de Conclusão de Curso

Monografia apresentada para obtenção do grau de Bacharel em Estatística pela Universidade Federal Fluminense

Orientador: Professor Marco Aurélio Sanfins

Niterói - RJ, Brasil

11 de julho de 2018

Page 3: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

Juliana de Oliveira Gomes Cristóvão

Uso de Redes Neurais Artificiais como Ferramenta de Otimização de Vendas

Monografia de Projeto Final de Graduação sob o título “Uso de Redes Neurais

Artificiais como Ferramenta de Otimização de Vendas", defendida por Juliana de

Oliveira Gomes Cristóvão e aprovada em Data 2018, na cidade de Niterói, no Estado

do Rio de Janeiro, pela banca examinadora constituída pelos professores:

___________________________________

Prof Dr Marco Aurélio Sanfins

Departamento de Estatística - UFF

___________________________________

Prof Dr Alex Laier Bordignon

Departamento de Geometria - UFF

___________________________________

Raphael Oliveira Lourenço

UFRJ – Universidade Federal do Rio de Janeiro

Niterói, 11 de julho 2018

Page 4: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes
Page 5: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

RESUMO

Com o crescimento da internet e das redes sociais nos últimos anos, a geração de

dados se torna cada vez maior. Com essa massa de informações disponíveis,

diversas empresas, dos mais variados setores, têm investido muito em tentar utilizar

esses dados para melhorar os resultados de seus negócios. Dentro do processo de

uso de dados com foco em melhorias na tomada de decisão, os métodos conhecidos

como Redes Neurais Artificiais se destacam pela capacidade de lidar com grandes

bases de dados e por sua habilidade de aprender com os dados, gerando sistemas

computacionais que podem ser implementados para fazer trabalhos automatizados.

Neste trabalho, os esforços serão concentrados em entender o comportamento dos

usuários de um site no que diz respeito ao processo de compra de um produto. Redes

neurais são utilizadas para desenvolver um modelo capaz de identificar, com base no

rastro de dados deixado pelo usuário, o momento em que este está pronto para fazer

uma compra. Através de um sistema inteligente, os usuários serão impactados de

forma personalizada garantindo uma maximização das vendas.

Page 6: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

SUMÁRIO

LISTA DE FIGURAS ........................................................................................................................... 8

LISTA DE TABELAS ........................................................................................................................... 9

1. INTRODUÇÃO ............................................................................................................................ 10

2. OBJETIVOS ................................................................................................................................ 13

3. MATERIAIS E MÉTODOS ........................................................................................................ 14

3.1. Bibliotecas Utilizadas do R ............................................................................................ 14

3.1.1. data.table .................................................................................................................... 14

3.1.2. neuralnet ..................................................................................................................... 14

3.2. Banco de Dados................................................................................................................ 15

3.3. Data Driven Marketing ..................................................................................................... 16

3.4. Redes Neurais Artificiais ................................................................................................ 17

3.4.1. Redes Neurais Biológicas ...................................................................................... 17

3.4.2. Redes Neurais Artificiais ........................................................................................ 19

3.4.3. Modelo de um Neurônio ......................................................................................... 21

3.4.4. Estrutura de Redes Neurais................................................................................... 23

3.4.5. Processos de Aprendizado .................................................................................... 25

3.4.6. Algoritmo de Aprendizado ..................................................................................... 29

3.4.7. Reconhecimento e Classificação de Padrões .................................................. 30

3.4.8. Notas Históricas ....................................................................................................... 31

4. ANÁLISE DOS RESULTADOS ............................................................................................... 34

4.1. Análise Descritiva dos Dados ....................................................................................... 34

4.2. Treinamento da Rede Neural ......................................................................................... 36

4.2.1. Treinamento Base Completa ................................................................................. 37

4.2.2. Treinamento Dado Balanceado ............................................................................ 39

Page 7: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

4.3. Rede Neural selecionada ...................................................................................................... 43

4.4. Validação Cruzada ........................................................................................................... 43

5. CONCLUSÃO ............................................................................................................................. 45

6. REFERÊNCIAS BIBLIOGRÁFICAS ....................................................................................... 46

ANEXO - Algoritmo Backpropagation ........................................................................................ 48

Page 8: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

LISTA DE FIGURAS

Figura 1: Representação simplificada de um neurônio ............................................. 18

Figura 2: Representação em diagrama de blocos do sistema nervoso ..................... 19

Figura 3: Modelo não-linear de um neurônio ............................................................. 22

Figura 4: Rede alimentada adiante com uma camada .............................................. 23

Figura 5: Rede alimentada adiante totalmente conectada com múltiplas camadas .. 24

Figura 6: Rede recorrente com neurônios ocultos ..................................................... 25

Figura 7: Resumo de aplicações técnicas supervisionadas e não supervisionadas . 27

Figura 8: Fase 1 - aprendizagem supervisionada ..................................................... 28

Figura 9: Fase 2 - aprendizagem supervisionada ..................................................... 28

Figura 10: Diagrama em blocos da aprendizagem não supervisionada .................... 28

Figura 11: Processos do algoritmo Backpropagation ................................................ 30

Figura 12: Estrutura rede neural selecionada ........................................................... 43

Page 9: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

9

LISTA DE TABELAS

Tabela 1: Média de interações para cada trigger e ação disponível na plataforma... 34

Tabela 2: Proporção de usuários que interagiram com os triggers e ações .............. 35

Tabela 3: Resultados treinamento base completa - algoritmo rprop+ ....................... 39

Tabela 4: Resultados treinamento dado balanceado - algoritmo rprop+ ................... 40

Tabela 5: Resultados treinamento dado balanceado - algoritmo backpropagation ... 42

Page 10: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

10

1. INTRODUÇÃO

Com o decorrer do tempo, o desenvolvimento tecnológico permitiu que diversas

invenções ocorressem na área da computação, como por exemplo o desenvolvimento

de sistemas inteligentes e automatizados, que trouxeram grandes mudanças na

maneira como pessoas e empresas se relacionam com a tecnologia e com o modo de

funcionamento das coisas. Por meio deles, é possível fazer com que uma máquina

possua a capacidade de aprender tarefas com erros e acertos, de pensar como seres

humanos, tendo o poder de raciocinar, aplicando regras lógicas a um conjunto de

dados, de reconhecer padrões e de decidir de forma racional e inteligente, como

ocorre em aplicações de Machine Learning ou aprendizado de máquina.

Estudos sobre aprendizado de máquina já existem há muito tempo. Porém a

tecnologia daquela época não era desenvolvida o suficiente e não possuía um valor

acessível. Os computadores necessitavam de bons modelos de dados para processar

e analisá-los de forma eficiente, precisavam ter acesso a um banco de dados grande

o suficiente para poder alimentar os modelos.

Nos dias atuais, a evolução nos processamentos de dados faz com que as

máquinas se tornem muito mais ágeis e eficazes ao coletar, manipular e gerar dados

de informação. Tal fato implicou no aumento da capacidade de armazenamento de

informações possibilitando o acesso a bancos de dados cada vez maiores e

completos. Devido a esses progressos, tornou-se possível realizar e aplicar processos

de Machine Learning pois com um processamento rápido e uma gama de

informações, é possível alimentar modelos já desenvolvidos e implementar outros,

mais completos e robustos.

Diante disso, alguns estudos sobre Redes Neurais Artificiais, desenvolvidos

em décadas passadas, puderam ser aplicados atualmente. Para uma (RNA) ser bem

estruturada, são necessários computadores com um bom processamento, visto que

para executar uma rede neural é necessário criar um modelo robusto que deverá ser

treinado para realizar e aprender a tarefa de classificar ou prever os dados. Para isso,

é preciso ter uma grande quantidade de dados, a fim de que uma parte seja utilizada

no processo de aprendizado e outra para testes, onde é feita a averiguação do

Page 11: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

11

modelo, verificando se o mesmo foi bem construído para a resolução de um

determinado problema.

Redes Neurais Artificiais são implementadas em diversas áreas, seja no setor

financeiro, para realizar previsões econômicas, na área da saúde, para previsões de

certas doenças como hepatites, diabetes, por exemplo. Elas podem ser utilizadas para

gerar previsões e para realizar classificações. Neste trabalho objetiva-se usar as redes

para realizar a classificação de usuários de uma plataforma digital em dois grupos

(aptos e não aptos a comprar o produto oferecido).

A plataforma em questão é focada para o público de estudantes. Nela encontra-

se uma variedade de materiais compartilhados pela própria comunidade e uma

quantidade de materiais próprios, criados por especialistas do conteúdo. Todos os

usuários podem realizar diferentes ações no site: Consumir e fazer uploads de

materiais de estudo, avaliar a qualidade dos mesmos por meio de like ou deslike, criar

e responder perguntas para serem ajudados ou para ajudar outros estudantes e salvar

materiais para acessá-los novamente. Todas essas interações fazem parte da versão

não paga da plataforma.

Já na versão paga, além do usuário poder realizar todas as ações citadas

anteriormente, ele possui acesso aos conteúdos desenvolvidos por especialistas.

Com isso, eles têm acesso a diversas vantagens e benefícios que auxiliam ainda mais

nos estudos. Exercícios resolvidos passo a passo, videoaulas dos principais assuntos

de cada disciplina, resumos de cada matéria para facilitar o estudo e ferramentas de

organização dos materiais mais utilizados compõem os conteúdos a mais disponíveis

na versão paga, também chamada de versão premium. Usuários que não são

assinantes, isto é, não compraram o produto, ao tentar interagir com os conteúdos

desta versão, são bloqueados. Todas as interações são mapeadas por meio de dados.

Uma rede neural artificial será implementada tendo como dados de entrada,

todos os rastros deixados pelos usuários ao longo de todo seu contato com os

conteúdos disponíveis na plataforma e irá gerar como saída o evento de assinatura

premium. Isto é, se o indivíduo possuir um comportamento de consumo e ações

parecidas com os dos assinantes, eles serão classificados como pagantes, tendo

assim, uma propensão maior de efetuar a compra.

Page 12: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

12

Sabe-se que o comportamento dos usuários na versão não paga possui

correlação com o evento de assinatura, visto que quanto mais interações são

realizadas na versão não paga, maior é a chance de o mesmo efetuar a compra para

ter acesso aos outros conteúdos bloqueados. Além disso, o evento de interação com

os conteúdos da parte premium também está relacionado com a compra, pois é mais

provável que indivíduos que interagem mais com o conteúdo pago tenham uma

chance maior de efetuar a assinatura.

A ideia é que a RNA estruturada seja capaz de realizar a classificação dos

usuários em dois grupos, os que estão e os que não estão propensos à compra, para

que os primeiros sejam impactados de forma diferenciada, ganhando alguns

incentivos, como por exemplo um desconto na assinatura. A finalidade é fazer com

que os mesmos sejam influenciados a realizar a compra, causando o aumento no

número de vendas.

O texto desta monografia está dividido em 6 capítulos. Além desta introdução,

apresentam-se os objetivos, onde está exposto os propósitos da realização deste

estudo, os materiais e métodos, apresentando todas as metodologias e ferramentas

utilizadas para o desenvolvimento do projeto, os resultados e a conclusão. Ao final,

estão relacionadas as referências bibliográficas utilizadas para a realização da

pesquisa.

Page 13: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

13

2. OBJETIVOS

O objetivo central desta pesquisa é realizar a maximização no número de

vendas em uma plataforma digital, fazendo com que os usuários que mostraram

interesse nos conteúdos livres e nos produzidos por especialistas, da versão paga,

sejam impactados de forma diferenciadas.

Para realizar este propósito, será necessário treinar uma rede neural que

melhor se encaixe no problema, para que possa executar a classificação dos

indivíduos em dois grupos: os que possuem ou não a chance de comprar a versão

paga. Após essa classificação, serão realizadas ações personalizadas para os

usuários que possuem uma chance de aquisição do produto, com o intuito de gerar

impactos positivos no número de vendas.

A maioria dos usuários desiste de efetuar a compra por causa do valor cobrado

na assinatura, sendo assim, a ideia de impactar de forma diferenciada, seria oferecer

um desconto para os que foram classificados, pela rede, no grupo com a chance de

efetuar a compra e com isso fazer com que a probabilidade do evento de compra seja

aumentada e as vendas sejam maximizadas.

Page 14: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

14

3. MATERIAIS E MÉTODOS

3.1. Bibliotecas Utilizadas do R

Para realizar o presente trabalho utiliza-se o software R1, onde são estruturados

os códigos para manipulação de dados e treinamento da rede.

3.1.1. data.table

Para tratar os dados, utiliza-se o pacote data.table, que fornece uma versão

mais aprimorada de data.frames. Neste projeto, ele é usado para ler e gravar arquivos

de forma mais eficiente e para as operações de manipulação de dados, agregando e

selecionando-os em subconjuntos, grupos. No exemplo abaixo será possível analisar

como essa biblioteca é utilizada.

Dados = fread(‘DadosExemplo.csv’)

#Lendo os dados e importando para o R em formato de data.table

Dados2 = Dados[Universidade == ‘Universidade1’]

#Agrupando apenas os alunos da universidade 1 na variável Dados2

Dados3 = Dados[Universidade == ‘Universidade2’ & Idade > 21]

#Agrupando apenas os alunos da universidade 2 com idade maior que 21 anos

Dados4 = Dados[Idade = 21 | Idade == 22]

#Agrupando apenas os alunos com 21 ou 22 anos

3.1.2. neuralnet

A função neuralnet do pacote de mesmo nome é utilizada no processo de

treinamento da rede neural. A função permite configurações flexíveis através de

escolhas personalizadas para estruturar a RNA que mais se adequa ao problema.

Nela, definimos o algoritmo de treinamento que será implementado, a quantidade de

neurônios ocultos que deverão existir na rede, a função de ativação, os pesos que

serão atribuídos inicialmente, se a rede será utilizada para previsão ou classificação,

1 Software R: R é uma linguagem e também um ambiente de desenvolvimento integrado para cálculos

estatísticos e gráficos

Page 15: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

15

entre outras adaptações mais específicas. Abaixo podem ser visualizados a

implementação da função e alguns argumentos importantes da mesma.

Net = neuralnet(formula = y ~ a + b + c, data, hidden = 3,

linear.output = F, rep = 4, algorithm = ‘backprop’)

• formula: Descrição do modelo que será montado

• data: Dados de treinamento (70 ou 80% da base de dados)

• hidden: Vetor com a quantidade de camadas ocultas

• rep: Número de repetições para o treinamento da rede

• threshol: Valor numérico especificando o valor do erro definido como critério de

parada

• startweights: Vetor com os pesos atribuídos inicialmente

• algorithm: String que contém o algoritmo de aprendizado

• linear.output: especificar se queremos fazer regressão linear.output = TRUE ou

classificação linear.output = FALSE

Após o treinamento da RNA é feita a previsão dos dados. No caso em que a

rede é treinada para realizar classificações, a previsão é feita para distribuir novos

elementos nas classes que estes se enquadram. Para efetuar a seguinte tarefa, é

utilizada a função compute, apresentada no exemplo abaixo.

Previsão = compute(x = Net, dadosTeste)

• x: Objeto da classe nn

• covariate: Um data frame ou matriz contendo as variáveis que foram usadas

para treinar a rede neural

• rep: Um inteiro indicando a repetição da rede neural que deve ser usada, para

gerar uma quantidade de previsões.

3.2. Banco de Dados

O banco de dados utilizado neste trabalho armazena informações de quantas

vezes o usuário passou por cada trigger. Chamam-se de trigger as seguintes

Page 16: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

16

variáveis: CR, Anotações, Seguir disciplina, Filtros Avançados, TBS, VL, Saves, Likes

e Uploads. Sendo CR o limitador de conteúdo, isto é, se um usuário não premium

acessar 3 conteúdos, no quarto ele é bloqueado, porém a tentativa de acesso continua

sendo registrada. As anotações são resumos feitos pelos estudantes, seguir disciplina

é a possibilidade de seguir uma matéria em específico, para ter acesso a todos os

tipos de conteúdo pertencentes a ela, os filtros avançados servem para filtrar materiais

de interesse, o TBS são exercícios resolvidos por especialistas de conteúdo e VL são

videoaulas. Saves, likes e uploads são ações que os usuários podem realizar na

plataforma, o primeiro refere-se ao ato de salvar um material para consultas futuras,

o segundo avaliar um material de forma positiva ou negativa e o último, realizar o

upload de materiais no site, para outros utilizadores terem acesso.

Há também, um número identificador para cada usuário e uma variável binária

onde 0 representa os estudantes que não são premium e 1 os que são. Uma

observação importante, é que a contabilização da quantidade de vezes que ocorre

interação é feita antes do indivíduo se tornar pagante, no caso dos premium.

3.3. Data Driven Marketing

O data-driven marketing (marketing orientado a dados) é uma estratégia na

qual os profissionais de marketing obtêm informações e tendências ao analisar dados

gerados pela empresa ou pelo mercado, transformando essas ideias em decisões

acionáveis (RABELO, 2017). No geral, é tomar decisões mais objetivas sobre a

estratégia de marketing ao se basear em dados. Os dados e rastros de uso coletados,

por meio de interações e compromissos do consumidor com o produto, possibilitam

realizar previsões sobre comportamentos futuros desses clientes.

Por meio dessa estratégia tem-se um entendimento mais profundo do perfil do

cliente e com isso é possível realizar ações personalizadas, transmitindo a mensagem

certa, para o público certo e na hora certa. Isso ocorre devido a riqueza de informações

no banco de dados. Desse modo, podem ser feitos filtros de informações mais

precisas e acionáveis sobre os consumidores e possíveis consumidores. Com as

estratégias sendo tomadas em cima do conjunto de informações, fica mais fácil atingir

o público-alvo, por meio de suas experiências.

Page 17: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

17

O aumento na quantidade de dados e na qualidade dos mesmos trouxe à tona

um crescimento nas tecnologias de produção criativa e automação. Tal fato,

impulsionou a criação de metodologias que possibilitam realizar essas ações

personalizadas de acordo com a experiência do cliente.

3.4. Redes Neurais Artificiais

Para entender os processos de uma RNA, é importante conhecer como o

funcionamento das redes neurais biológicas.

3.4.1. Redes Neurais Biológicas

O cérebro humano possui, pelo que se conhece, cerca de 10 bilhões de

neurônios. São eles as células mais diferenciadas do organismo, pois apresentam a

maior complexidade estrutural e funcional. Um neurônio é capaz de criar até 10.000

sinapses, ou seja, até 10.000 conexões com neurônios adjacentes. (TAFNER, XEREZ

e RODRIGUES FILHO, 1995). São células que tem como principal característica ter a

capacidade de gerar e conduzir impulsos nervosos.

Um neurônio tem quatro componentes principais: dendritos, corpo celular

(soma), axônio e terminais sinápticos, representados na Figura 1. Os dendritos são

mecanismos responsáveis por receber impulsos nervosos de neurônios vizinhos e

conduzir esses impulsos até o corpo celular. O corpo celular é também um local de

recepção de estímulos, através de contatos sinápticos. O axônio é muito longo e fino,

é especializado em transmitir impulsos, como cargas elétricas, que emergem dos

neurônios, gerando potenciais de ação. Por esse motivo, este componente possui

uma alta resistência elétrica e uma capacitância grande. Por último, os terminais

sinápticos são locais de contato com a célula vizinha, podendo ser outro neurônio ou

uma célula muscular. É o ponto de contato entre a terminação axônica de um neurônio

e o dendrito de outro, onde ocorrem as sinapses.

Page 18: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

18

Figura 1: Representação simplificada de um neurônio

Sinapse é uma ligação em que o terminal do axônio faz contato com outro

neurônio. Por meio das sinapses são feitas as transferências de informação de um

neurônio para outro, que se dão por meio de moléculas de íons. Esse processo é

chamado de transmissão sináptica. Segundo BEAR (2007), “O lado pré-sináptico

geralmente consiste de um axônio terminal, enquanto que o lado pós-sináptico pode

ser o dendrito ou o soma de outro neurônio.”.

Os neurônios não realizam divisão celular, sendo assim, quando um neurônio

é destruído, sua perda é permanente. Por outro lado, seus prolongamentos podem se

regenerar e podem se modificar. O sistema nervoso possui plasticidade, isto é, possui

capacidade de se remodelar em função de novas experiências ou lesões,

reformulando suas conexões para se adaptar ao meio ambiente. Em um cérebro

adulto, a plasticidade pode ser atribuída a dois mecanismos: a criação de novas

conexões sinápticas entre neurônios e a modificação das sinapses existentes. Logo,

a plasticidade pode estar relacionada a um processo de aprendizado.

De forma resumida, conforme HAYKIN (2009) apresentou, o sistema nervoso

pode ser visto como um sistema de três estágios, conforme se observa na Figura 2.

O cérebro é o centro do sistema (rede neural): ele recebe as informações, as interpreta

e toma decisões apropriadas. As informações são transmitidas pelos receptores, que

transformam estímulos do corpo humano ou do ambiente externo em impulsos

elétricos. Já os atuadores convertem impulsos gerados pela rede neural em respostas,

como saídas do sistema.

Dois conjuntos de setas são mostrados na figura abaixo, as pontilhadas indicam

a transmissão da informação e a outra mostra a realimentação do sistema. Ele

Page 19: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

19

também é realimentado, isto é, com base nas informações resultantes, há o

aperfeiçoamento da próxima tentativa, como um processo de aprendizagem. Sendo

assim, os atuadores enviam informações que são captadas pela rede neural que gera

impulsos que são captados pelos receptores.

Figura 2: Representação em diagrama de blocos do sistema nervoso

3.4.2. Redes Neurais Artificiais

Uma Rede Neural Artificial é construída por meio de modelos computacionais

que tentam realizar tarefas ou funções de interesse de forma semelhante ao sistema

nervoso central (cérebro), sendo capazes de armazenar conhecimentos, realizando

aprendizado de máquina bem como reconhecendo padrões. RNAs em geral são

apresentadas como um sistema de neurônios que captam valores de entrada e geram

valores de saída, simulando assim, o comportamento de uma rede neural natural

biológica.

Segundo (HAYKIN, 2009), uma rede neural é um processador paralelamente

distribuído e se assemelha ao cérebro em dois aspectos: o conhecimento é adquirido

por ela a partir de seu ambiente por um processo de aprendizagem e as ligações entre

os neurônios, chamados de pesos sinápticos, são utilizadas para armazenar o

conhecimento adquirido. Para o processo de aprendizagem é realizado um método

chamado de algoritmo de aprendizagem, que modifica os pesos sinápticos da rede,

de forma ordenada, para que assim, um objetivo específico seja alcançado.

HAYKIN (2009) assinala que as RNAs possuem características muito úteis e

que são muito relevantes, são elas:

Page 20: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

20

• Não-linearidade: Um neurônio artificial pode ser linear ou não-linear. Se a rede

é constituída de neurônios que não são lineares, então a rede como um todo

será não-linear. A não-linearidade possibilita considerar o comportamento não-

linear dos fenômenos físicos responsáveis pela geração dos dados de entrada.

• Capacidade de aprendizagem que é atingida com sessões de treinamento: Os

pesos sinápticos de uma rede neural podem ser modificados para reduzir a

diferença entre a resposta desejada e a resposta real da rede. Esse

procedimento é denominado aprendizagem supervisionada ou aprendizagem

obtida por meio de um tutor. A modificação desses pesos é feita por meio da

aplicação de amostras de treino, que possuem respostas de saída previamente

desejadas. O treinamento é repetido para muitos conjuntos até que a rede

neural se estabilize e não haja mais diferenças significativas nos pesos

sinápticos. Para o conjunto de amostras utilizadas no treinamento, não são

feitas suposições prévias sobre o modelo estatístico desses dados, pois se

houver uma relação implícita entre os dados, mesmo que não seja conhecida

sua distribuição, as redes são capazes de apresentar um bom desempenho.

• Adaptabilidade: As redes neurais possuem a capacidade de adaptar seus

pesos sinápticos em ambientes dinâmicos. Elas aprendem, de forma rápida,

padrões complexos e possíveis tendências presentes nos dados. Uma RNA

treinada para operar em um ambiente específico pode ser facilmente

“retreinada” para lidar com alterações nesse meio. Quando operam em um

ambiente onde as estatísticas mudam com o tempo (não-estacionário), uma

rede neural pode ser planejada para alterar seus pesos em tempo real.

• Generalização: O processo de generalização está relacionado ao fato da rede

neural produzir saídas (respostas) adequadas para valores de entradas que

não estavam presentes durante o treinamento.

• Tolerância às falhas: Uma RNA é capaz de realizar computação robusta,

apresentando resultados aceitáveis, no caso de falhas de alguns neurônios. O

Page 21: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

21

dano nesses neurônios deve ser extenso para que a resposta global da rede

seja danificada seriamente.

• Informação contextual: Um neurônio é potencialmente afetado pela atividade

de todos os outros neurônios da rede neural.

• Implementação em VLSI: A rede neural é um processador paralelamente

distribuído e essa natureza a faz ser rápida na computação de certas tarefas.

Esta característica torna a rede adequada para implementações utilizando

tecnologia de integração em grande escala (VLSI: very-large-scale-integration).

3.4.3. Modelo de um Neurônio

O neurônio artificial é uma estrutura lógico-matemática que simula a forma, o

comportamento e as funções de um neurônio biológico. Na Figura 3, pode ser visto

um exemplo de um neurônio artificial, composto por seis elementos principais, sendo

eles:

I. Sinais de Entrada: Os sinais de entrada representam os dendritos. Eles têm por

função realizar a captação das informações para identificá-las.

II. Pesos Sinápticos: Os dados de entrada se ligam ao corpo celular artificial por

meio de pesos sinápticos, que como o próprio nome indica, simulam as

sinapses. Em específico, um sinal xj na entrada da sinapse j e conectado a um

neurônio k é multiplicado pelo peso sináptico wi. Os pesos sinápticos são

atribuídos por meio da relevância dada a cada entrada. Tal fato irá influenciar

na decisão da classificação do objeto.

III. Função Soma: Os estímulos captados pelas entradas são processados pela

função soma ou junção aditiva. Elas somam os sinais de entrada, ponderados

pelas respectivas sinapses do neurônio.

IV. Bias: Um valor de reajuste que é feito. Não é necessário para o funcionamento

do neurônio.

Page 22: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

22

V. Função de ativação: O disparo do neurônio biológico foi substituído pela função

de ativação, que determina se o valor de saída da função aditiva será o

suficiente para ativar o neurônio. Geralmente, é utilizado um valor limite

(threshold) para essa decisão que define a saída de um neurônio.

VI. Saída: Um valor binário que indica se o neurônio foi ativado (1) o não (0).

Figura 3: Modelo não-linear de um neurônio

Um neurônio artificial 𝑘 pode ser escrito da seguinte maneira:

𝑢𝑘 = ∑ 𝑤𝑘𝑗𝑥𝑗

𝑛

𝑗=1

𝑦𝑘 = 𝜑 (𝑢𝑘 + 𝑏𝑘)

onde, 𝑥1, ..., 𝑥𝑚 são os sinais de entrada do neurônio, 𝑤𝑘1, ..., 𝑤𝑘𝑚 são os pesos

sinápticos, 𝑢𝑘 é a saída do combinador linear, 𝑏𝑘 é o bias, 𝜑 é a função de ativação e

𝑦𝑘 é o sinal de saída do neurônio.

Page 23: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

23

3.4.4. Estrutura de Redes Neurais

Um neurônio artificial, em unidade, possui desempenho limitado. Por outro lado,

quando é realizada a integração de vários neurônios, por meio de interconexões, esse

problema pode ser resolvido. Eles são dispostos em camadas, e os que se localizam

na mesma camada, em geral, se comportam da mesma maneira. A disposição dos

neurônios e o padrão de conexão entre estas definem a estrutura da RNA.

Fazem parte da definição da arquitetura da rede os seguintes parâmetros:

número de camadas da rede, número de nodos em cada camada, tipo de conexão

entre os nodos e topologia da rede (BRAGA, CARVALHO e LUDERMIR, 2000). Em

geral, são identificadas três classes de estruturas de redes neurais:

I. Redes Feedforward Alimentadas Adiante com Camada Única: É a estrutura

mais simples de uma rede, visto que possui uma camada de entrada, com nós

de fonte (entrada de dados), que se projeta a uma camada de saída de

neurônios, mas não vice e versa, como pode ser visto na Figura 4. Logo, essa

rede é dita ser do tipo alimentada adiante ou acíclica. Ela é chamada de rede

de camada única devido à presença de uma única camada de saída de

neurônios.

Figura 4: Rede alimentada adiante com uma camada

Page 24: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

24

II. Redes Feedforward Alimentadas Diretamente com Múltiplas Camadas: A

estrutura de uma rede neural de múltiplas camadas está relacionada à

presença de uma ou mais camadas de neurônios ocultos ou também chamadas

de unidades ocultas. A camada oculta é definida por um nível adicional de

interação entre a entrada e a saída da rede de forma útil. A adição de mais

camadas possibilita a resolução de trabalhos mais complexos e torna a rede

capaz de extrair estatísticas de ordem elevada, quando o tamanho da camada

de entrada é grande. Cada nó de fonte presente na camada de entrada possui

os respectivos vetores de entrada da informação, que são constituídos de

sinais de entrada que são aplicados aos neurônios na segunda camada

(primeira camada oculta). Os sinais de saída da segunda camada são

utilizados como sinais de entrada na terceira camada, e assim sucessivamente

até o fim da rede. O conjunto de sinais de saída, encontrado na camada final,

constitui a resposta global da rede para as informações fornecidas na camada

de entrada. Uma rede neural pode ser classificada como totalmente conectada,

quando todos os nós de uma camada estão conectados a todos os nós da

camada seguinte, ou parcialmente conectada, quando algumas conexões

sinápticas estiverem faltando na rede. Na Figura 5, pode ser observada uma

rede de duas camadas, com oito neurônios de entrada global, quatro neurônios

ocultos e dois neurônios de saída. Esta estrutura também pode ser chamada

de rede 8-4-2.

Figura 5: Rede alimentada adiante totalmente conectada com múltiplas camadas

Page 25: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

25

III. Redes Recorrentes: De forma resumida, uma rede neural recorrente se

diferencia de uma rede alimentada adiante por ter pelo menos um processo de

realimentação. Os loops (realimentação) presentes nesses tipos de rede fazem

com que ela possa armazenar informações ao processar novas entradas, logo,

entradas anteriores devem ser consideradas (como dados de séries

temporais). Sendo assim, a presença de laços de realimentação está

associada a capacidade de aprendizado que a rede neural possui, que será

explicado de forma mais detalhada no tópico seguinte.

Figura 6: Rede recorrente com neurônios ocultos

3.4.5. Processos de Aprendizado

O processo de aprendizado de uma rede neural é um fator de extrema

importância. Nesse processo a rede possui a capacidade de aprender com as

mudanças ocorridas no seu meio e com isso, ela melhora seu desempenho, visto que

se adequa a essas alterações, passando a funcionar da forma mais atualizada

possível. Uma RNA aprende sobre seu meio através de um processo de ajustes

aplicados em seus pesos sinápticos e essa técnica pode ser vista como uma forma

de treinamento atribuído à rede. O aprendizado só ocorre quando a rede neural atinge

uma solução generalizada para uma classe de problemas.

Page 26: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

26

De acordo com HAYKIN (2009), a aprendizagem é um processo pelo qual os

parâmetros livres de uma rede neural são adaptados através de uma prática de

estimulação pelo ambiente no qual a rede está inserida. O tipo de aprendizagem é

determinado pela maneira pela qual a modificação dos parâmetros ocorre.

Esse processo ocorre da seguinte maneira: a rede é estimulada pelo ambiente;

depois, sofre alterações nos seus parâmetros livres, como resultado da estimulação

ocasionada; por fim, a rede neural responde de uma outra forma ao ambiente, devido

às alterações ocorridas na sua estrutura interna. O procedimento de alteração dos

pesos, ou dos parâmetros livres, ocorre diversas vezes, pois no processo de

aprendizagem a rede precisa passar por diversas iterações. Desse modo, após o

estímulo inicial, são gerados pesos sinápticos iniciais, seguidos de novas

estimulações, que geram novas mudanças nos pesos, até chegar em um ponto

aceitável e o modelo conseguir se tornar generalizado.

Todo processo de aprendizagem está relacionado aos dados. Logo, a rede se

fundamenta nos mesmos para extrair um modelo geral. A fase de aprendizado deve

ser rigorosa e verdadeira, para que não surjam modelos falsos e a rede não consiga

entender e aprender sobre o meio em que está inserida. Desse modo, de 50% a 90%

dos dados devem ser separados para serem utilizados no treinamento da rede, para

que assim a mesma aprenda, de fato, as regras. Os dados que sobram são utilizados

para teste, tendo a finalidade de verificar se a rede se ajustou de forma correta para

aquele meio.

Existem diversas formas de aplicar o aprendizado em uma RNA. Denomina-se

algoritmo de aprendizado um conjunto de regras bem definidas para a solução de um

problema de aprendizado. Existem muitos tipos de algoritmos específicos para

determinados modelos de redes neurais, eles diferem entre si principalmente pelo

modo como os pesos são modificados.

Serão apresentados dois paradigmas de aprendizado: o aprendizado

supervisionado ou aprendizado com um professor e o aprendizado não

supervisionado. Abaixo, na Figura 7, segue um diagrama explicando para quais

finalidades cada tipo de aprendizado é útil.

Page 27: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

27

Figura 7: Resumo de aplicações técnicas supervisionadas e não supervisionadas

Na aprendizagem supervisionada, ocorrem duas fases. Na primeira, a rede

neural é treinada para retornar valores desejados, por um professor que já conhece o

ambiente, ela recebe exemplos de valores de entrada e saída. Em virtude do seu

conhecimento, o professor consegue fornecer respostas desejadas (saída) após

receber um vetor de treinamento retirado do meio em que a rede está inserida

(entrada). A resposta desejada representa a ótima ação realizada pela rede, que

retornará respostas que o professor acha adequadas para o problema.

Os parâmetros da rede são ajustados levando em consideração o vetor de

treinamento e o sinal de erro, que é representado pela diferença entre a resposta

desejada e a resposta real retornada pela rede. O sinal de erro é realimentado no

sistema. Esse procedimento é realizado até que a rede neural consiga simular o

professor, isto é, consiga gerar respostas que sejam adequadas, ajustando seus

parâmetros de forma correta.

Page 28: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

28

Após a rede concluir seu treinamento, o professor é dispensado e ela por si só

lida com o ambiente, representando a segunda fase. Nas Figuras 8 e 9, é possível ver

as etapas desse processo.

Figura 8: Fase 1 - aprendizagem supervisionada

Figura 9: Fase 2 - aprendizagem supervisionada

No aprendizado não supervisionado não existe um professor ou uma

supervisão. Nesse tipo de aprendizagem, a rede descobre sozinha relações, padrões

nos dados que são apresentados. O objetivo desse método é fazer com que a rede

detecte padrões e ajuste seus parâmetros a partir de diversas iterações feitas com os

dados de entrada, provenientes do ambiente. Sendo assim, após realizar o

aprendizado, a rede será capaz de codificar as entradas e realizar as classificações

conforme vai percebendo novos padrões, como pode ser visto na Figura 10.

Figura 10: Diagrama em blocos da aprendizagem não supervisionada

Page 29: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

29

3.4.6. Algoritmo de Aprendizado

Como as redes de neurais artificiais de única camada eram estruturas muito

simples, elas se tornaram limitadas com o passar do tempo, tanto em relação a

sua funcionalidade quanto a sua representatividade, pois problemas mais

complexos não conseguiam ser representados por tais redes neurais. Diante

disso, com a implementação das redes de múltiplas camadas muitos problemas

conseguiram ser estruturados e para tais tipos de rede e foram desenvolvidos

alguns algoritmos capazes de treiná-las, como por exemplo, o Backpropagation.

O algoritmo, proposto por Werbos, Parker e Rummelhart, foi um dos

principais responsáveis pelo ressurgimento do interesse em redes neurais

artificiais, sendo o algoritmo de aprendizado mais conhecido para redes com

múltiplas camadas.

O backpropagation é um algoritmo de aprendizado supervisionado que

reduz continuamente o erro até um determinado valor aceitável.

Em um primeiro momento, um determinado padrão de entrada é

apresentado à rede neural e propagado camada por camada até que a resposta

seja gerada pela camada de saída. Nessa etapa, os pesos sinápticos se mantêm

inalterados. Após os valores obtidos são comparados com os desejados, se a

saída não estiver com resultados corretos/esperados, um erro (𝑒𝑗) é calculado pela

diferença entre o valor desejado (𝑑𝑗) e o valor obtido na saída (𝑦𝑗), como

apresentado na fórmula abaixo. Cada unidade tem seus pesos ajustados conforme

o erro é retropropagado, com a finalidade de minimizar este erro.

𝑒𝑗(𝑛) = 𝑑𝑗(𝑛) − 𝑦𝑗(𝑛)

Depois que a rede está treinada, o erro estará em um nível aceitável e ela

poderá ser utilizada para a classificação de novos dados. Nesse caso, os novos dados

são apresentados à camada de entrada, ocorre o processamento nas camadas

intermediárias e os resultados são apresentados na camada de saída, como ocorreu

no treinamento da rede. Porém, neste caso, não há a etapa de retropropagação.

Sendo assim, as redes são utilizadas apenas no modo progressivo, onde todas as

Page 30: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

30

conexões têm a mesma direção, partindo da camada de entrada rumo à camada de

saída, sem a realimentação.

Abaixo, é possível ver pela Figura 11, como ocorre o processo de treinamento

pelo algoritmo de backpropagation.

Figura 11: Processos do algoritmo Backpropagation

3.4.7. Reconhecimento e Classificação de Padrões

O objetivo do reconhecimento de padrões é realizar uma classificação em

categorias ou classes. Sendo assim, a ideia é conseguir agrupar indivíduos que

possuam características em comum em um mesmo grupo.

Após um treinamento supervisionado, onde a RNA é submetida a um conjunto

de dados que contém exemplos de padrões de todas as classes existentes no sistema,

ela consegue tomar decisões, reconhecer determinados padrões e realizar as

classificações. No modelo de múltiplas camadas cada uma tem uma função

específica, “a camada de saída recebe os estímulos da camada intermediária e

constrói o padrão que será a resposta. As camadas intermediárias funcionam como

Page 31: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

31

extratoras de características (classificação), seus pesos são uma codificação de

características apresentadas nos padrões de entrada e permitem que a rede crie sua

própria representação (reconhecimento), mais rica e complexa, do problema” ORRU

(2018).

3.4.8. Notas Históricas

O estudo sobre redes neurais artificiais começou com o trabalho de McCulloch

e Pitts, em 1943. McCulloch era um psiquiatra e neuroanatomista, que há muito tempo

estudava sobre a representação do sistema nervoso, e Pitts um matemático. Juntos

publicaram um artigo denominado “A Logical Calculus of Ideas Immanent in Nervous

Activity”, no qual eles apresentavam cálculo lógico das redes neurais que reunia os

estudos de neurofisiologia e da parte matemática. Eles assumiram que seu modelo

de neurônio seguia uma lei “tudo ou nada”, que com números suficientes de neurônios

e com conexões sinápticas ajustadas de forma adequada, a rede neural seria capaz

de realizar qualquer função computável.

Atualmente, os estudos realizados buscam por métodos de treinamento das

redes artificiais, porém na época, o foco era em encontrar um modelo representativo

de um neurônio e descrever suas capacidades computacionais.

Em 1949, Donald Hebb publicou “The Organization of Behavior”, onde foi

apresentada pela primeira vez uma formulação explícita de uma regra de

aprendizagem fisiológica para a modificação sináptica. Hebb propôs que a

conectividade do cérebro é continuamente modificada conforme um organismo vai

aprendendo tarefas funcionais diferentes e que agrupamentos neurais são criados por

tais modificações (HAYKIN, 2009). Ele assume que a aprendizagem do conhecimento

é alcançada por meio de conexões entre neurônios adjacentes sempre que os

mesmos estiverem excitados.

Outro avanço histórico foi o trabalho de Frank Rosenblatt, em 1958, que

apresenta seu novo modelo “Perceptron”, um modelo inovador de aprendizagem

supervisionada, que era composto de unidades sensoriais conectadas a uma única

camada de neurônios de McCulloch e Pitts, que seria capaz de aprender tudo o que

pudesse representar. Rosemblatt mostrou que, acrescendo sinapses ajustadas

corretamente, as redes neurais de McCulloch e Pitts teriam a possibilidade de serem

Page 32: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

32

treinadas para classificar tipos de padrões, um tipo de tarefa que os seres humanos

fazem sem nenhum esforço aparente e de forma quase instantânea. Porém, é um dos

problemas mais difíceis de serem resolvidos por uma máquina.

O Perceptron simples descrito por Rossenblatt possui três camadas: a primeira

recebe as entradas do exterior e possui conexões fixas (retina); a segunda recebe

impulsos da primeira através de conexões cuja eficiência de transmissão (peso) é

ajustável e, por sua vez, envia saída para a terceira camada (resposta).

Nos anos 60, Windrow e Hoff desenvolveram o ADALAINE (Adaptative linear

Element) e o MADALAINE (Many Adalaine) para o reconhecimento de padrões. A

diferença entre essas duas estruturas e o perceptron está no procedimento de

aprendizagem, denominado de Regra Delta, conhecido também como LMS (least

mean square), Gradiente Descendente ou Mínimos Quadrados.

Em 1969, Minsky e Papert chamaram a atenção para algumas tarefas que o

Perceptron não era capaz de executar, já que este só resolve problemas lineares

separáveis, ou seja, problemas cuja solução pode ser obtida dividindo-se o espaço de

entrada em duas regiões através de uma reta. O Perceptron, por exemplo, não

consegue detectar paridade, conectividade e simetria, que são problemas não lineares

separáveis. O principal argumento de Minsky e Papert era de que o problema do

crescimento explosivo, tanto de espaço ocupado como do tempo requerido para

solução de problemas complexos afetaria, cedo ou tarde, as RNA’s, inclusive os

Perceptrons (BRAGA, CARVALHO e LUDERMIR, 2000). O impacto desta publicação

foi devastador, praticamente desaparecendo o interesse em redes neurais artificiais

nos anos seguintes.

O interesse por redes neurais artificiais retornou apenas na década de 80, com

o trabalho de Hopfield, por exemplo. Por meio de seus estudos foi possível esclarecer

boa parte das dúvidas existentes em relação ao processo executado por certas redes

neurais. Ele elaborou um algoritmo que estabiliza uma rede neural binária, simétrica

e com realimentação (FERNANDES, 2003). Uma rede de Hopfield é capaz de

estabilizar um conjunto de padrões de treinamento e também de realizar

autoassociação semelhante a uma memória endereçada por conteúdo

(FERNANDES, 2003).

Em 1986, Rumelhart, Hinton e Williams aperfeiçoaram a ideia de Perceptron,

criando o algoritmo de retropropagação, Backpropagation, levando a uma explosão

Page 33: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

33

de interesse em redes neurais. O sucesso desse algoritmo estimulou o

desenvolvimento de muitas pesquisas em redes neurais artificiais e de uma variedade

de modelos cognitivos.

Page 34: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

34

4. ANÁLISE DOS RESULTADOS

4.1. Análise Descritiva dos Dados

Realizando uma análise descritiva, foi possível verificar que há um

desbalanceamento dos dados, isto é, há muito mais usuários não premium na base.

Trazendo essa diferença em números, tem-se, 99,3% de estudantes não premium e

apenas 0,7% premium, tal fato pode acarretar problemas no processo de treinamento

da rede neural.

Com base nos dados da tabela 1, observa-se que os usuários premium

interagiram mais com a plataforma, possuem uma média maior que a média geral,

quando são englobados todos os usuários. Pode ser afirmado que este grupo, é muito

mais ativo e engajado na plataforma, e isso aumenta a chance de conversão, visto

que a experiência do usuário com os conteúdos, e ferramentas disponíveis são

maiores, fazendo com que o mesmo entenda o valor daquele produto para sua vida

acadêmica.

Por outro lado, a média de interação dos não premium é sempre inferior quando

comparado aos pagantes. Entretanto, quando é feito o confronto com o geral, em

alguns casos o valor é menor, em outros são muito próximos. Isso pode ser explicado

pelo fato de que este grupo está em maioria na base de dados, sendo assim, a média

geral de interação é influenciada pelo comportamento dos estudantes não premium.

Triggers/Ações Geral Premium Não premium

CR 1,256 1,789 1,252

Anotações 0,001 0,001 0,001

Seguis Disciplina 0,035 0,056 0,035

Filtros Avançados 0,003 0,01 0,003

TBS 0,035 0,076 0,034

Videoaula 0,006 0,009 0,006

Saves 0,948 1.561 0,944

Likes 0,205 0,388 0,204

Uploads 0,103 0,185 0,103

Tabela 1: Média de interações para cada trigger e ação disponível na plataforma

Page 35: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

35

Na tabela 2, é possível analisar o percentual de usuários que tiveram contato

com cada trigger ou ação.

O CR é o trigger que os usuários mais interagem, principalmente dos premium.

Com isso, pode ser retirado a informação de que os usuários desse grupo, antes de

virarem premium, batiam muitas vezes no CR, mostrando que o limitador de conteúdo

é um trigger importante no processo de conversão, já que o estudante fica bloqueado

de acessar mais conteúdos para poder estudar e precisa efetuar a compra para voltar

a ter acesso ilimitado.

Os triggers anotações, seguir disciplina, filtros avançados, TBS e VL, possuem

um percentual pequeno de indivíduos tendo contato, principalmente anotações, filtros

avançados e videoaulas, sendo estes os que os estudantes menos veem relevância

para serem utilizados nos estudos. Um ponto importante, é que esse a proporção é

também, sempre maior no grupo premium comparado aos outros, logo, estes se

interessam mais por esses conteúdos disponíveis antes de virarem pagantes.

Das ações disponíveis, o salvar é a mais utilizada pelos estudantes, seguido

pela avaliação do material (like) e uploads. Quando é observado os uploads, os

premiums possuem o dobro do percentual do geral e dos não pagantes. Quando é

analisado as ações realizadas, continua havendo uma maior participação dos usuários

premium comparado aos outros grupos.

Trigger/Ação Geral Premium Não premium

CR 61,69% 80,48% 61,56%

Anotações 0,09% 0,11% 0,01%

Seguir disciplina 3,17% 4,94% 3,15%

Filtros avançados 0,32% 0,98% 0,32%

TBS 2,72% 5,05% 2,71%

VL 0,62% 0,89% 0,62%

Saves 58,93% 68,52% 58,86%

Likes 13,73% 23,51% 13,66%

Uploads 7,67% 14,39% 7,62%

Tabela 2: Proporção de usuários que interagiram com os triggers e ações

Após, foi realizado uma limpeza nos dados, retirando possíveis outliers. A

análise de outliers foi feita apenas nos usuários não premium, visto que a quantidade

Page 36: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

36

de pagantes é muito menor e retirando mais possíveis indivíduos outliers reduzirá

ainda mais minha representatividade de usuário premium no processo de

classificação de dados, reduzindo um pouco mais o desbalanceamento. Com esse

processo de limpeza, a distribuição de indivíduos premium e não premium foi,

respectivamente, 1% e 99%.

4.2. Treinamento da Rede Neural

Em um primeiro momento, o treinamento foi realizado utilizando-se a base de

dados por completo, isto é, sem realizar o balanceamento de dados. Sendo assim, os

dados estavam mal distribuídos, existiam majoritariamente não premium.

No segundo momento, aplicou-se um treinamento no banco de dados

balanceado, com distribuição de 50% de usuários premium e 50% não premium, para

ver se a ausência de desproporção dos dados iria melhorar o processo de

classificação, visto que tendo a maioria de usuários não pagantes, a classificação

poderia ficar viesada para este grupo em específico.

Antes de executar o treinamento da rede, tanto no caso dos dados completos

quanto nos balanceados, foram executadas duas técnicas. Em primeiro lugar, foi feito

a normalização dos dados por meio da normalização standard, por meio deste

procedimento, garantimos que a rede não erre na hora de atribuir os pesos devido as

variáveis que possuam valores muito discrepantes, dando um grau de importância

maior que uma do que para outra. Em segundo, foram retiradas variáveis com pouca

relevância explicativa, essa análise foi feita observando a correlação das variáveis

explicativas do modelo da rede neural com a variável resposta, neste caso a variável

“Premium” que indica se o usuário é ou não assinante.

Um outro estágio importante feito, foi a separação de amostras de treinamento,

representado por 80% dos dados, e amostras de teste, constando os outros 20%

restante. No conjunto de treinamento foi feito, como o próprio nome remete, o

processo de treinar a rede, para em seguida aplicar os dados de teste para verificar a

classificação real e comparar com que o modelo de RNA gerou.

Page 37: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

37

Por fim, foi feito uma acurácia dos resultados de classificação, onde é possível

identificar qual modelo de rede neural gerou um percentual de acerto maior no

processo de classificar indivíduos premium e não premium corretamente.

Para os treinamentos que serão detalhados mais à frente no trabalho, foram

propostas as seguintes estruturas de rede neural:

• 1 camada intermediária com 3 neurônios

• 1 camada intermediária com 8 neurônios

• 2 camadas intermediárias com 5 neurônios

• 2 camadas intermediárias com 8 neurônios

• 3 camadas intermediárias com 5 neurônios

• 3 camadas intermediárias com 8 neurônios

A quantidade de camadas intermediárias possíveis variou de 1 até 3, nesse

caso. Em geral, utiliza-se no máximo 2 camadas, entretanto como será possível ver

mais a frente, os dados do problema em questão são mais complexos, nesse caso,

ter mais camadas, por mais que torne o processo mais lento, faz com que a rede tenha

uma capacidade de processamento de dados maior, podendo trazer resultados mais

efetivos.

A escolha da quantidade de neurônios foi feita pensando no processamento de

dados da rede. Quanto mais neurônios, maior é a capacidade de processamento.

Entretanto, a escolha do número de neurônios foi deita tendo o cuidado de evitar os

processos de Underfitting, onde se tem poucos neurônios que não conseguem

detectar adequadamente os sinais em um conjunto complicado de dados e processos

de Overfitting, onde há muitos neurônios a serem treinados por um número limitado

de informação contida no conjunto de dados, tornando o processo muito demorado.

A seguir será apresentado os resultados dos treinamentos feitos para o banco

de dados completo e para a base balanceada.

4.2.1. Treinamento Base Completa

Foi feito o treinamento com a base completa e utilizando o algoritmo de

treinamento backpropagation resiliente com retrocesso de peso (rprop+).

Page 38: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

38

Antes de treinar a rede, foi feito o processo de análise de variáveis relevantes

para o modelo avaliado por meio da correlação. Com isso, as variáveis Anotações,

Filtros avançados e VL (vídeoaulas) foram retiradas do banco de dados, pois

mostraram-se irrelevantes para o modelo, visto que a correlação dessas variáveis com

a variável resposta “Premium” retornou valores muito pequenos, menor que 0,1. Após,

foi feita a normalização dos dados, seguindo para a separação das amostras de

treinamento e teste, para por fim, realizar o treinamento da rede neural.

Para todas as estruturas de RNA, desde as mais simples com 1 camada

intermediária e 3 neurônios até as mais complexas com 2 camadas e 8 neurônios, foi

obtido o mesmo resultado de acurácia do modelo, isto é, deixar a rede com uma

capacidade de processamento de dados maior não melhorou o resultado de

classificação. A “assertividade” foi medida de forma geral, isto é, vendo o quanto o

modelo acertou como um todo, pegando o total de acertos de premium e não premium

do modelo e de forma específica, analisando o quanto o modelo acertou para cada

grupo.

Conforme pode ser visto na tabela 3, para todas as estruturas de rede, os

acertos foram os mesmos, uma explicação para isso é o fato de que pelos dados

estarem muito desbalanceados, a rede por mais camadas e neurônios que possua,

não consegue classificar corretamente os dados, pois de tanto processar dados de

usuários não pagantes, que estão em grande maioria, a rede fica viciada e não

consegue distinguir bem a diferença de comportamento com a plataforma de usuários

premium para não premium.

Estrutura da RNA “Assertividade” % de acerto

1 camada 3 neurônios

Geral 99,52%

Não premium 100%

Premium 51,40%

1 camada 8 neurônios

Geral 99,52%

Não premium 100%

Premium 51,40%

2 camadas 5 neurônios

Geral 99,52%

Não premium 100%

Premium 51,40%

Page 39: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

39

2 camadas 8 neurônios

Geral 99,52%

Não premium 100%

Premium 51,40%

Tabela 3: Resultados treinamento base completa - algoritmo rprop+

Com essas informações, observa-se que utilizar a base completa gera uma

“assertividade” geral alta, de 99,52%. Porém, esse percentual está alto devido ao

acerto de 100% dos usuários não premium, que por estarem em maioria na base de

dados influenciaram o processo de classificação. Por outro lado, quando é visto o

resultado da acurácia para os indivíduos pagantes, apenas 51,4% da classificação

ocorre de forma correta, um percentual ruim de “assertividade”.

Logo, utilizar esses dados não trarão resultados bons para a classificação e

com isso, os projetos de data driven marketing seriam pouco efetivos, visto que

abrangeriam apenas metade dos usuários premium, pois os outros quase 50%

estariam sendo classificados incorretamente como não pagantes e não receberiam as

ações personalizadas para impulsionar o processo de compra da assinatura.

Diante disso, uma solução para esse problema, podendo ocasionar uma

classificação melhor, seria realizar o balanceamento dos dados. Colocando de forma

proporcional e mais equilibrada, a quantidade de usuários premium e não premium. O

balanceamento proposto será trabalhar com um banco de dados onde 50% dos

usuários são pagantes e 50% não.

4.2.2. Treinamento Dado Balanceado

4.2.2.1. Algoritmo rprop+

Após ser feito o treinamento com os dados completos, onde observa-se uma

grande discrepância na distribuição de pagantes e não pagantes, foi realizado um

processo de balanceamento, neste caso, tem-se a mesma quantidade de usuários

premium e não premium na base de dados.

A mesma etapa foi utilizada nesse caso, isto é, primeiro foram retirados do

banco de dados variáveis que não eram relevantes para o modelo, avaliadas por meio

Page 40: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

40

de correlações. Com isso, foram excluídas as seguintes variáveis: Anotações, Filtros

avançados e VL. Após, foi feita a normalização dos dados e separadas as amostras

de treino e teste.

Implementando o treinamento nas diferentes estruturas de rede neural,

utilizando nesse caso o algoritmo de treinamento rprop+, foram obtidos os seguintes

resultados para os percentuais de acerto, disponíveis na tabela 4.

Estrutura “Assertividade” % acerto

1 camada 3 neurônios

Geral 75,30%

Não premium 96,40%

Premium 54,90%

1 camada 8 neurônios

Geral 75,30%

Não premium 92,00%

Premium 59,30%

2 camadas 5 neurônios

Geral 75,50%

Não premium 92,60%

Premium 59,00%

2 camadas 8 neurônios

Geral 75,50%

Não premium 92,60%

Premium 59,00%

3 camadas 5 neurônios

Geral 75,47%

Não premium 85,27%

Premium 65,04%

3 camadas 8 neurônios

Geral 75,47%

Não premium 85,27%

Premium 65,04%

Tabela 4: Resultados treinamento dado balanceado - algoritmo rprop+

Realizando a análise da tabela com os resultados, é possível verificar que o

acerto geral foi de aproximadamente 75% para todas as estruturas de rede neural,

porém, a “assertividade” da classe não premium diminuiu com a implementação de

mais camadas, entretanto essa queda não prejudica a boa classificação que o modelo

gera para esse grupo, visto que o menor percentual de acerto é de 85,27%, o que

ainda continua sendo um valor adequado. Por outro lado, o percentual de acerto dos

usuários premium aumentou, passando de 54,9% na estrutura mais simples com 1

camada e 3 neurônios, para 65,04% com 3 camadas e 5 neurônios.

Page 41: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

41

Sendo assim, a melhor opção nesse caso, já que o acerto geral não varia, e a

“assertividade” dos não premium continua alta independente da estrutura da rede

escolhida, é escolher o modelo de rede neural que trás o melhor resultado de acerto

para a classe de usuários premium. Com isso, a melhor opção seria a estrutura de

rede com 3 camadas intermediárias e 5 neurônios em cada e com ela tem-se que o

modelo está acertando 75,47% dos usuários em geral, a maioria dos não premium

(85,27%) e mais da metade dos premium (65,04%).

Esse modelo de rede não gerou o resultado ideal, mas quando comparado ao

caso anterior, onde se tinha a base completa, observa-se um resultado muito melhor,

pois há mais equilíbrio no acerto das classes. Nessa situação, será feito um novo

treino, como uma tentativa de melhorar a acurácia propondo outro algoritmo de

treinamento, que será também implementado em dados balanceados, pois eles até

agora trouxeram um resultado mais harmônico.

4.2.2.2. Algoritmo backpropagation

Para realizar esse novo treinamento, foram realizados os mesmos processos

de balancear os dados colocando a mesma quantidade de indivíduos premium e não

premium na base, seguido de retirar variáveis irrelevantes para o modelo por meio de

análise de correlação, nesse caso foram tiradas as variáveis Filtros avançados,

Anotações e VL, como nos casos anteriores, após executar a normalização dos dados

e por fim separar as amostras de treino e teste para começar o processo de

treinamento da rede neural.

Aplicando o algoritmo backpropagation, a rede neural apresentou os seguintes

resultados listados abaixo na Tabela 5.

Estrutura “Assertividade” % acerto

1 camada 3 neurônios

Geral 64,70%

Não premium 97,20%

Premium 31,00%

1 camada 5 neurônios

Geral 74,60%

Não premium 95,70%

Premium 53,00%

Page 42: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

42

1 camada 8 neurônios

Geral Rede não convergiu

Não premium

Premium

2 camadas 5 neurônios

Geral Rede não convergiu

Não premium

Premium

3 camadas 5 neurônios

Geral Rede não convergiu

Não premium

Premium

Tabela 5: Resultados treinamento dado balanceado - algoritmo backpropagation

Por meio da análise dos resultados, é possível perceber que utilizando o

algoritmo backpropagation, os resultados não foram muito satisfatórios. Para as duas

primeiras estruturas de RNA, foi possível observar que o % de acerto dos usuários

premium está muito baixo, apenas 31% de acerto na estrutura de 1 camada

intermediária com 3 neurônios e 53% de acerto na rede com 1 camada intermediária

e 5 neurônios. Com esses resultados teríamos a maioria dos usuários não premium

sendo classificados corretamente, porém, os usuários pagantes, que nesse caso são

de nosso interesse, estariam classificados incorretamente.

Um outro ponto importante observado é que o algoritmo de treinamento não

conseguia convergir conforme a estrutura da rede se tornava mais complexa, no caso,

quando se tinha mais de 1 camada e 8 neurônios.

Diante deste problema, diversos ajustes nos parâmetros da função de

treinamento foram feitos para tentar melhorar o processo da classificação, porém

nenhum deles resolveu. Entre essas adaptações estão: reduzir a taxa de aprendizado

da rede, pois com essa taxa baixa, a rede consegue retornar valores mais adequados

para o sistema em questão, pois ela tem mais tempo para realizar os ajustes de forma

mais coerente e foi proposto também o aumento do parâmetro stepmax. A ideia de

realizar essas alterações nos parâmetros seria fazer com que o algoritmo de

treinamento tivesse mais tempo para conseguir ser cuidadoso ao realizar os ajustes

dos pesos, afim de trazer classificações mais coerentes e assertivas, entretanto isto

não aconteceu.

Page 43: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

43

4.3. Rede Neural selecionada

A RNA que trouxe melhor resultado foi a aplicada nos dados balanceados

utilizando o algoritmo rprop+, utilizando a estrutura de 3 camadas intermediárias com

5 neurônios. Ela retornou uma acurácia geral de 75,47% e avaliando entre os grupos,

a “assertividade” de usuários premium foi de 65,04% e de não premium de 85,27%.

Na figura 12, é possível identificar a estrutura final da rede escolhida.

Figura 12: Estrutura rede neural selecionada

Após a escolha da RNA que proporcionou a melhor classificação dos grupos, é

necessário realizar a técnica de validação cruzada, para verificar se para diferentes

amostras de treinamento e teste, a acurácia média geral e para as classes premium e

não premium continuarão trazendo um percentual de acerto coerente para a solução

do problema.

4.4. Validação Cruzada

Para realizar a validação cruzada dos dados foram feitas 10 rodadas de

treinamento para 10 amostras distintas de treino e teste, selecionados do banco de

dados balanceado. Após serem feitas as 10 rodadas, é calculado a média do

Page 44: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

44

percentual de acerto geral e entre os grupos premium e não premium. A ideia nesse

caso, é ver se para diferentes amostras, a rede continuará trazendo bons resultados,

isto é, a validação cruzada é uma técnica para avaliar a capacidade de generalização

de um modelo, a partir de um conjunto de dados.

Foram feitos treinamentos em diferentes conjuntos de amostras para verificar

se o modelo tinha uma boa capacidade classificatória para qualquer novo conjunto de

dados que fosse apresentado a ele. Diante disso, o resultado da validação cruzada foi

bom, com uma “assertividade” média geral de 77%, na classe não premium 82% de

acerto e na premium, 71% de acerto. Com isso, tem-se que a maioria dos usuários

premium e não premium conseguem ser classificados corretamente e que o modelo

acerta em geral 77% dos casos.

Page 45: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

45

5. CONCLUSÃO

Após ser feita a análise de todos os resultados de treinamentos propostos, foi

possível identificar que ao utilizar o banco de dados completo, isto é, com

desbalanceamento entre usuários premium e não premium, foi obtido um percentual

de acerto geral muito alto, entretanto, este valor estava sendo puxado para cima

devido ao grande acerto que a classe não premium estava tendo, visto que estes

estavam em grande maioria na base de dados. Sendo assim, utilizar o dado completo

não iria trazer bons resultados para o processo de classificação dos estudantes e por

consequência não impactaria a venda de assinatura.

Utilizar o treinamento backpropagation para os dados balanceados também

não trouxe uma predição satisfatória, visto que para treinamentos convergentes os

resultados foram ruins, já que o acerto na classe premium era baixo, logo o nosso

grupo de interesse não iria conseguir ser impactado corretamente pelas ações

personalizadas de impulsionamento de compra.

Logo, a rede neural que trouxe o melhor resultado foi a feita em dados

balanceados utilizando o algoritmo de treinamento “rprop+”. Nesse caso foi escolhido

a estrutura com 3 camadas intermediárias e 5 neurônios em cada uma delas, pois

essa RNA trouxe a melhor acurácia, trouxe uma “assertividade” geral e entre grupos

boa, sendo legitimada por meio do processo de validação cruzada.

Dessa forma, 71% dos usuários que não são premium, mas que possuírem um

comportamento de consumo e interação com a plataforma parecido com de

assinantes, serão atingidos pela ação personalizada de atribuição de desconto no

plano de assinatura, para que assim, eles consigam ser impulsionados a realizar a

compra e se tornarem premium. Tal ação impactará a receita positivamente, fazendo

com que a mesma cresça tendo em vista ao aumento de chance de compra desses

usuários impactados pelas ações de data driven marketing.

Page 46: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

46

6. REFERÊNCIAS BIBLIOGRÁFICAS

BEAR, F.; CONNORS, B.; PARADISO, M. Neuroscience: Exploring the Brain. 3rd ed.

China: Lippincott Williams & Wilkins, 2007.

BISHOP, C. Neural Networks for Pattern Recognition. Nova York: Oxford University

Press, 1995.

BISHOP, C. Pattern Recognition and Machine Learning. Singapura: Springer, 2006.

BRAGA, A.; CARVALHO, A.; LUDERMIR, T. Redes neurais artificiais: teoria e

aplicações. Rio de Janeiro: Livros Técnicos e Científicos, 2000.

CORTES, C.; VAPNIK, V. Support-Vector Networks. Kluwer Academic Publishers-

Plenum Publishers, Nova York, v.20, n.3, p. 273-297, set.1995.

FALQUETO, D. Rede Neural Artificial para Reconhecimento de Tabela de Horários

de Arme/Desarme no Sistema Sigma. 2007. 45f. Trabalho de Conclusão de Curso –

Universidade do Vale do Itajaí, Santa Catarina, 2007.

FERNANDES, A. Inteligência Artificial Noções Gerais. Florianópolis, Visual Books,

2003

HAYKIN, S. Neural Networks and Learning Machines. 3rd ed. Ontario: Prentice Hall,

2009.

KOHONEN, T. Self-organized formation of topologically correct feature maps.

Springer-Verlag, Berlim, v.43, n.1, p.59-69, jan.1982.

MATHIAS, V. Aplicação de uma rede neural artificial para otimização de CPC

máximo em Google AdWords. 2016. 47f. Trabalho de Conclusão de Curso – USP,

São Paulo, 2016.

Page 47: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

47

MCCULLOCH, W.; PITTS, W. A Logical Calculus of the Ideas Immanent in Nervous Activity. The bulletin of mathematical biophysics, Grã-Bretanha, v. 5, n.4, p.115-133, dec.1943.

MICHIELS, I. Data Driven Marketing. 2009. Disponível em:

<http://viewer.media.bitpipe.com/1033409397_523/1268757993_85/IBMDataDriven

MarketingAberdeen.pdf>. Acesso em: 10 junho de 2018.

MUELLER, A. Uma Aplicação de Redes Neurais Artificiais na Previsao do Mercado

Acionário. 1996. 100f. Dissertação de Mestrado – UFSC, Santa Catarina, 1996.

NIA, M. Social Big Data Analytics of Consumer Choices: A Two Sided Online

Platform Perspective. 2016. 270f. Tese de Doutorado - University of Texas at Dallas,

Texas, 2016.

ORRÚ, T. Redes Neurais Artificiais para Reconhecimento e Classificação de

Padrões. Disponível em: <https://pt.scribd.com/document/284263241/RNA-Aplicada-

a-Reconhecimento-de-Padroes>. Acesso em: 25 de maio de 2018.

RABELO, A. Data-driven marketing: O que é essa estratégia e qual será o seu

futuro?. Disponível em: <https://inteligencia.rockcontent.com/data-driven-

marketing/>. Acesso em: 25 de maio de 2018

ROSENBLATT, F. The Perceptron: A Probabilistic Model for Information Storage and

Organization in the Brain. Cornell Aeronautical Laboratory, Nova York, v.65, n.6,

p.386-408, nov.1958.

SILVA, R. Reconhecimento de ambientes em fotos do Instagram com deep learning.

2016. 41f. Trabalho de Conclusão de Curso – UFP, Pernambuco, 2016.

TAFNER, M.; XEREZ M.; RODRIGUES FILHO I. Redes Neurais Artificiais:

Introdução e princípios de neurocomputação. Blumenau: EKO, 1995.

TAN, P.; STEINBACH, M.; HUMAR, V. Introduction to Data Mining. Estados Unidos:

Pearson Education, Inc., 2006.

Page 48: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

48

ANEXO - Algoritmo Backpropagation

# Algoritmo será aplicado para o operador lógico XOR,no qual a resposta da operação é verdade (1) quando as variáveis assumirem valores diferentes entre si.

#Dados

entradas = matrix(c(0, 0, 0, 1, 1, 0, 1, 1), nrow = 4, ncol = 2, byrow = T)

saidas = matrix(c(0, 1, 1, 0))

operadorXOR = cbind(entradas,saidas)

#Função de ativação sigmoide

sigmoide = function(soma) {

return (1 / (1 + exp(-soma)))

}

#Gradiente: Para achar pesos que gerem o menor erro possível (mínimo global)

#Derivadas parciais são usadas para calcular os declives da curva, dando a direção correta para encontrar o mínimo global.

sigmoideDerivada = function(sig) {

return (sig * (1 - sig))

}

#Parâmetros estabelecidos para o treinamento da rede

#Peso: Valor atribuído para cada variável por grau de relevância

pesos0 = matrix(runif(6, min = -1, max = 1), nrow = 2, ncol = 3, byrow = T)

pesos1 = matrix(runif(3, min = -1, max = 1), nrow = 3, ncol = 1, byrow = T)

#Épocas: Quantidade de vezes que são apresentadas uma amostra para ajustes dos pesos sinápticos.

epocas = 100000

#Momento: Efeito das mudanças passadas dos pesos na direção atual do movimento no espaço de pesos.

momento = 1

#Taxa de aprendizagem: O quão rápido o algoritmo vai aprender

taxaAprendizagem = 0.5

Page 49: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

49

#Implementação do algoritmo

for (j in 1:epocas) {

camadaEntrada = entradas

#Camada intermediária

somaSinapse0 = camadaEntrada %*% pesos0 #ponderação pelos pesos

camadaOculta = sigmoide(somaSinapse0) #Aplicando a função de ativação

#Camada de saída

somaSinapse1 = camadaOculta %*% pesos1

camadaSaida = sigmoide(somaSinapse1)

#erros

erroCamadaSaida = saidas - camadaSaida #valor real - valor gerado pela rede

mediaAbsoluta = mean(abs(erroCamadaSaida)) #Média de erro gerado

print(paste('Erro: ', mediaAbsoluta))

#Aplicando o gradiente: Tentando encontrar mínimo global - menor erro possível

derivadaSaida = sigmoideDerivada(camadaSaida)

deltaSaida = erroCamadaSaida * derivadaSaida

#erro ajustado para ser reduzido a um mínimo global

#Ajustando o peso, que será retropropagado, após o erro ser ajustado pela aplicação do gradiente

pesos1Transposta = t(pesos1)

deltaSaidaXPeso = deltaSaida %*% pesos1Transposta #Ajuste na camada de saída

deltaCamadaOculta = deltaSaidaXPeso * sigmoideDerivada(camadaOculta) #Ajuste na camada intermediária

#Atualização dos pesos camada intermediária

camadaOcultaTransposta = t(camadaOculta)

pesosNovo1 = camadaOcultaTransposta %*% deltaSaida

pesos1 = (pesos1 * momento) + (pesosNovo1 * taxaAprendizagem)

#Atualização dos pesos valores de entrada

camadaEntradaTransposta = t(camadaEntrada)

Page 50: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

50

pesosNovo0 = camadaEntradaTransposta %*% deltaCamadaOculta

pesos0 = (pesos0 * momento) + (pesosNovo0 * taxaAprendizagem)

}

Page 51: Uso de Redes Neurais Artificiais como Ferramenta de ...estatistica.uff.br/wp-content/uploads/sites/33/... · Monografia de Projeto Final de Graduação sob o título “Uso de Redes

51