Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disciplina: Redes Neurais Prof. Dr. Luís Gustavo M. Souza Teresina, junho/2019 Rede de Função de Base Radial (RBF) Objetivos Redes de Função de Base Radial Comparação com as redes MLP Descrição geral das redes RBF Etapas de treinamento das redes RBF Projeto da Camada Oculta Projeto da Camada de Saída Redes de Função de Base Radial A função é aproximada como uma combinação linear de Funções de Base Radial (Radial Basis Functions - RBF). As RBFs capturam o comportamento local das funções. Motivação Biológica: RBFs representam receptores locais: Comparação com as Redes MLP As redes RBF são utilizadas em tarefas complexas (não- lineares) de classificação de padrões. Comparação entre redes RBF e redes MLP: 1. Ambas são exemplos de redes non-linear layered feedforward; 2. Ambas são aproximadores universais de funções; 3. Quanto às camadas escondidas: Na rede RBF há uma única camada escondida; Na rede MLP pode haver diversas camadas escondidas. Comparação com as Redes MLP Modelos de Neurônios: o Os neurônios da camada escondida de uma RBF são diferentes. Eles têm um propósito diferente daquele dos neurônios da camada de saída; o Os neurônios típicos na camada escondida ou de saída em uma MLP comungam de modelo comum de neurônio. Linearidade: o A camada escondida de uma rede RBF é não-linear, a camada de saída da RBF é linear. o As camadas escondida e de saída em uma MLP são geralmente não-lineares. Comparação com as Redes MLP Funções de Ativação: o O argumento da função de ativação de cada neurônio da camada escondida de uma rede RBF é a distância Euclideana entre o vetor de entrada e o centro daquela unidade. o O argumento da função de ativação de cada unidade escondida em uma MLP é o produto interno do vetor de entrada e o vetor com os pesos sinápticos daquela unidade. Aproximações: o A rede RBF ao usar funções Gaussianas constrói aproximações locais para o mapeamento não-linear entrada-saída. o A rede MLP constrói aproximações globais para o mapeamento não-linear entrada-saída. Comparação com as Redes MLP Gráfico da Função de Ativação Gaussiana (unidimensional) Comparação com as Redes MLP Gráfico da Função de Ativação Gaussiana (bidimensional) Comparação com as Redes MLP Aproximação de Funções 1D Usando a rede RBF A rede RBF pode aproximar qualquer função contínua através da combinação linear de funções gaussianas com centros em diferentes posições do espaço de entrada. Comparação com as Redes MLP Aproximação de Funções 2D Usando a rede RBF Descrição Geral das Redes RBF Diferentemente da rede MLP que pode apresentar uma ou duas camadas de neurônios ocultos, a rede RBF, em sua concepção básica, apresenta apenas uma camada oculta além de uma camada de saída; Os neurônios da camada oculta, doravante chamados de funções de base radial, possuem função de ativação não-linear que é bem diferente das funções sigmoides que a rede MLP usa; Já os neurônios da camada de saída possuem, em geral, função de ativação linear. Descrição Geral das Redes RBF Figura: (a) Neurônios da camada escondida. (b) Neurônios da camada de saída. Descrição Geral das Redes RBF Para utilizar a rede RBF é preciso ter em mãos um número finito de N exemplos de treinamento dados na forma de pares de vetores (𝐱, 𝐝): 𝐱 1 , 𝐝(1) 𝐱 2 , 𝐝(2) ⋮ ⋮ 𝐱 𝑁 , 𝐝(𝑁) onde assume-se que estes vetores estão relacionados segundo uma lei matemática 𝐅(⋅), tal que: 𝐝 𝑡 = 𝐅 𝐱 𝒕 , onde 𝑡 = 1,… , 𝑁. Descrição Geral das Redes RBF É justamente o mapeamento 𝐅(∙) que se deseja conhecer. Uma maneira de se adquirir conhecimento sobre 𝐅(∙) é através dos dados disponíveis; Para isto pode-se utilizar a rede RBF (assim como a rede MLP) para gerar uma aproximação de 𝐅(∙), denotada por 𝐅(∙), tal que: 𝐨 𝑡 = 𝐅 𝐱(𝑡) onde 𝐨(𝑡) é a saída gerada pela rede que, espera-se, seja muito próxima da saída real 𝐝(𝑡). Descrição Geral das Redes RBF Cada vetor de entrada é representado como 𝐱 𝑡 = 𝑥1(𝑡) ⋮ 𝑥𝑝(𝑡) onde o tempo discreto 𝑡 = 1,2, … serve para indicar o instante de apresentação de um vetor de entrada qualquer à rede, enquanto o vetor de saída é escrito como 𝐝 𝑡 = 𝑑1(𝑡) ⋮ 𝑑𝑛(𝑡) representa o vetor de saídas desejadas associado ao vetor de entrada atual. Ainda, 𝑥𝑗 denota uma componente qualquer do vetor de entrada 𝐱 e 𝑑𝑘 denota uma componente qualquer do vetor de saídas desejadas 𝐝. Descrição Geral das Redes RBF O vetor de pesos de cada função de base, também chamado de centro da função de base, é representado como 𝐜𝑖 = 𝑐𝑖1 ⋮ 𝑐𝑖𝑗 ⋮ 𝑐𝑖𝑝 em que 𝑐𝑖𝑗 é o peso que conecta a 𝑗-ésima entrada à 𝑖-ésima função de base. De modo semelhante, o vetor de pesos associado ao 𝑘-ésimo neurônio da camada de saída é representado como 𝐦𝑘 = 𝑚𝑘0 ⋮ 𝑚𝑘𝑛 = 𝜃𝑘 ⋮ 𝑚𝑘𝑛 em que 𝜃𝑘 é o limiar associado ao neurônio de saída 𝑘. Etapas de treinamento das redes RBF Antes de apresentar os exemplos de treinamento para a rede RBF é comum mudar a escala original das componentes dos vetores 𝐱 e 𝐝 para a escala das funções de ativação logística (0 e 1) ou da tangente hiperbólica (−1 e 1). Etapas de treinamento das redes RBF As maneiras mais comuns de se fazer esta mudança de escala são apresentadas a seguir: 1. Procedimento 1: Indicado para quando os neurônios utilizam a função logística, 𝑥𝑗 ∗ = 𝑥𝑗 𝑥𝑗 𝑚𝑎𝑥 , em que, ao dividir cada 𝑥𝑗 pelo seu maior valor 𝑥𝑗 𝑚𝑎𝑥 = max ∀𝑡 {𝑥𝑗(𝑡)}, tem-se que 𝑥𝑗 ∗ ∈ [0, 1]. 2. Procedimento 2: Indicado também para neurônios que utilizam a função de ativação logística, 𝑥𝑗 ∗ = 𝑥𝑗 − 𝑥𝑗 𝑚𝑖𝑛 𝑥𝑗 𝑚𝑎𝑥 − 𝑥𝑗 𝑚𝑖𝑛 , em que 𝑥𝑗 𝑚𝑖𝑛 = min ∀𝑡 {𝑥𝑗(𝑡)} é o menor valor de 𝑥𝑗 .A aplicação deste procedimento resulta que 𝑥𝑗 ∗ ∈ [0,+1]. Etapas de treinamento das redes RBF 3. Procedimento 3: Indicado para quando os neurônios utilizam a função tangente hiperbólica, 𝑥𝑗 ∗ = 2 ∙ 𝑥𝑗 − 𝑥𝑗 𝑚𝑖𝑛 𝑥𝑗 𝑚𝑎𝑥 − 𝑥𝑗 𝑚𝑖𝑛 − 1, em que 𝑥𝑗 𝑚𝑖𝑛 = min ∀𝑡 𝑥𝑗(𝑡) é o menor valor de 𝑥𝑗 para todo o conjunto de dados. A aplicação deste procedimento resulta que 𝑥𝑗 ∗ ∈ [−1,+1]. 4. Procedimento 4: Indicado para quando os neurônios utilizam a função tangente hiperbólica, 𝑥𝑗 ∗ = 𝑥𝑗 − ഥ𝑥𝑗 𝑠𝑗 , em que ഥ𝑥𝑗 é a média amostral de 𝑥𝑗 e 𝑠𝑗 é o desvio-padrão amostral de 𝑥𝑗, ambos calculados para o conjunto total de dados: ഥ𝑥𝑗 = σ𝑡=1 𝑁 𝑥𝑗(𝑡) 𝑁 𝑒 𝑠𝑗 = σ𝑡=1 𝑁 𝑥𝑗 𝑡 − ഥ𝑥𝑗 2 𝑁 . A aplicação deste procedimento resulta que 𝐸 𝑥𝑗 ∗ = 0 e 𝑉𝑎𝑟 𝑥𝑗 ∗ = 1, em que 𝐸[·] denota a esperança estatística e 𝑉𝑎𝑟[·] é a variância de 𝑥𝑗 ∗. Etapas de treinamento das redes RBF Os procedimentos descritos anteriormente também devem ser igualmente aplicados às componentes 𝑑𝑘 dos vetores contendo as saídas desejadas, 𝐝, caso estes possuam amplitudes fora da faixa definida pelas funções de ativação; Projeto da Camada Oculta Esta etapa de funcionamento da rede RBF envolve basicamente a especificação do número de funções de base, determinação dos seus respectivos parâmetros e determinação dos pesos dos neurônios de saída; Na verdade existem diversas maneiras de se projetar a rede RBF, porém nos restringiremos aqui ao procedimento descrito por Moody e Darken [1]; Estes autores separam o treinamento de uma rede RBF em três etapas executadas sequencialmente. [1] J. E. Moody and C. Darken. Fast learning in networks of locally-tuned processing units. Neural Computation, 1(1):281–294, 1989. Projeto da Camada Oculta Durante a primeira etapa, usa-se um algoritmo de formação de agrupamentos para encontrar os chamados centros das funções de base; A segunda etapa trata do uso de métodos heurísticos para determinar o raio (radius) ou a abertura (spread) de cada função de base; Por último, na terceira etapa, uma vez determinados os centros e os raios das diversasfunções de base, pode-se computar os pesos dos neurônios de saída através das regras de aprendizagem LMS, Delta ou do Perceptron Simples. Projeto da Camada Oculta Assim, após a apresentação de um vetor de entrada 𝐱 na iteração 𝑡, calcula-se a ativação da 𝑖-ésima função de base por meio da seguinte expressão; 𝑢𝑖 𝑡 = 𝐱 𝑡 − 𝐜𝑖(𝑡) , 𝑖 = 1,… , 𝑞 em que 𝑞 é o número de funções de base desta camada, e o vetor 𝐜𝑖, mantido constante para o neurônio 𝑖, define o que se conhece como centro da 𝑖-ésima função de base. A saída da 𝑖-ésima função de base é calculada como 𝑦𝑖(𝑡) = 𝜙(𝑢𝑖 𝑡 ) = exp − 𝑢𝑖 2 𝑡 2𝜎𝑖 2 , 𝑖 = 1,… , 𝑞 em que 𝜎𝑖 é o chamado raio da 𝑖-ésima função de base, pois define a largura (abertura) da função de ativação gaussiana deste neurônio. Projeto da Camada Oculta É comum normalizar a saída dos neurônios da camada escondida, tal que a soma de todas as saídas seja igual a 1, ou seja, σ𝑖=1 𝑞 𝑦𝑖 𝑡 = 1 . Para implementar esta normalização basta reescrever a equação acima como 𝑦𝑖 𝑡 = 𝜙(𝑢𝑖 𝑡 ) σ 𝑙=1 𝑞 𝜙𝑙(𝑢𝑙 𝑡 ) = exp − 𝑢𝑖 2 𝑡 2𝜎𝑖 2 σ 𝑙=1 𝑞 exp − 𝑢𝑙 2 𝑡 2𝜎𝑙 2 Projeto da Camada Oculta Determinação dos Centros da Rede RBF: Existem duas maneiras muito comuns de se determinar os centros 𝐜𝑖 das funções de base. Estes métodos são detalhados a seguir: 1. Seleção Aleatória de Centros Este método consiste em selecionar aleatoriamente um certo número 𝑞 de vetores de entrada para atuarem como centros da rede RBF. Matematicamente, podemos escrever: 𝐜𝑖 = 𝐱𝑘 , 𝑖 = 1,… , 𝑞 em que 𝑘 é um número inteiro escolhido aleatoriamente, sem reposição, entre 1 e 𝑁. Projeto da Camada Oculta 2. Seleção por Quantização Vetorial O segundo método envolve a determinação dos centros através de um algoritmo de quantização vetorial, sejam eles de origem não- neural, tal como K-médias, ou de origem neural, tais como as redes SOM, Neural-Gas ou WTA. Descreve-se a seguir o algoritmo WTA, aplicado para realizar a quantização vetorial dos dados e fornecer os centroides das funções de base radial. Projeto da Camada Oculta 2. Seleção por Quantização Vetorial O algoritmo básico de funcionamento da rede WTA é descrito abaixo: Passo 1 - Definir o número de funções de base radial (𝑞) e a taxa de aprendizagem (𝜂); Passo 2 - Iniciar com valores aleatórios os centros 𝐜𝑖 , 𝑖 = 1,… , 𝑞; Passo 3 - Fazer 𝑡 = 1; Passo 4 - Enquanto 𝑡 ≤ 𝑁, Passo 4.1 - Selecionar aleatoriamente (sem reposição) o vetor de entrada 𝐱(𝑡). Passo 4.2 - Determinar o índice do centro mais próximo de 𝐱(𝑡), ou seja, 𝑖∗ 𝑡 = argmin ∀𝑖 𝐱 𝐭 − 𝐜𝑖(𝑡) . Passo 4.3 - Aplicar a seguinte regra de aprendizagem não- supervisionada: 𝐜𝑖 𝑡 + 1 = ቊ 𝐜𝑖 𝑡 + 𝜂 ∙ 𝐱 𝑡 − 𝐜𝑖 𝑡 , se 𝑖 = 𝑖 ∗(𝑡) 𝐜𝑖 𝑡 , caso contrário Passo 4.4 - Fazer 𝑡 = 𝑡 + 1. Passo 5 -Verificar se o critério de parada do treinamento é atendido. Caso afirmativo, então finalizar treinamento. Caso contrário, retornar ao Passo 3. Projeto da Camada Oculta Determinação do Raio da Função de Base: Uma vez que os centros das funções de base tenham sido determinados, o passo seguinte é determinar os raios (𝜎𝑖) das várias funções de base. Este parâmetro é de fundamental importância para o projeto da rede RBF. Projeto da Camada Oculta Determinação do Raio da Função de Base: Existem diversas técnicas para determinar 𝜎𝑖, contudo nos restringiremos a três casos bastante comuns, a saber: o Caso 1: Um único raio é usado por todos os neurônios, ou seja, 𝜎𝑖 = 𝜎. Isto significa que todas as funções de base terão a mesma abertura (spread). 𝜎 = 𝑑𝑚𝑎𝑥(𝐜𝑖 , 𝐜𝑗) 2𝑞 , ∀𝑖 ≠ 𝑗, em que 𝑑𝑚𝑎𝑥 𝐜𝑖 , 𝐜𝑗 = max ∀𝑖≠𝑗 𝐜𝑖 − 𝐜𝑗 . o Caso 2: Cada neurônio usa um raio próprio, que tem seu valor definido como metade da distância entre o centro do neurônio 𝑖 e o centro mais próximo. Em termos matemáticos: 𝜎𝑖 = 𝑑𝑚𝑖𝑛(𝐜𝑖 , 𝐜𝑗) 2𝑞 , ∀𝑖 ≠ 𝑗, em que 𝑑𝑚𝑖𝑛 𝐜𝑖 , 𝐜𝑗 = min ∀𝑖≠𝑗 𝐜𝑖 − 𝐜𝑗 . Projeto da Camada Oculta Determinação do Raio da Função de Base: o Caso 3: Esta heurística é uma variante daquela do Caso 2. O raio da 𝑖-ésima função de base é a distância média do centro desta base para os 𝐾 (1 ≤ 𝐾 ≪ 𝑞) centros mais próximos. Em termos formais, podemos escrever 𝜎𝑖 = σ𝑘=1 𝐾 𝑑 (𝐜𝑖 , 𝐜𝑖𝑘) 𝐾 , em que 𝑖𝑘 é o índice do 𝑘-ésimo centro mais próximo de 𝐜𝑖, ou seja, 𝐜𝑖 − 𝐜𝑖1 < ⋯ < 𝐜𝑖 − 𝐜𝑖𝑘 < ⋯ < 𝐜𝑖 − 𝐜𝑖𝐾 . Projeto da Camada de Saída Após a determinação dos centros e dos raios das funções de base que compõem a camada oculta, a terceira e última etapa consiste na determinação dos pesos de saída (𝑚𝑘𝑖); Uma das abordagens mais comuns consiste usar as regras de aprendizagem usadas por redes de uma única camada, tais como a regra de aprendizagem do Perceptron Simples, a regra LMS (Adaline) ou ainda a regra Delta (Perceptron Logístico); Durante esta terceira etapa, os centros e os raios calculados nas duas etapas anteriores não tem seus valores alterados. Projeto da Camada de Saída Para aplicações que envolvem aproximação de funções, tais como predição de séries temporais ou identificação de sistemas, costuma-se utilizar neurônios de saída com função de ativação linear; Deste modo, a saída do 𝑘-ésimo neurônio de saída é dada por: 𝑜𝑘 𝑡 = 𝑖=0 𝑞 𝑚𝑘𝑖 𝑡 𝑦𝑖(𝑡) , 𝑘 = 1,… ,𝑚, em que 𝑚 é o número de neurônios de saída. Note que as saídas das funções de base, 𝑦𝑖(𝑡), fazem o papel de entrada para os neurônios da camada de saída. Projeto da Camada de Saída Pode-se usar o método da pseudoinversa para determinar os pesos de saída; Outra possibilidade é usar um regra de aprendizagem recursiva para determinar os pesos de saída, tal como a regra LMS (Least-Mean Square), usada pela rede Madaline: 𝑚𝑘𝑖 𝑡 + 1 = 𝑚𝑘𝑖 𝑡 + 𝜂𝑒𝑘 𝑡 𝑦𝑖 𝑡 , em que 𝑒𝑘 𝑡 = 𝑑𝑘(𝑡) − 𝑜𝑘(𝑡) é o erro na saída do 𝑘-ésimo neurônio. Note que para treinar a camada de saída, os vetores de entrada devem ser novamente apresentados à rede RBF por um certo número de épocas. Projeto da Camada de Saída Caso a aplicação envolva classificação de padrões, pode-se optar pelo uso da regra de aprendizagem do perceptron simples. Neste caso, a saída do 𝑘-ésimo neurônio passa a ser dada por: 𝑜𝑘 𝑡 = ቊ +1, 𝑢𝑘 𝑡 ≥ 0 −1, 𝑢𝑘 𝑡 < 0 , em que 𝑢𝑘 𝑡 = σ𝑖=0 𝑞 𝑚𝑘𝑖 𝑡 ∙ 𝑦𝑖(𝑡). O ajuste dos pesos continua sendo feito pela equação anterior. Projeto da Camada de Saída Se o usuário optar pelo perceptron simples com função de ativação sigmoidal (e.g. perceptron logístico), a saída do 𝑘-ésimo neurônio passa a ser computada como: 𝑜𝑘 𝑡 = 𝜙 𝑢𝑘 𝑡 = 𝜙𝑘 𝑡 = 𝜙𝑘 𝑖=0 𝑞 𝑚𝑘𝑖 𝑡 ∙ 𝑦𝑖 (𝑡) , em que assume-se que 𝑦0 𝑡 = −1 𝑒 𝑚𝑘0 = 𝜃𝑘. A função de ativação 𝜙𝑘 assume geralmente uma das seguintes formas: 𝜙𝑘 𝑡 = 1 1+𝑒𝑥𝑝 −𝑢𝑘(𝑡) , (logística) 𝜙𝑘 𝑡 = 1−exp[−𝑢𝑘 𝑡 ] 1+𝑒𝑥𝑝 −𝑢𝑘(𝑡) . (tangente hiperbólica) Projeto da Camada de Saída Neste caso, o ajuste dos pesos passa a ser feito por meio da regra Delta, ou seja, 𝑚𝑘𝑖 𝑡 + 1 = 𝑚𝑘𝑖 𝑡 + 𝜂𝑒𝑘 𝑡 𝑦𝑖 𝑡 𝜙𝑘 ′ 𝑡 , tal que, 𝜙𝑘 ′ 𝑡 = 𝜙𝑘 𝑡 1 − 𝜙𝑘 𝑡 = 𝑜𝑘 𝑡 ∙ 1 − 𝑜𝑘 𝑡 , (função logística) 𝜙𝑘 ′ 𝑡 = 𝜙𝑘 𝑡 1 − 𝜙𝑘 𝑡 = 1 − 𝑜𝑘 2 𝑡 . (tangente hiperbólica)
Compartilhar