Pós-Graduação em Engenharia de Automação...

37
SISTEMAS INTELIGENTES PARA AUTOMAÇÃO Pós-Graduação em Engenharia de Automação Industrial

Transcript of Pós-Graduação em Engenharia de Automação...

SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

Pós-Graduação em Engenharia de Automação

Industrial

Redes Neurais

AULA 08

Introdução● As redes neurais são um tema da computação

altamente inspirada na natureza que nos cerca.

● Durante anos e anos os homens trabalharam para fazer computadores mais rápidos e mais potentes

● Apesar do seu incrível poder computacional estes computadores falhavam em fazer tarefas que uma criança de 3 anos faria imediatamente

● Exemplo: reconhecer uma pessoa ou aprender algo novo só com a experiência.

Introdução● Baseado nisto, resolveu-se então buscar criar um

modelo computacional que emulasse o comportamento do cérebro humano.

● Criaram-se neurônios artifciais extremamente similares aos humanos e interligaram-nos para formar redes que mostraram poder fazer tarefas antes restritas aos cérebros

● Quem sabe assim, poderíamos criar computadores tão inteligentes quanto uma criança de 3 anos de idade?

Introdução

Além disso, os pesquisadores encontraram nas redes neurais outras características semelhantes às do cérebro :

● robustez e tolerância a falhas● flexibilidade● capacidade para lidar com informações ruidosas,

probabilísticas ou inconsistentes● processamento paralelo● arquitetura compacta e com pouca dissipação de

energia

Introdução● Encontrou-se uma arquitetura capaz não só de aprender

como também generalizar. ● Daí podemos entender o frisson do meio científco em

relação a esta área. ● É importante que se entenda que as redes neurais não

são a solução dos problemas computacionais da humanidade.

● Elas nunca superarão as arquiteturas tradicionais no campo da computação numérica, por exemplo.

● Mas em alguns campos elas estão se tornando ferramentas valiosas.

Quando as redes neurais são uteis?● Quando não pudermos ou não soubermos criar uma

solução algoritímica● Quando tivermos muitos exemplos do comportamento

que desejamos.

Isto é, quando quisermos aprender a partir da experiência existente!

● Quando quisermos aprender uma estrutura escondida nos dados.

Histórico das Redes Neurais● McCulloch & Pitts (1943) são conhecidos como os

projetistas da primeira rede neural. ● Muitas de suas iéias ainda são usadas hoje em dia.● Por exemplo, ainda combinamos muitas unidades

simples para obter um grande poder computacional além de nos basearmos também em um threshold de ativação

● A primeira regra de aprendizado foi desenvolvida por Hebb (1949)

Histórico das Redes Neurais● Durante as décadas de 50 e 60 muitos pesquisadores

trabalharam no peceptron com grande afnco e excitação.

● Em 1969, a área sofreu grande impacto e praticamente sumiu devido às descobertas de Minsky & Papert

● Somente nos anos 80, com o algoritmo de aprendizado para treinamento de redes multi-camada (descoberto de forma independente por Parker e LeCun em 1982 e Werbos em 1974) as redes neurais voltaram à moda.

● Hoje em dia, muitos consideram-nas o campo mais importante da IA.

Algumas Aplicações

● Descoberta de novos remédios● Entendimento de linguagem natural● Carros autônomos● Reconhecimento facial● Cura para doenças● Bolsa de valores● Encontrar soluções para controle de tráfego

Muitos dados e problemas complexos

Neurônio

O neurônio é a unidade fundamental constituinte do sistema nervoso

Redes Neurais

● Imitar o sistema nervoso de humanos no processo de aprendizagem

● Inspirada em redes neurais biológicas● Parecido com a troca de informações em uma rede biológica

● Com deep learning (aprendizagem profunda) as redes neurais fcaram populares novamente

Redes Neurais

Redes Neurais● Neurônios: o cérebro usa para processar informações

● Axônio: transmite o sinal de um neurônio para outro (sinais elétricos, sinapses) – conecta os neurônios.

● Substâncias químicas são lançadas das sinapses e entram pelos dendritos, aumentando ou baixando o potencial elétrico do corpo da célula.

● O neurônio dispara se a entrada é maior que um número defnido (liga ou não liga)

Redes Neurais● Fornece um valor de entrada, a rede processa e retorna uma resposta

● O neurônio é ativado somente se o valor for maior que um limiar

Neurônios e axônios

Entrada Saída

Neurônio Artificial

x1

x2

x3

xn

∑ f

w1

w2

w3

wn

Entradas

Pesos

Função soma

Funçãoativação.

.

.

 

1943 - McCulloch e Pitts1958 – Frank Rosenblatt (perceptron)

Neurônio Artificial

1

7

5

∑ f

0.8

0.1

0

Entradas

Pesos

Função soma

Stepfunction

 

soma = (1 * 0.8) + (7 * 0.1) + (5 * 0)

Step function (função Degrau)

Maior do que zero = 1Caso contrário = 0

Representação tudo ou nada

Neurônio Artificial

-1

7

5

∑ f

0.8

0.1

0

Entradas

Pesos

Função soma

Stepfunction

 

soma = (-1 * 0.8) + (7 * 0.1) + (5 * 0)

STEP Function

Redes Neurais

● Peso positivo - sinapse excitadora● Peso negativo - sinapse inibidora● Pesos são sinapses● Pesos amplifcam ou reduzem o sinal de entrada

Conhecimento da rede neural são os pesos

Aprendizagem de Maquina

Aprendizagem Supervisionada

Classificação (Risco de Crédito)

Classificação (Parafusos)

Classificação (Parafusos)

x1 – comprimento do parafusox2 – diâmetro do parafusoClasse A (0) e Classe B (1)

4

3

∑ f

0.21

0.22

x1

x2

����=∑�=0

��∗��

Aprendizagem não-supervisionada

● Analisar automaticamente os dados (associação, Agrupamento)

● Necessita análise para determinar o significado dos padrões encontrados

Reconhecimento de padrões

Aprendizagem por reforço

● Aprender com as interações com o ambiente (causa e efeito)

● Aprender com sua própria experiência

● Robô coletando lixo aprendendo a andar em um ambiente

● Controle automatizado de elevadores

Operador E

x1 x2 Classe

0 0 0

0 1 0

1 0 0

1 1 1

Operador E

0

0

∑ f

0

0

x1

x2x1 x2 Classe

0 0 0

0 1 0

1 0 0

1 1 1

0

1

∑ f

0

0

x1

x2

1

0

∑ f

0

0

x1

x2

1

1

∑ f

0

0

x1

x2

Calculo de Erro

Algoritmo mais simples

erro = respostaCorreta – respostaCalculada

Os pesos são atualizados até os erros serem pequenos

peso(n + 1) = peso(n) + (taxaAprendizagem * entrada * erro)

Operador E

0

0

∑ f

0.1

0.1

x1

x2x1 x2 Classe

0 0 0

0 1 0

1 0 0

1 1 1

0

1

∑ f

0.1

0.1

x1

x2

1

0

∑ f

0.1

0.1

x1

x2

1

1

∑ f

0.1

0.1

x1

x2

Operador E

0

0

∑ f

0.5

0.5

x1

x2x1 x2 Classe

0 0 0

0 1 0

1 0 0

1 1 1

0

1

∑ f

0.5

0.5

x1

x2

1

0

∑ f

0.5

0.5

x1

x2

1

1

∑ f

0.5

0.5

x1

x2

ATIVIDADE 7

Calcule os pesos necessários para que o neurônio artificial aprenda a

resolver a porta logica OR/OUx1 x2 Classe

0 0 0

0 1 1

1 0 1

1 1 1

Algoritmo

Enquanto o erro for diferente de zeroPara cada registro● Calcula a saída com os pesos atuais● Compara a saída esperada com a saída calculada, somando o erro

para cada peso da rede● Atualiza o peso - peso(n + 1) = peso(n) + (taxaAprendizagem * entrada * erro)

Conhecendo o Anaconda

Criando um perceptron via python com a IDE Anaconda

E se aplicamos o perceptron no XOR?

0

0 0

11

10

0 x

y1

0 1

01

10

0x

y

1

0 1

11

10

0 x

y

?

AND

OR

XOR