Buscar

Redes neurais_br_artificiais (RNA)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 49 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 49 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 49 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Redes neurais arti�ciais (RNA)
Prof.º Fábio Daudt
Descrição
Redes neurais artificiais (RNA), conceitos e aplicações.
Propósito
Conhecer as redes neurais artificiais é fundamental porque elas
abrangem boa parte da evolução das tecnologias que experimentamos
nos últimos anos, como reconhecimento de voz, visão computacional e
muitas outras que utilizam na sua essência essa mesma tecnologia.
Preparação
Antes de iniciar seu estudo, verifique se possui acesso a algum editor de
Python para executar o projeto proposto (download disponível), tal
como Jupyter Notebook ou acesso ao Google Colab. Os dados a serem
processados também estão incluídos no referido arquivo para
download.
Objetivos
https://stecine.azureedge.net/repositorio/00212ti/07393/docs/Projeto_v02.zip
Módulo 1
Conceitos e características de uma rede
neural arti�cial
Reconhecer os principais conceitos e características das redes
neurais artificiais (RNA).
Módulo 2
Arquiteturas de redes neurais arti�ciais
Identificar as principais arquiteturas de redes neurais artificiais e suas
respectivas características.
Módulo 3
Rede perceptron e perceptron multicamadas
Identificar os conceitos e as características do perceptron e
perceptron multicamadas.
Módulo 4
Redes neurais arti�ciais na prática
Aplicar um projeto prático de redes neurais artificiais.
Introdução
Inicialmente, vamos analisar os principais conceitos e
características de uma rede neural artificial como técnica
computacional que apresenta um modelo matemático inspirado
na estrutura neural de organismos inteligentes e que adquirem
conhecimento por meio da experiência, podendo uma grande
rede neural artificial ter centenas ou milhares de unidades de
processamento.
Veremos também as principais arquiteturas de redes neurais
artificiais, assim como suas respectivas utilidades, cabendo
destacar que arquiteturas neurais são tipicamente organizadas
em camadas, com unidades que podem estar conectadas às
unidades da camada posterior.
Destacaremos as redes perceptron e perceptron multicamadas,
sendo que o modelo perceptron permite uma compreensão clara
de como funciona uma rede neural em termos matemáticos,
sendo uma excelente introdução.
Ao final, vamos treinar/testar um modelo de machine learning
com arquitetura de rede neural perceptron de multicamadas
(multilayer perceptron) para detecção de diabetes, aplicando,
assim, nossos conhecimentos.

1 - Conceitos e características de uma rede neural arti�cial
Ao �nal deste módulo, você será capaz de reconhecer os principais conceitos e
características das redes neurais arti�ciais (RNA).
Entendendo as redes neurais
arti�ciais
Assista ao vídeo a seguir para aprender sobre Redes Neurais como
Paradigma de programação.
Paradigma de programação
As RNAs, de acordo com Fleck (2016), tem a seguinte linha do tempo:
 1943
As RNAs surgiram com o modelo matemático do
neurônio biológico proposto por Warren McCulloch
e Walter Pitts. O modelo, denominado neurônio
MCP (McCulloch-Pitts), é descrito por um conjunto
de n entradas, as quais são multiplicadas por um
determinado peso e, em seguida, os resultados são
somados e comparados a um limiar.
 1958
Frank Rosenblatt propôs uma topologia de rede
denominada de perceptron constituída por
neurônios MLP (perceptrons de múltiplas camadas)
e arranjada em forma de rede composta de duas
camadas, a qual possibilitou um aumento de
trabalhos relacionados a redes neurais até 1969.
 1969
A publicação de Minsky e Papert mostrou
deficiências e limitações do modelo MLP,
Nos dias atuais, a modelagem matemática aliada à simulação de
cenários futuros merece especial destaque, tendo em vista as múltiplas
finalidades às quais se destina, sendo que a teoria de RNAs representa
uma alternativa aos algoritmos tradicionais empregando métodos
determinísticos.
Em sua forma mais geral, uma rede neural é um sistema projetado para
modelar a maneira como o cérebro realiza uma tarefa particular, sendo
normalmente implementada utilizando-se componentes eletrônicos ou é
simulada por propagação em um computador digital. Para alcançarem
bom desempenho, as redes neurais empregam uma interligação maciça
de células computacionais simples, denominadas de “neurônios” ou
unidades de processamento.
provocando um desinteresse pelos estudos
relacionados às RNAs.
 1982
Somente a partir de 1982, com a publicação do
trabalho de Hopfield, foi novamente despertado o
interesse pelos estudos relacionados às redes
neurais.
Um dos mais surpreendentes paradigmas de
programação já criados são as redes neurais artificiais.
No método tradicional de programação, instruímos o
computador sobre o que fazer, dividindo grandes
problemas em muitas tarefas gerenciáveis e
cuidadosamente definidas. Em contraste, não
instruímos uma rede neural sobre como resolver um
problema. Em vez disso, ela obtém conhecimento de
dados observacionais e resolve o problema por conta
própria. Ou seja, é um método para criar programas de
computador que podem aprender com dados.
Uma rede neural artificial é inspirada e baseada em como acreditamos
que o cérebro humano funciona. Observe como acontece:

Primeiro, uma rede de
"neurônios artificiais" de
software
interconectados é
construída e habilitada
para que esses
neurônios artificiais se
comuniquem uns com
os outros.

Segundo, a rede é então
solicitada a resolver um
problema, o que ela
repetidamente tenta
fazer enquanto amplia
as conexões que levam
ao sucesso e
enfraquece as que
levam ao fracasso.
Um neurônio é o bloco de construção básico de perceptrons e redes
neurais artificiais. Eles são inspirados por neurônios biológicos. Na
programação, um neurônio é um dado e uma coleção de pesos entre
esse neurônio e os neurônios conectados. Todas as conexões têm
pesos associados para simular como a ativação de um neurônio afeta
os demais neurônios conectados.
O modelo perceptron permite uma compreensão clara de como funciona
uma rede neural em termos matemáticos. Basicamente, é um modelo

matemático que recebe várias entradas, x1, x2, … e produz uma única
saída binária, como ilustra a imagem a seguir.
Contextualizando o neurônio artificial.
As redes neurais artificiais (RNA) foram desenvolvidas como resultado
de pesquisas sobre o cérebro. Elas consistem em muitos nós
interconectados, cada um dos quais executa uma operação matemática
direta. Esse procedimento, juntamente com um conjunto de parâmetros
exclusivos para cada nó, determina a saída de cada nó. Funções muito
complexas podem ser aprendidas e calculadas combinando esses nós e
especificando cuidadosamente seus parâmetros. Observe a imagem a
seguir:
Neurônio biológico x neurônio matemático.
As redes neurais artificiais são comumente apresentadas como um
grafo orientado, em que os vértices são os neurônios e as arestas, as
sinapses. A direção das arestas informa o tipo de alimentação, ou seja,
como os neurônios são alimentados (recebem sinais de entrada). As
redes neurais derivam seu poder devido à sua estrutura massiva e
paralela e a habilidade de aprender por experiência. Essa experiência é
transmitida por meio de exemplos obtidos do mundo real, definidos
como um conjunto de características formadas por dados de entrada e
de saída.
Funcionamento de uma rede neural arti�cial
Assista ao vídeo a seguir para ver como funciona de uma rede neural
artificial.
Normalmente, a rede neural artificial é configurada em camadas. As
camadas são compostas de vários "nós" interconectados, cada um com
uma "função de ativação". Os seguintes componentes podem ser
encontrados em uma rede neural artificial: camada de entrada (input
layer), camada oculta (hidden layer), camada de saída (output layer),
função de ativação (activate function), pesos (weights) e viés (bias).
Estrutura de uma rede neural artificial.
A imagem a seguir exemplifica o processamento de imagem, uma das
aplicações das redes neurais.
Reconhecimento de imagem utilizando redes neurais.Camada de entrada (input layer)
Os valores das características explicativas para cada observação devem
ser inseridos como entrada na camada de entrada, sendo os inputs dos
dados da imagem anterior. Em uma camada de entrada, normalmente
existem tantos nós de entrada quanto variáveis explanatórias. A rede
recebe os padrões da "camada de entrada" e os transmite para uma ou
mais "camadas ocultas" via rede.
Os nós da camada de entrada são passivos, o que significa que não
alteram os dados. Eles recebem um valor como entrada e o replicam em
todas as suas saídas. Ele copia cada valor da camada de entrada e o
envia para cada nó oculto.
Camada oculta (hidden layer)
Responsável pelo processamento dos dados, não tem contato com o
mundo externo. A função dos neurônios ocultos é intervir entre a
camada de entrada e saída. Por meio de uma ou mais camadas de
neurônios ocultos, a rede se torna capaz de extrair estatísticas mais
elaboradas.
Os valores de entrada dentro da rede estão sujeitos às modificações
aplicadas pelas camadas ocultas. Isso envolve arcos de entrada que
vêm de nós de entrada conectados a cada nó ou de outros nós ocultos.
Ele se conecta a nós de saída ou outros nós ocultos usando arcos que
estão saindo do sistema. O processamento real é realizado por meio de
um sistema de "conexões" ponderadas em uma camada oculta. Uma ou
mais camadas ocultas podem existir.
Camada de saída (output layer)
Camada onde ocorre o resultado final do processamento de uma rede
neural. As camadas ocultas são vinculadas a uma “camada de saída”. A
camada de saída recebe conexões das camadas ocultas ou da camada
de entrada. Ela retorna um valor de saída que corresponde à previsão da
variável de resposta. Em problemas de classificação, geralmente há
apenas um nó de saída. Os nós ativos da camada de saída combinam e
alteram os dados para produzir os valores de saída.
Pesos (weights)
Os pesos, que correspondem às variáveis W1, W2 e W3 na imagem a
seguir, são uma coleção de números predeterminados contidos no
programa que são multiplicados pelos valores inseridos em um nó
oculto. Um único número é então criado adicionando as entradas
ponderadas.
Para que haja o processamento, a rede precisa de uma função de
ativação, detalhada a seguir, que é a função matemática utilizada para
definir os pesos associados a cada rede.
Estrutura de uma rede neural artificial.
Viés (bias)
O viés (bias) permite mover valores em uma direção ou outra. As redes
neurais não sabem antecipadamente quais os valores a escolher para o
bias. O bias também pode ser atualizado e alterado pela rede neural
durante o treinamento, assim como os pesos.
O bias é uma variável incluída ao somatório da função de ativação, com
o intuito de aumentar o grau de liberdade dessa função e,
consequentemente, a capacidade de aproximação da rede. O valor do
bias é ajustado da mesma forma que os pesos sinápticos.
Função de ativação (activate function)
A função de ativação é uma função que mapeia corretamente a camada
anterior para as restrições da próxima (geralmente 0/1).
A função de ativação é uma mudança não linear nos valores antes de
enviar os valores de resultado. Por que precisamos de uma função de
ativação? Se usarmos apenas cálculo linear sem funções de ativação,
não podemos dar nenhum “efeito de camada oculta’ ao nosso modelo.
Ou seja, para "ativar" o poder real das redes neurais artificiais,
precisamos aplicar uma "função de ativação". As principais funções de
ativação são:
Sigmoid
Contínua entre 0 e 1.
Tanh
Contínuo entre -1 e 1.
Threshold (com limite)
Define a saída 1 ou 0 de acordo com um limite estabelecido.
ReLu
Torna qualquer valor negativo igual a 0, caso contrário não faz nada.
Linear
Multiplica a saída por uma constante.
Softmax
Converte um conjunto de números em probabilidades, usado para
classificação.
Vejamos algumas representações a seguir:
Função de ativação.
Aplicando as redes neurais arti�ciais
Assista ao vídeo a seguir para aprender a aplicar as redes neurais
artificiais.
Vantagens e desvantagens de uma rede neural arti�cial
Existem algumas vantagens e desvantagens de uma rede neural
artificial para aprendizado de máquina.
Vamos conhecê-las:
Funciona bem com dados lineares e não lineares.
Vantagens 
Arquitetura facilmente adaptável a vários domínios de
problemas.
As redes neurais funcionam mesmo que uma ou algumas
unidades não respondam à rede.
A rede neural aprende com os dados analisados e não
requer reprogramação.
Requer muitos dados de treinamento limpos – precisam de
uma ampla variedade de dados de treinamento para
funcionar no mundo real, sendo esse o caso, porque
qualquer máquina de aprendizado precisa de um conjunto
grande o suficiente de instâncias representativas para
entender completamente a estrutura subjacente e
generalizar para novas situações.
Requer alto poder computacional – são necessários muitos
recursos de processamento e armazenamento para criar
redes neurais de software grandes e eficientes. Até mesmo
a forma mais simples de uma rede neural usando a
tecnologia de Von Neumann pode exigir que um projetista
de rede neural preencha milhões de linhas de banco de
dados com conexões (dados), o que pode consumir muitos
recursos computacionais (memória, armazenamento e
processamento).
Dificuldade na interpretação dos resultados – são
chamados de modelos de caixa preta e fornecem
pouquíssimo conhecimento sobre o que esses modelos
realmente fazem.
Aplicações das redes neurais arti�ciais
As redes neurais têm uma ampla gama de aplicações e são capazes de
analisar uma variedade de entradas, incluindo arquivos, bancos de
dados, fotos, vídeos e muito mais. Além disso, eles não precisam de
programação explícita para interpretar as informações nessas entradas.
Quase não há restrições nos campos em que as redes neurais podem
ser usadas devido à abordagem generalista para a solução de
problemas que elas fornecem. Hoje, as redes neurais são aplicadas de
Desvantagens 
várias maneiras e seu uso está se espalhando rapidamente. Algumas
aplicações comuns para redes neurais atualmente incluem:
reconhecimento de imagem/padrão, previsão de trajetória de veículo
autônomo, identificação facial, mineração de dados, filtragem de spam
de e-mail, diagnóstico médico e pesquisa de câncer.
Sistema de reconhecimento de imagem.
Falta pouco para atingir seus objetivos.
Vamos praticar alguns conceitos?
Questão 1
Redes neurais artificiais são técnicas computacionais que
apresentam um modelo matemático inspirado na estrutura neural
de organismos inteligentes e que adquirem conhecimento por meio
da experiência. Como é chamada a primeira camada de uma rede
neural artificial?
A Camada de entrada (input layer).
B Feedback layer (camada de retorno).
Parabéns! A alternativa A está correta.
A primeira camada de uma rede neural artificial é a camada de
entrada (input layer).
Questão 2
As redes neurais artificiais são muito utilizadas para encontrar
soluções e escalar processos para facilitar a tomada de decisões.
Indique uma vantagem das redes neurais artificiais.
C Camada de saída (output layer).
D Activation layer (camada de ativação).
E Camada de pesos (weight layer).
A Requer muitos dados de treinamento limpos.
B
Ter arquitetura facilmente adaptável a vários
domínios de problemas.
C Requer alto poder computacional.
D
Apresentar dificuldade de interpretação dos
resultados.
E Pouca quantidade de dados disponíveis atualmente.
Parabéns! A alternativa B está correta.
A única opção que representa uma vantagem das redes neurais
artificiais é o fato de a arquitetura ser facilmente adaptável a vários
domínios de problemas.
2 - Arquiteturas de redes neurais arti�ciais
Ao �nal deste módulo, você será capaz de identi�car as principais arquiteturas de redes
neurais arti�ciais e suas respectivas características.
Feed forward (redes diretas)
Assista ao vídeo para aprender sobre a rede neural feed forward (redes
diretas).Arquitetura feed forward
Na arquitetura feed forward, os neurônios são dispostos em conjuntos
distintos e ordenados sequencialmente, ou seja, são organizados em
camadas (layers). A camada inicial recebe os sinais de entrada
enquanto a camada final obtém as saídas. As camadas intermediárias
são chamadas de camadas ocultas.
Uma rede neural feed forward é um tipo de rede neural artificial em que
não há ciclo nas conexões entre os neurônios de uma mesma camada,
ou seja, cada neurônio de uma camada é conectado com todos os
neurônios da camada seguinte.
Como a entrada é processada apenas em uma direção, o modelo feed
forward é o tipo mais simples de rede neural. Nessa arquitetura, embora
os dados possam fluir através de vários nós, eles sempre avançam e
nunca retrocedem. O fluxo de informação é sempre da camada de
entrada para a camada de saída.
As redes feed forward podem ser redes de camada única ou redes de
múltiplas camadas, apenas diferenciando o número de camadas, mas o
conceito de alimentação adiante ou direta é o mesmo.
Redes feed forward.
Como funciona uma rede neural feed forward?
Uma rede neural feed forward é comumente vista em sua forma mais
simples como um perceptron de camada única. Nesse modelo, uma
série de entradas entra na camada e elas são multiplicadas pelos pesos.
Cada valor é então somado para obter uma soma dos valores de entrada
ponderados. Se a soma dos valores estiver acima de um limite
específico, geralmente definido como zero, o valor produzido geralmente
é 1, enquanto se a soma cair abaixo do limite, o valor de saída é -1.
Perceptron de camada única
É um importante modelo de redes neurais feed forward e é
frequentemente usado em tarefas de classificação. Além disso,
perceptrons de camada única podem incorporar aspectos de
aprendizado de máquina. Usando uma propriedade conhecida
como regra delta, a rede neural pode comparar as saídas de
seus nós com os valores pretendidos, permitindo assim que a
rede ajuste seus pesos por meio de treinamento para produzir
valores de saída mais precisos. Esse processo de treinamento
e aprendizado produz uma espécie de gradiente descendente.
Perceptron multicamadas (multilayer perceptrons)
O processo de atualização de pesos é semelhante, porém o
processo é definido mais especificamente como
retropropagação (backpropagation). Nesses casos, cada
camada oculta dentro da rede é ajustada de acordo com os
valores de saída produzidos pela camada final, ou seja, o
objetivo do backpropagation é otimizar os pesos para que a
rede neural possa aprender a mapear corretamente as entradas
para as saídas.
Embora as redes neurais feed forward sejam extremamente simples,
elas fornecem um benefício em alguns aplicativos de aprendizado de
máquina devido à sua arquitetura simplificada. Usando um intermediário
modesto para moderação, pode-se, por exemplo, colocar várias redes
neurais feed forward com o objetivo de executá-las separadamente
umas das outras. Semelhante ao cérebro humano, esse processo utiliza
muitos neurônios individuais para lidar e compreender tarefas mais
complexas. As descobertas de cada rede trabalhando
independentemente podem ser integradas no final para criar uma saída
sintetizada e coesa.
Feed backward networks (redes
recorrentes)
Assista ao vídeo a seguir para aprender a usar as feed backward
networks.
Arquitetura feed backward networks (redes recorrentes)
Nas redes feed backward networks (redes recorrentes), a saída de um
neurônio é aplicada como entrada no próprio neurônio e/ou em outros
neurônios de camadas anteriores, ou seja, há ocorrência de
realimentação (ciclo no grafo).
Uma rede neural recorrente, na qual determinados caminhos são
percorridos, é o inverso de uma rede neural feed forward (alimentação
direta).
As redes recorrentes são identificadas por seus loops de feedback.
Esses algoritmos de aprendizado são aproveitados principalmente ao
usar dados de séries temporais para fazer previsões sobre resultados
futuros (previsões do mercado de ações ou previsão de vendas),
assistente de voz, previsão de tempo e geração de música.
Como funcionam as feed backward networks?
Assim como as redes neurais de feed forward, as redes neurais
recorrentes utilizam dados de treinamento para o aprendizado, ou seja,
são considerados algoritmos de aprendizagem supervisionada. Eles se
distinguem por sua “memória”, pois obtêm informações de entradas
anteriores para influenciar a entrada e a saída atuais.
Algumas redes recorrentes derivadas da rede perceptron multicamadas
(multilayer perceptron) são: Rede de Hopfield, Rede de Jordan e Rede de
Elman. Essas redes inspiraram os modelos recorrentes mais atuais,
como as redes neurais recorrentes (Recurrent Neural Network) e LSTM
(Long Short Term Memory).
Enquanto as redes neurais profundas tradicionais assumem que as
entradas e saídas são independentes umas das outras, a saída das
redes neurais recorrentes depende dos elementos anteriores dentro da
sequência. Embora eventos futuros também sejam úteis para
determinar a saída de uma determinada sequência, as redes neurais
recorrentes unidirecionais não podem explicar esses eventos em suas
previsões.
Recurrent Neural Network (RNN) como exemplo de redes recorrentes.
Rede competitiva
Assista ao vídeo a seguir para entender como criar uma rede neural
competitiva.
Esse tipo de rede neural é composto por duas camadas, a camada de
entrada, também conhecida como "fontes", e a camada de saída,
também conhecida como "grau". Apenas o neurônio vencedor é
disseminado (ativado) ao final de cada ciclo, o que é determinado pelo
grau de similaridade entre os requisitos de entrada e o grau de
neurônios. Essa classe de representações utiliza algoritmos para
aprendizado competitivo. O "Mapa Auto-organizável", ou rede de
Kohonen, é a rede mais conhecida desse tipo, ilustrada na imagem a
seguir.
Rede de Kohonen.
Nessa arquitetura, as conexões entre as camadas podem gerar n
números de estruturas diferentes.
A rede é chamada de amplamente conectada ou rede direta quando ela
possui todas as saídas dos neurônios de uma camada conectadas com
todos os neurônios da camada seguinte. Quando o sinal de saída de um
neurônio servir como sinal de entrada para um ou mais neurônios na
mesma camada ou em alguma camada anterior, a rede possui uma
característica denominada realimentação (feedback). A presença
desses laços de realimentação tem grande impacto na capacidade de
aprendizagem da rede.
Falta pouco para atingir seus objetivos.
Vamos praticar alguns conceitos?
Questão 1
Redes perceptron de multicamadas são redes diretas que possuem
uma ou mais camadas de neurônios entre as camadas de entrada e
saída, chamada de camada oculta. Essa camada adiciona um poder
maior em relação às redes perceptron de camada única, que
classificam apenas padrões linearmente separáveis, sendo os
neurônios ocultos responsáveis por capturar a não linearidade dos
dados. Essa descrição corresponde à(ao)
Parabéns! A alternativa C está correta.
A arquitetura feed forward são redes diretas, sendo a mesma usada
nas redes perceptron de multicamadas.
Questão 2
A função de ativação.
B feed backward networks (redes recorrentes).
C feed forward.
D backpropagation.
E rede competitiva.
Em quais redes a saída de um neurônio é aplicada como entrada no
próprio neurônio e/ou em outros neurônios de camadas anteriores,
ou seja, há ocorrência de realimentação? Estas são identificadas
por seus loops de feedback?
Parabéns! A alternativa D está correta.
Nas redes feed backward networks, a saída de um neurônio é
aplicada como entrada no próprio neurônio ou em outros neurônios
de camadas anteriores.
A Feed forward (redes diretas).
B Rede competitiva.
C Backpropagation.
D Feed backward networks (redes recorrentes).
E Função de ativação.
3 - Rede perceptron e perceptron multicamadas
Ao �nal deste módulo, você será capaz de identi�car os conceitos e as características do
perceptron e perceptronmulticamadas.
Rede perceptron
Assista ao vídeo a seguir para aprender sobre o funcionamento da rede
perceptron.
De�nição
O perceptron é um tipo de neurônio artificial. Ele foi desenvolvido no fim
da década de 1950. Atualmente, o perceptron é muito pouco utilizado,
mas esse modelo foi a base para o surgimento de outros modelos mais
avançados.
O perceptron, ou perceptron de camada única, é o modelo mais simples
de redes neurais artificiais. Um perceptron funciona de maneira
equivalente a um neurônio. Esse tipo de rede neural apresenta um
conjunto de neurônios de entrada e um conjunto de neurônios de saída,
não apresentando nenhuma camada intermediária.
Na imagem a seguir, mostramos um exemplo da rede perceptron.
Exemplo de rede perceptron.
Funcionamento
Um perceptron é um algoritmo usado para aprendizado supervisionado
de classificadores binários. Os classificadores binários decidem se uma
entrada, geralmente representada por uma série de vetores, pertence a
uma classe específica. O aprendizado supervisionado é baseado na
regressão básica e classificação.
Exemplo
O humano fornece um banco de dados e ensina a máquina a reconhecer
o que é uma bicicleta, por exemplo, entre padrões e semelhanças. A cor
e tamanho podem variar, mas a máquina aprende que uma bicicleta
possui pedais, duas rodas, guidão e outros elementos-chave.
Em outras palavras, um perceptron é uma rede neural de camada única
que consiste em quatro partes principais, incluindo valores de entrada,
pesos e viés, soma de pesos e uma função de ativação.
O processo começa da seguinte forma:
A função de ativação desempenha o papel integral de garantir que a
saída seja mapeada entre os valores necessários, como (0,1) ou (-1,1). O
peso (weight) de uma entrada é indicativo da força de um nó.
O valor de viés (bias) de uma entrada oferece a capacidade de deslocar
a curva da função de ativação (function activate) para cima ou para
baixo.
Como uma forma simplificada de uma rede neural, especificamente uma
rede neural de camada única, os perceptrons desempenham um papel
importante na classificação binária. Isso significa que o perceptron é
usado para classificar os dados em duas partes, portanto, binários. Por
esse motivo são também chamados de classificadores binários
lineares.
Vejamos algumas limitações dessa rede:
 Pegam-se todos os valores de entrada (input) em
um perceptron e multiplicando-os por seus pesos
que são atribuídos a essas entradas.
 Em seguida, todos esses valores multiplicados são
somados para criar a soma ponderada. Esses
pesos começam como valores aleatórios e, à
medida que a rede neural aprende mais sobre o tipo
de dados de entrada, a rede ajusta os pesos com
base em qualquer erro na categorização resultante
dos pesos anteriores.
 A soma ponderada é então aplicada à função de
ativação, produzindo a saída do perceptron.

Um único perceptron consegue resolver somente funções linearmente
separáveis.

Em funções não linearmente separáveis, o perceptron não consegue
gerar um hiperplano para separar os dados.
Rede perceptron multicamadas
(multilayer perceptrons)
Assista ao vídeo a seguir para aprender sobre a rede perceptron
multicamadas (multilayer perceptrons).
De�nição
Redes perceptron de multicamadas (multilayer perceptron) são redes
diretas (feed forward) que possuem uma ou mais camadas de
neurônios entre as camadas de entrada e camada de saída. Essas
camadas intermediárias são chamadas de camada oculta e são
responsáveis por adicionar um maior poder em relação às redes
perceptron de camada única.
As camadas ocultas são responsáveis por capturar a
não linearidade dos dados, resolvendo assim uma
importante limitação da rede perceptron de camada
única, que classifica apenas padrões linearmente
separáveis.
A rede perceptron de multicamadas é uma generalização das redes
perceptron, e assim como esta, são treinadas de forma supervisionada,
por meio da regra de aprendizagem que minimiza o erro.
Veja, a seguir, o que ocorre nesses dois tipos de aprendizagem:
No aprendizado supervisionado
Um modelo é treinado com dados de um conjunto de dados
rotulado, que consiste em um conjunto de recursos (atributos)
e um rótulo. Normalmente, é uma tabela com várias colunas
representando recursos/atributos e uma coluna final para o
rótulo. O modelo então aprende a prever o rótulo para exemplos
não vistos. Os algoritmos mais simples de aprendizagem de
máquina são os de aprendizado supervisionado.
No aprendizado não supervisionado
Um conjunto de dados é fornecido sem rótulos e um modelo
aprende propriedades úteis da estrutura do conjunto de dados.
O modelo encontra padrões e aufere conclusões dos dados
não rotulados, ou seja, não é indicado ao modelo o que ele
deve aprender. Os algoritmos no aprendizado não
supervisionado são mais difíceis do que no aprendizado
supervisionado, pois temos pouca ou nenhuma informação
sobre os dados. Tarefas de aprendizagem não supervisionadas
geralmente envolvem o agrupamento de exemplos
semelhantes (clustering), redução de dimensionalidade e
estimativa de densidade.
Funcionamento
No perceptron de multicamadas, as entradas são combinadas com os
pesos iniciais em uma soma ponderada e submetidas à função de
ativação e, assim, cada combinação linear é propagada para a próxima
camada.
Cada camada alimenta a próxima com o resultado de sua computação,
percorrendo todas as camadas ocultas (hidden layers) até a camada de
saída (output layer). Considere as seguintes situações:
Se o algoritmo computasse apenas as somas ponderadas em cada
neurônio, propagasse os resultados para a camada de saída e
parasse ali, não seria capaz de aprender os pesos que minimizam a
função de custo (cost function).
Se o algoritmo computasse apenas uma iteração, não haveria
aprendizado real. Nesse contexto entra o conceito de
backpropagation (retropropagação).
Backpropagation é o mecanismo de aprendizado que permite as redes
perceptron de multicamadas ajustar iterativamente os pesos na rede,
com o objetivo de minimizar a função de custo. O princípio por trás
disso é que a mudança de peso sináptico acontece em consideração ao
gradiente local da função de erro.
Dessa forma, cada neurônio pode definir a contribuição do seu peso
para o erro cumulativo da rede. A regra de aprendizagem mais simples é
o método descent gradiente (descida do gradiente), que é a mudança de
peso sináptico proporcionalmente à sua contribuição para o erro
cumulativo. Gradient descent é normalmente a função de otimização
usada na rede perceptron de multicamadas (multilayer perceptron).
Embora exista uma série de algoritmos que abordam os diferentes
problemas de aprendizagem, o backpropagation é um dos algoritmos
mais eficientes.
Assista ao vídeo a seguir para ver os principais aspectos sobre os
mecanismo de aprendizado backpropagation.
Falta pouco para atingir seus objetivos.
Vamos praticar alguns conceitos?
Questão 1
Dentre os tipos de redes neurais existentes é a arquitetura mais
simples, apresentando apenas um conjunto de neurônios de
entrada e um conjunto de neurônios de saída, sem haver nenhuma
camada de neurônio intermediária. Qual opção de rede atende a
essas características?
Parabéns! A alternativa C está correta.
O perceptron é a arquitetura mais simples, não apresentando
nenhuma camada de neurônios intermediária.
Questão 2
A Perceptron de múltiplas camadas.
B Aprendizagem de máquina (machine learning).
C Perceptron.
D Inteligência Artificial.
E Aprendizagem supervisionada.
As redes perceptrons de múltiplas camadas (multilayer perceptron)
são uma generalização da rede perceptron e, assim como esta, é
treinada de que forma?
Parabéns! A alternativa B está correta.
As redes perceptrons de múltiplas camadas são treinadas de forma
supervisionada, ou seja, aprendem uma função que mapeia uma
entrada para uma saída com base em pares de entrada-saída de
exemplo. Ele infere uma função a partir de dados de treinamento
rotuladosconsistindo em um conjunto de exemplos de treinamento.
A De pesos e sinapses.
B Supervisionada.
C Com a função de ativação.
D Não supervisionada.
E Camada oculta (hidden layer).
4 - Redes neurais arti�ciais na prática
Ao �nal deste módulo, você será capaz de aplicar um projeto prático de redes neurais
arti�ciais.
Preparação do ambiente
Assista ao vídeo a seguir para aprender o funcionamento da preparação
do ambiente.
Instalando os pacotes
A fim de que você possa executar o código a seguir, utilize o Jupyter
Notebook ou Google Colab. De modo geral, o mundo da computação é
colaborativo, sendo comum, quando encontramos erros nas bibliotecas
utilizadas, copiarmos o log de erro e procurarmos em qualquer motor de
busca. Provavelmente, alguma resposta será retornada em algum fórum
de discussão, como Stack Overflow, GitHub, Reddit, entre outros. Não só
isso é uma prática comum na comunidade de desenvolvimento de
software e computação, como também nos possibilita aprender cada
vez mais.
O nome do projeto que vamos criar é “Prevendo a Ocorrência de
Diabetes”, vamos realizar a avaliação de um conjunto de dados a fim de
verificar sua eficácia.
Inicialmente, você deverá atualizar os pacotes necessários à execução
do exemplo prático a ser implementado, então execute o comando a
seguir no terminal ou prompt de comando:
TERMINAL 
Para instalar a versão exata de um pacote, execute o comando abaixo
no terminal ou prompt de comando:
TERMINAL 
Depois de instalar ou atualizar o pacote, reinicie o Jupyter Notebook.
Vamos à instalação do pacote watermark, sendo esse pacote usado
para gravar as versões de outros pacotes usados nesse Jupyter
Notebook.
TERMINAL 
Os seguintes pacotes serão também necessários:
Matplotlib
É uma biblioteca Python de plotagem 2d, que auxilia a biblioteca
matemática NumPy.
pip install -q -U matplotlib==3.2.1
OpenCV
É uma biblioteca de código aberto voltada para as áreas de visão
computacional e aprendizado de máquina.
pip install -q -U cv2==4.2.0
NumPy
É uma biblioteca para a linguagem de programação Python, que suporta
o processamento de grandes, multidimensionais arranjos e matrizes,
juntamente com uma grande coleção de funções matemáticas de alto
nível para operar sobre essas matrizes.
pip install -q -U numpy==1.18.4
Importando os pacotes
Os pacotes são uma maneira de estruturar o “espaço de nomes” dos
módulos Python, usando “nomes de módulo com pontos”.
Exemplo
O nome do módulo A.B designa um submódulo chamado B , em um
pacote chamado A.
Para importar um módulo utilizamos o import. Vejamos o código a ser
implementado no notebook:
PYTHON 
Carregando o conjunto de dados
Assista ao vídeo a seguir para aprender a carregar o conjunto de dados.
Vamos agora carregar as imagens disponibilizadas neste tema, a fim de
que possamos utilizá-la no processamento de redes neurais.
PYTHON 
Distribuição dos dados
Depois de carregar os dados, podemos visualizar a sua distribuição. A
seguir, mostramos o código a ser implementado no notebook:
PYTHON 
Vejamos a distribuição dos dados:
Tela do resultado da distribuição dos dados no Jupyter Notebook.
Pré-processamento dos dados
Nesse pré-processamento, vamos dividir os dados em treino e teste,
para treinar o modelo e depois testar sua performance. A seguir,
mostramos o código a ser implementado no notebook:
PYTHON 
Vejamos o resultado:
Tela dos percentuais de treino e teste no Jupyter Notebook.
Implementação do modelo
Assista ao vídeo a seguir para aprender sobre a implementação do
modelo, incluindo sua seleção, seu treinamento, e sua avaliação.
Seleção do modelo
Há uma infinidade de modelos de machine learning disponíveis, cada
um voltado ao cumprimento de uma determinada função. Portanto, a
escolha do modelo mais adequado deve ser feita de acordo com o
objetivo proposto inicialmente. Nesse caso, foi escolhida uma rede de
perceptron multicamadas (multilayer perceptron – MLP). A seguir,
mostramos o código a ser implementado no notebook:
PYTHON 
Treinamento do modelo
A etapa do treinamento é fundamental não apenas para preparar a
máquina, mas para aprimorar constantemente suas habilidades de
previsão. Dessa forma, a máquina efetivamente aprende com seus erros
e torna-se cada vez mais aperfeiçoada. O treinamento pode ser
considerado o principal pilar do machine learning. A seguir, mostramos
o código a ser implementado no notebook:
PYTHON 
Avaliação do modelo
Uma maneira simples de observar o quão bom é um modelo de
classificação é usando a acurácia. A acurácia indica uma performance
geral do modelo. A acurácia mede o total de acertos considerando o
total de observações. Vamos verificar a performance e o equilíbrio na
previsão das classes do modelo. A seguir, mostramos o código a ser
implementado no notebook:
PYTHON 
Vejamos a saída:
Tela do relatório de classificação no Jupyter Notebook.
Vamos entender o resultado.
Matriz de confusão
Uma matriz de confusão (matrix confusion) é uma tabela que mostra as
frequências de classificação para cada classe do modelo. Pegando o
nosso exemplo, ela vai nos mostrar as frequências de diabetes e não
diabetes:
 Verdadeiro positivo (true positive — TP): ocorre
quando no conjunto real a classe que estamos
buscando foi prevista corretamente. Por exemplo,
quando a pessoa está com diabetes e o modelo
previu corretamente que a pessoa está com
diabetes.
Matriz de confusão mostrando as seguintes categorias:
Diabetes Não diabetes
Diabetes TP FP
Não diabetes FN TN
Matriz de confusão com as categorias
Fábio Daudt
 Falso positivo (false positive — FP): ocorre quando
no conjunto real a classe que estamos buscando
prever foi prevista incorretamente. Exemplo: a
pessoa não está com diabetes, mas o modelo disse
que está.
 Falso verdadeiro (true negative — TN): ocorre
quando no conjunto real a classe que não estamos
buscando prever foi prevista corretamente.
Exemplo: a pessoa não estava com diabetes, e o
modelo previu corretamente que ela não está.
 Falso negativo (false negative — FN): ocorre quando
no conjunto real, a classe que não estamos
buscando prever foi prevista incorretamente. Por
exemplo, quando a pessoa está com diabetes e o
modelo previu incorretamente que ela não está com
diabetes.
Matriz de confusão mostrando os dados reais:
Diabetes Não diabetes
Diabetes 44 36
Não diabetes 28 123
Matriz de confusão com as categorias
Fábio Daudt
Assim, nosso modelo:
Previu diabetes 44 vezes corretamente.
Previu não diabetes 123 vezes corretamente.
Previu diabetes 36 vezes incorretamente.
Previu não diabetes 28 vezes incorretamente.
Vejamos alguns conceitos das métricas.
Acurácia
Diz quanto o modelo acertou das previsões possíveis. No contexto visto,
nosso modelo teve uma acurácia de 72%, pois acertou 72 de cada 100
previsões. E a razão entre o somatório das previsões corretas
(verdadeiros positivos com verdadeiros negativos) sobre o somatório
das previsões. Sua fórmula é:
Recall
O recall responde a seguinte pergunta: qual proporção de positivos foi
identificada corretamente? Em outras palavras, quão bom meu modelo é
para prever positivos, sendo positivo entendido como a classe que se
quer prever, no nosso contexto, se a pessoa está com diabetes. É
 accurary  =
TP + TN
TP + FP + TN + FN
=
 predições corretas 
 todas as predições 
definido como a razão entre verdadeiros positivos sobre a soma de
verdadeiros positivos com negativos falsos. Sua fórmula é:
Precisão
A precisão responde a seguinte pergunta: qual proporção de
identificações positivas foi realmente correta? Em outras palavras, o
quão bem meu modelo trabalhou. Sua fórmula é:
F-score
O f-score nos mostra o balanço entre a precisão e o recall de nosso
modelo. Sua fórmula é:
Falta pouco para atingir seus objetivos.
Vamos praticar alguns conceitos?
Questão 1
Um modelo de rede neural é a equação final gerada por meio de um
algoritmo de machine learning, que será utilizada para definir os
valoresde saída a partir de novos dados apresentados, sendo
esses dados inseridos em uma equação e retornando o resultado
do modelo. Assim, podemos ver que o que determina o
desempenho de um modelo é o desenvolvimento dessa equação,
que acontece por meio do algoritmo utilizado. Em qual etapa da
 recall  =
TP
TP + FN
 precision  =
TP
TP + FP
2 ∗
 precision  ∗  recall 
 precision  +  recall 
implementação de uma solução utilizando a tecnologia de redes
neurais é definido o referido algoritmo?
Parabéns! A alternativa C está correta.
Na etapa de seleção do modelo, o cientista de dados seleciona o
modelo a fim de treinar e testar os dados a serem utilizados,
variando os respectivos parâmetros e buscando aqueles que
apresentam o melhor desempenho.
Questão 2
As redes neurais são compostas por neurônios que calculam
funções matemáticas, sendo um método para ser usado quando
não há uma forma determinística de se resolver um problema em
qualquer área do conhecimento. Um projeto de redes neurais possui
determinadas etapas, analise as afirmativas a seguir.
I. No pré-processamento, vamos dividir os dados em treino e
teste, para treinar o modelo e depois testar sua performance.
II. A escolha do modelo mais adequado deve ser feita de acordo
com o objetivo proposto inicialmente.
III. A etapa do teste é fundamental não apenas para preparar a
máquina, mas para aprimorar constantemente suas
A Teste do modelo
B Avaliação o modelo
C Seleção do modelo
D Treinamento do modelo
E Relatório de classificação
habilidades de previsão.
Assinale a seguir a alternativa correta cujas afirmativas relacionam-
se com computação nas nuvens.
Parabéns! A alternativa C está correta.
O treinamento da rede considera que, seguindo o algoritmo de
treinamento escolhido, serão ajustados os pesos das conexões. É
importante considerar, nessa fase, alguns aspectos, tais como a
inicialização da rede, o modo de treinamento e o tempo de
treinamento.
Considerações �nais
Como vimos, o primeiro algoritmo de rede neural artificial era muito
simples, comparado ao estado da arte atual. O perceptron é uma rede
neural com apenas um neurônio e só pode entender relações lineares
entre os dados de entrada e saída fornecidos.
A As opções I, II e III.
B Apenas as opções II e III.
C Apenas as opções I e II.
D Apenas as opções I e III.
E Apenas a opção III.
Porém, com as redes perceptron multicamadas (multilayer perceptron),
os horizontes são ampliados e agora essa rede neural artificial pode ter
muitas camadas de neurônios, e pronta para aprender padrões mais
complexos.
Por fim, apresentamos um projeto passo a passo de uma rede
perceptron multicamadas para previsão de diabetes.
Podcast
Podemos considerar as redes neurais como um paradigma de
programação? Como funciona uma rede neural artificial? Quais as
principais aplicações das redes neurais artificiais? Para saber as
respostas dessas perguntas e muitas mais, ouça o podcast.

Explore +
Para complementar seus estudos, sugerimos que pesquise os seguintes
capítulos dentro do Deep Learning Book:
Capítulo 4 – O Neurônio, Biológico e Matemático.
Capítulo 6 – O Perceptron – Parte 1.
Capítulo 7 – O Perceptron – Parte 2.
Capítulo 8 – Função de Ativação.
Capítulo 10 – As 10 Principais Arquiteturas de Redes Neurais.
Referências
CHRISTOFIDIS, C. Awesome Deep Learning. GitHub, 14 nov. 2022.
Consultado na internet em: 05 jan. 2023.
DEEP Learning Book. Learning Book. Consultado na internet em: 05 jan.
2023.
FLECK, L. et al. Redes Neurais Artificiais: princípios básicos. Revista
Eletrônica Científica Inovação e Tecnologia, UTFPR, 2016.
GOOGLE. Classification: Precision and Recall. Machine Learning Crash
Course. Google Developers. Consultado na Internet em: 05 jan. 2023.
NIELSEN, M. A. Neural Networks and Deep Learning. Publicado em: dez.
2019. Consultado na Internet em: 05 jan. 2023.
RUSSEL, S.; NORVIG, P. Artificial Intelligence: a modern approach. 4. ed.
[S.l.]: Prentice Hall, 2018.
TRASK, A. W. Grokking deep learning. Shelter Island, NY: Manning, 2019.
Material para download
Clique no botão abaixo para fazer o download do
conteúdo completo em formato PDF.
Download material
javascript:CriaPDF()
O que você achou do conteúdo?
Relatar problema

Continue navegando