EE-214/2011
Neurônio
-1
.25
x1
.5
x2
.3
x3

.5
a
EE-214/2011
Perceptron AND
•
•
-1
Entradas 0 or 1
Saída é 1 quando ambos x1 e
x2 são 1
.75
x1
.5
a
x2
.5
.5*1+.5*0+.75*-1
= -.25 output = 0
.5*1+.5*1+.75*-1
= .25 output = 1
x1
.5*0+.5*0+.75*-1
= -.75 output = 0
1
0
x2
0
1
EE-214/2011
Perceptron OR
-1
•
•
.25
Entradas 0 or 1
Saída é 1 quando pelo menos
um dos dois, x1 ou x2 é 1
x1
.5
a
x2
.5
.5*1+.5*1+.25*-1
= .75 output = 1
.5*1+.5*0+.25*-1
= .25 output = 1
x1
.5*0+.5*0+.25*-1
= -.25 output = 0
1
0
x2
0
1
EE-214/2011
Discriminante Linear via Perceptron
clear all
P = [-1 -1 1 1; -1 1 -1 1];
T = [0 0 0 1];
net=newp(minmax(P),1);
net.trainParam.epochs = 20;
net = train(net,P,T);
plotpv(P,T);
plotpc(net.IW{1},net.b{1});
EE-214/2011
Perceptron XOR
-1
•
•
Entradas 0 or 1
Saída é 1 quando somente
um dos dois, x1 ou x2 é 1
???
x1
.5
a
x2
.5
x1
Não separável por hiperplano
1
Tentar Associações
de Neurônios
0
x2
0
1
EE-214/2011
Timeline
•
1943 – Warren S. McCulloch e Walter H. Pitts, modelo de neurônios com limiares
binários
•
1957 – Frank Rosenblatt, classe de máquinas com aprendizado denominados
perceptrons
•
1969 – Marvin Minsky e Seymour Papert – apresentam o problema do XOR.
•
1980’s – David E. Rumelhart, Geoffrey E. Hinton e Ronald J. Williams, generalized delta
rule for learning by back-propagation para treinamento de MLP
EE-214/2011
-1
.25
x1
.5
a
x2
x1
.5
.25
.5
.75
x2
.5
a
x2
.5
.5
.5
-1
x1
OR
.5
.5
.75
O
-.5
AND
x1
x1
1
1
0
x2
0
1
0
x2
0
1
EE-214/2011
Redes Neurais Artificiais
Camada 3
Camada 2
Camada 1
EE-214/2011
Tipos de Redes
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Perceptron Simples
Perceptron Multicamadas
Redes de Base Radial
Redes de Hopfield
SOM (Kohonen)
Types of neural networks
Recurrent network
The echo state network
Stochastic neural networks
Boltzmann machine
Modular neural networks
Committee of machines
Associative neural network (ASNN)
Instantaneously trained networks
Spiking neural networks (SNNs)
Neuro-fuzzy networks
ART
Grossberg
ART
Kohonen
Hopfield
MLP
Elman
EE-214/2011
Cérebro Humano
•
•
•
•
•
•
•
•
•
•
•
•
•
Número de Neurônios:
Número de Conexões:
Taxa de Mortalidade de Neurônios:
Taxa de Aumento de Neurônios:
Velocidade nas Sinapses:
Reestruturação:
Consumo de Energia:
4 x 1010 a 1011
até 104 per neuron
105 per day
~0
1 kHz (computer 3.0 GHz)
Bebê < 2anos  106 connections/s
10-16 J/operação/s (computador  10-6)
Adaptação por meio de aprendizado
Comportamento sensível ao contexto
Tolerância a incertezas
Capacidade de manipular informações incompletas
Grande capacidade de memória
Capacidade de processamento em tempo real
EE-214/2011
Vantagens de Redes Neurais Artificiais
•
•
•
•
•
•
•
•
•
•
•
•
•
A prendizado a partir de dados, sem necessidade de Engenheiro de Conhecimentos
Capacidade de generalização
Capacidade de tratar multicolinearidade
Obtenção de modelos a partir de dados ruidosos
Obtenção de modelos a partir de dados incompletos
Permite tratar modelos não lineares
Permite tratar dados discontínuos
Sem dependência do tipo de distribuição
Computação simples em arquitetura massivamente paralela
Processamento rápido no modo de aplicação
Apresenta conhecimento distribuído
Tolerante a falhas nos nós
Pode ser dinâmico
EE-214/2011
Principais Desvantagens de Redes Neurais Artificiais
Entradas
Saídas
Caixa Preta
•
•
•
•
•
•
Dificuldade de interpretação (caixa preta)
Dificuldade de debug, por causa da representação distribuída
Treinamento pode ser lento
Dificuldade em definir topologia
Treinamento pode falhar por captura em um mínimo local
O problema pode não ser descritível em termos de números
EE-214/2011
Aplicações de RNA
•
•
•
•
•
•
•
•
Classificação
Agrupamento
Aproximação de funções
Previsão
Otimização
Memória endereçável por conteúdo
Controle
outros ...
EE-214/2011
Aplicações de RNA
•
•
•
•
•
•
•
•
Classificação
Agrupamento
Aproximação de funções
Previsão
Otimização
Memória endereçável por conteúdo
Controle
outros ...
A tarefa de classificação de padrões é atribuir a das classes préespecificadas um objeto ou dado (como forma de onda vocal ou símbolo
manuscrito) representado por um vetor de caracteristicas.
EE-214/2011
Aplicações de RNA
•
•
•
•
•
•
•
•
Classificação
Agrupamento
Aproximação de funções
Previsão
Otimização
Memória endereçável por conteúdo
Controle
outros ...
•
O agrupamento (clustering) consiste em colocar os padrões similares
em um mesmo grupo.
EE-214/2011
Estruturas de RNA Requeridas para Separação
Estrutura
1 camada
2 camadas
3 camadas
Classes
Não-Convexas
XOR
A
B
B
A
A
B
B
A
A
B
B
A
B
B
B
A
A
A
Configurações
Possíveis
EE-214/2011
Aplicações de RNA
f(x) + ruído
Pol. grau = 30 (Pol. orig. grau = 5), No de pontos = 31
•
•
•
•
•
•
•
•
4
Classificação
Agrupamento
Aproximação de funções
Previsão
yk
Otimização
Memória endereçável por conteúdo
Controle
outros ...
3
2
1
0
-1
-2
-3
-4
-3
-2
-1
0
xk
1
2
3
fRNA(x,W)
Dado um conjunto de N pares entrada-saída, (x1, y1), (x2,y2), ..., (xN,yN),
gerados por uma função desconhecida f(x), sujeito a ruído, a tarefa da
aproximação de função é achar uma estimativa, fRNA(x,W).
EE-214/2011
Aplicações de RNA
5
Classificação
Agrupamento
Aproximação de funções
Previsão
Otimização
Memória endereçável por conteúdo
Controle
outros ...
4.5
4
3.5
y
3
y
•
•
•
•
•
•
•
•
2.5
2
1.5
1
0.5
0
5
10
15
x
t
20
25
30
Previsão
Dado um conjunto de N amostras (y(t1), y(t2), ..., y(tN)) de uma sequência no tempo,
estimar o valor de y(tN+k), k > 0.
EE-214/2011
Aplicações de RNA
•
•
•
•
•
•
•
•
Classificação
Agrupamento
Aproximação de funções
Previsão
Otimização
Memória endereçável por conteúdo
Controle
outros ...
min J(x)
xX
s.a.
h(x) = 0
g(x)  0
O problema de otimização consiste em selecionar um ponto de um conjunto (de
pontos viáveis) que resulta no melhor valor de uma função objetivo.
O ponto pode pertencer a Rn ou em espaço de funções como L2 (controle ótimo).
A função objetivo J(.) pode ser custo (min) ou retorno (max).
O conjunto de pontos viáveis é caracterizado por equações h(x) ou inequações g(x).
EE-214/2011
Aplicações de RNA
•
•
•
•
•
•
•
•
Classificação
Agrupamento
Aproximação de funções
Previsão
Otimização
Memória endereçável por conteúdo
Controle
outros ...
Pelo Endereço
Pelo Conteúdo
Endereço
Conteúdo
Endereço
Conteúdo
0000
1010110
0000
1010110
0001
1100101
0001
1100101
0010
1000111
0010
1000111
0011
0010100
0011
0010100
...
...
1111
0101111
Existe algum dado do tipo
1111
10xx111 ?
0101111
EE-214/2011
Aplicações de RNA
•
•
•
•
•
•
•
•
Classificação
Agrupamento
Aproximação de funções
Previsão
Otimização
Memória endereçável por conteúdo
Controle
outros ...
Pelo Endereço
Pelo Conteúdo
Endereço
Conteúdo
Endereço
Conteúdo
0000
1010110
0000
1010110
0001
1100101
0001
1100101
0010
1000111
0010
1000111
0011
0010100
0011
0010100
...
...
1111
0101111
1111
Search
Existe algum dado do tipo
10xx111 ?
0101111
EE-214/2011
Aplicações de RNA
•
•
•
•
•
•
•
•
Classificação
Agrupamento
Aproximação de funções
r1 +
Previsão
r2 – +
Otimização
–
Memória endereçável por conteúdo
Controle
outros ...
Dado um sistema dinâmico descrito por
Mecanismo
de Ajuste
u1
u2
y1
Planta
Controlador
dx
 f x, u, t 
dt
x(t 0 )  x 0
y  h ( x, u, t )
onde u(t) é a entrada do sistema e y(t) é a saída, o problema de controle consiste em obter uma lei
de controle u(t) que faça o sistema evoluir conforme especificações desejadas.
y2
EE-214/2011
Métodos de Treinamento (Aprendizado)
EE-214/2011
Treinamento Supervisionado de RNA
•
•
•
•
Particionar os dados em:
– Conjunto de Treinamento
– Conjunto de Teste
– Conjunto de Validação
Ajustar os Pesos
– Variar os pesos de modo que resultem em diminuição do erro na saída
para o dados do conjunto de treinamento.
– Se o erro na saída para o dados do conjunto de teste começar a
aumentar, terminar o treinamento.
– Verificar se a rede obtida produz bons resultados para o cojunto de
validação.
Overfitting: A rede ajustou-se ao ruído
Generalização: Produz resultados adequados para dados não utilizados no
treinamento (por exemplo, os do conjunto de teste).
EE-214/2011
Métodos de Otimização
•
•
•
•
•
•
•
Back Propagation (mais utilizado)
Método dos Momentos
Métodos Superlineares (Newton, Kalman)
Algoritmos Bioinspirados (p.ex., Genético)
Poliedros Flexíveis
Otimização Multi-Objetivos
...
EE-214/2011
Algoritmo Back-Propagation
1.
2.
Inicializar os pesos da rede (por exemplo, aleatoriamente)
While (not_critério_parada)
For i = 1:Num_Amostras_Entrada_Saída
forward pass: Calcular saída Oi para entrada Xi
Calcular ei = (Ti - Oi) onde Ti é o target
backward pass: Calcular wj,i para cada camada j
end
atualizar pesos
EE-214/2011
Aplicações de RNA
•
•
•
•
•
•
•
•
Classificação
Agrupamento
Aproximação de funções
Previsão
Otimização
Memória endereçável por conteúdo
Controle
outros ...
EE-214/2011
Previsão de Séries Temporais
EE-214/2011
Previsão de Séries Temporais
5
4.5
4
3.5
3
y
y
2.5
2
1.5
1
0.5
0
5
10
15
x
t
20
25
30
Previsão
Dado um conjunto de N amostras (y(t1), y(t2), ..., y(tN)) de uma sequência no tempo,
estimar o valor de y(tN+k), k > 0.
EE-214/2011
Propriedade de Aproximação Universal
x1
x
2
x
Função
Alvo
y = f (x)
x y
n
x1
x
2
x
Rede
Neural
yRNA = fRNA(x,W)
n
W
Propriedade de Aproximação Universal: Dada uma função f(x) sobre um
domínio X  Rm e  > 0, é possível construir fRNA(x,W) de modo que:
| f(x) - fRNA(x,W) | < , x  X
EE-214/2011
Propriedade de Aproximação Universal
•Barron, A. R.: Universal approximation bounds for superpositions of a sigmoidal function, IEEE
Transactions on Information Theory, 39, 1993, pp. 930-945.
•Cybenko, G.: Approximation by superposition of a sigmoidal function, Mathematics of Control,
Signals, and Systems, 2, 1989, pp. 303-314.
•K. Funahashi, On the approximate realization of continuous mappings by neural networks,
Neural Networks, v.2 n.3, 1989, pp.183-192.
•Hecht-Nielsen, R.: Kolmogorov's mapping neural network existence theorem, In: International
Conference on Neural Networks, vol. 3, IEEE, Washington DC, 1989, pp. 11-14.
•K. Hornik , M. Stinchcombe , H. White, Multilayer feedforward networks are universal
approximators, Neural Networks, v.2 n.5, 1989 , pp.359-366.
•J. Park , I. W. Sandberg, Universal approximation using radial-basis-function networks, Neural
Computation, v.3, n.2, Summer 1991, pp.246-257.
•F. Scarselli , A. C. Tsoi, Universal approximation using feedforward neural networks: a survey of
some existing methods, and some new results, Neural Networks, v.11 n.1, jan, 1998, pp.15-37.
EE-214/2011
Alternativa 1 para Previsão de Séries Temporais
Aproximação de Funções
%
%
%
%
%
%
%
Se x é nx1 e há N pares (x,y)
Fornecer entradas P na forma
[x1(1) x1(2) ... x1(N) ; ... ; xn(1) xn(2) ... xn(N)]
Fornecer saida ou target T na forma
[y(1) ... y(N)]
P=...;
T=...;
% Especificar estrutura da rede: no caso ‘new feed forward’
net = newff(minmax(P),[2 15 1]);
% Treinamento com as entradas P e saidas T
net.trainParam.epochs = 200;
net = train(net,P,T);
% Calcula saidas da rede para as entradas P
Y = sim(net,P);
EE-214/2011
Alternativa 1 para Previsão de Séries Temporais
Aproximação de Funções
Pol. grau = 30 (Pol. orig. grau = 5), No de pontos = 31
4
3
2
1
0
-1
-2
-3
-4
-3
-2
-1
0
1
2
3
EE-214/2011
Alternativa 2 para Previsão de Séries Temporais
Ajuste de Polinômio
% Supondo que os pares y(k),x(k) já estão definidos
> coef = polyfit(x,y,10)
> plot(x,y,’r’)
> hold on
> ychapeu = polyval(coef,x)
> plot(x,ychapeu)
EE-214/2011
Alternativa 3 para Previsão de Séries Temporais
NARMA via RNA
xk
z-1
z-1
xk1
yk1
z-1
z-1
xk-2
xk-n+1
yk-
yk-
2
n+1
z-1
z-1
xkn
ykn
yk = fRNA (yk-1,yk-2,...,yk-n,xk,xk-1,xk-2,...,xk-m)
Rede
Neural
y
k
EE-214/2011
Alternativa 4 para Previsão de Séries Temporais
ARMA
ARMAX
Computes the prediction error estimate of an ARMAX model.
M = ARMAX(Z,[na nb nc nk])
or M = ARMAX(Z,'na',na,'nb',nb,'nc',nc,'nk',nk)
M : returns the estimated model in an IDPOLY object format
along with estimated covariances and structure information.
For the exact format of M see also help IDPOLY.
Z :
The estimation data in IDDATA object format. See help IDDATA
[na nb nc nk] are the orders and delays of the ARMAX model
A(q) y(t) = B(q) u(t-nk) + C(q) e(t)
If the data have several inputs, nb and nk are row vectors with
lengths equal to the number of input channels.
EE-214/2011
Agrupamento e
Classificação
de Padrões
EE-214/2011
Agrupamento e Classificação
MOT
TAC
W,t
J,B
W
V
Imot
A
BAT
A tarefa de classificação de padrões é atribuir a das classes préespecificadas um objeto ou dado (como forma de onda vocal ou símbolo
manuscrito) representado por um vetor de caracteristicas.
EE-214/2011
Agrupamento e Classificação
MOT
TAC
E – Escova com R
N – Nominal
B – Bateria com V
C – Curto
T – Eixo Travado
Q – Eixo Quebrado
Imot
W,t
C
J,B
W
C
T
T
T
V
Imot
E
A
N
E
E
E
E
N N
B N N
B
B B
B
Q
Q
Q Q
Q
BAT
W
A tarefa de classificação de padrões é atribuir a das classes préespecificadas um objeto ou dado (como forma de onda vocal ou símbolo
manuscrito) representado por um vetor de caracteristicas.
EE-214/2011
Alternativas para Agrupamento: Métodos já vistos
% Agrupamento Hierárquico - Dendrograma
>> y=pdist(x,'euclidean');
>> z=linkage(y,'average');
>> dendrogram(z)
% k-means
>> [idx,c]=kmeans(x,2)
% Fuzzy c-means
>> [CENTER, U, OBJ_FCN] = FCM(x,N_CLUSTER)
% Expectation-Maximization
>> [W,M,V,L] = EM_GM(x,3,[],[],1,[])
% Competitive Network
>> net=newc([0 10 ; 0 20],3);
>> net=train(net,x’);
>> xsim = sim(net,x’);
>> Yc = vec2ind(xsim);
% SOM
>> net=newsom([0 10;0 20],[13],'gridtop','dist',0.9,200,0.01,0);
>> net.trainParam.epochs=100;
>> net=train(net,x’);
EE-214/2011
Weight Vectors
16
12
14
10
12
x2
W(i,2)
10
8
8
6
6
4
4
2
2
0
1
2
3
4
5
6
7
8
9
-2
0
2
4
W(i,1)
x1
6
8
10
1
16
0.9
14
0.8
12
0.7
0.6
x2
x2-norm
10
8
0.5
0.4
0.3
6
0.2
4
0.1
2
0
1
2
3
4
5
x1
6
7
8
9
0
0
0.1
0.2
0.3
0.4
0.5
0.6
x1-norm
0.7
0.8
0.9
1
EE-214/2011
Muito Obrigado!