Buscar

REDES NEURAIS

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 16 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 16 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 16 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

1 Redes Neurais 
Paradigmas de Aprendizado 
de Redes Neurais Artificiais 
 
O que são Redes Neurais Artificiais (RNA)? 
Em suma, uma RNA é um método computacional de aprendizagem baseado no funcionamento do cérebro 
humano. Seu funcionamento pode ser entendido a partir de uma breve analogia com os sentidos do corpo 
humano. 
Quando estamos inseridos em um ambiente, nossos sentidos, como olfato, tato ou visão, fornecem informa-
ções sobre as condições do meio em que estamos inseridos. É a partir dessas informações que pautamos 
as nossas ações. Se estamos em um ambiente muito quente, com alta incidência de raios solares, nossos 
sentidos são capazes de interpretar essas informações e nos dar as possíveis consequências de uma per-
manência prolongada em tal ambiente, como uma insolação solar ou até mesmo lesões severas na pele. 
Essa capacidade interpretativa é construída a partir de um processo de aprendizado, constituído basica-
mente por experiências adquiridas ao longo de nossas vidas e lições que nos são transmitidas em um pro-
cesso geracional. 
Assim como no exemplo a pouco citado, uma rede neural artificial trabalha inserida em um meio, de onde se 
retiram informações iniciais (inputs) e suas consequências (outputs), de acordo com o treinamento obtido 
através do processo de aprendizagem da rede neural. Este processo pode ficar mais claro a partir de uma 
representação gráfica: 
 
Figura 1: Exemplo de uma rede neural artificial. As camadas em vermelho, amarelo e azul descre-
vem, respectivamente, a camada de entrada (input layer), camada oculta (hidden layer) e camada de 
saída (output layer). 
Na Figura 1, a camada de entrada recebe os estímulos do meio absorvendo os dados iniciais, que, logo em 
seguida, são processados pelas camadas ocultas conforme o processo de aprendizagem da máquina. Por 
fim, os resultados são apresentados na camada final, ou camada de saída. 
 
Arquiteturas de Rede 
A forma como estruturamos a RNA é orientada pelo algoritmo de aprendizado escolhido. Em geral, estes 
algoritmos são escolhidos de acordo com a complexidade do problema a ser atacado. Suas estruturas bási-
cas podem ser divididas em três classes: 
 
 
 
2 Redes Neurais 
• Redes Alimentadas Adiante com Camada Única 
 
Quando organizado em camadas, os neurônios são distribuídos em nós de entrada e saída, em um sistema 
de distribuição de informações não-cíclico. Estes nós formam as camadas de entrada e saída, como mostra 
a Figura 2. 
 
Figura 2: Exemplo de uma rede de camada única. 
 
• Redes Alimentadas Adiante com Múltiplas Camadas 
Como no caso anterior, os dados nesse tipo de rede flui apenas em uma direção, no entanto, entre as ca-
madas de interface existem N camadas, ditas camadas ocultas, formadas por nós ocultos. Este tipo de ar-
quitetura é extremamente útil quando o número de nós na camada de entrada é particularmente grande, 
dando mais profundidade à análise da RNA. Logo abaixo temos um exemplo de rede com múltiplas cama-
das: 
 
 
Figura 3: Exemplo de uma rede com múltiplas camadas. 
 
• Redes Recorrentes 
Ao contrário dos casos anteriores, uma rede recorrente possui um fluxo cíclico de dados, com ao menos um 
dado de saída sendo reintroduzido na camada de entrada após o término do processo de aprendizado. Este 
tipo de rede pode ser construída com ou sem camadas ocultas, como mostra a Figura 4. 
 
Figura 4: Exemplo de duas redes recorrentes, com camada única (esquerda) e camada oculta (di-
reita). 
 
3 Redes Neurais 
A realimentação da camada de entrada com dados da camada de saída afeta profundamente a capacidade 
de aprendizagem da rede e seu desempenho, alterando o comportamento linear da RNA. 
 
Aprendizado Supervisionado 
O processo de aprendizagem de uma RNA pode ser definido como uma busca por padrões em um conjunto 
de dados que permitam predições de comportamento. De maneira simples, o processo de aprendizado pode 
ser dividido em três tipos: supervisionados, não 
O processo supervisionado ocorre quando ensinamos à rede como fazer predições mais assertivas a partir 
de resultados já assimilados e de veracidade comprovada. Neste caso, adicionamos à rede um elemento 
dito professor, que possui experiência prévia sobre os resultados desejados. Deste modo, quando compa-
ramos a diferença entre os resultados obtidos com os resultados esperados, adicionamos o elemento erro 
ao nosso aprendizado de máquina. 
 
Aprendizado Não Supervisionado 
São classificadas como redes não supervisionadas as redes que não possuem nenhum direcionamento 
durante o processo de aprendizagem. Nesse caso, a própria rede é responsável por agrupar os padrões de 
treinamento de acordo com o número de entradas. 
 
Aprendizado por Reforço 
De modo semelhante ao primeiro caso, no aprendizado por reforço o conhecimento prévio de um resultado 
assertivo é substituído por um crivo, que avalia os resultados obtidos por um determinado processo de apren-
dizado, reforçando suas diretrizes caso o resultado seja satisfatório. 
 
Atividade Extra 
 
Recomendo assistir esse vídeo, com legendas em português. 
 
Mas o que *é* uma Rede Neural? | Deep learning 
https://www.youtube.com/watch?v=aircAruvnKk (19:13) 
 
Algoritmos de Aprendizado de 
Redes Neurais 
 
Aprendizagem por Correção de Erros 
Como o próprio nome diz, a aprendizagem por correção de erros corresponde a uma aprendizagem com 
base em valores referentes ao erro de um valor obtido em relação a um valor referencial. Para efeito de 
assimilação, vamos imaginar o seguinte caso: Uma rede alimentada adiante, composta por uma camada de 
entrada, uma camada de saída, uma ou mais camadas ocultas, todas estas com apenas com um nó. Ao ser 
acionado pelo valor de entrada, os neurônios da camada oculta acionam o neurônio de saída. A partir disso, 
o sinal de saída é comparado a um valor de referência, de modo que a diferença entre os dois sinais seja 
minimizada ao longo de uma série de ajustes corretivos, como na figura abaixo: 
 
Figura 1: Exemplo de uma rede neural com aprendizagem por correção de erros. 
https://www.youtube.com/watch?v=aircAruvnKk
https://www.youtube.com/watch?v=aircAruvnKk
 
4 Redes Neurais 
Como podemos observar na Figura 1, este tipo de rede pode ser classificada como rede retroalimentada. 
Neste caso, dk(n) representa o sinal de referência, yk(n) o sinal de saída do neurônio k, ek(n) o erro compu-
tado (dk - yk), por fim, x(n) o sinal produzido pelas camadas ocultas. 
 
Este tipo de aprendizagem também recebe o nome de regra delta, ou regra de Widrow-Hoff. 
 
Aprendizagem Hebbiana 
O conceito de aprendizagem hebbiana em redes neurais é baseado na regra de aprendizagem proposta por 
Hebb, em 1947, na publicação A Organização do Comportamento (The Organization of Behavior). O postu-
lado proposto por Hebb diz o seguinte: 
 
Quando um axônio da célula A está perto o suficiente para excitar uma célula B e participar do seu disparo 
repetida ou persistentemente, então algum processo de crescimento ou modificação metabólica acontece 
em uma das células ou em ambas, de tal forma que a eficiência de A com uma das células que dispara B é 
aumentada. 
 
Quando fazemos uma analogia com o comportamento humano, podemos interpretar o postulado de Hebb 
como um processo repetitivo de alguma tarefa, seja ela estudar ou praticar um determinado esporte, que cria 
ou reforça um hábito e aprimora uma determinada habilidade. 
 
Em redes neurais, o processo de aprendizagem hebbiana consiste em observar se um determinado padrão 
ocorre simultaneamente em dois ou mais neurônios, de modo a reforçar a sua relevância no processo de 
aprendizagem. Se caso um determinado padrão ocorre de forma assíncrona na rede neural, então a rele-
vância deste comportamento é enfraquecida, podendo até ser completamente ignorada em processos futu-
ros. 
 
Aprendizagem Competitiva 
Em contraposto ao método de aprendizado hebbiano, em que mais de um neurônio pode ser ativado simul-
taneamente, na aprendizagem competitiva os neurônios competem pelaativação, que ocorre de maneira 
única em um determinado instante. 
 
Neste tipo de aprendizagem a competição ocorre de acordo com o peso estatístico atribuído a cada neurônio, 
sendo o critério de avaliação as informações de entrada da primeira camada. Uma vez identificado o neurô-
nio vencedor, um critério de avaliação binária é distribuído aos competidores, sendo 1 o valor atribuído ao 
neurônio vencedor, e 0 aos perdedores. Esta característica dá a aprendizagem competitiva a alcunha de “o 
vencedor leva tudo”. 
 
Aprendizagem de Boltzmann 
A aprendizagem de Boltzmann recebe este nome em decorrência dos princípios estocásticos da mecânica 
estatística, muitos deles consolidados pelo físico estatístico Ludwig Eduard Boltzmann. 
 
Neste caso a aprendizagem ocorre de maneira recorrente, atribuindo aos neurônios valores binários, +1 e -
1. Estes valores indicam se um neurônio está ativo (+1) ou inativo (-1). A distribuição aleatória destes valores 
constitui o chamado estado do sistema, que é apresentado na forma de uma equação energia (E). Conforme 
as interações ocorrem, dizemos que a rede neural transita para um estado de equilíbrio que, em poucas 
palavras, pode ser interpretado como a configuração de maior precisão interpretativa da rede neural. 
 
Tarefas de Aprendizagem 
A escolha de um método de aprendizado deve ser feita com base nas tarefas que uma rede neural deve 
exercer. Tendo isso em mente, dedicaremos esta seção para expor alguns tipos de tarefas que uma rede 
neural pode realizar em seu processo de aprendizado. 
 
a. Filtragem, ou triagem de dados 
Como o próprio nome diz, esta tarefa realiza a filtragem de dados que possuam algum tipo de ruído ou 
interferência indesejada. Esta tarefa é particularmente útil quando os nossos objetivos são: Extração de da-
dos em um determinado intervalo de tempo; Suavização dos dados a partir da coleta de dados em uma 
ampla faixa de tempo, aquém da região de interesse; Previsão de resultados com base na coleta de infor-
mações no presente. 
 
5 Redes Neurais 
b. Controle 
O controle é uma tarefa crucial para a determinação do caráter crítico de uma rede neural. Nessa tarefa são 
definidos os critérios de admissão nas primeiras camadas que levam aos sinais de saída com valores próxi-
mos, quando não iguais, aos valores de referência. Este problema pode ser atacado utilizando duas aborda-
gens, ambas apresentadas no módulo anterior: Aprendizagem direta e aprendizagem indireta. 
 
c. Aproximação de funções 
Nessa tarefa, a rede neural, munida apenas de informações de entrada e saída, tenta aproximar uma função 
que reproduza os resultados observados. Para tal, um conjunto de funções testes passam por um processo 
de escrutínio, onde o melhor resultado será aquele que minimizar a diferença entre o resultado original e o 
resultado simulado. A habilidade com que essa tarefa é realizada depende da capacidade da rede em iden-
tificar os sistemas pré-definidos que possuam afinidade com os dados processados. 
 
d. Associação de padrões 
O aprendizado por associação é uma tarefa em que dados armazenados orientam a tomada de decisão em 
uma fase de recordação. A taxa de êxito nesta tarefa pode ser atribuída a experiência do algoritmo: quanto 
mais informações (padrões) armazenados pela máquina, melhor será a sua tomada de decisão em relação 
aos dados de entrada. 
 
A associação pode assumir duas formas: auto-associação ou hetero associação. A primeira consiste no 
armazenamento de padrões, que são apresentados à rede de maneira recorrente, dando a máquina uma 
apresentação distorcida de um padrão original, que serve como orientação na recuperação de um padrão 
específico em um processo de aprendizagem não-supervisionado . A hetero associação consiste na apre-
sentação de padrões aleatórios, formando um processo de aprendizagem supervisionada. 
 
e. Reconhecimento de padrões 
Pode ser entendido como um processo no qual os sinais de entrada são classificados dentro de uma gama 
de classes pré-definidas. Estas classes, cuja complexidade é determinada de acordo com suas variabilida-
des, são construídas de acordo com um processo de treinamento da rede neural. Posteriormente, o sinal de 
entrada é distribuído de acordo com o treinamento em um processo de decisão puramente estatístico. 
 
Este tipo de tarefa pode ser dividido em duas formas: 
• Uma máquina constituída por duas partes: a primeira uma rede não-supervisionada cuja função é 
extrair características, e uma segunda rede, supervisionada, cuja função é classificar os padrões; 
• Uma única máquina, em que a caracterização é realizada pelas camadas ocultas. 
 
Atividade Extra 
 
Recomendo que assistam esse vídeo: 
 
Está inglês, mas você pode ativar a legenda. 
 
Hebbian Learning Rule: 
https://www.youtube.com/watch?v=p6qU8DlIcas (12:43) 
 
Desenvolvimento de uma Rede 
Neural Perceptron 
 
O perceptron (Rosenblatt, 1958), é o modelo mais simples e antigo de uma rede neural, que nos permite 
compreender de maneira simples o funcionamento de uma RNA em termos matemáticos. 
 
https://www.youtube.com/watch?v=p6qU8DlIcas
https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/desenvolvimento-de-uma-rede-neural-perceptron
https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/desenvolvimento-de-uma-rede-neural-perceptron
https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/desenvolvimento-de-uma-rede-neural-perceptron
https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/desenvolvimento-de-uma-rede-neural-perceptron
 
6 Redes Neurais 
Em resumo, um perceptron pode ser representado como um único neurônio que recebe várias entradas e 
produz uma única saída, como mostra a Figura 1. 
 
Figura 1: Representação matemática de um perceptron. 
Esta configuração também é conhecida pelo modelo de McCulloch-Pitts, que será aprofundado em módulos 
posteriores. 
 
Perceptron de Camada Simples 
Como na Figura 1, vamos imaginar um Perceptron de camada simples com apenas três entradas (inputs), 
denominados por x1, x2 e x3. Ao determinarmos um parâmetro de importância a cada uma das entradas 
(pesos estatísticos), podemos determinar a soma ponderada das entradas como na seguinte equação: 
 
em que pj (em outros módulos denotamos w) representa o peso associado a xj. A partir de um valor limite 
(threshold), definimos o valor binário do output, que será dado por 
 
sendo b o threshold. O valor representado por b recebe o nome de bias (viés), e pode ser interpretado como 
uma grandeza que mede a facilidade de ativarmos o Perceptron (output = 1). 
 
Note que, no caso citado, o Perceptron pode ser utilizado como uma função lógica em programação. Este 
tipo de função engloba os operadores booleanos, como a função AND ou OR. 
 
Perceptron de Múltipla Camada (PMC) 
Um Perceptron de múltiplas camadas pode ser definido como uma RNA com uma ou mais camadas ocultas 
que tenham n neurônios (Figura 2). 
 
Figura 2: Exemplo de PMC, em que n representa o número de átomos e m o número de camadas 
ocultas 
 
7 Redes Neurais 
Ao contrário do Perceptron de camada simples que possui um único neurônio de saída, o PMC é capaz de 
correlacionar o sinal de saída de diversos neurônios da camada de saída. 
 
Linguagem de Programação Python 
Atualmente existem diversas ferramentas capazes de lidar com a construção de redes neurais. Entre essas 
muitas ferramentas, a que mais se destaca no cenário atual é a linguagem de programação Python. Por 
quê? 
 
Entre todas as linguagens de programação, o Python é de longe a ferramenta que mais possui recursos 
implementados, que são capazes de atacar problemas de natureza estatística. Estas ferramentas são im-
plementadas em pacotes como o SciPy, NumPy, Matplotlib, entre outras, que, além de versáteis, são de fácil 
compreensão e gratuitas.Além das qualidades já citadas, o Python possui uma extensa comunidade de 
usuários, que participam ativamente na criação e aprimoramento de ferramentas e bibliotecas. 
 
Link para acessar dados da disciplina nas práticas: 
https://drive.google.com/drive/folders/1CfCX6G-8y7CHTHGMc8T-2xG068EXmFdQ?usp=sharing 
 
Link para acessar todas as práticas e programas durante a disciplina: 
https://drive.google.com/drive/folders/1zhcDYkPFUWyls27N_PJfgj9-5VMgqKD9?usp=sharing 
 
Atividade Extra 
 
Recomendo o seguinte artigo que se encontra no link abaixo: 
https://www.deeplearningbook.com.br/o-perceptron-parte-1/ 
 
Abordagem Neurodinâmica de 
Aprendizagem por Reforço 
 
Revisitando Aprendizagem por Reforço 
Como vimos nos módulos anteriores, a aprendizagem por reforço consiste no enfrentamento de um pro-
blema complexo com base em um sistema de metas. Ao atingir uma meta específica, a inteligência artificial 
recebe uma recompensa. Caso a máquina realize uma ação indesejada, a mesma recebe uma punição. 
Embora as recompensas sejam definidas pelo usuário, a rede possui autonomia total para solucionar os 
problemas. 
 
Este tipo de abordagem é comumente utilizada em problemas dinâmicos, em que não se conhecem solu-
ções ou parâmetros que levem ao resultado desejado. De fato, o caminho a ser percorrido neste problema 
será descoberto pela máquina em um processo de tentativa e erro. Um exemplo deste tipo de aprendizado 
pode ser ilustrado da seguinte forma: Imagine que você queira ensinar o seu cão uma determinada ação, 
como sentar ou latir ao seu comando. Ao realizar os comandos, espera-se que, ao menos na primeira vez, 
o cão não entenda o seu comando. Neste caso, o cão será repreendido por meio de uma punição. No mo-
mento em que o cachorro realizar a ação desejada, o mesmo será recompensado com petiscos ou algo 
semelhante. A repetição dessas ações faz com que o cão aprenda a obedecer o comando por meio de uma 
relação causa-efeito. 
 
De maneira análoga, a ciência de dados utiliza os mesmos subterfúgios para treinar máquinas em determi-
nadas tarefas, como identificar determinados padrões em um banco de imagens, ou a correlação entre cer-
tas palavras e o gênero textual de um artigo, entre outras. 
 
Abordagem Clássica e Moderna 
Podemos separar o aprendizado por reforço em duas abordagens (Haykin, 2001): 
 
https://drive.google.com/drive/folders/1CfCX6G-8y7CHTHGMc8T-2xG068EXmFdQ?usp=sharing
https://drive.google.com/drive/folders/1zhcDYkPFUWyls27N_PJfgj9-5VMgqKD9?usp=sharing
https://www.deeplearningbook.com.br/o-perceptron-parte-1/
 
8 Redes Neurais 
A abordagem clássica, na qual a aprendizagem acontece através de um processo de punição e recompensa 
com o objetivo de alcançar um comportamento altamente qualificado. 
A abordagem moderna, que se fundamenta em uma técnica matemática conhecida como programação 
dinâmica para decidir sobre o curso de ação considerado estágio futuros possíveis sem realmente experi-
mentá-los; a ênfase aqui está no planejamento. 
 
Elementos da aprendizagem por reforço (abordagem moderna) 
 
 A seguir, são listados alguns elementos da aprendizagem por reforço: 
 
• Agente: Entidade que realiza ações em busca de recompensas. 
• Ambiente: O cenário em que se encontra o agente. 
• Recompensa: Feedback enviado do ambiente ao agente. 
• Estados e Ações: O modelo de aprendizagem por reforço possui um número discreto de estados 
que o sistema pode ocupar, assim como um número discreto de ações que um agente pode tomar. 
• Política: Uma política (decisão), é definida como um comportamento de um agente em um instante 
de tempo particular. Sua evolução ocorre de acordo com a maximização da função valor, o que resulta em 
uma política ótima (P. Helena, 2014). As iterações políticas se alternam entre dois passos: no primeiro, avalia-
se o custo para avançar com a política corrente; no segundo, atualiza-se a política em relação à função custo. 
• Função valor: Elemento preditivo da soma de recompensas em longo prazo provocadas por uma 
política específica. A partir dessa predição, o agente toma as decisões com base na maximização da recom-
pensa (P. Helena, 2014). 
• Fator Q: De maneira resumida, podemos dizer que o fator Q é uma medida de custo em relação a 
adoção de certas políticas pelo sistema. Este fator é empregado nos passos de avaliação política e de me-
lhoria política. 
 
Programação Neurodinâmica 
A programação neurodinâmica tem por objetivo encontrar uma política ótima, melhorando assim as ações 
tomadas pelo sistema em relação aos estados acessíveis. Este processo é, deveras, custoso do ponto de 
vista computacional. Os problemas mais simples costumam possuir um número muito elevado de estados, 
fazendo com que cada iteração ocorra de maneira lenta, em um intervalo de tempo nada prático. São pro-
blemas como este que nos levam a busca não por políticas ótimas, mas sim por políticas subótimas. 
 
O processo de busca por políticas subótimas é feito por meio de aproximações adequadas das funções de 
otimização, usando como base apenas um vetor de parâmetros e a estrutura geral da função escore. 
 
Atividade Extra 
 
Entenda as cadeias de Markov, por meio do xadrez, no vídeo abaixo (inglês-legendado) 
https://www.youtube.com/watch?v=63HHmjlh794 (13:20) 
 
 
Redes Recorrentes Dirigidas Di-
namicamente 
 
Rede Neural Adaline 
A principal diferença entre a regra Adaline (também conhecida como regra de Widrow-Hoff) e o perceptron 
de Rosenblatt é que os pesos são atualizados com base em uma função de ativação linear em vez de uma 
função de etapa unitária como no modelo Perceptron. 
https://www.youtube.com/watch?v=63HHmjlh794
https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/redes-recorrentes-dirigidas-dinamicamente
https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/redes-recorrentes-dirigidas-dinamicamente
https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/redes-recorrentes-dirigidas-dinamicamente
https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/redes-recorrentes-dirigidas-dinamicamente
 
9 Redes Neurais 
 
Figura 1 - Perceptron 
 
Figura 2 - Neurônia Linear Adaptativo (Adaline) 
 
A diferença é que vamos usar a saída de valor contínuo da função de ativação linear para calcular o erro do 
modelo e atualizar os pesos, em vez dos rótulos de classe binários. 
 
Para o treinamento do Adaline precisamos compreender os métodos dos mínimos quadrados, conhecido 
como Regra Delta. Essa regra afirma que a modificação no peso sináptico de um nó é igual a multiplicação 
do erro na entrada. 
 
 
 
10 Redes Neurais 
Rede Neural Sigmoid 
Neurônios sigmóides onde a função de saída é muito mais suave do que a função de grau. No neurônio 
sigmóide, uma pequena mudança na entrada causa apenas uma pequena mudança na saída, em oposição 
à saída escalonada. Existem muitas funções com a característica de uma curva em forma de “S”, conhecidas 
como funções sigmóides. A função mais comumente usada é a função logística. 
 
Figura 2 - Representação matemática do neurônio Sigmoid. 
Não vemos mais uma transição abrupta no limiar b. A saída do neurônio sigmóide não é 0 ou 1. Em vez 
disso, é um valor real entre 0–1 que pode ser interpretado como uma probabilidade. 
 
Rede Neural Recorrente (RNR) 
Uma rede neural recorrente (RNN) é um tipo de rede neural artificial que usa dados sequenciais ou dados 
de série temporal. Esses algoritmos de aprendizado profundo são comumente usados para problemas ordi-
nais ou temporais, como tradução de linguagem, processamento de linguagem natural (NLP), reconheci-
mento de fala e legendagem de imagens; eles são incorporados a aplicativos populares, como Siri, pesquisa 
por voz e Google Translate. Como as redes neurais de feedforward e convolucionais (da qual veremos no 
próximo módulo), asredes neurais recorrentes usam dados de treinamento para aprender. Eles se distin-
guem por sua “memória”, pois recebem informações de entradas anteriores para influenciar a entrada e a 
saída atuais. Enquanto as redes neurais profundas tradicionais presumem 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 os eventos futuros também sejam úteis para determinar a saída de uma de-
terminada sequência, as redes neurais recorrentes unidirecionais não podem levar em conta esses eventos 
em suas previsões. 
 
Figura 1 - Redes neurais recorrentes 
 
Veremos com mais detalhes nos vídeos aulas as funções de ativação e os conceitos de redes recorrentes 
dirigidas dinamicamente. 
 
Atividade Extra 
 
Recomendo a leitura bem interessante de um artigo no site: 
https://imasters.com.br/data/um-mergulho-profundo-nas-redes-neurais-recorrentes. 
https://imasters.com.br/data/um-mergulho-profundo-nas-redes-neurais-recorrentes
 
11 Redes Neurais 
Algoritmo Backpropagation 
 
Conceito de Feedforward 
Em uma rede do tipo feedforward, as camadas são conectadas umas às outras de modo que o fluxo de 
informações não encontre caminhos de volta. Em outras palavras, neste tipo de rede as informações per-
correm apenas uma única direção, como mostra a Figura 1. 
 
Figura 1 - Grafo Feedforward 
 
Backpropagation 
O termo backpropagation se refere ao tipo de treinamento da rede neural. Neste caso, o treinamento é do 
tipo supervisionado, com o erro sendo calculado e minimizado a cada interação por meio de modificações 
nos pesos sinápticos. Para que isso ocorra, precisamos de uma função ativação diferenciável. 
 
O método utilizado na minimização do erro é conhecido por descida do gradiente. Este método aplica o 
operador gradiente na última camada da rede neural, formando um vetor de derivadas parciais. A partir deste 
vetor, os pesos são atualizados em um processo conhecido por backward pass. 
 
Derivada 
Podemos interpretar uma derivada como a taxa de variação de uma função. Um exemplo clássico deste 
conceito surge quando analisamos um problema da física de movimento uniformemente variado, conhecido 
por MUV. Neste caso, o movimento é uniformemente acelerado (aceleração constante), de modo que a taxa 
de variação da velocidade seja constante. Em termos simples, em um problema de MUV, a aceleração é 
dada pela derivada da função velocidade. 
A derivada pode ser obtida de duas formas, pelo método analítico ou numérico. A seguir, detalhamos um 
pouco mais cada um destes dois métodos. 
Podemos encontrar a derivada de uma função em um determinado ponto a partir do método de diferencia-
ção numérica, que consiste em calcular a inclinação da reta tangente utilizando dois pontos infinitamente 
próximos, como mostra a Figura 2. 
 
Figura 2: Representação da diferenciação numérica [H. Kinsley, Neural Networks from Scratch in 
Python, 2020]. 
https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/algoritmo-backpropagation
https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/algoritmo-backpropagation
 
12 Redes Neurais 
Derivada Analítica 
O método em questão consiste na solução analítica de uma derivada. A principal desvantagem deste mé-
todo é seu grau de dificuldade, que aumenta de acordo com a complexidade da função derivada. Entretanto, 
quando resolvemos analiticamente uma derivada, obtemos seu valor exato, ao contrário do método numé-
rico. 
 
Segundo a notação de Leibniz, uma derivada pode ser definida como: 
 
Se a função f(x) for uma constante qualquer, então a derivada será nula 
 
 
No caso de uma função linear simples, como f(x)=x, a derivada será uma constante 
 
Neste caso, multiplicamos a função com expoente decrescido em uma unidade (x⁰), pelo expoente antigo 
(1) 
Se f(x) for uma função quadrática, do tipo f(x)= 2 x², então sua derivada será 
 
Note que a função f(x) é formada por duas funções distintas, uma constante (2), e a outra quadrática (x²). 
Portanto, utilizamos a regra do produto. 
Gradiente 
O gradiente pode ser interpretado como um vetor de derivadas parciais, cuja representação é feita pela se-
guinte equação 
 
em que os termos em negrito (x, y e z) representam os versores das coordenadas cartesianas x, y e z. 
Por ser um vetor, o gradiente de uma função f(x,y,z) também possui uma representação matricial: 
 
Atividade Extra 
 
Para compreender melhor o algoritmo backpropagation veja o vídeo abaixo com legendas em português: 
 
https://www.youtube.com/watch?v=Ilg3gGewQ5U (13:53) 
 
 
 
 
https://www.youtube.com/watch?v=Ilg3gGewQ5U
https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/algoritmo-som-self-organizing-map-
 
13 Redes Neurais 
Algoritmo SOM (Self-Organizing 
Map) 
 
Mapas Auto-Organizáveis 
A estrutura de Mapas Auto-Organiźaveis (SOM, Self Organized Map), consiste em uma rede, ou grade, de 
uma ou duas dimensões, como mostra a FIgura 1. 
 
Figura 1: Exemplo de uma Rede de Kohonen. HAYKIN S. (2001) 
Este tipo de rede neural (Figura 1) foi proposta por Teuvo Kohonen em 1982, e é amplamente utilizada na 
mineração de dados (data mining) devido a sua capacidade de agrupamento de dados. 
 
Este tipo de rede é um exemplo clássico de um sistema não-supervisionado baseado em aprendizado com-
petitivo, onde a competição entre os neurônios se dá pela implementação de uma conexão de inibição lateral 
(lateral inhibition connections). Este estado competitivo estimula a auto-organização dos neurônios em pa-
drões que serão determinados pelos vetores de entrada. Por este motivo, este tipo de rede recebe o nome 
SOM. 
 
Redes de Kohonen 
Um dos exemplos mais conhecidos de SOM é a chamada Rede de Kohonen. Este tipo de rede é formada 
por uma estrutura do tipo feedforward, em que os nós são distribuídos em uma rede bidimensional em uma 
configuração totalmente ligada, ou seja, cada um dos nós recebe uma ligação dos inputs da camada inicial 
(a Figura 1 é uma representação clássica de uma Rede de Kohonen). Podemos encontrar inúmeras confi-
gurações para este tipo de rede, que variam de acordo com o número de colunas e linhas (podemos encon-
trar configurações com apenas uma linha ou coluna, a depender do problema). 
 
Componentes de um SOM 
O processo de organização deste tipo de rede pode ser dividido em quatro componentes, que serão abor-
dados a seguir: 
 
a. Inicialização: Nesta etapa, os pesos são distribuídos aos vetores de maneira aleatória. 
b. Competição: Cada neurônio computa seu respectivo valor de acordo com uma função discriminante. 
 
https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/algoritmo-som-self-organizing-map-
https://aulas.descomplica.com.br/pos/pos-graduacao-em-processos-de-manutencao/turma/redes-neurais-81e761/aula/algoritmo-som-self-organizing-map-
 
14 Redes Neurais 
O neurônio que obter o menor valor é declarado o vencedor. 
 
A função discriminante é dada por 
 
com xi sendo os N inputs da camada inicial (xj = {x1,...,xN}) e wji os pesos entre 
as conexões sinápticas (wji={j=1,...,M;i=1,...,N}). Esta função mede a distância entre o vetor de ligação x e o 
peso associado ao neurônio j. 
 
c. Cooperação: O neurônio vencedor determina a localização espacial dos vizinhos mais próximos, co-
nhecidos por vizinhos excitados. O número de vizinhos excitados depende do tipo de grade, que, no caso 
bidimensional, pode ser do tipo hexagonal ou retangular (Figura 2). 
 
Figura 2: Tipos de grades bidimensionais. 
 
Neste caso, o número de vizinhos próximos na grade retangular e hexagonal será, respectivamente, 4 e 6. 
 
As interações laterais são dadas pela equação topologia dos vizinhos, 
 
 
em que v(x) representa o índice do neurônio vencedor, Sj,v(x) a distância lateral entre os primeiros vizinhos do 
neurôniovencedor, e σ o decrescimento exponencial da vizinhança em um tempo t. 
 
d. Adaptação: Os neurônios excitados reduzem seus respectivos valores por meio de ajustes nos pesos 
sinápticos, de modo a melhorar a resposta do neurônio vencedor na iteração seguinte. 
 
O ajuste dos pesos é feito pela seguinte equação: 
 
 
em que η representa a taxa de aprendiz. 
 
Resumo do processo SOM: 
Em suma, podemos resumir todos os processos do algoritmo SOM nos seguintes tópicos: 
 
• Inicialização: são atribuídos pesos aleatórios aos vetores wji (vetores pesos). 
• Vencedor: o neurônio vencedor é identificado pela equação v(x). 
• Atualização: os pesos são atualizados pela equação Δwji. 
• Convergência: a convergência do mapa é verificada. Se o critério de convergência for satisfatório, o 
processo é encerrado. Caso contrário, voltamos à segunda etapa (Vencedor). 
 
Atividade Extra 
Veja o comportamento de um mapa SOM. 
https://www.youtube.com/watch?v=k7DK5fnJH94 
https://www.youtube.com/watch?v=k7DK5fnJH94
 
15 Redes Neurais 
Prática e Desafios dentro do 
contexto de Rede Neurais 
 
Classificadores de Aprendizado de Máquina 
A classificação é o processo de prever a classe de dados dados. As classes às vezes são chamadas de 
alvos / rótulos ou categorias. A modelagem preditiva de classificação é a tarefa de aproximar uma função de 
mapeamento (f) de variáveis de entrada (X) para variáveis de saída discretas (y). 
 
Por exemplo, a detecção de spam em provedores de serviços de e-mail pode ser identificada como um 
problema de classificação. Esta é a classificação binária, uma vez que existem apenas 2 classes como spam 
e não spam. Um classificador utiliza alguns dados de treinamento para entender como determinadas variá-
veis de entrada se relacionam com a classe. Nesse caso, os e-mails de spam e não spam conhecidos devem 
ser usados como dados de treinamento. Quando o classificador é treinado com precisão, ele pode ser usado 
para detectar um e-mail desconhecido. 
 
A classificação pertence à categoria de aprendizagem supervisionada onde os alvos também fornecem os 
dados de entrada. Existem muitas aplicações de classificação em muitos domínios, como aprovação de 
crédito, diagnóstico médico, marketing direcionado, etc. 
 
A arquitetura apropriada depende da aplicação do modelo. Para a maioria dos casos, os modelos de feedfor-
ward fornecem resultados razoavelmente precisos e, especialmente para aplicativos de processamento de 
imagem, as redes convolucionais têm um desempenho melhor. 
Pode haver várias camadas ocultas no modelo, dependendo da complexidade da função que será mapeada 
pelo modelo. Ter mais camadas ocultas permitirá modelar relacionamentos complexos, como redes neurais 
profundas. 
No entanto, quando há muitas camadas ocultas, leva muito tempo para treinar e ajustar seus pesos. As 
redes neurais artificiais desenvolvem um desempenho impressionante na maioria das aplicações do mundo 
real. Possui alta tolerância a dados ruidosos e é capaz de classificar padrões não treinados. Normalmente, 
as redes neurais artificiais têm melhor desempenho com entradas e saídas de valor contínuo. 
 
Método de Holdout 
Método de Holdout é um tipo de método de validação. Ou seja, o conjunto de dados fornecidos é dividido 
em 2 partições para testar e treinar 20% e 80%, respectivamente. O conjunto de treinamento será usado 
para treinar o modelo e os dados de teste invisíveis serão usados para testar seu poder preditivo. 
 
Análise de Regressão 
A análise de regressão consiste em um conjunto de métodos de aprendizado de máquina que nos permitem 
prever uma variável de resultado contínua (y) com base no valor de uma ou várias variáveis preditoras (x). 
 
Resumidamente, o objetivo do modelo de regressão é construir uma equação matemática que defina y como 
uma função das variáveis x. Em seguida, esta equação pode ser usada para prever o resultado (y) com base 
em novos valores das variáveis preditoras (x). 
 
A regressão linear é a técnica mais simples e popular para prever uma variável contínua. Ele assume uma 
relação linear entre o resultado e as variáveis preditoras. 
 
Tecnicamente, os coeficientes de regressão linear são determinados de forma que o erro na previsão do 
valor de resultado seja minimizado. Este método de calcular os coeficientes beta é chamado de método dos 
mínimos quadrados ordinários. 
 
 Observe também que os modelos de regressão linear podem incorporar variáveis preditoras contínuas 
e categóricas . 
 
16 Redes Neurais 
Ao construir o modelo de regressão linear, você precisa diagnosticar se o modelo linear é adequado para 
seus dados. 
 
Em alguns casos, a relação entre o resultado e as variáveis preditoras não é linear. Nessas situações, você 
precisa construir uma regressão não linear, como regressão polinomial ou spline (da qual não trataremos 
neste curso). 
 
Quando você tem vários preditores no modelo de regressão, pode desejar selecionar a melhor combinação 
de variáveis de previsão para construir um modelo preditivo ideal. Este processo denominado seleção de 
modelo, consiste em comparar vários modelos contendo diferentes conjuntos de preditores, a fim de seleci-
onar o modelo de melhor desempenho que minimiza o erro de predição. As abordagens de seleção de 
modelo linear incluem melhores subconjuntos de regressão. 
 
Em algumas situações, como em campos genômicos, você pode ter um grande conjunto de dados multiva-
riados contendo alguns preditores correlacionados. Nesse caso, as informações, no conjunto de dados ori-
ginal, podem ser resumidas em algumas novas variáveis (chamadas de componentes principais) que são 
uma combinação linear das variáveis originais. Esses poucos componentes principais podem ser usados 
para construir um modelo linear, que pode ter mais desempenho para seus dados. Esta abordagem é co-
nhecida como métodos baseados em componentes principais, que incluem: regressão de componentes 
principais e regressão de mínimos quadrados parciais . 
 
Um método alternativo para simplificar um modelo multivariado grande é usar a regressão penalizada, que 
penaliza o modelo por ter muitas variáveis. A regressão penalizada mais conhecida inclui a regressão do 
cume e a regressão do laço . 
 
Você pode aplicar todos esses modelos de regressão diferentes em seus dados, comparar os modelos e, 
finalmente, selecionar a melhor abordagem que explica bem seus dados. Para fazer isso, você precisa de 
algumas métricas estatísticas para comparar o desempenho dos diferentes modelos na explicação de seus 
dados e na previsão do resultado de novos dados de teste. 
 
O melhor modelo é definido como o modelo que apresenta o menor erro de predição. As métricas mais 
populares para comparar modelos de regressão incluem: 
 
Root Mean Squared Error, que mede o erro de predição do modelo. Corresponde à diferença média entre 
os valores conhecidos observados do resultado e o valor previsto pelo modelo. RMSE é calculado como 
RMSE = 
 
 
Atividade Extra 
 
 
Treine sua rede neural usando o TensorFlow. 
https://www.tensorflow.org/tutorials/keras/classification?hl=pt-br (classificação básica) 
https://www.tensorflow.org/tutorials/keras/classification?hl=pt-br

Outros materiais