HP UFCG Analytics Abril-Maio 2012 Um curso sobre Reconhecimento de Padrões e Redes Neurais Por Herman Martins Gomes hmg@dsc.ufcg.edu.br
Programa Visão Geral (2H) Reconhecimento Estatístico de Padrões (3H) Redes Neurais (15H) Introdução ao Reconhecimento de Padrões com foco em Redes Neurais
Programa Redes Neurais (15H) PCA visto no módulo anterior Processo de Aprendizagem Análise de Componentes Principais Perceptrons de Simples e Múltiplas Camadas Mapas Auto Organizáveis Redes Neurais Recorrentes Previsão e Análise de Séries Temporais
Redes Neurais Recorrentes Classe de redes neurais em que há ciclos dirigidos (ou caminhos fechados) na arquitetura A realimentação de conexões permite a criação de estados internos Diferentemente de redes feedforward, redes recorrentes exibem comportamento temporal dinâmico as saídas variam com o tempo
Redes Neurais Recorrentes Alguns Modelos Históricos Rede de Hopfield: proposta por John Hopfield em 1982 Rede de Jordan: proposta por Michael I. Jordan em 1986 Rede de Elman: proposta por Jeffrey L. Elman em 1990
Única camada de neurônios totalmente e simetricamente interconectados a partir de operadores de atraso unitário, não havendo conexões de um neurônio para ele mesmo Memória autoassociativa sem camada escondida A aprendizagem realizada em um único passo Na fase de uso, a propagação de uma entrada requer múltiplos passos até que um estado estável seja atingido (saída da rede) w ij = w ji w ii = 0 Operadores de atraso de tempo unitário
Modos de operação Contínuo: função de ativação não linear diferenciável (e.g. sigmóide ou tangente hiperbólica) Discreto: neurônios de McCulloch-Pitts (função de ativação com limiar e saídas discretas) Neurodinâmica Exemplo da dinâmica de estados de saída para uma rede de Hopfieldcom 2 neurônios e 2 estados estáveis saída do neurônio 2 saída do neurônio 1
Rede operando em modo discreto (neurônio de McCulloch- Pitts) net = soma ponderada de pesos por entradas Todas as entradas e saídas são bipolares (-1,1)
Pode ser vista como uma memória endereçável por conteúdo Objetivo: recuperar padrões armazenados em memória em resposta à apresentação de uma versão imcompleta ou ruidosa daquele padrão Os estados estáveis da rede correspondem aos padrões a serem armazenados Pode ser vista como um corretor de erros na medida em que pode sobrescrever informação inconsistente à luz das evidências apresentadas à rede
A essência de uma memória endereçável por conteúdo é mapear uma memória fundamental em um ponto fixo estável (estado protótipo) de um sistema dinâmico codificação espaço de memórias fundamentais decodificação espaço de vetores armazenados
Considere que a rede recebe como entrada um padrão contendo informação parcial, porém suficiente, sobre uma das memórias fundamentais Tal padrão é considerado um estado inicial no espaço de estados A dinâmica de operação da rede, mediada pelas conexões recorrentes, fará com que haja uma transição de estados na direção da memória estável
Treinamento Como nos Perceptrons, o algoritmo de treinamento é derivado a partir da minimização de uma função de energia para um padrão particular Minimizar a função de energia de Lyapunov 1 E = w x x + xθ i, j i j i i 2 i j i Como resultado chega-se à regra de treinamento de uma rede de Hopfield operando em modo discreto (aprendizagem do tipo Hebbiana) i
Treinamento (fase de armazenamento) Seja ξ 1,ξ 2,...,ξ µ um conjunto N-dimensional de memórias fundamentais conhecidas (±1) Computar os pesos sinápticos como sendo:
Inicialização (da fase de recuperação) Seja ξ probe um vetor de entrada (teste) N-dimensional apresentado à rede. O algoritmo de uso é inicializado da seguinte forma:
Iteração (da fase de recuperação) até convergência (estabilidade) Atualizar os elementos do vetor de estado x(n) assincronamente (i.e. randomicamente e um por vez), conforme a regra: Repetir a iteração até que o vetor de estado x permaneça inalterado: x(n) = x(n-1)
Geração da saída (da fase de recuperação) O vetor de saída y resultante da rede de Hopfield é definido como: y = x fixo Em que x fixo denota o estado estável computado ao final da etapa anterior (iteração)
Capacidade definida pela teoria da informação como: Ν Μ 2log Ν em que M denota o número de padrões de treinamento (memórias estáveis) e N, o número de neurônios da rede Estados espúrios (mínimos locais de energia): quando M é muito grande, passam a existir estados espúrios (estados que não foram treinados, mas que podem atrair as entradas durante o processo de convergência) Demo: http://www.cbu.edu/~pong/ai/hopfield/hopfieldapplet.html
Redes Recorrentes Derivadas do MLP Incorporam em sua estrutura uma rede estática do tipo Perceptron de múltiplas camadas Exploram as capacidades de mapeamentos não lineares dos Perceptrons de múltiplas camadas Alguns exemplos: NARX Perceptrons Recorrentes por Camada Jordan Elman
Redes Recorrentes Derivadas do MLP NARX: Nonlinear autoregressive with exogenous inputs Valores passados e presentes da entrada que representam as entradas externas da rede: u n, u n-1,...,u n-q+2,u n-q+1 Valores de atraso da saída, representados por: y n, y n-1,...,y n- q+1 O comportamento dinâmico é denotado por uma função não linear: y n+1 = F(y n, y n-1,...,y n-q+1 ;u n, u n-1,...,u n-q+2,u n-q+1 )
Redes Recorrentes Derivadas do MLP NARX: Arquitetura entrada retroalimentação Perceptron de Múltiplas Camadas Saída
Redes Recorrentes Derivadas do MLP Redes Recorrentes Simples Elman: três camadas (entrada, escondida e de saída) mais uma camada de contexto realimentando a camada escondida Jordan: a camada de contexto realimenta apenas a camada de saída Unidades de Contexto Operadores de atraso de tempo unitário Vetor de Entrada Camada Escondida Camada de Saída Vetor de Saída Percentron de Múltiplas camadas com apenas uma camada escondida
Redes Recorrentes Derivadas do MLP Perceptron Multicamada Recorrente (Layer Recurrent Network): caso mais geral para redes de Jordan e Elman Unidades de Contexto Operadores de atraso de tempo unitário Vetor de Entrada 1ª Camada Escondida 2ª Camada Escondida Camada de Saída Vetor de Saída Percentron com múltiplas camadas escondidas Ver exemplos no Matlab http://www.kxcad.net/cae_matlab/toolbox/nnet/newlrn.html http://www.mathworks.com/help/toolbox/nnet/ug/bss36ea-1.html
? Dúvidas