Redes Neurais
TE073 - Processamento Digital de Sinais II
2
Tópicos
Introdução Conceitos
Histórico Modelos
Neurônios Redes
Aprendizado Supervisionado Não Supervisionado
Projeto e Aplicações
TE073 - Processamento Digital de Sinais II
3
Introdução
Sistema Nervoso Humano
Sistema Nervoso Central: Cérebro Medula Espinhal
Sistema Nervoso Periférico Nervos (motores, sensores)
TE073 - Processamento Digital de Sinais II
4
Introdução
Cérebro humano:Processador Ideal
Capaz de:
-Aprender-Generalizar-Memorizar-Criar
•Maior órgão do Sistema Nervoso humano.•Possui de 10 a 100 bilhões de células nervosas
TE073 - Processamento Digital de Sinais II
5
Introdução
Neurônio Célula básica do SN Interconectadas pelas
Sinapses
Bainha de Mielina
Corpo de Nissl
Mitocôndria
Célula de Schwann
Nódulo de Ranvier
Axônio
Dendrito
Nucléolo
Núcleo
Botãosináptico
Corpo celular
Junção corpo axônica
Neurônios cerebrais
Neurônio Motor
TE073 - Processamento Digital de Sinais II
6
Introdução
Sinapses Processo eletro-químico
Responsáveis pelo envio da informação através da rede neural
Recebida pelos dendritos Processada Emitida pelo Axônio
Cada neurônio pode produzir até 10.000 sinapses com neurônios adjacentes
-Excitatório-Inibitório
TE073 - Processamento Digital de Sinais II
7
Introdução
Computador VonNeumann
Sistema neuralbiológico
Processador complexoalta velocidadeum ou poucos
simplesbaixa velocidadegrande número
Memória Separada do processadorlocalizadanão-endereçavel pelo conteúdo
integrada com processadordistribuídaendereçável pelo conteúdo
Computação centralizadaseqüencialprogramas armazenados
distribuídaparalelaaprendizado
Confiabilidade muito vulnerável robusto
Adequação manipulações num. e simbólica Problemas de percepção
Ambienteoperacional
bem definidomuito restrito
pouco definidonão restrito
TE073 - Processamento Digital de Sinais II
8
Introdução De aorcdo com uma pesqiusa de uma uinrvesriddae ignlsea,
não ipomtra em qaul odrem as lrteas de uma plravaa etãso, a úncia csioa iprotmatne é que a piremria e útmlia lrteas etejasm no lgaur crteo.
Capacidade de processar informação incompleta ou com ruído
TE073 - Processamento Digital de Sinais II
9
Qual é o diferente?
Introdução
Capacidade de associar, extrapolar, inferir
TE073 - Processamento Digital de Sinais II
10
Introdução
Preste atenção!
Capacidade de resolver problemas de forma aproximada mas eficiente
TE073 - Processamento Digital de Sinais II
11
Introdução
“Uma área de pesquisa que investigaformas de habilitar o computador arealizar tarefas nas quais, até omomento, o ser humano tem ummelhor desempenho”. Elaine Rich
Inteligência Artificial:
TE073 - Processamento Digital de Sinais II
12
Introdução
Redes Neurais
LógicaFuzzy
ComputaçãoEvolucionária
AgentesInteligentes
LinguagemNatural
RobóticaRaciocínio
Baseadoem Casos
RaciocínioBaseado
em Regras
Outros
Inteligência Artificial - Sub áreas
TE073 - Processamento Digital de Sinais II
13
Introdução
Redes Neurais Artificiais (RNA ou ANN)Sinônimos: Modelos Conexionistas, Computação Neural -Início: Tentativa de simular o comportamento
das redes neurais naturais.
Sistemas computacionais formados por elementos processadores simples (Neurônios)
altamente interconectados (Sinapses).
Novo modelo computacional ≠ do tradicional
Eficiente onde os modelos atuais são inadequados
TE073 - Processamento Digital de Sinais II
14
Introdução
Semelhante ao cérebro:
O conhecimento é adquirido pela rede através do processo de aprendizado
As conexões entre os neurônios (sinapses) são usadas para armazenar o conhecimento
TE073 - Processamento Digital de Sinais II
15
Introdução
Características das RNAs Capacidade de aprender através de exemplos Adaptabilidade Capacidade de organização Capacidade de generalização Tolerância a falhas Robustez ao ruído
Dada uma estrutura e um algoritmo de treino adequados, RNAs podem resolver qualquer problema.
TE073 - Processamento Digital de Sinais II
16
1943: Warren S. McCulloch (1898-1968 ) e Walter H. Pitts (1923-1960)
Primeiro modelo para um neurônio Não se preocuparam com o aprendizado
Histórico: Anos 40 – O começo
1949: Donald Hebb (1904-1985)
Primeiro modelo estudado para o
aprendizado de um neurônio biológico
Aprendizado por reforço
TE073 - Processamento Digital de Sinais II
17
Histórico: Anos 50-60 - Euforia
1956: Von Neumann (1903-1957)
ENIAC(1946) Interesse em modelagem do cérebro
1957-1962: Frank Rosenblatt Implementa primeira rede perceptron Aprendizado supervisionado
1960: Bernard Widrow (Stanford) e Marcian Hoff (1937~)
Regra Delta ou LMS: Adaptação dos pesos Redes com saídas lineares: ADALINE e MADALINE
TE073 - Processamento Digital de Sinais II
18
Histórico: Ano 1969 - Desilusão
1969: Marvin Minsky (1927~ MIT) e Seymour Papert (1928~ MIT)
Publicam livro: Perceptrons Analisam o Perceptron e mostram
suas limitações- Problemas linearmente separáveis
Não poderiam aprender a resolver problemas simples como o OU-exclusivo
Causou grande repercussão
TE073 - Processamento Digital de Sinais II
19
Histórico: Anos 70 - Hibernação
1971: Igor Aleksander(Imperial College) propõe redes Booleanas
1972: Teuvo Kohonen (~ Helsinki) RNA associativas
1975: Stephen Grossberg Teoria da Ressonância Adaptiva (ART)
TE073 - Processamento Digital de Sinais II
20
Histórico: Anos 80 - Renascimento
1982: John J. Hopfield (1933~ Princeton) Redes neurais como sistemas
dinâmicos
1983: Kunihiko Fukushima (電気通信大学 )
Neocognitron
1984: T. Kohonen SOM (Self-Organization Maps)
TE073 - Processamento Digital de Sinais II
21
Histórico: Anos 80 - Renascimento
1986: Geofrey Hinton, David Rumelhart e Ronald Willliams Apresentam o Algoritmo de Backpropagation
1974: Paul J. Werbos (National Science Foundation )
backpropagation through time
Resolve o problema do treinamento de redes multi-camadas.
TE073 - Processamento Digital de Sinais II
22
Histórico: Anos 90 - Consolidação
Muita (muita mesmo!) pesquisa sobre redes neurais.
Novas aplicações surgem a cada minuto
2000: Marcus V. Lamar (1970~ UFPR)
T-CombNET
1992: Akira Iwata (1954~ NITECH)
CombNET-II
TE073 - Processamento Digital de Sinais II
23
Modelos - Neurônio
Neurônio Artificial
entrada1
entrada2
entrada3
entradam
Saída
Neurônio
Representação:
TE073 - Processamento Digital de Sinais II
24
Modelos - Neurônio
Modelo matemático: PERCEPTRON
(·)
x1
x2
xm
bk
.
.
wk1
wk2
wkm
.
.
Bias
Sinaisde
Entradauk
PesosSinápticos
Função deAtivação
yk
Saída
1
m
k k ki i ki
y b w x W X
Pode ser pensado como entrada 1 e wk0=bk
TE073 - Processamento Digital de Sinais II
25
Modelos - Neurônio
Funções de Ativação
-5 0 5
0
0.2
0.4
0.6
0.8
1
x
(x)=1/(1+exp(-x))
Sigmoidal -5 0 5
-1
-0.5
0
0.5
1
x
(x)=sign(x)
Sinal
-5 0 5
-1
-0.5
0
0.5
1
x
(x)=tanh(x)
Tangente Hiperbólica -5 0 5
0
0.2
0.4
0.6
0.8
1
x
(x)=u(x)
Heaviside
Limitar a saídado neurônio[0,1] ou [-1,1]
Obs.:Função de Saída
TE073 - Processamento Digital de Sinais II
26
Modelos – Neurônio
Outros Modelos:
x1
x2
xm
.
.
wk1
wk2
wkm
.
.
Entrada
PesosSinápticos
( ) yk
Saída
1( )
1kk
y XX W
Usado em LVQ 2
2
( )
X Wk
k
ky X e
Usado em RBFN
Vários outros:Fukushima, Grossberg, GNM
TE073 - Processamento Digital de Sinais II
27
Modelos – Neurônios
MLP: Aproximadores globais
RBFN: Aproximadores Locais
Consequências: MLP x RBFN
TE073 - Processamento Digital de Sinais II
28
Modelos - Redes
Classificação Camadas:
Camada Simples Ex.: ADALINE, Perceptron, SOM, LVQ, Hopfield
y1
y2
yk
Entradas Saídasx1
x2
xn
... ...y3
y
EntradasSaídax1
x2
xn
...ADALINE
PerceptronFiltro Digital
TE073 - Processamento Digital de Sinais II
29
Modelos - Redes
Multi-Camadas Ex.:MLP, RBFN, TDNN
y1
y2
yk
Camada deEntrada
CamadaEscondida
Camada deSaída
x1
x2
xn
z1
z2
zp
z3
... ......
TE073 - Processamento Digital de Sinais II
30
Modelos - Redes
Mistura de Experts Ex.: Committee Machines, CombNET-II, T-CombNET
XEspaço: S
SMSB
...
Saída
Entrada Rede Tronco
RedesGalhos
...
Max
XEspaço: S
Decisão Final
CombNET-II
TE073 - Processamento Digital de Sinais II
31
Modelos - Redes
Topologia: Feed-Foward
Ex.: MLP, Perceptron,TDNN
y1
y2
yk
x1
x2
xn
z1
z2
zp
z3... ......Fluxo do sinal
Multi-Layer Perceptron
TE073 - Processamento Digital de Sinais II
32
Modelos - Redes
Camada de Saída
Camada Escondida 2
Camada Escondida 1
Camada de Entrada
x1(t)x2(t)
xm(t)
t-T-1 t-T t-1 tTempo
Janela
. . .
...
y1 y2 yk
Time Delay Neural Network
TE073 - Processamento Digital de Sinais II
33
Modelos - Redes
Recorrentes / Parcialmente Recorrentes Ex.: Elman, Jordan, Hopfield
Camadade entrada
CamadaEscondida
Camada de Saída Camada de
Contexto
...
...
...
...
y1 y2yk
x1(t) x2(t) xn(t)
z-1 z-1 z-1
Camadade Entrada
CamadaEscondida
Camadade saída
Camadade Estado...
...
...
...
y1 y2 yk
x1(t) x2(t) xn(t)
Elman Jordan
TE073 - Processamento Digital de Sinais II
34
Modelos - Redes
...
...y1 y2 yk
x1(t) x2(t) xn(t)
Hopfield
Estável???
Minimiza função energia de Liapunov
TE073 - Processamento Digital de Sinais II
35
Modelos - RedesX0’(t)Espaço: S0’
X1(t)Espaço: S1
X0(t)Espaço: S0
X(t)Espaço: S
Entrada NormalizaçãoTemporal
Buffer
SMSB
...
Saída
Rede Tronco
RedesGalhosRecorrentes
...
Decisão FinalMax
T-CombNET
TE073 - Processamento Digital de Sinais II
36
Aprendizado
Aprendizado porcorreção de erro
Aprendizadocompetitivo
AprendizadoHebbiano
Aprendizado deBoltzmann
Algoritmos de Aprendizado
Aprendizadosupervisionado
Aprendizadonão supervisionado
Paradigmas de Aprendizado
Processos de Aprendizado
Aprendizado por reforço
TE073 - Processamento Digital de Sinais II
37
Processo de Aprendizagem
Tarefas Associação de Padrões
Memória Associativa Autoassociação Ex.:Hoppfield
storage phaserecall phase
Heteroassociação
Capacidade de Armazenamento
TE073 - Processamento Digital de Sinais II
38
Processo de Aprendizagem
Reconhecimento de Padrões Classificação em classes Extração/Seleção de Características
Espaço de Observaçãom-Dimensional
Espaço de Característicasq-Dimensional
Espaço de Decisãor-Dimensional (n. classes)
Obs.: m>q : Classical Methods
m<q : Support Vector Machine
TE073 - Processamento Digital de Sinais II
39
Processo de Aprendizagem
Aproximação de Funções Aproximador Universal
Teorema de Kolmogorov
Identificação de Sistemas
Sistema inverso
( ) ( )F x f x
-10 -5 0 5 10
-1
0
1
2
3
x
f(x)
Amostras de f(x)
SistemaDesconhecido
+
RedeNeural
( )nx
( )d n
( )y n
( ) ( ) ( )e n d n y n
-
f()
+
RedeNeural
( )nx( )d n ( )y n -
TE073 - Processamento Digital de Sinais II
40
Processo de Aprendizagem
Controle
Filtragem Filtragem (ex. extração de bordas – Hoppfield) Predição (Séries Temporais) Blind Signal Separation
ControladorNeural
Planta+Sinal de Referência
Sinal de erro
Entrada daPlanta
Saída daPlanta
-
Rede
Neural+
-
( )x n
ˆ( )x n( )x n T
( 2 )x n T
( )x n mT...
TE073 - Processamento Digital de Sinais II
41
Neurônio McCulloch-Pitts
Modelo matemático:
bk
Bias
1
mT
k k ki i ki
y b w x
x w
Pode ser pensado como entrada x0=1 e wk0=bk
(·)
x1
x2
xm
.
.
wk1
wk2
wkm
.
.
Vetorde
Entradauk
PesosSinápticos
Função deAtivação
yk
Saída
potencialinterno
TE073 - Processamento Digital de Sinais II
42
Perceptron: Separabilidade Linear
sx
y
0.5
0.5
-0.2
1
sx
y
0.5
0.5
-0.9
1
(0.5 0.5 0.2)s u x y (0.5 0.5 0.9)s u x y
x
y
1
1Porta OR
x
y
1
1Porta AND
TE073 - Processamento Digital de Sinais II
43
Passo 0: Inicializar pesos e Bias em zero
Passo 1: Para cada par s:t Passo 2: setar as entradas
Passo 3: setar a saída
Passo 4: Ajustar os pesos
Ajustar o bias
Regra de Hebb – aprendizado por reforço
Algoritmo de Treino – 1 neurônio
y
x1
x2
xn
...i ix s
y t
( ) ( )i i iw new w old x y
0 0iw b
( ) ( )b new b old y
Obs: Se [0,1] [0,1]
[ 1,1] [ 1,1]i
i
x t
x t
Regra de aprendizado maissimples e menos poderosa
TE073 - Processamento Digital de Sinais II
44
Passo 0: Inicializar pesos e Bias (zero)Setar learning rate
Passo 1: enquanto a condição de parada for verdadeiraPasso 2: Para cada par s:t
Passo 3: setar as entradas
Passo 4: Calcular a saída
Passo 5:Atualizar os pesos e bias se ocorrer erro
Passo 6: Teste de parada: houveram alteração nos pesos no passo 2?
Perceptron
Algoritmo de Treino - 1 neurônio
y
x1
x2
xn
...
0 1
i ix s
i ii
y b x w
( ) ( )
( ) ( )
( ) ( )
( ) ( )
i i i
i i
if y t
w new w old tx
b new b old t
else
w new w old
b new b old
TE073 - Processamento Digital de Sinais II
45
Perceptron
Observações: Os pesos serão atualizados se:
Acontecer erro de classificação Target não for zero
para target binários [0,1] : usar [-1,1]
P/ Função de Ativação:Threshold indica uma faixa deincerteza na classificação
Teorema da convergência do PerceptronSe existirem os pesos (linearmente separável) que resolvem o problema (sem erro no conjunto de treino), os pesos serão encontrados pelo algoritmo em um número finito de iterações.
1
-1
-
uk
y
TE073 - Processamento Digital de Sinais II
46
A Rede Perceptron de Rosemblat
Desenvolvido por Rosemblat, 1958 Rede mais simples para classificação de
padrões linearmente separáveis Utiliza modelo de McCulloch-Pitts de neurônio.
y1
y2
ym
x1
x2
xn
... ...y3
1
-1
-
uk
yk=(uk)Função de Ativação
com =0 ou não
TE073 - Processamento Digital de Sinais II
47
Passo 0: Inicializar pesos e Bias (zero ou pequenos)Setar learning rate
Passo 1: enquanto a condição de parada for verdadeiraPasso 2: Para cada par s:t
Passo 3: setar as entradas
Passo 4: Calcular as saídas
Passo 5:Atualizar os pesos e bias
Passo 6: Teste de parada: houve alteração nos pesos no passo 2?
A Rede Perceptron de Rosemblat
Algoritmo de Treino – m saídas
0 1
i ix s
j j i iji
y b x w
( ) ( )
( ) ( )
j j
ij ij j i
j j j
if y t
w new w old t x
b new b old t
else
não ajustar
y1
y2
ym
x1
x2
xn
... ...y3
1... 1...j m i n
1,...,j m
TE073 - Processamento Digital de Sinais II
48
Adaline – Adaptive Linear Neuron
Filtragem Adaptativa – Identificação de Sistemas
SistemaDesconhecido
+
RedeNeural
Sistemas SISO/MISO/MIMO (Single/Multiple Input Single/Multiple Output)
( )nx
( )d n
( )y n
( ) ( ) ( )e n d n y n
-
0
( ) ( ) ( ). ( )
( ) ( ) ( )
N
i ii
T
y n u n w n x n
y n n n
x w
Função de Ativação Lineari=0 : bias
Minimizar uma Função Custo (diferenciável): *( ) ( ) w w
Técnicas de Otimização: Gradiente descendente, Newton, Gauss-Newton, Wiener,LLS, LMS,etc.
TE073 - Processamento Digital de Sinais II
49
Adaline – Adaptive Linear Neuron
LMS (Least Mean Square) 21( ) ( )
2e n w
( ) ( ) ( ) ( )Te n d n n n x wComo:
Logo:
Assim: ( ) ( )( ).
e ne n
w
w w
( )( )
e nn
x
we
( )( ). ( )n e n
w
xw
Direção do Gradiente Descendente da função erro quadrático
( )ˆ ˆ ˆ( 1) ( ) ( ) . ( ). ( )n n n n e n
w
w w w xw
Learning Rate/Taxa de Aprendizado
Função Custo:
TE073 - Processamento Digital de Sinais II
50
Adaline – Adaptive Linear Neuron
Método baseado emGradiente Descendente
Busca ponto de Mínimo (Local ou Global)
TE073 - Processamento Digital de Sinais II
51
Adaline – Adaptive Linear Neuron
Treinamento: Regra Delta ou LMS
yx1
xi
w1
wi
+
X
d-
...
wi
. .i iw x d y
( 1) ( )i i iw n w n w
TE073 - Processamento Digital de Sinais II
52
Adaline – Adaptive Linear Neuron
TreinamentoPasso 0: Inicializar pesos e Bias (randomicos pequenos)
Setar learning rate (valor pequemo)Passo 1: enquanto a condição de parada for verdadeira
Passo 2: Para cada par s:d bipolarPasso 3: setar as entradas
Passo 4: Calcular a saída
Passo 5:Atualizar os pesos e bias
Passo 6: Teste de parada: A maior alteração nos pesos > tolerância?
y
x1
x2
xn
...0 1
i ix s
i ii
y b x w
( ) ( ) ( )
( ) ( ) ( )i i iw new w old d y x
b new b old d y
TE073 - Processamento Digital de Sinais II
53
Adaline – Adaptive Linear Neuron
Observações muito pequeno: Baixa velocidade de Convergência muito grande: Pode não convergir
Hencht-Nielsen (1990) demonstraram que o limite superior de
Widrow desenvolveu treinamento para MADALINE (MRII)
Estamos usando Função de Ativação Linear
2
Maior Autovalor da matriz decorrelação R
1
1( ). ( )
PT
p
R p pP
x x
É usual usar pequeno 0.1
TE073 - Processamento Digital de Sinais II
54
A Rede Perceptron Utiliza modelo de McCulloch-Pitts de neurônio Função de Ativação Não-Linear, porém
Continuamente Diferenciável
y1
y2
ym
x1
x2
xn
... ...y3
Para um neurônio qualquer j temos:
TE073 - Processamento Digital de Sinais II
55
A Rede Perceptron
21( ) ( )
2j j je n w
Para esta rede temos: j jy u onde:1
nT
j ji i j ji
u w x b
x w
pode ser incorporado a w, i=0
Nosso objetivo é minimizar a Energia Instantânea do Erro: 2 21 1
2 2j j j jd y e
Assim: ( ) ( )( ).j j j
jj j
e ne n
w
w w ( ) ( ) ( )j j je n d n u n
( ) ( ) ( )( )j j j
jj j j
e n e n u nu n
u
x
w w
( )( ). ( ) .j j
j jj
e n u n
wx
w
Como:
Temos:
Logo:
TE073 - Processamento Digital de Sinais II
56
A Rede Perceptron
Direção do Gradiente Descendente da função erro quadrático
( )ˆ ˆ ˆ( 1) ( ) ( ) . ( ). ( ) .j j
j jj
n n n e n u n
ww w w x
w
Definindo o Erro Local (Gradiente Local)
( )( ) ( ). ( ) j j
j j jj
n e n u nu
w
Podemos escrever:
ˆ ˆ( 1) ( ) . ( ).jn n n w w x
w
TE073 - Processamento Digital de Sinais II
57
A Rede Perceptron
.
2.
.( ) . ( ) 1 ( ) . 1
1
j
j
a u
j j j j ja u
a eu a u u a y y
e
-4 -2 0 2 4
0
0.2
0.4
0.6
0.8
1
x
(x)=1/(1+e-x)
'(x)
Função Sigmoidal e sua Derivada Observações: Função de Ativação
Se Função Sigmóide.
1( )
1 jj a uue
Se Função Tanh
2. .
2. .
1( ) tanh( )
1
j
j
a u
j j a u
eu u
e
2( ) . 1j ju a y
-3 -2 -1 0 1 2 3
-1
-0.5
0
0.5
1
x
Função Tangente Hiperbólica e sua Derivada(x)=tanh(x)
'(x)
TE073 - Processamento Digital de Sinais II
58
A Rede Perceptron
Deste modo podemos simplificar para
ˆ ˆ( 1) ( ) . ( ). 1 .j j jn n e n y y w w x
Função de Ativação Sigmoidal
2ˆ ˆ( 1) ( ) . ( ) 1 .j jn n e n y w w x
Função de Ativação Tanh
w
w
TE073 - Processamento Digital de Sinais II
59
Passo 0: Inicializar pesos e Bias (randomicos pequenos)Setar learning rate
Passo 1: enquanto a condição de parada for verdadeiraPasso 2: Para cada par s:d
Passo 3: setar as entradas
Passo 4: Calcular a saída
Passo 5:Ajustar os pesos e bias
Passo 6: Teste de parada
A Rede Perceptron
Algoritmo de Treino – m saídas
0 1
i ix s
j j i iji
y b x w
( ) ( ) ( ) (1 )
( ) ( ) ( ) (1 )
ij ij j j j j i
j j j j j j
w new w old d y y y x
b new b old d y y y
y1
y2
ym
x1
x2
xn
... ...y3
1... 1...j m i n
TE073 - Processamento Digital de Sinais II
60
A Rede Multi-Layer Perceptron (MLP)
Rede mais utilizada atualmente Utiliza modelo de McCulloch-Pitts de neurônio,
Função de Ativação Não-Linear
Problema: Não se conhece o erro das camadas intermediárias, para ajuste dos pesos.
Solução: Error BackPropagation (Regra Delta Generalizada)
o1[3]=y1
o2[3]=y2
on3[3]=yn3
x1
x2
xn0
o1[2]
on2[2]
... ......
o1[1]
on1[1]
...
TE073 - Processamento Digital de Sinais II
61
A Rede Multi-Layer Perceptron (MLP)
Procedimento análogo ao anterior.
De onde pode-se escrever para a camada de saída:
Ainda podemos escrever para a segunda camada escondida:
[3] [3][3] [3]
( ) ( ) ( )( ) ( ).
( ) ( )j j j
j j jj j j
e nn e n u
u n e n u
w w
[3][3] [3] [3] [3] [2]
[3] [3] [3]
( ) ( ). .j j j
ji j i j ij j j
uw x o
u
w w
w w
[2][2] [2] [2] [2] [1]
[2] [2] [2]
( ) ( ). .j j j
ji j i j ij j j
uw x o
u
w w
w w
TE073 - Processamento Digital de Sinais II
62
A Rede Multi-Layer Perceptron (MLP)
Ainda podemos escrever para a segunda camada escondida: (cont)[2]
[2] [2] [2] [2] [1][2] [2] [2]
( ) ( ). .j j j
ji j i j ij j j
uw x o
u
w w
w w
Como calcular o Gradiente Local (Erro local) para esta camada?
Podemos escrever usando a regra da cadeia:[2]
[2][2] [2] [2]
( ) ( )j j jj
j j j
o
u o u
w w
Sabendo que: [2] [2]j jo u
Temos: [2] [2][2]
( )jj j
j
uo
w
TE073 - Processamento Digital de Sinais II
63
A Rede Multi-Layer Perceptron (MLP)
Temos: (cont) [2] [2][2]
( )jj j
j
uo
w
Podemos estimar a derivada na eq. anterior, como:
3 3 3[3][3] [3]
[2] [3] [2] [3] [2]1 1 1
( ) ( ) ( )n n nj j ji
ik ki i kj i j i j
uw x
o u o u o
w w w
3 3 3[3] [3] [2] [3] [3]
[2] [2]1 1 1
( ) n n nj
i ik k i iji k ij j
w o wo o
w
TE073 - Processamento Digital de Sinais II
64
A Rede Multi-Layer Perceptron (MLP)
Então o Gradiente Local da segunda camada por ser avaliado por:
3
[2] [2] [3] [3]
1
n
j j i iji
u w
Analogamente, podemos escrever para a primeira camada:
[1] [1] [1] [1] [0] [1]. . .ji j i j i j iw x o x
onde: 2
[1] [1] [2] [2]
1
n
j j i iji
u w
Logo:[2] [2] [2] [2] [1]. .ji j i j iw x o
TE073 - Processamento Digital de Sinais II
65
A Rede Multi-Layer Perceptron (MLP)
TE073 - Processamento Digital de Sinais II
66
Passo 0: Inicializar pesos e Bias (randomicos pequenos)Setar learning rate
Passo 1: enquanto a condição de parada for falsaPasso 2: Para cada par s:d
FeedForwardPasso 3: setar as entradas
Passo 4: Calcular as saídas de todos os neurônios
BackPropagation
A Rede Multi-Layer Perceptron (MLP)
BackPropagation (1 camada escondida)
0 1
k kx s
1
[1] [1] [1] [1] [1]2
1
1,...,n
j j i ij j ji
u b x w o u j n
2
[2] [2] [1] [2] [2] [2]3
1
1,...,n
j j i ij j j ji
u b o w y o u j n
TE073 - Processamento Digital de Sinais II
67
BackPropagationPasso 5: Calcular os Gradientes Locais da camada de
saída
Calcular o fator de correção
Passo 6: Calcular os Gradientes Locais da camada escondida
Calcular o fator de correçãoPasso7: Atualizar os pesos
Passo 8: Condição de Parada
A Rede Multi-Layer Perceptron (MLP)
BackPropagation (1 camada escondida) (cont)
[2] [2]( ).j j j jd y u [2] [2] [1].ji j iw o
[1] [1].ji j iw x
2
[1] [1] [2] [2]
1
n
j j i iji
u w
[2] [2] [2]( ) ( )ji ji jiw new w old w [1] [1] [1]( ) ( )ji ji jiw new w old w
TE073 - Processamento Digital de Sinais II
68
A Rede Multi-Layer Perceptron (MLP)
Variações do Backpropagation Backpropagation com Momentum
Treinamento em Lote (Batch):Os pesos são atualizados após a apresentação de todos os vetores de treino à rede
Taxa de aprendizado adaptativa
[ ] [ ] [ 1] [ ]( ) . ( 1)s s s sji j i jiw k o w k
Melhora a velocidade de convergência
TE073 - Processamento Digital de Sinais II
69
A Rede Multi-Layer Perceptron (MLP)
Considerações Práticas: Inicialização Randômica dos pesos
determina se a rede converge para um mínimo local ou global. Geralmente Ex.: inicialização de Nguyen-Widrow
Critério de Parada Número de épocas > Ne Erro médio quadrático do Treino < Th Taxa de decrescimento do EMQ <Th (problema: Platô) Mínimo EMQ dos dados de validação (early stopping)
Quantos pares(P) s:d do banco de treino? Baum-Haussler: W/P=e onde 1-(e/2) % vetores corretamente
classificados no treino e 1-e % de teste W o número de pesos da rede
[ 0.5,0.5]ijw
EMQ
T
Validação
Treino
TE073 - Processamento Digital de Sinais II
70
A Rede Multi-Layer Perceptron (MLP)
Considerações Práticas: Quantas camadas Escondidas?
Demonstra-se que 1 camada escondida é suficiente para resolver qualquer problema
Porém o treinamento pode ser facilitado com 2 camadas em problemas muito complexos
Dificilmente usa-se 3 ou mais camadas escondidas Quantos neurônios na camada escondida?
Critério de Baum-Haussler baseado no N. vetores de treino
Se conjunto de treino pequeno e rede grande: Alta probabilidade da rede se especializar muito rapidamente
Se conjunto de treino grande e rede pequena: Pode acontecer da rede não ser capaz de modelar a complexidade do problema
Método de tentativa e erro Média Geométrica:
H I ON N N
TE073 - Processamento Digital de Sinais II
71
A Rede Multi-Layer Perceptron (MLP)
Capacidade de classificação
x
y
Classe 1
Classe 2
Learning Vector Quantization
Self-Organizing Maps
TE073 - Processamento Digital de Sinais II
73
LVQ
Quantização Vetorial “Aprendida” (LVQ) Treinamento supervisionado Neurônio com função de ativação baseado em
distância (L-0,L-1,L-2,L-, Mahalanobis, etc) 1 única camada Winner-takes-all : “Vencedor leva tudo”
Idéia: K-NN -> Alta complexidade computacionalModelar a superfície de decisão por poucos vetores
TE073 - Processamento Digital de Sinais II
74
LVQ
xk
mki
yi
i iy x m
Classe dada pelo neurônio vencedor
arg min iic x m
mc é o neuronio c mais próximo do vetor x vencedor
Problema: Qual o conjunto de vetores mi que minimizam os erros de classificação
TE073 - Processamento Digital de Sinais II
75
LVQ
Diversos algoritmos de treinamento: LVQ1 Seja x(t) a sequência de vetores de entrada emi(t) a sequencia dos vetores de pesosKohonen provou em 1990 que o algoritmo converge para
os valores assintoticamente ótimos de mi:
( 1) ( )i im t m t para i c
( 1) ( ) ( ) ( ) ( )c c cm t m t t x t m t
( 1) ( ) ( ) ( ) ( )c c cm t m t t x t m t
Se x e mc pertencem a mesma classe
Se x pertencer a classe diferente de mc
TE073 - Processamento Digital de Sinais II
76
LVQ
LVQ2.1 Igual ao LVQ1 porém se escolhe:
vetor mj mais próximo de x que pertence a mesma classe
E Vetor mi mais próximo de x que não pertence a
mesma classe x deve pertencer à “Janela” definida por:1
min ,1
ji
j i
dd ws onde s
d d w
[0.2,0.3]w
( 1) ( ) ( ) ( ) ( )i i im t m t t x t m t
( 1) ( ) ( ) ( ) ( )j j jm t m t t x t m t
TE073 - Processamento Digital de Sinais II
77
LVQ
Outras variações LVQ3
Escolhe-se os 2 vectores mais próximos a x OLVQ1
Taxa de aprendizagem depende de mi
s(t)=1 mesma classe s(t)=-1 classes diferentes Convergência mais rápida
( 1)( )
1 ( ) ( 1)c
cc
tt
s t t
TE073 - Processamento Digital de Sinais II
78
LVQ Superfície de decisão segmentalmente
linear (distância Euclidiana)
TE073 - Processamento Digital de Sinais II
79
Competitive Learning
Divide o espaço de entrada em N agrupamentos com base em alguma métrica de distância entre os elementos
Os vetores de entrada são classificados em N classes não previamente definidas
Ver Ex. No MATLAB
TE073 - Processamento Digital de Sinais II
80
LVQ
CombNET-II: Self-Growing Algorithm Não precisa a priori definir o número de
neurônios Potencial interno de divisão (número
máximo de classes/vetores) Maior distância entre os vetores x e o vetor
mi
Pré-divisão do espaço de entrada Problema grande -> vários problemas
menores
TE073 - Processamento Digital de Sinais II
81
XEspaço: S
SMSB
...
Sinal Classificado
Vetor Entrada Rede Tronco
Redes
Galhos
...
Max
XEspaço: S
-Rede Tronco: LVQ - Self Growing Algorithm-Redes Galhos: 3-Layer MLP - BackPropagation
Procedimento
De Decisão Final
Projetada para lidar com problemas com grande número de classes
CombNET-II
TE073 - Processamento Digital de Sinais II
82
Self-Organizing Maps - SOM
Mapeamento: Visualização da relação de proximidade
existente em dados de alta dimensionalidade com base em alguma estrutura 2-D
2n
Redes Neurais Temporais
TE073 - Processamento Digital de Sinais II
84
Redes Neurais Temporais
Processamento de sinais variantes no tempo
Unidimensional: Série Temporal
Exemplos: http://www-personal.buseco.monash.edu.au/~hyndman/TSDL/
Multidimensional: Conjunto de N Séries Temporais Vetor de dimensão N variante no tempo
( ) {1,2,3,2,1,0, 1,1,2,3,4,2,1,...}x t
TE073 - Processamento Digital de Sinais II
85
Séries Temporais
Exemplos:
Total Electricity Consumption, U.S., 1920-70, Kilowatt-hours (millions)
0
500000
1000000
1500000
2000000
1920 1930 1940 1950 1960 1970
Série bem comportada e facilmente modelável, previsível.
TE073 - Processamento Digital de Sinais II
86
Séries Temporais
Monthly temperature (celcius), 01/83 - 04/94
-15-10
-505
10152025
Sazonalidade: Anual, Semestral, Trimestral, Mensal, Semanal, Diária, Horária
TE073 - Processamento Digital de Sinais II
87
Séries Temporais
International airline passengers: monthly totals in thousands. Jan 49 - Dec 60
0100200300400500600700
jan/
49
jan/
50
jan/
51
jan/
52
jan/
53
jan/
54
jan/
55
jan/
56
jan/
57
jan/
58
jan/
59
jan/
60
Cíclica tendenciosaDecomposição em Cíclica + Tendencia: modelo ARIMA
TE073 - Processamento Digital de Sinais II
88
Séries Temporais
Monthly precipitation (in mm), Jan 1983 - April 1994. Source: Hipel and Mcleod (1994).
0.00
50.00
100.00
150.00
200.00
250.00
jan-8
3
jul-83
jan-8
4
jul-84
jan-8
5
jul-85
jan-8
6
jul-86
jan-8
7
jul-87
jan-8
8
jul-88
jan-8
9
jul-89
jan-9
0
jul-90
jan-9
1
jul-91
jan-9
2
jul-92
jan-9
3
jul-93
jan-9
4
Série de difícil previsão
TE073 - Processamento Digital de Sinais II
89
Séries Temporais
Monthly closings of the Dow-Jones Industrial Index Aug 1968 - Aug 1981
0
200
400600
800
1000
1200
ag
o/6
8
ag
o/6
9
ag
o/7
0
ag
o/7
1
ag
o/7
2
ag
o/7
3
ag
o/7
4
ag
o/7
5
ag
o/7
6
ag
o/7
7
ag
o/7
8
ag
o/7
9
ag
o/8
0
ag
o/8
1
Área de grande interesse financeiro
TE073 - Processamento Digital de Sinais II
90
Séries Temporais
Objetivo: Dados os valores presente e passados de uma Série prever valores no futuro. Ex.: Previsão de demanda de Energia
Elétrica Curtíssimo Prazo: minutos Curto Prazo: 24 horas Médio Prazo: Meses Longo Prazo: Anos
TE073 - Processamento Digital de Sinais II
91
Sinais dependentes do tempo
Ex.: Voz : Sinal 1-D f(t) Sinal 2-D f(x,t)
Vídeo: Sinal 3-D f(x,y,t) Sinal 4-D f(x,y,z,t)
Vetores dependentes do tempo: 1-D v(x(t)) =v(t) 2-D v(x(t),y(t)) 3-D v(x(t),y(t),z(t)) N-D v(x1(t), x2(t), x3(t),..., xN(t))
TE073 - Processamento Digital de Sinais II
92
Redes Neurais Temporais
MLP com Janela Temporal
InputLayer
HiddenLayer
OutputLayer
...
...
y1 y2yk
...
x1(t) x2(t) xn(t) xn(t-T)
...
time window
...
x1(t-T) x2(t-T)
...
x1(t-1) x2(t-1) xn(t-1)
TE073 - Processamento Digital de Sinais II
93
Redes Neurais Temporais
TDNN : Time Delay Neural Network
Output Layer
Hidden Layer 2
Hidden Layer 1
Input Layer
x1(t)x2(t)
xm(t)
t-T-1 t-T t-1 ttime
window
. . .
...
y1 y2 yK
TE073 - Processamento Digital de Sinais II
94
時間
出力層
入力層
隠れ層1
隠れ層2
時系列を考慮した学習・識別モデル時系列を考慮した学習・識別モデル
TDNNTDNN
TE073 - Processamento Digital de Sinais II
95
時間
出力層
入力層
隠れ層1
隠れ層2
時系列を考慮した学習・識別モデル時系列を考慮した学習・識別モデル
TDNNTDNN
TE073 - Processamento Digital de Sinais II
96
時間
出力層
入力層
隠れ層1
隠れ層2
時系列を考慮した学習・識別モデル時系列を考慮した学習・識別モデル
TDNNTDNN
A B C D E F G H I J K L M A1
2
3
4
5
6
7
TE073 - Processamento Digital de Sinais II
97
時系列を考慮した学習・識別モデル時系列を考慮した学習・識別モデル
TDNNTDNN 時間
出力層
隠れ層2
隠れ層1
入力層時間窓
TE073 - Processamento Digital de Sinais II
98
時系列を考慮した学習・識別モデル時系列を考慮した学習・識別モデル
TDNNTDNN 時間
出力層
隠れ層2
隠れ層1
入力層時間窓
TE073 - Processamento Digital de Sinais II
99
時系列を考慮した学習・識別モデル時系列を考慮した学習・識別モデル
TDNNTDNN 時間
出力層
隠れ層2
隠れ層1
入力層時間窓
TE073 - Processamento Digital de Sinais II
100
時系列を考慮した学習・識別モデル時系列を考慮した学習・識別モデル
TDNNTDNN 時間
出力層
隠れ層2
隠れ層1
入力層
時間窓
TE073 - Processamento Digital de Sinais II
101
時系列を考慮した学習・識別モデル時系列を考慮した学習・識別モデル
TDNNTDNN 時間
出力層
隠れ層2
隠れ層1
入力層
時間窓
TE073 - Processamento Digital de Sinais II
102
時系列を考慮した学習・識別モデル時系列を考慮した学習・識別モデル
TDNNTDNN 時間
出力層
隠れ層2
隠れ層1
入力層
TE073 - Processamento Digital de Sinais II
103
時系列を考慮した学習・識別モデル時系列を考慮した学習・識別モデル
TDNNTDNN 時間
出力層
隠れ層2
隠れ層1
入力層
ネットワークが巨大なため
学習に時間がかかる
問題点
TE073 - Processamento Digital de Sinais II
104
Redes Neurais Temporais
Redes Localmente RecorrentesNeurônio recorrente
Gk1(z)
(·)
x1
x2
xm
bk
.
...
Bias
InputSignals uk
LocalSynapse
Feedback
Activationfunction
yk
OutputGk2(z)
Gkm(z)
Hlo(z)
LocalActivationFeedback
LocalOutput
Feedback
Hla(z)
TE073 - Processamento Digital de Sinais II
105
Redes Neurais Temporais
Redes Totalmente Recorrentes
InputLayer
HiddenLayer
OutputLayer
...
...
...
y1 y2yk
x1(t) x2(t) xn(t)
feedforwardlinks
cross-talklinks
recurrentlinks
Rede de Hopfield
TE073 - Processamento Digital de Sinais II
106
Redes Neurais Temporais
Redes Parcialmente Recorrentes
InputLayer
HiddenLayer
OutputLayer
StateLayer
...
...
...
...
y1 y2yk
x1(t) x2(t) xn(t)
Rede de Jordan
TE073 - Processamento Digital de Sinais II
107
Redes Neurais Temporais
Redes Parcialmente Recorrentes
InputLayer
HiddenLayer
OutputLayer
ContextLayer
...
...
...
...
y1 y2yk
x1(t) x2(t) xn(t)
z-1 z-1 z-1
Rede de Elman
Capaz de simular qualquer máquina de estados finita (Kremer 1995)
Facilmente treinável - Backpropagation
TE073 - Processamento Digital de Sinais II
108
Redes Neurais Temporais
T-CombNET (Lamar 2001)X0’(t)Space: S0’
X1(t)Space: S1
X0(t)Space: S0
X(t)Space: S
Input Vector
TimeNormalization
Buffer
SMSB
...
Classified signal
Stem Network
BranchRecurrentNetworks
...
Final decisionProcedureMax
TE073 - Processamento Digital de Sinais II
109
Outras Redes Neurais
Radial Basis Function Network (RBFN) Adaptive Resonant Theory (ART) Counterpropagation Boltzmann Machine Probabilistic Neural Nets Neocognitron Committee Machines Mixture of Experts Adaptive Neural Nets (pruning) Support Vector Machines ...
TE073 - Processamento Digital de Sinais II
110
Conclusões
Potencialidades Habilidade de tratar
sistemas complexos Representação de
conhecimento quantitativo
Processamento Paralelo Aprendizado Adaptabilidade Generalização
Limitações Perda de
generalização : Over-training
“Maldição” da dimensionalidade
Alta complexidade computacional do treino
Mínimos locais
TE073 - Processamento Digital de Sinais II
111
Aplicações Congresso Brasileiro de Redes Neurais
2003-Controle de sistemas de energia -Detecção de doenças cardíacas-Compressão de Imagem -Análise de EEG-Predição de distúrbios financeiros -Detecção de falhas em auto-fornos-Análise de dados sísmicos -Diagnóstico de câncer de cabeça-Controle industrial -Espaços Psicológicos-Farmacologia -Análise de risco de infarto do miocardio-Descarga em equipamentos de A.T. -Sistemas tutoriais-Análise de tráfego de redes Ethernet -Análise de QoS em áudio na internet-Classificação de proteínas -Previsão de vazão-Processo de hidrorrefino -Previsão de carga elétrica-Dinâmica caótica -Visão computacional-Predição de tuberculose pulmonar -Reconhecimento de peças-Classificação de textos -Reconhecimento de linfócitos-Classificação de tecidos arteriais -Tomografia-Projeto de quantizadores vetoriais -Predição da Percentagem de Carne na
Carcaça Suína -Controle de robos móveis -Análise de concessão de crédito-Risco de Leucemia Infantil -Implantação e avaliação de provedores de internet- Sistema Sonar - Estimação do tamanho de software-previsão de demanda de água -Reconhecimento de placas de veículos
TE073 - Processamento Digital de Sinais II
112
Bibliografia Recursos
Programas gratuitos SNNS http://www.informatik.uni-stuttgart.de/ipvr/bv/projekte/snns/snns.html Tlearn http://crl.ucsd.edu/innate/tlearn.html Neural Java http://diwww.epfl.ch/mantra/tutorial/english/ LVQ_PAK e SOM_PAK http://www.cis.hut.fi/research/software
Programas Comerciais EasyNN http://www.easynn.com/ aiNet V1.25 http://www.ainet-sp.si/NN/En/nn.htm Qnet 97 http://www.qnet97.com/ NevProp S http://www.scs.unr.edu/nevprop/ NeuronSolutions http://www.neurosolutions.com/ Cortex NN http://cortex.snowseed.com/ MatLab - Neural Network Toolbox http://www.mathworks.com/products/neuralnet/
Banco de Dados http://www.ics.uci.edu/~mlearn/MLSummary.html http://www.cs.utoronto.ca/~delve/data/summaryTable.html http://www-personal.buseco.monash.edu.au/~hyndman/TSDL/
NewsGroup: comp.ai.neural-nets Orkut: Neural Networks http://www.orkut.com/Community.aspx?cmm=23677
Redes Neurais: http://www.orkut.com/Community.aspx?cmm=31700
TE073 - Processamento Digital de Sinais II
113
Bibliografia
Livros Textos S. Haykin, Neural Networks – A Comprehensive
Foundation L. Fausett, Fundamentals of Neural Networks A. Cichocki e R. Unbehau, Neural Networks for
Optimization and Signal Processing P. D. Wasseman, Neural Computing – Theory and
Practice T. Masters, Practical Neural Network Recipes in
C++ M.V. Lamar, Hand Gesture Recognition using T-
CombNET – A Neural Network dedicated to Temporal Information Processing
TE073 - Processamento Digital de Sinais II
114
Bibliografia
Revistas IEEE Transactions on Neural Networks
Conferências ICANN – Int. Conf. on Artificial NN IJCNN – Int. Joint Conference on NN ICONIP – Int. Conf. on Neural Information
Processing CBRN – Congresso Brasileiro de Redes Neurais SBRN – Simpósio Brasileiro de Redes Neurais