redes neurais artificiais - … · redes neurais artificiais sistemas de informação/ciências da...

48
Redes Neurais Artificiais Sistemas de Informação/Ciências da Computação – UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 9)

Upload: hahanh

Post on 05-Jun-2018

255 views

Category:

Documents


0 download

TRANSCRIPT

Redes Neurais Artificiais

Sistemas de Informação/Ciências da Computação – UNISUL

Aran Bey Tcholakian Morales, Dr. Eng.

(Apostila 9)

2

Conceitos

3

As Redes Neurais Artificias são modelos computacionais

de processamento de dados inspirados nos neurônios biológicos e na

estrutura paralela do cérebro , isto é, na forma como o cérebro

humano funciona.

As RN, apresentam algumas características muito interessantes:

- são capazes de aprender; de generalizar as soluções; de lidar com

dados ruidosos ou incompletos.

Redes Neurais

4

Características:

• As Redes aprendem por experiência , não necessitando explicitar os algoritmos para executar uma determinada tarefa (aprendizado);

• As redes são capazes de realizar associações entre padrões diferentes (associação); e generalizar o seu conhecimento a partir de exemplos anteriores (generalização);

• As redes são capazes de lidar com ruídos e distorções respondendo corretamente aos novos padrões. Isto é, a perda de um conjunto de elementos processadores e/ou conexões sinápticas não causa o mal funcionamento da rede neural (robustez)

Redes Neurais

5

• O neurônio biológico é entendido como sendo basicamente o dispositivo elementar do sistema nervoso, que possuía muitas entradas e uma saída.

• A partir do corpo celular, ou soma, (o centro dos processos metabólicos da célula nervosa) projetam-se extensões filamentares, os dendritos, e o axônio.

Redes Neurais: neurônio biológico

)sign(yn

0i

kii xw

Neurónio = processador de informação

recebe e envia impulso a milhares de neurónios

dendritos: canais de entrada

corpo celular: órgão de cômputo (soma ponderada, função não linear)

axónio: canal de saída distribuição a outros neurónios

Potencial pos-sináptico:

h (w, x) = w . x = j wj xj

O factor bias t é usualmente subtraído ao potencial pos-sináptico

função de activação para obter y: y = f (w. x – t)

x1

x2

xn

-1

w1

w2

wn

t

axon

limiar

(threshold)

Entr

adas

dendritas

função de

activação

f( ) y

sinapsis

(pesos)

saída

somatória

pesadax1

x2

xn

-1

w1

w2

wn

t

axon

limiar

(threshold)

Entr

adas

dendritas

função de

activação

f( ) y

sinapsis

(pesos)

saída

somatória

pesada

y = f(w x – t) = f(j wj xj – t)

Redes Neurais: neurônio artificial

7

Redes Neurais

Selecione:

File> New Project> Samples> Neuroph> Basic Neuron Sample

8

Redes Neurais

X1

X2

X3

Y

Black box

w1

t

Output

node

Input

nodes

w2

w3

Modelo simples de um

neurónio artificial

As redes neurais são estruturas que consistem em um conjunto de

nós interconectados chamados neurônios .

Cada neurônio tem entradas por meio do qual ele recebe saídas

de outros neurônios e saídas através do qual são enviadas para as

entradas de outros neurônios.

A maneira na qual os neurónios estão interligados determina o

tipo de arquitetura de rede neural.

9

Redes Neurais

nós de

entrada

nós de

saída

nós

ocultos

• As RNAs contêm tem 3 tipos de camadas (layers): – input layer: informação que entra no neurónio – hidden layer: camadas intermédias, podem ser várias – output layer: informação que sai

• Modelos mais populares:

– Perceptron:

modelo mais simples, não usa hidden layers

– Multi-layer Feed-Forward:

os nós de uma camada estão ligados apenas aos

nós da seguinte camada

modelo com 3 camadas

Redes Neurais: arquitetura

11

Histórico

• McCulloch & Pitts (1943): modelo computacional para o neurônio

artificial. Não possuía capacidade de aprendizado;

• Hebb (1949): modelo de aprendizado (Hebbian Learning Rule);

• Rosenblatt (1957): Perceptron, com grande sucesso em certas

aplicações e problemas em outras aplicações aparentemente

similares;

• Minsky & Papert ( Perceptrons 1969): prova matemática de que as

redes Perceptron são incapazes de solucionar problemas simples

tipo OU-EXCLUSIVO;

• Rumelhart (início da década de 80): novos modelos que superaram

os problemas dos Perceptrons.

Histórico

12

Perceptron

Perceptron é uma simples rede neural de duas camadas com vários

neurônios na camada de entrada e um ou mais neurônios na camada

de saída, baseada no algoritmo de aprendizagem regra de Hebb ou

regra delta.

13

Perceptron

Um perceptron é um classificador linear binário,

ou seja, uma função f: X Y que mapea um vector

binário x a um valor binário y

15

O perceptron, é formado por unidades básicas de neurônios do tipo

MCP, e por uma regra de aprendizado baseado na regra de Hebb.

Características Básicas:

• Regra de Propagação: netj = ( xi .wij )

• Função de Ativação: Degrau

• Topologia: uma única camada de processadores

• Algoritmo de Aprendizado: wij = .xi .(tj - sj )

= taxa de aprendizado (constante)

xi = é o valor de entrada da rede

tj = saída desejada

sj = saída obtida (real)

ei = (saída desejada – saída obtida).

• Ajuste de pesos: wij (t +1) = wij (t) + wij

Perceptron

16

1.Iniciar os pesos sinápticos com valores randômicos e pequenos;

2.Aplicar um padrão de entrada, com seu respectivo valor de saída

desejado ( tj ), e verificar a saída da rede ( sj );

3. Calcular o erro na saída: ej = tj - sj

4. Se ej = 0, voltar ao passo 2;

Se ej <> 0, atualizar os pesos: wij = .x i.ej

5. Voltar ao passo 2.

Perceptron

17

• Função AND: x1 x2 Saída

1 1 1

1 0 0

0 1 0

0 0 0

X1

X2

W1

W2

S

F(Net)

X1

X2

A3 A1

A2 A0

Perceptron

1 (bias)

W3

18

W0 = (0 0 0 )

Entrada Net s t e W W

(1 1 1) 0 0 1 1 (1 1 1) (1 1 1)

(1 0 1) 2 1 0 -1 (-1 0 -1) (0 1 0)

(0 1 1) 1 1 0 -1 (0 -1 -1) (0 0 -1)

(0 0 1) -1 0 0 0 x (0 0 -1)

(1 1 1) -1 0 1 1 (1 1 1) (1 1 0)

(1 0 1) 1 1 0 -1 (-1 0 -1) (0 1 -1)

(0 1 1) 0 0 0 0 x (0 1 -1)

(0 0 1) 0 0 0 0 x (0 1 -1)

Perceptron

19

Entrada Net s t e W W

(1 1 1) 0 0 1 1 (1 1 1) (1 2 0)

(1 0 1) 1 1 0 -1 (-1 0 -1) (0 2 -1)

(0 1 1) 1 1 0 -1 (0 -1 -1) (0 1 -2)

(0 0 1) -2 1 0 -1 (0 0 -1) (0 1 -3)

(1 1 1) -2 0 1 1 (1 1 1) (1 2 -2)

(1 0 1) -1 0 0 0 x (1 2 -2)

(0 1 1) 0 0 0 0 x (1 2 -2)

(0 0 1) -2 0 0 0 x (1 2 -2)

W1 = 1; W2 = 2; W0 = -2

Perceptron

20

W1 = 1; W2 = 2; W0 = -2

W2.X2 + W1.X1 + W0 = 0;

X2 = - W1/W2 X1 – W0/W2

X2 = -1/2 X1 + 1

Perceptron

X1

X2

A3 A1

A2 A0

Para criar e treinar rede neural Perceptron usando Neuroph faça:

Passo 1. Criar projeto Neuroph:

Clique em File> New Project.

Selecione Projeto Neuroph, clique em Avançar.

Digite o nome do projeto e

localização, clique em concluir

21

Perceptron

Passo 2. Crie Perceptron rede.

Clique em File> New File

Selecione projeto a partir do menu drop-down do projeto e selecione

o tipo de arquivo da Rede Neural, clique em Avançar

22

Perceptron

Digite o nome da rede,

selecione Perceptron tipo de rede,

clique em Avançar.

Na nova caixa de diálogo:

digite o número de neurônios

de entrada (2) e de saída (1),

escolha Perceptron Aprendizagem

e clique Criar botão

23

Perceptron

Isto irá criar a rede neural Perceptron com dois neurônios na entrada, e

um na camada de saída. Por padrão, todas as funções de transferência,

são do tipo “passo”.

24

Perceptron

Passo 3. Para criar conjunto de treinamento,

clique em File> New File para abrir o

assistente de conjunto de treinamento

Selecione set Training tipo de arquivo, clique em Avançar

25

Perceptron

Digite o nome do conjunto de treinamento, o número de entradas e

saídas, como mostrado na imagem abaixo e clique Criar botão.

Perceptron

Em seguida, crie conjunto de treinamento, introduzindo elementos de

formação como valores de neurônios na camada de entrada e saída de

entrada e de saída desejados. Use Adicionar linha botão para adicionar

novos elementos e clique em OK botão quando terminar

Perceptron

Passo 4: Para iniciar o processo

de treinamento da rede, na janela

de rede selecionar conjunto de

treinamento e clique no botão

Train.

Em Set Aprender Parâmetros

de aprendizagem padrão de uso de diálogo

e basta clicar no trem botão.

28

Perceptron

Passo 5. Após o treinamento for concluído, você pode testar a rede

para a formação integral definidas selecionando conjunto de

treinamento para testar e clicando em teste botão.

Isto irá mostrar os resultados

dos testes na nova guia.

29

Perceptron

Para testar a entrada única, use Set Input botão.

Isto irá abrir conjunto de entrada da rede de diálogo na qual você pode

digitar os valores de entrada para a rede, com espaço entre os valores.

30

Perceptron

Rede aprendeu lógica e função: podemos ver

que o neurônio de saída tem valor 0.

Você pode selecionar vista gráfico para ver diferente visão da rede:

31

Perceptron

32

• Função OR: x1 x2 Saída

1 1 1

1 0 1

0 1 1

0 0 0

X1

X2

A0

A1

A2 A3

Perceptron

33

Função XOR: x1 x2 Saída

1 1 0

1 0 1

0 1 1

0 0 0

X1

X2

A0 A1

A2 A3

Perceptron

34

Conclusão:

• Mudando-se os valores de wi, muda-se a inclinação e a posição da reta;

• Entretanto, é impossível achar uma reta que divida o plano de forma a separar os pontos A1 e A2 de um lado e A0 e A3 de outro;

• Redes de 1 única camada só representam funções linearmente separáveis!

O problema do OU-Exclusivo

35

• Rosenblatt (1962) provou que uma rede Perceptron é capaz de

aprender tudo que puder representar.

• Minsky & Papert provaram (Perceptrons 1969) que existem séries

restrições sobre o que as redes Perceptron são capazes de

Representar.

• Por exemplo, as redes Perceptron não são capazes de Representar

a função OU-Exclusivo

O problema do OU-Exclusivo

36

Redes Neurais Multicamadas

37

Redes Multi-Layer Perceptron (MLP): são redes do tipo Perceptron

com mais de uma camada. Esta rede é constituída por várias camadas

de neurónios (pelo menos três), onde cada neurónio de uma camada

está ligada a todos os neurónios na camada seguinte.

Redes Neurais Multicamadas

38

• Redes de apenas uma camada só representam funções

linearmente separáveis, redes de múltiplas camadas solucionam

essa restrição.

• O grande desafio foi achar um algoritmo de aprendizado para a

atualização dos pesos das camadas intermediárias.

• Idéia Central: os erros dos elementos processadores da camada de

saída,conhecidos pelo treinamento supervisionado são retro-

propagados para as camadas intermediárias.

Redes Neurais Multicamadas

Activation

function

g(Si )

Si

Oi

I1

I2

I3

wi1

wi2

wi3

Oi

Neuron iInput Output

threshold, t

Input

Layer

Hidden

Layer

Output

Layer

x1

x2

x3

x4

x5

yAprender RNAs significa aprender os pesos dos dados.

O algoritmo mais popular: back-propagation

Podem existir

várias camadas

ocultas

Redes Neurais Multicamadas

Redes Neurais Multicamadas:

funções de ativação

Não existe uma fronteira linear que possa separar estas duas classes. (como o

Perceptron pode construir apenas um hiperplano, não podemos usa-lo para modelar este

problema).

Os exemplos podem ser classificados usando 2 hiperplanos que dividem o espaço dos

atributos (input space) em suas respectivas classes

Redes Neurais Multicamadas: XOR

Para criar e treinar rede neural Multicamadas usando Neuroph faça:

Passo 1. Criar projeto Neuroph:

Clique em File> New Project.

Selecione Projeto Neuroph, clique em Avançar.

Digite o nome do projeto e

localização, clique em concluir

46

Redes Neurais Multicamadas

Passo 2. Crie Multicamadas rede.

Clique em File> New File

Selecione projeto a partir do menu drop-down do projeto e selecione

o tipo de arquivo da Rede Neural, clique em Avançar

47

Redes Neurais Multicamadas

Digite o nome da rede,

selecione Multi Layer Perceptron

tipo de rede, clique em Avançar.

Na nova caixa de diálogo:

digite o número de neurônios

de entrada (9), de saída (1),

camada escondida (5).

48

Redes Neurais Multicamadas

Isto irá criar a rede neural Multicamadas.

49

Redes Neurais Multicamadas

Passo 3. Para criar conjunto de treinamento,

clique em File> New File para abrir o

assistente de conjunto de treinamento

Selecione set Training tipo de arquivo, clique em Avançar

50

Redes Neurais Multicamadas

Digite o nome do conjunto de treinamento, o número de entradas e

saídas, como mostrado na imagem abaixo e clique Criar botão.

Redes Neurais Multicamadas

Passo 4: Para iniciar o processo de treinamento da rede, devemos

selecionar os dados da rede e na janela de rede selecionar conjunto de

treinamento e clique no botão Train.

52

Redes Neurais Multicamadas

Passo 5. Após o treinamento for concluído, você pode testar a rede

para a formação integral definidas selecionando conjunto de

treinamento para testar e clicando em teste botão.

Isto irá mostrar os resultados dos testes na nova guia.

53

Redes Neurais Multicamadas