• Nenhum resultado encontrado

Evolving Fuzzy Neural Network

Sistemas Neuro-difusos

3.2 Evolving Fuzzy Neural Network

Toda a estrutura da rede Evolving Fuzzy Neural Network (Kasabov, 1998b) é construída sobre um conjunto de regras difusas, sendo possível modificar dinamicamente a topologia da rede. Assim, o modelo pode se adaptar a novos dados de treinamento (inclusive inserindo novas classes), de uma maneira on-line e aprender incrementalmente a partir dos exemplos de treinamento. Como a estrutura conexionista da rede pode ser interpretada por regras difusas, todo o conhecimento adquirido pela rede pode ser expresso na forma de regras explicativas difusas do tipo Se-Então.

Desta forma, uma estrutura Evolving Fuzzy Neural Network é um sistema conexionista que aprende a partir de exemplos, manipula o conhecimento a partir de regras difusas e realiza inserção, extração e agregação destas regras na arquitetura da rede. As redes Evolving Fuzzy Neural

Networks operam em um modo on-line e aprendem incrementalmente, através de características

locais dos dados.

A arquitetura Evolving Fuzzy Neural Network é denominada evolutiva porque sua topologia cresce com a apresentação de novos dados na fase de aprendizado e regularmente diminui através de poda (prunning), ou através da agregação de unidades de processamento de regras.

Dinâmica de funcionamento

A rede Evolving Fuzzy Neural Network adapta mecanismos de várias técnicas de aprendizagem (Kasabov, 1999). Porém, em seu funcionamento todas as unidades de processamento são criadas dinamicamente, durante a fase de aprendizado da rede (possivelmente em modo one-pass

learning). Cada uma das unidades de processamento da rede representa uma ou mais funções de

22

A arquitetura Evolving Fuzzy Neural Network possui cinco camadas, como apresentado na Figura 3.2. A camada de entrada recebe o vetor de entrada (X, Y), que correspondente aos atributos de entrada e a saída desejada de cada exemplo, respectivamente. Cada atributo de entrada é representado por um grupo de unidades de processamento que realizam a quantificação difusa destas variáveis.

Novas unidades de processamento podem ser inseridas dinamicamente na segunda camada durante a adaptação da rede. Isso ocorre quando, para um dado vetor de entrada, uma variável não pode ser representada por nenhuma das unidades existentes. A correspondência entre uma nova variável e as funções de pertinência existentes são medidas pela similaridade entre elas. Por exemplo, uma nova unidade de processamento difuso ou uma nova unidade de entrada podem ser criadas durante a fase de adaptação da rede se a dissimilaridade entre a variável de entrada e os nodos de processamento ultrapassar um limiar pré-estabelecido pelo projetista.

A terceira camada do modelo contém as unidades de processamento correspondentes às regras difusas, estes nodos representam a associação dos padrões de entrada e saída, e são adaptados através de um aprendizado híbrido: supervisionado e não-supervisionado. Cada unidade de processamento ou regra representa um protótipo da associação entre exemplos de entrada e saída, graficamente representado como uma associação entre hiper-esferas dos espaços de entrada e saída difusos do problema.

Figura 3.2 - Arquitetura da rede EFuNN - adaptado de Kasabov (2001).

Camada de saída

Saídas difusas

Camada de regras

Entradas difusas

Na Figura 3.3 é apresentado um exemplo de uma unidade de processamento de regras que representa uma associação entre duas hiper-esferas (entrada e saída). Espacialmente, o nodo de regras se move quando um novo par de entradas difusas (Xf, Yf) é aprendido.

Durante a fase de aprendizado uma camada de memória de curta-duração pode ser utilizada para adaptação da rede, através de conexões de feedback provenientes da camada de regras, como é apresentado na Figura 3.2. Como a rede utiliza aprendizado local, nodos de regras podem ser modificados ou excluídos sem prejudicar o aprendizado global do sistema ou o conhecimento previamente adquirido pela rede.

Cada nodo de regras r é definido por dois vetores de conexões W1(r) e W2(r), em que a conexão W1(r) é ajustada com aprendizagem supervisionada, baseado no erro de saída. E a conexão W2(r) é ajustada de forma não-supervisionada, baseado na medida de similaridade entre características locais do espaço de entrada e as funções de pertinência existentes. O vetor de conexões W1(r) representa as coordenadas do nodo r no espaço de entradas difusas, identificando o centro da hiperesfera de entrada, e o vetor de conexões W2(r) representa as coordenadas do nodo r no espaço de saídas difusas, identificando o centro da hiperesfera de saída.

A quarta camada de unidades de processamento representa a quantificação difusa das variáveis de saída, no espaço de saída do problema. Esta representação é similar à representação difusa das unidades de processamento de entrada. A quinta camada representa os valores reais das variáveis de saída. A saída é um valor real que indica a grau de confiança associado a cada classe.

24

Um determinado exemplo (X, Y) é associado a um nodo de regras r se X estiver dentro do campo receptivo da hiperesfera de entrada do nodo r (isso ocorre quando a distância difusa local normalizada entre W1 e X for menor que o raio R) e Y estiver dentro do campo receptivo da hiperesfera de saída do nodo r (isso ocorre quando o erro normalizado de saída Err gerado for menor que o erro máximo E permitido pelo sistema). A Figura 3.3 ilustra um exemplo difuso associado ao nodo de regra r.

O processo de evolução (aprendizagem) da rede pode ser baseado em qualquer uma das seguintes suposições: (i) nenhum nodo de regras existe antes do início da fase de aprendizagem e todos são criados durante o processo de evolução da rede; ou (ii) existe um conjunto inicial de regras com conhecimento prévio sobre o problema. As conexões entre os exemplos de entrada e saída são definidas e atualizadas a partir deste conjunto de regras, durante a evolução da rede.

O último caso é o mais biologicamente plausível (Kasabov, 1999). Da mesma forma que, por exemplo, uma criança ao nascer possui todos os neurônios e conexões sinápticas em seu cérebro, mas suas estruturas cognitivas e funcionais evoluem de acordo com seu desenvolvimento pessoal, a rede Evolving Fuzzy Neural Network adapta seu conhecimento a partir dos nodos de regras já existentes e cria novas conexões ou novos nodos durante o aprendizado. O algoritmo de treinamento apresentado na próxima seção não faz distinção entre estas duas abordagens.

Na camada de regras cada nodo de regras difusas, por exemplo, rj representa uma associação

entre hiper-esferas do espaço de entrada e saída difusas do problema, como mostra a Figura 3.3. Os valores da conexão W1(rj) representam as coordenadas do centro da esfera no espaço de entrada

difuso, e W2(rj) representa as coordenadas no espaço de saída difuso. O raio da hiper-esfera de

entrada da unidade de processamento rj é definido como Rj=1-Sj, onde Sj é o parâmetro de limiar de

sensibilidade sthr, que define a ativação mínima no nodo de regras rj obtido por um novo vetor x de

entrada em um novo exemplo (X, Y). O grau desta ativação determina se este exemplo é associado a uma regra existente ou uma nova regra é criada.

O par difuso de entrada-saída (Xf, Yf) será alocado ao nodo de regras rj se Xf estiver no campo

receptivo de entrada rj (dentro do raio da hiperesfera de entrada), e se Yf estiver na hiperesfera

receptiva de saída rj. Isto é garantido através de duas condições: (i) se a diferença difusa local entre

Xf e W1(rj) for menor que o raio rj; e (ii) se o erro de saída normalizado, descrito pela Equação

(3.9), for menor que o limiar de erro E.

Err=||Y-Y’||/Nout

(3.9)

onde Nout é o número de saídas da rede, Y e Y’ são os vetores da saída desejado e obtido,

Aprendizagem

O algoritmo de treinamento da rede Evolving Fuzzy Neural Network é baseado no princípio de que nodos de processamento somente existem se forem realmente necessários. Enquanto cada exemplo de treinamento é apresentado, os valores de ativação das unidades de processamento da camada de regras e o erro sobre as unidades de processamento de saída são examinados. Se a ativação máxima nos nodos de regras estiver abaixo de um limiar estabelecido pelo projetista (limiar de sensibilidade) o nodo de regras é suprimido. Se o erro do nodo de saída estiver acima do valor de limiar também determinado pelo usuário (limiar de erro), um novo nodo de regras é adicionado. E finalmente, se o nodo de saída mais ativado não for o vencedor desejado, uma nova unidade de saída é então adicionada.

Capítulo 4