Upload
hahanh
View
256
Download
0
Embed Size (px)
Citation preview
Redes Neurais Artificiais
Sistemas de Informação/Ciências da Computação – UNISUL
Aran Bey Tcholakian Morales, Dr. Eng.
(Apostila 9)
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
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
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
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
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
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
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