Você está na página 1de 50

Captulo

Redes Neurais Artificiais


Jlio Cesar Nievola
Abstract This chapter presents the notion of artificial neural networks, the computational technique built on the idea of its biological counterpart. Its various models allow the solution of many problems in pattern recognition and simulation fields. Here the main kinds of artificial neural networks and its behavior are presented. It is also described how to connect artificial neural networks and symbolic systems. Resumo Este captulo apresenta a noo de redes neurais artificiais, as quais so tcnicas computacionais desenvolvidas a partir da noo biolgica equivalente. Os vrios modelos existentes permitem a resoluo de muitos problemas nas reas de reconhecimento de padres e simulao. Neste texto, so analisados os principais tipos de redes neurais artificiais e seu comportamento. Tambm descrita a interligao entre redes neurais artificiais e os sistemas simblicos.

1. Introduo
1.1. Histrico As Redes Neurais Artificiais (RNA) constituem-se em um paradigma computacional baseado no modelo biolgico do crebro humano. As suas primeiras utilizaes surgiram j na dcada de 1950, quando da reunio no Dartmouth College. Nesta reunio surgiu o termo Inteligncia Artificial para designar um conjunto de tcnicas que permitiriam o desenvolvimento de sistemas suficientemente genricos para resolver qualquer problema, desde que devidamente representado. Desta forma, as RNAs, tambm chamadas de abordagem conexionista, surgiram como uma alternativa abordagem simblica, baseada na lgica [Kratzer, 1991]. Os trabalhos pioneiros utilizavam uma rede chamada de Perceptron, desenvolvida por Rosenblatt [Rosenblatt, 1958]. Uma das motivaes para o desenvolvimento da abordagem conexionista foi o fato de que as abordagens clssicas, embora tenham capacidade de resolver muitos problemas complexos, no conseguiram ter um desempenho adequado para tarefas que so rotineiras, e em certos casos at intuitivas, para o ser humano [Brunak, 1993]. Foi ento questionado que a forma humana de trabalho nestes casos estava em um nvel anterior ao raciocnio lgico, a nvel sub-simblico. O estudo de tais elementos revelou um conjunto de

caractersticas que em certos pontos ope a abordagem simblica (baseada na lgica) da abordagem sub-simblica (baseada nos elementos biolgicos). A tabela 01 apresenta uma comparao entre estas duas abordagens.
Tabela 1 Comparao de Caractersticas.

Caracterstica Velocidade de Processamento Processamento Quantidade Interligaes Armazenamento do conhecimento Tolerncia a falhas Controle do processamento

Redes Neurais Artificiais ms (disparo de um neurnio) Paralelo 1011-1014 neurnios 103-104 conexes/neurnio Adaptativo Boa Anrquico, distribudo

Sistemas Convencionais 4,2ns (clock do Cray3) Serial Um ou poucos processadores Poucas Estritamente relocvel Mnima ou inexistente Autocrtico, centralizado

Em 1969, Minsky e Papert [Minsky e Papert, 1969] publicaram um livro no qual apresentavam o modelo formal do perceptron e demonstraram que o mesmo apresentava uma grande limitao, a saber, ele s era capaz de resolver corretamente problemas com dados linearmente separveis. Como tal caracterstica no est presente na maioria dos sistemas reais, a abordagem conexionista sofreu um grande impacto e durante a dcada de 1970 a rea de IA voltou-se bastante para a abordagem lgica. Entretanto, alguns grupos continuaram buscando alternativas que suplantassem a limitao apresentada e para obter verbas para suas pesquisas passaram a utilizaram uma denominao que no redes neurais. Devido a este fato, encontram-se muitas vezes outros termos que so sinnimos de redes neurais artificiais, tais como: Sistemas Neurais Artificiais, Sistemas Adaptativos, Neurocomputadores, Sistemas Maciamente Paralelos, entre outros [Hassoun, 1995]. Esta situao foi alterada de maneira drstica com a apresentao de um artigo que demonstrava uma maneira de expandir o algoritmo do perceptron para uma rede com vrias camadas [Hoffmann, 1993]. O modelo matemtico desenvolvido provava que tal rede, denominada de Perceptron Multicamadas (ou MLP, Multi-Layer Perceptron) poderia ser treinada para atingir qualquer valor desejado de preciso, para qualquer tipo de problema [Rumelhart et al., 1986]. Isto despertou novamente um grande interesse na comunidade cientfica fez da dcada de 1980 uma dcada de pesquisas relacionadas ao tema. 1.2. Etapas de Projeto As Redes Neurais fazem parte de uma rea denominada Aprendizagem de Mquina, a qual pode ser definida como: A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at

tasks in T, as measured by P, improves with experience E. [Mitchell, 1997]. Existem modelos especficos de RNA capazes de realizar qualquer um dos trs tipos de aprendizagem, a saber: a)Aprendizagem Supervisionada: Consiste no mapeamento de um conjunto de variveis, ditas variveis de entrada ou independentes, em um segundo conjunto de variveis, chamadas de variveis de sada ou dependentes. A rede atua comparando a sada com o valor desejado e realizando correes em seu modelo at atingir um erro aceitvel. No caso da varivel de sada ser contnua tem-se um problema de regresso; caso a varivel seja discreta tem-se um problema de classificao; b)Aprendizagem No-Supervisionada: Nesta situao, tem-se um conjunto de dados de entrada e deseja-se agrupar estes dados em subconjuntos de forma tal que dados colocados em um mesmo conjunto sejam semelhantes entre si (ou tenham um conjunto de propriedades em comum) e dados colocados em grupos diferentes tenham caractersticas distintas; c)Aprendizagem com Reforo: Tal como no caso da aprendizagem supervisionada, existe um conjunto de variveis de entrada e de sada. Entretanto, no se sabe qual o valor de sada correto para cada exemplo de entrada; somente pode-se identificar se uma sada est correta ou no. A utilizao das RNAs segue uma metodologia que pode ser decomposta em sucessivas etapas [Kinnebrock, 1992]. Em alguns momentos necessrio retornar a uma etapa anterior, caso a finalidade daquela etapa no tenha sido alcanada ou ento para melhorar os resultados. De uma maneira geral as atividades que compe o desenvolvimento de uma RNA so: a)Definio do Problema: Nesta etapa deve-se verificar se as caractersticas do problema sendo considerado so condizentes com o uso de uma RNA. Algumas caractersticas de uma boa aplicao para RNAs so: regras de resoluo do problema desconhecidas ou difceis de determinar e disponibilidade de um grande conjunto de exemplos. Alguns exemplos de rea de aplicao tpicos so: reconhecimento de formas, tratamento de sinal, viso, fala, previso e modelagem, auxlio deciso, robtica; b)Escolha e adequao dos dados: Para que se possa utilizar uma RNA fundamental que se disponha de dados em quantidade e qualidade suficientes. Caso a quantidade de dados seja pequena, a rede no conseguir criar um modelo suficientemente representativo para se ter um bom desempenho quando aplicado em situaes reais aps o seu desenvolvimento. Alm disto, os dados devem englobar todos os aspectos do problema em questo, a fim de que o modelo criado seja genrico. Em geral, tais dados precisam ser convertidos para um formato padro para utilizao pelas RNAs; c)Treinamento da Rede: Implica em aplicar o algoritmo de aprendizagem escolhido a cada um dos exemplos do conjunto de treinamento iterativamente, at que a rede atinja o comportamento desejado. Caso a rede no consiga atingir o desempenho mnimo, deve-se avaliar se os dados so adequados e realizar uma readequao dos mesmos, expandindo-os ou reduzindo-os; d)Teste da Rede: Aps a rede ter sido treinada, deve-se testar a mesma para verificar se o modelo criado pela mesma tem um ndice de acerto aceitvel em dados novos, ou seja, que ainda no foram aplicados rede. Em caso positivo, passa-se ao uso em campo da rede neural. Se o desempenho no for adequado, deve-se retornar a uma etapa anterior e refazer

aquela parte do processo, como por exemplo, alterar o algoritmo de aprendizagem, a topologia da rede, ou eventualmente o prprio conjunto de dados; e)Uso em Campo: Se as etapas anteriores apresentaram sucesso, o modelo criado pode ser implementado (independente do algoritmo de aprendizagem) para uso contnuo. Ainda assim, durante o uso podem surgir problemas, o que implica em retornar a uma etapa anterior e reiniciar o processo.

2. Terminologia e Formalizao
2.1. Neurnio Biolgico As redes neurais biolgicas so compostas por uma grande quantidade de elementos bsicos, denominados neurnios (fig. 01). A estrutura bsica dos neurnios composta por: a)Dendritos: Correspondem a filamentos que recebem as informaes de outros elementos, sejam estes outros neurnios ou sensores. No existe uma conexo fsica entre os dendritos e os elementos antecedentes. A ligao entre eles eletro-qumica, denominada sinapse; b)Corpo Celular: Corresponde maior rea do neurnio e, a partir dos sinais recebidos pelos dendritos, sofre uma srie de transformaes internas, resultando em um sinal que propagado ao elemento seguinte; c)Axnio: Recebe o resultado dos processos qumicos internos ao corpo celular e propaga a outros elementos, atravs das sinapses que se formam entre ele e os elementos subseqentes.

Figura 1 Neurnio Biolgico e seus componentes.

2.2. Modelo Matemtico do Neurnio Biolgico McCulloch e Pitts estudaram o neurnio anteriormente apresentado e propuseram um modelo matemtico de seu funcionamento [McCulloch e Pitts, 1943]. Neste modelo, considera-se que o neurnio recebe sinais provenientes de vrias entradas. A combinao destes sinais propagada ao corpo celular. Ao longo do tempo cada uma das entradas do neurnio passa a ter uma maior ou menor influncia sobre o processamento que ocorre no corpo celular. Mais do que isso, elas podem excitar ou inibir o processamento. Este comportamento representado atravs de uma soma ponderada dos sinais de entrada, ou

seja, cada sinal de entrada tem o seu valor multiplicado por um peso (geralmente entre +1 e -1), indicando a influncia daquela entrada no processo que ocorre internamente ao corpo celular. Desta forma, se chamarmos de x1, x2, ..., xn o valor do sinal em cada entrada do neurnio, e indicarmos por w1, w2, ..., wn a influncia que cada uma tem no processamento que ocorre no corpo celular, temos que a entrada total no corpo celular enttotal dada por:
n

ent total
i 1

xi wi

(1)

Em muitos casos, considera-se que o valor da entrada total sobrepe-se a um valor fixo pr-existente, denominado de bias, o qual pode assumir qualquer valor tambm entre +1 e -1. Neste caso considera-se que o bias representa uma entrada extra, sempre com valor unitrio, sofrendo a ponderao atravs de um peso correspondente, w0. Neste caso a entrada total ser dada por:
n

enttotal
i 1

xi wi

w0

(2)

ou seja,
n

ent total
i 0

xi wi

(3)

O valor total da entrada sofre uma transformao interna no corpo celular, produzindo o valor que propagado para os outros elementos atravs do axnio. Esta transformao do valor de entrada total no corpo celular, enttotal, na sada do neurnio, s, representada pela aplicao de uma funo f( ), conforme a equao:

f ent total

(4)

A funo f( ) em princpio pode ser qualquer funo matemtica, embora na prtica exista um conjunto de funes que so as mais utilizadas. A figura 2 apresenta uma lista de algumas delas.

Figura 2 Exemplos de funo de ativao de neurnios.

2.3. Formalizao das Redes Neurais Artificiais A partir do neurnio formalizado, pode-se realizar conexes entre diversos neurnios, constituindo-se as Redes Neurais Artificiais (RNAs). Em funo do tipo de conexo realizada, passa-se a ter uma topologia especfica, a qual, juntamente com o algoritmo de aprendizagem que realiza a atualizao dos pesos entre os neurnios, determina o tipo de rede.

A partir da especificao dos elementos anteriores tem-se cada uma das RNAs, as quais podem ser agrupadas segundo suas semelhanas. Uma possibilidade de agrupamento est indicada na figura 3.

Figura 3 Agrupamento das redes neurais em funo de suas caractersticas [Jain et al., 1996].

Uma descrio hierrquica de redes neurais foi proposta por Fiesler [Fiesler, 94]. Segundo a mesma, a especificao da rede neural pode ser dividida em uma topologia, um conjunto de limitaes, um estado inicial e um conjunto de funes de transio. A topologia da rede neural definida em funo dos elementos indicados. As limitaes definem a faixa de valores para os pesos, as transies locais (ou deslocamentos) e os valores de ativao (ou atividades), os quais podem ser vistos como os valores de sada dos neurnios. Exemplos de limitaes so: o conjunto dos valores reais que um peso pode assumir e um conjunto limitado de inteiros que pesos discretos podem assumir. A dinmica de uma rede neural pode ser completamente descrita pelo estado inicial da rede, consistindo de um conjunto de valores iniciais para os pesos e transies locais, mais os padres de entradas (e objetivo), os quais tipicamente determinam as ativaes, mais as funes de transio que podem ser usadas para determinar os sucessivos estados da rede neural, respeitando-se as limitaes dadas [Mehrotra et al., 1997]. Para que uma RNA possa ser especifica de maneira nica, deve-se indicar os seguintes elementos: a)Topologia da rede: Conjunto de interligaes dos neurnios; b)Algoritmo de aprendizagem: Define como os pesos da rede neural, e eventualmente suas conexes, so alterados durante o treinamento; c)Codificao dos dados de entrada: Em muitos casos os dados de entrada devem ser convertidos para uma representao diferente daquela original; d)Decodificao dos valores de sada: As sadas correspondem a valores numricos contnuos. Se esta no for a representao desejada, ela deve ser convertida para o formato adequado. Outra forma de se agrupar as redes neurais segundo suas caractersticas em termos do paradigma (aprendizagem supervisionada, no supervisionada ou hbrida), da regra de aprendizagem empregada, da topologia, do algoritmo de aprendizagem utilizado e da tarefa apresentada est indica na tabela 2.

Tabela 2 Caractersticas de RNAs em funo do tipo de aprendizagem [Jain et al., 1996]. Paradigma Regra de Aprendizagem Arquitetura Perceptron com uma camada Correo do erro Perceptron com vrias camadas Algoritmo de Aprendizagem Algoritmos de aprendizagem do perceptron Retro-propagao; Adaline e Madaline Algoritmo de aprendizagem de Boltzmann Anlise discriminante linear Quantizao do vetor de aprendizagem Tarefa Classificao de padres Aproximao de funes, predio e controle Classificao de padres Anlise de dados, classificao de padres Categorizao em classes internas, compresso de dados Classificao de padres, categorizao em classes internas Anlise de dados Anlise de dados, compresso de dados Memria associativa Categorizao, compresso de dados Categorizao, anlise de dados Categorizao Classificao de padres, aproximao de funes, predio, controle

Boltzmann Supervisionada Hebb

Recorrente

Multicamadas em avano

Competitiva Competitiva Rede ART

ARTMAP

Correo do erro

Multicamadas em avano Em avano ou competitiva

Projeo de Sammon Anlise da componente principal Aprendizagem de memria associativa Quantizao de vetores SOM (Kohonen) ART1, ART2

Hebb No supervisionado Rede Hopfield

Competitiva Competitiva SOM (Kohonen) Rede ART

Hbrido

Correo de erros e competitiva

Rede RBF

Algoritmo de aprendizagem RBF

3. Perceptron, MLP e Redes Construtivas


3.1. Perceptron O Perceptron foi a primeira RNA utilizada. Ele composto basicamente por duas camadas. A camada de entrada executa a funo de simplesmente repassar camada seguinte as variveis de interesse, sem executar nenhuma operao sobre as mesmas. Em funo disto, a maioria dos autores no a considera uma camada de neurnios no sentido formal, ou seja, um perceptron composto por somente uma camada de neurnios formais, conforme a fig 4. A camada de sada possui um neurnio, correspondente sada desejada. Na representao mais clssica do perceptron, as entradas e sadas so binrias e a funo de ativao do neurnio de sada do tipo limiar (threshold).

Figura 4 Diagrama de um Perceptron com d entradas e uma sada.

A entrada total do perceptron dada por:


D

eT
i 1

xi wi

(5)

e a sada y dada em funo da entrada total, ou seja:

1, se eT

0,

0, em caso contrrio

(6)

Na maioria dos casos utiliza-se o termo independente (bias), fazendo com que a equao 5 seja generalizada para a equao 7:
D

eT
i 0

xi wi

(7)

Pode-se provar que o perceptron somente encontra soluo (isto , consegue classificar todos os exemplos corretamente) para conjuntos de treinamento linearmente separveis. No algoritmo de aprendizagem do Perceptron busca-se um vetor W que tenha projeo positiva (produto interno) com todos os exemplos positivos e projeo negativa com todos os exemplos negativos. A aprendizagem do perceptron sempre tem sucesso em tempo finito para um conjunto de treinamento finito e separvel de exemplos de treinamento. Na figura 5 encontra-se o Algoritmo do Perceptron [Gallant, 1993]. Para um conjunto finito de exemplos de treinamento E, com componentes inteiros (ou racionais), o algoritmo de aprendizagem do perceptron, em tempo finito ou produzir um vetor peso que

satisfaz todos os exemplos de treinamento (se e somente se E separvel) ou ento abandonar e reutilizar um vetor peso (se e somente se E no-separvel). 1. Fazer W ser o vetor nulo; 2. Selecionar um exemplo de treinamento Ek (com a correspondente classificao Ck). Isto pode ser feito de maneira cclica (em ordem) atravs dos exemplos de treinamento ou pegando um exemplo aleatoriamente; 3. Se W classifica Ek corretamente, isto , se W E k )0 e C k 1 ou se W E k 0 e C k 1 Ento: No fazer nada. Seno: Passo de alterao: Modificar W somando ou subtraindo Ek de acordo com a sada correta ser +1 ou -1: W = W + CkEk. 4. Ir ao passo 1.

Figura 5 Algoritmo do Perceptron Simples [Gallant, 1993].

Se um conjunto de exemplos de treinamento E no-separvel, ento por definio no existe um vetor de pesos W que classifique corretamente todos os exemplos de treinamento em E utilizando o algoritmo de aprendizagem do perceptron. A alternativa mais natural encontrar um vetor de pesos W* que classifique tantos exemplos de treinamento quanto possvel de E. Tal conjunto de pesos chamado de timo. O algoritmo de aprendizagem do perceptron tem comportamento pobre: se o algoritmo terminado, mesmo aps um grande nmero de iteraes, no se tem garantia da qualidade dos pesos que so produzidos, j que o mesmo usa somente reforo negativo, ignorando totalmente os exemplos que so corretamente classificados. Para contornar este problema utiliza-se o chamado Algoritmo do Bolso. O algoritmo do bolso leva em conta as classificaes corretas mantendo um conjunto de pesos em separado Wbolso mantidas no bolso, juntamente com o nmero de iteraes consecutivas para a qual Wbolso classificou corretamente os exemplos de treinamento escolhidos. Na figura 6 encontra-se uma descrio do Algoritmo do Bolso. 1. Fazer W ser o vetor nulo; 2. Selecionar um exemplo de treinamento Ek (com a correspondente classificao Ck); 3. Se W classifica Ek corretamente, isto , se W E k )0 e C k 1 ou se W E k 0 e C k 1 Ento: 3a. Se a seqncia atual de classificaes corretas com W maior que a seqncia de classificaes corretas para o vetor peso Wbolso: 3aa. Substitua os pesos no bolso Wbolso por W e registre o nmero de vezes que ela correta. Seno: Passo de alterao: Modificar W somando ou subtraindo Ek de acordo com a sada correta ser +1 ou -1: W = W + CkEk. 4. Ir ao passo 1.
Figura 6 Algoritmo do Perceptron com Bolso [Gallant, 1993].

Para problemas de tamanho mdio e grande o algoritmo do bolso normalmente no produz pesos timos aps um razovel nmero de iteraes, mas produz bons pesos. Na execuo do algoritmo do bolso no h nada que previna um mau conjunto de pesos de ter uma seqncia feliz de respostas corretas e acabe substituindo um bom conjunto de pesos no bolso. Pior ainda, se a seqncia feliz for longa ento o conjunto de maus pesos pode permanecer no bolso por um grande nmero de iteraes. Para evitar isto, utiliza-se o Algoritmo do Bolso com Catraca, no qual, para conjuntos finitos de exemplos de treinamento tem-se melhores resultados, conforme a figura 7. 1. Fazer W ser o vetor nulo; 2. Selecionar um exemplo de treinamento Ek aleatoriamente (com a correspondente classificao Ck); 3. Se W classifica Ek corretamente, isto , se W E k )0 e C k 1 ou se W E k 0 e C k 1 Ento: 3a. Se a seqncia atual de classificaes corretas com W maior que a seqncia de classificaes corretas para o vetor peso Wbolso: 3aa. Se W classifica corretamente mais exemplos de treinamento que Wbolso: 3aaa. Substitua os pesos no bolso Wbolso por W e registre o nmero de vezes que ela correta. Seno: Passo de alterao: Modificar W somando ou subtraindo Ek de acordo com a sada correta ser +1 ou -1: W = W + CkEk. 4. Ir ao passo 1.
Figura 7 Algoritmo Perceptron com Bolso e Catraca [Gallant, 1993].

O algoritmo do Perceptron, em qualquer de suas variantes, pode eventualmente no encontrar a soluo mesmo em caso dela existir. Isto pode acontecer caso o nmero de iteraes seja insuficiente. Desta forma, quando ele no encontra a soluo, no se sabe se o nmero de iteraes foi pequeno ou se o conjunto de treinamento no linearmente separvel. Um algoritmo que determina um limite superior para o nmero de iteraes, indicando se os dados so ou no linearmente separveis de bastante utilidade. Os algoritmos de programao linear tm a caracterstica desejvel de crescerem polinomialmente com a preciso das entradas, podendo ser usados para determinar os pesos para um conjunto de exemplos de treinamento linearmente separveis, garantindo um limite polinomial no tempo de aprendizagem. O algoritmo de Khachiyan tem melhor tempo de aprendizagem mdio e melhor tempo de aprendizagem no pior caso para problemas separveis que o algoritmo do perceptron [Aspvall, 1980]. Para o caso em que as ativaes esto em {+1,-1} verificou-se tambm uma melhora no limite superior do nmero mximo de iteraes. Uma descrio algortmica do algoritmo de Khachiyan apresentada na figura 8.

1. Igualar W ao vetor nulo; 2. Fazer H ser a matriz identidade (p + 1) x (p + 1); 3. Realizar no mximo um nmero de iteraes igual a p 1 3 ln p 1 p 1 2 ln p 1 3a. Se todos os exemplos de treinamento esto corretamente classificados, isto , todo exemplo de treinamento Ek cuja sada correta Ck satisfaz W Ek 0 e Ck 1 ou W E k 0 e C k 1 , ento os exemplos de treinamento so separveis; neste caso fornecer W e sair. Caso contrrio, fazer Ek ser um exemplo de treinamento que no corretamente classificado; 3b. Calcular o vetor Q = H Ek; 3c. Calcular: Ck W W Q p 2 Q Ek
p 1 2 H H Q Q p p 2 p 2 Q Ek 4. Se no for encontrada soluo, ento os exemplos de treinamento no so linearmente separveis. Obs.: Q Q denota o produto externo de Q, dado por (Q Q)i,j = QiQj.
Figura 8 Algoritmo de Khachiyan [Gallant, 1993].
2

Uma das principais caractersticas do perceptron com M sadas que ele pode dividir o espao de padres em M regies distintas, ou hiperplanos. Os hiperplanos que contribuem para a definio da superfcie de deciso devem ser contguos. As regies de deciso do perceptron sempre so regies convexas, pois durante o treinamento exige-se que uma e somente uma das sadas seja positiva. Entretanto, o Perceptron resolve somente problemas lineares, e a aprendizagem on-line sofre com dados ruidosos, embora tenha maior possibilidade de evitar mnimos locais. 3.2. MLP Uma extenso natural do Perceptron a rede MLP (Multi-Layer Percpetron Perceptron Multi-Camadas), na qual coloca-se uma camada dita escondida, tendo em vista que os neurnios desta camada no tem ligaes nem com a entrada nem com a sada. Em particular, tais neurnios tem como funo de ativao uma funo do tipo no linear. Conceitualmente, as redes MLP podem ser vistas como uma cascata de perceptrons, conforme figura 9. Introduzindo-se uma camada extra no perceptron, altera-se qualitativamente o formato das funes discriminantes, sendo que o nmero mximo de regies distintas no espao de entrada controlado pelo nmero de neurnios escondidos. Os neurnios de sada criam regies de deciso que no so mais convexas. Isto faz com que exista mais que um conjunto de pesos para uma combinao particular de regies de deciso.

Figura 9 MLP com uma camada escondida.

A rede MLP capaz de construir uma salincia no espao de entrada. Uma rede MLP com uma camada escondida e neurnios com funo de ativao sigmoidal (com um nmero adequado de neurnios na camada escondida) um mapeador universal, isto , pode aproximar com uma preciso arbitrria qualquer regio de deciso contnua. O treinamento de uma rede MLP uma aprendizagem com correo do erro, ou seja, aprendizagem supervisionada [Michalewicz, 2000]. Para adaptar os pesos, calcula-se o erro no i-simo neurnio usando-se um erro derivado da camada mais prxima da sada. Este erro o erro de sada retro-propagado e devidamente escalado. A sensibilidade automaticamente calculada pela regra da cadeia [Bender, 1996]. 3.2.1. Regra Delta Generalizada A ativao uma funo diferencivel da entrada total:
ai
p p

ii

(8)

na qual tem-se:
ii
p j

wij a j

p i

(9)

Para obter a generalizao correta da regra delta deve-se ter:


p

wij

Ep wij

(10)

A medida do erro Ep definida como o erro total quadrtico para o padro p nas unidades de sada:
Ep 1 2
No

di
i 1

ai

p 2

(11)

Como uma medida total do erro tem-se:

E
p

Ep

(12)

Usando a regra da cadeia:

Ep wij
Observa-se que:

E p ii p ii wij
p

(13)

ii wij

aj

(14)

Para obter uma atualizao como a regra delta faz-se:


p i

Ep ii
p i

(15)

Tem-se uma descida do gradiente se as alteraes forem:


p

wij

aj

(16)

Usando a regra da cadeia:


p i

Ep ii
p

E p ai ai
p

p p

ii

(17)

O segundo elemento , portanto:


ai ii
p p

ii

(18)

Existem dois casos para o primeiro fator da regra da cadeia. No primeiro caso considera-se que i uma unidade de sada e portanto:

Ep ai
Neste caso obtm-se:
p i

di

ai

(19)

di

ai

p i

ii

(20)

Se i no for uma unidade de sada pode-se obter uma medida do erro como uma funo da soma ponderada da camada escondida para a camada de sada:
Ep E p ii , ii ,..., ii ,...
1 2 p

(21)

Usando-se a regra da cadeia:

Ep ai
p

No h 1 No h 1

E p ih ih E ih
p

p p

No h 1 No

Ep ih
p h p

Nh

ai whi

ai

p k 1

whk a k

p p

(22)

whi

h 1

Substituindo na primeira regra da cadeia:

p i

ii

No h h 1

whi

(23)

3.2.2. Funcionamento do Algoritmo de Retro-propagao (Backpropagation) A entrada apresentada e propagada para frente (etapa avante do algoritmo) atravs da rede, calculando as ativaes para cada unidade de sada. Cada unidade de sada comparada com o valor desejado, resultando em um valor de erro. Na seqncia, calculamse os erros em cada unidade e so realizadas alteraes nos pesos (etapa de retorno do algoritmo). Descrio do Algoritmo de Retro-propagao: a)Escolher um pequeno valor positivo para o tamanho do passo , e assinalar pesos iniciais pequenos aleatoriamente selecionados {wi,j} para todas as clulas. b)Repetir at que o algoritmo convirja, isto , at que alteraes nos pesos e no erro mdio quadrtico tornem-se suficientemente pequenas: b1)Escolher o prximo exemplo de treinamento E e sua sada correta C (a qual pode ser um vetor). b2)Passo de propagao avante: Fazer uma passagem da entrada para a sada atravs da rede para calcular as somas ponderadas, Si, e as ativaes, ui = f(Si), para todas as clulas. b3)Passo de retropropagao: Iniciando com as sadas, fazer uma passagem de cima para baixo atravs das clulas de sada e intermedirias calculando:
f Si ui 1 ui

(24)

Ci
i m i

u i f S i , se u i uma unidade de sada w mi


m

f S i , para outras unidades

(25)

b4)Atualizar os pesos:
wij
*

wij

uj

(26)

3.2.3. Caractersticas Gerais de uma rede MLP O uso de uma rede MLP com o algoritmo de retro-propagao com muitos neurnios escondidos faz com que a soluo seja atingida rapidamente durante o treinamento, mas o poder de generalizao sacrificado, ou seja, o desempenho em casos no vistos tende a piorar. Durante o treinamento, o sistema posiciona as funes discriminantes que classificam corretamente a maioria dos exemplos, para ento lentamente classificar reas com poucos exemplos. Por outro lado, o erro estabilizar em um alto valor se os graus de liberdade no forem suficientes. Um MLP com duas ou mais camadas escondidas um aproximador universal, ou seja, realiza qualquer mapeamento entrada-sada. Isto acontece porque cada neurnio na primeira camada cria uma salincia e a segunda camada combina estas salincias em regies disjuntas do espao, conforme figura 10. Entretanto, um problema ainda sem soluo a determinao do nmero timo de camadas escondidas e do nmero de neurnios em cada camada para um dado problema.

Figura 10 Regies criadas no espao por uma rede MLP [Jain et al., 1996].

O uso do algoritmo de retro-propagao (backpropagation) para o treinamento de redes MLP sistemtico. Um ponto interessante de ser observado que os erros de classificao e o erro mdio quadrtico (Mean Squared Error MSE) podem variar em sentidos opostos. O erro mdio quadrtico sensvel diferena entre a resposta desejada e a atual, enquanto que o nmero de classificaes erradas uma quantidade digital que depende somente da maior sada [Bishop, 1995]. O algoritmo de retro-propagao pode ser aplicado a qualquer topologia do tipo direta em redes MLP, sendo necessrio somente seguir a seqncia dos trs passos indicadas na figura 11. Ele pode ser implementado de maneira eficiente usando-se a idia da rede dual, conforme indicado na figura 12.

Figura 11 Seqncia de passos para o uso do algoritmo de retro-propagao [Prncipe et al., 2000].

Figura 12 Implementao Dual do Algoritmo de Retro-Propagao [Prncipe et al., 2000].

Um classificador timo deve criar funes de discriminao arbitrrias que separem os agrupamentos de dados de acordo com a probabilidade a posteriori. A rede MLP pode fazer isto desde que: a)hajam neurnios suficientes para fazer o mapeamento; b)hajam dados em quantidade e qualidade; c)a aprendizagem convirja para o mnimo global; e d)as sadas estejam entre 0 e 1 com a soma das mesmas com valor unitrio (neurnio softmax). 3.2.4. Controle da Aprendizagem em uma Rede MLP H procedimentos sistemticos na busca pelo conjunto de pesos que produz um resultado desejado. Entretanto, esta busca deve ser controlada heuristicamente. O usurio atua na busca atravs da definio de quatro elementos: a)da seleo dos pesos iniciais; b)das taxas de aprendizagem; c)do algoritmo de busca; e d)do critrio de parada. Conjuntos finais de pesos diferentes surgem com mesma topologia e mesmo treinamento [Stanley, 1991]. Isto se deve a vrios fatores, entre eles o fato de existirem muitas simetrias no mapeamento entrada-sada, a no existncia de garantias que o problema tenha somente uma soluo, e s condies iniciais aleatrias do conjunto de pesos. Deve-se sempre lembrar que a aprendizagem um processo estocstico, e, portanto, deve-se treinar cada rede vrias vezes com condies iniciais diferentes e usar a melhor [Reed, 1999]. comum iniciar os pesos aleatoriamente. Entretanto, um neurnio na regio linear aprende mais rapidamente que na regio saturada. Em funo disto, verificou-se uma regra prtica para no-linearidade tanh: ajustam-se os pesos iniciais com varincia: 2,4 2,4 2 , (27) I I onde I o nmero de entradas do neurnio. Em redes no-lineares, como praticamente sempre o caso de uma rede MLP, a seleo do tamanho do passo muito importante. Em princpio deseja-se que o passo seja o maior possvel no incio do treinamento para acelerar a convergncia, mas ao longo do processo este valor deve diminuir para se obter uma maior preciso do resultado. Uma alternativa o uso do escalonamento do tamanho do passo, o qual pode ser dado por:

n (28) n0 um contador iterativo n0 Experimentalmente obtm-se 0 e n0. Se 0 muito grande ento h divergncia. A aprendizagem torna-se muito lenta se n0 muito pequeno. Se n0 muito grande a aprendizagem torna-se demorada. O escalonamento ajuda a escapar de mnimos locais em superfcies no-convexas. A aprendizagem, seguindo-se o algoritmo de retro-propagao, requer alteraes no peso proporcionais a Ep/ w, ou seja, a descida do gradiente requer passos infinitesimalmente pequenos. Na prtica deseja-se uma constante de aprendizagem to grande quanto possvel, o que leva a oscilaes. Para evitar isto, acrescenta-se um termo , denominado momento equao de correo dos pesos [Caudill, 1992] [Fausett, 1994]: p p wij t 1 wij t (29) i aj 1

, onde

o tamanho inicial do passo

Existem vrias formas propostas de realizar a atualizao dos pesos durante o treinamento de uma rede MLP com o algoritmo de retro-propagao. Alm do uso do escalonamento simples do tamanho do passo e do uso do momento, uma variante bastante utilizada o algoritmo Delta-Bar-Delta, que atualiza o tamanho do passo em funo da variao do sinal do erro [Jacobs, 1988]. Uma outra variante baseada na mesma idia consiste no algoritmo com tamanho de passo adaptativo de Almeida [Almeida et al., 1997]. Uma deciso muito importante quando se est na etapa de treinamento de uma rede neural quando parar. Um dos critrios mais utilizados o nmero de iteraes. Entretanto, este um critrio que no garante que o erro tenha atingido um patamar aceitvel e pode levar a duas situaes diferentes. Se o nmero de iteraes for pequeno, o erro estar muito elevado ainda e ser necessrio treinar a rede novamente, com um nmero maior de iteraes. Em caso contrrio, ou seja, se o nmero de iteraes for muito alto, pode-se chegar a um valor de erro aceitvel, porm no h nenhuma indicao de qual ser o desempenho da rede para outros exemplos alm daqueles utilizados no treinamento. Uma segunda alternativa para determinar o momento de parada do treinamento consiste em se observar o erro mdio quadrtico (MSE). Entretanto, este apenas uma varivel indireta em problemas de classificao. Mais do que isso, no se tem garantias de que o sistema possa atingir um valor de erro mdio quadrtico especificado. Outro procedimento utilizado consiste em se observar a taxa de decrscimo do erro mdio quadrtico, pois ela indica quando no h mais extrao de informao. Entretanto, pode ocorrer uma parada prematura no caso de regies planas da superfcie de erro. Uma das tcnicas mais utilizadas para determinar o momento adequado de se interromper o treinamento consiste no uso de um conjunto de validao. Neste caso, o conjunto de dados divido em dois subconjuntos: um conjunto de treinamento (com algo em torno de dois teros dos dados), utilizado para treinar a rede, e um conjunto de validao (com o restante dos dados), utilizado para determinar o melhor momento de parada do treinamento. O conjunto de validao apresentado entrada da rede neural a cada n pocas, calculando-se o erro para este conjunto (sendo que os pesos da rede no so corrigidos para o conjunto de validao). Quando o erro no conjunto de validao aumentar, tem-se a indicao de que a rede est deixando de generalizar e comeando a se

tornar especfica para os dados de treinamento. Este procedimento implica em no se utilizar uma parcela dos dados para a determinao da rede, o que pode ser um inconveniente quando no se dispe de uma grande quantidade de dados [Cohen, 1995]. Embora no exista um consenso em relao a quantos dados so suficientes para que uma rede modele adequadamente os dados, tem-se uma regra prtica que um nmero aproximado de padres N requerido para classificar exemplos de teste com um erro , em uma rede com W pesos dado por:

(30)

considerando-se dados representativos. Quando isto no acontece, tem-se o problema inverso, ou seja, dado um conjunto limitado de exemplos, como criar uma rede com tamanho mnimo que no permita a ocorrncia do sobre-ajuste [Pham, 2000]. Uma alternativa o uso de conexes esparsas da camada de entrada para a camada escondida, ou ento o uso de pr-processamento para reduzir a dimensionalidade dos dados. Algumas heursticas para melhorar o tempo de treinamento e o desempenho de redes MLP so as seguintes: a)Normalizar os dados em relao faixa de ativao da rede; b)Usar no-linearidade do tipo tangente hiperblica; c)Usar neurnios do tipo softmax na camada de sada, os quais fazem com que a soma das sadas tenha um valor unitrio; d)Normalizar o sinal desejado ligeiramente acima ou abaixo do limite (p.ex. 0,9 e no 1); e)Adicionar um valor constante de 0,05 na derivada da no-linearidade; f)Ajustar um tamanho do passo maior nas camadas mais prximas da entrada; g)Em aprendizagem online, alterar a seqncia do conjunto de treinamento periodicamente; h)Inicializar os pesos da rede na regio linear da no-linearidade; i)Usar mtodos de aprendizagem mais sofisticados (delta-bar-delta, gradiente conjugado etc.); j)Sempre ter mais padres de treinamento que o nmero de pesos na rede e treinar a rede at que o MSE se torne menor que /2; k)Usar validao cruzada para parar o treinamento; l)Executar o treinamento da rede vrias vezes para medir o desempenho. 3.3. Redes Construtivas Um dos problemas quando da definio de uma topologia de uma RNA em camadas consiste em determinar o nmero das mesmas e a quantidade de neurnios em cada uma. Cada uma das possveis configuraes conduz a comportamentos diferentes. Se o nmero de camadas e neurnios por camada for muito maior que o necessrio, haver uma tendncia de sobre-ajuste (overfitting), isto , a rede treinar bem, atingindo um valor baixo para o erro, mas ter um desempenho ruim no conjunto de testes (e no subseqente uso em campo). Para evitar isto, busca-se a rede de menor tamanho que cumpra a sua funo. Entretanto, se o tamanho da rede for muito pequeno, a mesma poder ser incapaz de atingir o desempenho desejado mesmo durante o treinamento [Vonk, 1997]. Para tentar diminuir este problema existem duas estratgias para a escolha de uma topologia para uma rede neural:

a)Redes Construtivas: Parte-se de uma rede bsica, do tipo perceptron, e aumenta-se gradativamente a quantidade de ligaes, atravs do aumento do nmero de camadas e de neurnios por camada, at que o desempenho seja satisfatrio; b)Redes com Poda: Parte-se de uma rede grande, que resolve o problema e retiram-se conexes (que implicam em reduo do nmero de neurnios e/ou nmero de camadas) at atingir a rede de tamanho mnimo que satisfaa os requisitos. A seguir sero apresentadas algumas estratgias para redes construtivas. 3.3.1. Algoritmo da Torre (Fig 13):

Figura 13 Esquema de uma RNA usando o Algoritmo da Torre.

As caractersticas principais do algoritmo da Torre so: a)Todas as clulas intermedirias e de sada vem as de entrada e a imediatamente anterior; b)Usa-se o algoritmo do bolso com catraca para treinar cada clula intermediria e de sada; c)Quando uma clula est treinada seus pesos so congelados e treina-se a prxima clula no caminho para a sada. O algoritmo da Torre pode ser executado da forma descrita a seguir. Inicialmente usa-se o algoritmo do bolso para gerar um modelo de clula nica e congelam-se seus pesos aps o treinamento. Em seguida, cria-se uma nova clula que v as p entradas mais a ativao da clula mais recentemente treinada. Feito isto, executa-se o algoritmo do bolso com catraca para treinar os p+2 pesos (incluindo bias) para esta clula. Se a rede tem desempenho melhorado com a nova clula, os seus pesos so congelados e retorna-se ao passo anterior criando uma nova clula; caso contrrio remove-se a ltima clula inserida e o processo terminado. 3.3.2.Algoritmo da Pirmide (Fig 14): As caractersticas do algoritmo da Pirmide so idnticas s do algoritmo da torre, exceto que cada nova clula recebe conexes de todas as outras clulas. Embora as conexes e pesos adicionais paream melhorar a sua aprendizagem, as simulaes no foram conclusivas. 3.3.3.Algoritmo de Correlao em Cascata As caractersticas do algoritmo de correlao em cascata so ter um topologia similar pirmide, usar ativao contnua (sigmide) e em cada estgio, adiciona-se e treina-se uma nova clula intermediria e treina-se novamente a clula de sada (que tem mais uma entrada). O algoritmo de correlao em cascata trabalha basicamente em duas etapas. Inicialmente treina-se a nova clula para a correlao com o erro residual da clula de

sada. Usando uik para indicar o valor de ui para o exemplo de treinamento k e x indicar a mdia da varivel x sobre todos os N exemplos de treinamento, busca-se maximizar

Figura 14 Rede construda usando o Algoritmo da Pirmide.


N

ui
k 1

ui

Ck

un

un

(31)

Na etapa seguinte, usa-se o mtodo da descida do gradiente para encontrar pesos {wi,j} que maximizem . A seguir congelam-se os pesos para a nova clula e treina-se novamente a sada usando retro-propagao para encontrar wn,i. 3.3.4.Algoritmo do Telhado (figura 15)

Figura 15 Rede Neural construda segundo o Algoritmo do Telhado.

As principais caractersticas do algoritmo do Telhado so: a construo ocorre em camadas onde clulas da camada L recebem ativaes somente da camada L-1, a clulamestre da camada L classifica corretamente mais exemplos que aquela da camada L-1, e as clulas subordinadas garantem que no existem dois exemplos de treinamento com classificaes diferentes que tenham o mesmo conjunto de ativaes na camada L. O algoritmo do telhado atua executando as aes descritas a seguir. Inicialmente faz-se a camada L = 2 (camada 1 a camada de entrada). Em seguida, usa-se o algoritmo do bolso com catraca para criar a clula-mestre para a camada L usando todas as ativaes da camada L-1. Se a clula-mestre da camada L classifica corretamente todos os exemplos de treinamento, ento terminar. Caso contrrio, continua-se a adicionar clulas subordinadas at que a camada L se torne fiel. Deve-se encontrar um subconjunto de

exemplos de treinamento de tamanho mximo com mais de uma classificao, que produz as mesmas ativaes para todas as clulas na camada L. Usa-se ento o algoritmo do bolso com catraca para treinar uma nova clula subordinada para a camada L usando somente o subconjunto de exemplos de treinamento do passo anterior. Neste momento a camada L tornou-se fiel. Fazer L= L + 1 e retornar ao segundo passo. 3.3.5.Algoritmo Grandioso (figura 16): As caractersticas do algoritmo Grandioso so: entradas e sadas discretas em {+1,1}, o treinamento de uma nica clula un usando o algoritmo do bolso com catraca, no caso de dados no separveis linearmente treinam-se unidades un+ e un- para corrigir os erros de un, a unidade un+ fornece reforo positivo quando un classifica incorretamente uma sada -1, o mesmo acontecendo com a unidade un- com sada +1, aps o treinamento un+ e unso unidas a un por grandes pesos positivos e negativos respectivamente, e se un+ e un- no classificam seus respectivos conjuntos de treinamento repete-se a construo recursivamente.
u + un un

Figura 16 Rede Construda segundo o princpio do Algoritmo Grandioso.

4. Aproximao de Funes
4.1. Introduo A tarefa de regresso consiste na busca da representao do relacionamento entre os dados de entrada e sada, onde a sada representada por uma ou mais variveis contnuas. J na tarefa de classificao considera-se que a varivel de sada pertence a uma de vrias classes e o objetivo separ-la nas classes to corretamente quanto possvel. A tarefa mais genrica chamada de aproximao de funes e ela transforma-se na regresso linear com o uso de topologias lineares ou em classificao com o uso de funes especiais chamadas funes indicadoras. O objetivo da aprendizagem consiste ento em descobrir a funo de mapeamento f( ), dado um nmero finito (na prtica desejvel pequeno) de pares entrada-sada (x,d). As redes neurais so teis para aproximao de funes porque elas so aproximadores universais e eficientes, e porque elas podem ser implementadas como uma mquina de aprendizagem. Podemos definir o objetivo da aproximao de funes como sendo: Em uma rea compacta S do espao de entrada descrever uma funo f(x), pela combinao de funes i(x) mais simples

x, w f

wi
i 1

(32)

onde wi so elementos reais do vetor w=[w1,,wN] tais que f x x, w f (33)

x, w chamada de funo aproximante e pode ser arbitrariamente pequeno. A funo f e as funes { i(x)} so chamadas de funes elementares.
As decises bsicas na aproximao de funes consistem na escolha das funes elementares { i(x)}, em como calcular os pesos wi, e na seleo do nmero de funes elementares. Se o nmero de vetores de entrada xi igual ao nmero de funes elementares { i(x)} a soluo torna-se

(34)

Uma condio importante neste caso que a inversa de deve existir, e, portanto, para a escolha para as funes elementares tem-se como requisito que -1(x) deve existir. Isto obtido se as funes elementares constiturem uma base, isto , se elas forem linearmente independentes, ou seja,

w1

wN

0 sse

w1 ,

, wN

(35)

Pode-se admitir a hiptese simplificadora seguinte: impor que as funes elementares usem bases ortonormais, ou seja,
S i

x dx

ij

(36)

onde (x) a funo delta de Dirac Alguns exemplos de funes elementares so a funo sinc (figura 17), a srie de Fourier (figura 18) e a wavelet (figura 19).

Figura 17 Funo elementar sinc.

Figura 18 Funo elementar do tipo srie de Fourier.

Figura 19 Wavelet.

Existem diversas bases possveis para a aproximao de funes na rede MLP. A diviso mais geral em relao s funes elementares utilizadas a seguinte: a)funes globais, quando as funes utilizadas compreendem todo o espao de entrada; e b)funes locais, quando as funes utilizadas respondem de maneira especial a uma rea limitada do espao de entrada. Uma rede MLP com uma camada escondida e com um neurnio de sada linear pode ser considerada como uma implementao de um sistema para aproximao de funes, onde as bases so os neurnios escondidos. O neurnio sigmoidal responde a todo o espao de entrada, ou seja, a MLP implementa uma aproximao com funes elementares globais. A tarefa de aproximao de funes usando rede MLP tem as seguintes caractersticas: a)A rede MLP realiza aproximao de funes com um conjunto adaptativo de bases, determinados a partir dos dados entrada-sada; b)As bases so alteradas em funo dos dados, ou seja, o espao de projeo dependente dos dados; c)O treinamento mais difcil pois no somente a projeo como tambm a base est sendo alterada; d)As representaes so mais compactas; e)Devido alta conectividade e natureza global das funes elementares, um bom ajuste obtido com poucas bases, isto , com poucos neurnios escondidos;

f)O treinamento mais difcil, pois as bases no so ortogonais entre si. As redes MLP so mais eficientes que polinmios para aproximao de funes em espaos de alta dimenso. Um exemplo de resultado obtido est apresentado na figura 20. A rede MLP pode ser utilizada tanto para classificao quanto para aproximao de funes. Entretanto, em termos de projeto as duas situaes diferenciam-se pelos seguintes fatores:

Figura 20 Aproximao de funes com uma rede MLP com 4 neurnios escondidos.

a)Quanto ao elemento de sada: Para aproximao de funes usa-se um neurnio com funo de ativao linear, enquanto que para classificao o neurnio deve utilizar uma funo de ativao no-linear; b)Quanto ao ponto de operao dos neurnios escondidos: Para aproximao de funes eles devem estar longe da saturao para que mapeamento seja suave, enquanto que para classificao os neurnios escondidos devem operar na regio de saturao, j que as sadas devem tender para 1 ou 0. 4.2. Rede RBF Utilizando-se uma base alternativa em redes MLP para sistemas no-lineares, tem-se a chamada rede RBF (Radial Basis Function). Para as funes de base radial (RBF) tem-se a condio
i

x xi

(37)

onde ( ) normalmente uma funo gaussiana, ou seja,

Gx Gx

exp exp

x2 , 2 2 xT 2
1

unidimensional
(38)

, multidimensional

com varincia 2 ou covarincia = 2I. Uma gaussiana centrada em xi com varincia 2, uma funo elementar local. Um exemplo em uma dimenso pode ser visto na figura 21.

A aproximao de funes em uma rea limitada do espao de entrada requer o posicionamento das gaussianas localizadas para cobrir o espao, o controle da largura de cada gaussiana e o ajuste da amplitude de cada gaussiana. Como as bases RBF so locais, a alterao em uma delas no perturba a aproximao em outras reas do espao. Isto implica em que se necessita exponencialmente mais RBFs para cobrir espaos de alta dimenso. Entretanto, com os centros j determinados, as RBFs treinam eficientemente, j que o erro linear nos pesos. Mais do que isso, se os centros forem otimamente ajustados, garante-se a convergncia para o mnimo global [Sundararajan, 1999].

Figura 21 Aproximao de funes usando uma rede RBF com funo elementar gaussiana.

Se for usado o critrio do erro mdio quadrtico durante o treinamento, pode-se ter uma interpretao probabilstica do mapeamento, pois a rede MLP com RBF realiza regresso no-linear. Ela sendo capaz de descobrir qualquer relao entrada-sada determinista com rudo aditivo de mdia zero. Os requisitos para isto so de que haja a convergncia para mnimo global, que o nmero graus de liberdade seja suficiente e de que existam dados suficientes para o treinamento. Existem vrios meios de realizar a adaptao do centro e da varincia das gaussianas. O mtodo mais simples consiste em distribuir uniformemente os centros das gaussianas. Para funes que cobrem todo o espao isto pode ser realizado sem grandes prejuzos. Entretanto, se existirem agrupamentos de dados este procedimento no indicado. Duas alternativas so o mtodo supervisionado e o mtodo auto-organizado. O mtodo supervisionado faz uso do algoritmo de retro-propagao para treinar RBFs. O uso do mesmo implica em se ter um treinamento lento e tambm faz com que as varincias se tornem muito grandes e a RBF perca a sua natureza de processo local. J no mtodo auto-organizado de treinamento de RBFs, existem duas etapas: a)Na primeira etapa ocorre a adaptao independente dos pesos da primeira camada. Os agrupamentos de dados atuam como atratores para os centros das gaussianas e as varincias so estimadas para cobrir a distribuio dos dados de entrada; b)Na segunda etapa acontece a adaptao dos pesos de sada, usando o algoritmo LMS, tendo em vista que o problema de adaptao linear nos pesos. Nesta etapa mantm-se a primeira camada congelada.

Uma das decises mais importantes a seleo do nmero de bases, pois ela define as caractersticas principais do sistema. Com poucas bases elementares a aproximao fraca. Alm disto o nmero de bases dependente do tamanho da rede e dos valores dos coeficientes. O uso de um polinmio de grau muito baixo causa bias do modelo, enquanto que um polinmio de grau muito alto resulta em grande oscilao, ou seja, varincia do modelo. Por isto, busca-se um compromisso entre baixo bias e baixa varincia ao longo do domnio.

5. Redes Temporais
5.1. Introduo Problemas que no envolvem o tempo (tais como classificao de padres) so chamados estticos. J os sistemas dinmicos que envolvem uma ou mais variveis so funes do tempo, o qual estabelece uma ordem nos dados de entrada. O tempo um continuum e as variveis fsicas tambm so contnuas, compondo os sinais analgicos. O trabalho com sistemas dinmicos mais complexo do que com sistemas estticos, pois embora o tempo ajude a remover a ambigidade dos dados, torna-se necessrio o uso de uma memria de curto prazo. A primeira etapa de trabalho nos sistemas dinmicos envolve a amostragem e quantizao. A amostragem consiste na obteno peridica da varivel de interesse, e a quantizao refere-se ao valor discretizado desta varivel. Em um conversor analgicodigital, a cada T segundos, chamado perodo de amostragem, o sinal analgico x(t) medido, produzindo um sinal {x(nT)}, chamado seqncia ou srie temporal (conforme a figura 22):
x nT x T , x 2T , x 3T , , x NT

(39)

Figura 22 Conversor analgico-digital.

Denomina-se elemento de atraso ideal, denotado por z-1, um componente que atrasa o sinal em uma amostra. Uma linha de atraso um sistema com uma entrada e vrias sadas compostas pela ligao em cascata de vrios operadores de atraso (figura 23). A maioria dos sistemas dinmicos trabalha com a noo de janela de tempo. O tamanho do espao de reconstruo determina o comprimento N de uma janela de tempo que desliza sobre a srie temporal completa (figura 24). Este comprimento corresponde ao tamanho da linha de atraso e estabelece a dimensionalidade do espao de reconstruo. A filtragem pode ser vista como uma projeo, onde o objetivo de um sistema linear escolher uma direo de projeo tal que a informao desejada contida no sinal de

entrada seja preservada. Um combinador linear (FIR) com N+1 pesos tem uma memria de somente N amostras. Portanto, filtragem uma distoro seletiva do sinal de entrada, definida pelo usurio. Considerando-se que a resposta desejada est disponvel, pode-se usar a idia de adaptao automtica para criar filtros. Um filtro adaptativo um tipo especial de rede neural linear (sem bias), ou seja, pode ser estudada no espao de vetores lineares. Se a ordem de um filtro FIR grande o suficiente, qualquer funo de transferncia pode ser criada com o combinador linear.

Figura 23 Linha de atraso.

Figura 24 Janela de tempo deslizante.

O combinador linear adaptativo tem o mesmo diagrama de blocos da regresso. Portanto, a funo do combinador linear adaptativo pode ser interpretada como uma regresso linear (sem bias) da srie temporal de entrada para a srie temporal desejada. importante lembrar que existem diferenas entre os sistemas neurais e os sistemas adaptativos. Embora as RNAs tenham pesos treinveis, estes so fixados durante o teste, ou seja, a RNA no adaptvel aps o treinamento. J os filtros adaptativos esto sendo continuamente adaptados, no havendo diviso em conjunto de treinamento e conjunto de teste, ou seja, eles rastreiam as alteraes na estrutura temporal. Portanto, as RNAs modelam os dados como memria de longo prazo em seus pesos, enquanto que o combinador linear basicamente um rastreador, ou seja, possui somente memria de curto prazo. Em sries temporais usam-se muitas vezes as redes hebbianas (que sero vistas no tpico 6). O neurnio estima os autovalores e auto-vetores da auto-correlao de entrada, o qual um sinal temporal. Esta verso discreta chamada PCA temporal, tambm chamada de Transformada de Karhunen-Loeve (figura 25).

Os mapeadores estticos implementam transformaes estticas entre a entrada e a sada. Portanto, a resposta calculada instantaneamente e no se altera se a entrada mantida constante, e o tempo de transiente nulo. J o combinador linear preserva os valores anteriores da entrada na linha de atraso e a resposta obtida aps determinado tempo, resultando em um tempo transiente finito. Comparando a memria de curto prazo com a memria de longo prazo verifica-se que os mapeadores estticos funcionam como repositrios de informaes do passado, no diferenciando relaes temporais, pois a informao temporal est colapsada nos pesos. Os sistemas dinmicos so sensitivos seqncia de apresentao dos dados e os pesos codificam diferenas dentro da janela temporal de observao.

Figura 25 Rede com linha de atraso.

As redes neurais dinmicas so topologias projetadas para incluir relaes temporais de forma explcita no mapeamento entrada-sada. Em particular, as TLFN (Time-Lagged Feedforward Network) integram a estrutura de um filtro linear dentro de uma rede neural para estender a capacidade de mapeamento no-linear de uma rede com a representao do tempo. Neste caso, a linha de atraso do filtro linear chamada de memria de curto prazo. Quando se realiza a extrao de informaes temporais busca-se o reconhecimento de padres temporais a partir de um sinal x(n) localmente estacionrio, M-dimensional. Para tanto, a ordem de amostragem deve ser preservada quando se realiza processamento temporal, surgindo a necessidade de se definir como selecionar o tamanho da janela temporal, a qual determina o tamanho do espao de reconstruo (figura 26). Uma melhoria na eficincia da representao temporal obtida levando a memria para dentro da mquina de aprendizagem. Isto implica na escolha do tamanho da janela temporal e da escolha da importncia das amostras na janela. Nestes modelos ocorre apenas o recebimento da entrada atual, como no modelo biolgico e o sistema de aprendizagem pode utilizar a filtragem (informao no domnio da freqncia), resultando em um novo paradigma para processamento de padres temporais (figura 27). Este tipo de rede, chamada de TDNN (Focused Time-Delay NN), dita concentrada (focused), pois indica que existe memria somente na camada de entrada. Na TDNN substituem-se os neurnios de entrada de uma MLP por uma linha de atraso. O ponto positivo que ela pode ser treinada com o algoritmo de retro-propagao esttico, desde que o sinal desejado esteja disponvel a cada instante. Por outro lado surge como

dificuldade de projeto, alm daquelas da MLP, tambm a escolha do tamanho da linha de atraso (figura 28).

Figura 26 Janela temporal utilizada por uma mquina de aprendizagem.

Figura 27- Sistema neural janela de tempo interna usa apenas uma amostra por vez.

As principais tarefas nas quais se usa uma TDNN so: a)Classificao, ou seja, para encontrar diferentes padres temporais; b)Identificao de sistemas, onde se busca tornar a sada atual da rede o mais prxima possvel da sada do sistema a ser modelado; c)Previso, onde o objetivo aproximar a prxima amostra como sendo uma combinao no-linear das amostras anteriores do sinal de entrada. A rede TDNN representa um compromisso entre simplicidade da estrutura da rede e poder de processamento. A figura 29 mostra um novo neurnio com memria, que um mecanismo de memria de curto prazo. Este neurnio com memria recebe vrias entradas xi(n) e produz vrias sadas y=[y0(n), ,yD(n)]T, que so verses atrasadas da entrada combinada y0(n):

yk n

g yk

yo n
j 1

xj n

(40)

Uma rede TLFN (Time-Lagged Feedforward NN) um arranjo em avano de neurnios com memria e neurnios no-lineares (por exemplo uma TDNN). A memria de curto prazo em TLFNs pode ser de qualquer tipo e distribudas em qualquer camada. Elas possuem as propriedades interessantes das redes em avano e podem capturar a informao presente no sinal de entrada.

Figura 28 Rede TDNN com k atrasos de tempo.

Nas TLFN focadas, os neurnios com memria esto na camada de entrada. Nelas h dois estgios: primeiramente h a representao temporal linear (com a memria) e em seguida h o estgio de mapeamento (usando uma rede MLP ou RBF) conforme a figura 30. Usando uma TLFN com uma MLP como mapeador, ficam normalmente acoplados a dimenso do espao de projeo (nmero de filtros de memria) e o nmero de neurnios de entrada da MLP, embora no haja razo para acoplar o tamanho do espao ao nmero de neurnios escondidos. Pode-se desacoplar o nmero de eixos do nmero de neurnios escondidos atravs de uma camada extra de neurnios lineares entre ambos. Quando se utiliza uma rede neural para realizar processamento temporal deve-se sempre atentar para o problema da estabilidade. No caso de uma rede TLFN deve-se criar um mecanismo de memria de curto prazo estvel, o que no muito complexo. No caso de redes recorrentes bem mais difcil este clculo. Em funo disto, o treinamento de uma rede TLFN mais fcil que o treinamento de uma rede recorrente genrica. Entretanto, apesar da rede TLFN funcionar como um mapeador universal, certas funes exigem um tamanho muito grande da rede para atingir as caractersticas especificadas.

Figura 29 O neurnio com memria.

Figura 30 Uma rede TFLN focada com uma entrada.

A rede de Elman e a rede de Jordan so redes mais simples que as anteriores, sendo baseadas em neurnios de contexto [Golden, 1995]. Elas so fceis de treinar (pois os parmetros de realimentao so fixos), e realizam o mapeamento com topologias pequenas, onde no h recorrncia no caminho entrada-sada (figura 31). As redes de Elman e Jordan podem ser treinadas de forma aproximada com o algoritmo de retro-propagao. A memria engloba vrias camadas, realizando um mapeamento no-linear dinmico. Elas foram usadas inicialmente para reconhecimento de seqncias (redes seqenciais). A rede de Jordan pode associar a mesma entrada fixa a vrias seqncias de sada em funo do contexto.

6. Aprendizagem Hebbiana
O princpio da aprendizagem estudado por Hebb diz que a comunicao entre dois neurnios facilitada pela excitao repetida dos mesmos [Hebb, 1949]. A Regra de Hebb diz que se a sada do i-simo neurnio yi e a ativao do j-simo neurnio xj, ento

wij

x j yi

(41)

onde o tamanho do passo. Para aplicar a regra de Hebb, somente os sinais de entrada precisam fluir atravs da rede, ou seja, a regra de Hebb local ao peso. A regra de Hebb uma regra biologicamente plausvel e os modelos biolgico e artificial coincidem (figura 32).

Figura 31 Topologia da rede de Jordan e da rede de Elman.

Podemos analisar o efeito da atualizao hebbiana considerando que a mesma atualiza os pesos de acordo com

Figura 32 Sistema biolgico e artificial.

wn 1
na qual n o nmero da iterao e ativao linear, y = wx e, portanto,

wn

xn yn

(42)

o tamanho do passo. Para um neurnio com funo de

wn 1

wn 1

x2 n

(43)

Pela equao anterior, observa-se que a aprendizagem hebbiana intrinsecamente instvel, produzindo pesos muito grandes, o que torna o seu uso no prtico. Pode-se realizar outra anlise do neurnio com vrias entradas (figura 33). Em notao vetorial a sada do neurnio
y wT x x T w ou seja, y w x cos

(44)

Assumindo que as entradas e os pesos esto normalizados, um valor de y maior significa que a entrada est mais prxima da direo do vetor peso (figura 34). Durante a

aprendizagem os dados expostos aos pesos condensam toda informao nos valores dos pesos. Portanto, os pesos representam a memria de longo termo.

Figura 33 Neurnio linear com D entradas.

O neurnio hebbiano simples e cria uma medida de similaridade (produto interno) no espao de entrada de acordo com a informao contida nos pesos. A sada do neurnio responde em nvel alto ou baixo, de acordo com a similaridade entre a entrada atual e o que ele recorda do treinamento. Desta forma, o neurnio hebbiano implementa um tipo de memria chamada memria associativa.

Figura 34 Sada de um neurnio linear no espao vetorial.

Na aprendizagem batch a regra de Hebb atualiza os pesos com uma estimativa amostral da funo de auto-correlao
w w0 R x onde R x E xxT

(45)

Com a regra de Hebb, o algoritmo faz a subida do gradiente (busca do mximo) dos dados de entrada. A regra de adaptao on-line simplesmente uma verso estocstica e tem o mesmo comportamento. No caso da representao de dados em espaos multidimensionais, tem-se que os pesos da rede treinada com a regra de aprendizagem de Hebb indicam a direo do gradiente do campo de entrada. A sada da rede indica a projeo de maior varincia, ou seja, os eixos do sistema principal de coordenadas onde a sada projetada tem a maior varincia. Esta , portanto, uma forma de criar pesos de rede ajustados s estatsticas de segunda ordem dos dados de entrada (figura 35).

Figura 35 Sistema de coordenadas principais.

Para criar uma forma til da aprendizagem de Hebb necessrio normalizar os pesos. A forma mais simples de se fazer isto foi proposta por Oja [Oja, 1982]: wi n 1
i

wi n wi n

y n xi n y n xi n
2

(46)

Assumindo um tamanho de passo pequeno, Oja aproximou a equao anterior por


wi n 1 wi n wi n 1 y n xi n y2 n y n wi n xi n y n

(47)

A regra de Oja pode ser considerada a atualizao de Hebb com uma atividade normalizada. Ela evita o crescimento ilimitado dos pesos aplicando um termo de esquecimento proporcional ao quadrado da sada. Entretanto, se o padro no estiver presente freqentemente, ele ser esquecido, j que a rede esquece associaes antigas. A Regra de Oja implementa a idia do mximo autofiltro, pois o treinamento de um neurnio linear com o algoritmo de Oja produz um vetor de pesos que o autovetor da matriz de autocorrelao de entrada e na sada o maior autovalor [Chen, 1984]. O vetor de pesos obtido usando o algoritmo de Oja indica a direo onde os dados produzem a maior projeo. Uma rede com um nico neurnio, treinada com a regra de Oja, extrai o mximo possvel de informao da entrada. Uma projeo de um agrupamento de dados nos componentes principais pode ser vista na figura 36 [Hinton, 1999]. O associador linear, tambm chamado de memria associativa linear (LAM) fornece um paradigma alternativo memria computacional. A topologia do associador linear, treinado com a regra hebbiana forada pode ser usado como uma memria associativa. Tal dispositivo pode ser treinado para associar uma entrada x a uma resposta d. Ento, na ausncia de d, x pode produzir uma sada y que similar a d.

Figura 36 Projeo de um agrupamento nas componentes principais.

As topologias da LAM e do problema do regressor linear so semelhantes. Isto tem algumas implicaes. Se observarmos a relao entre a quantidade de padres na camada de entrada veremos que na LAM tm-se mais equaes que dados, enquanto que no regressor tem-se mais dados que equaes. Portanto, a rede linear pode memorizar (trabalhando como uma LAM) ou generalizar as propriedades estatsticas dos pares entrada-sada (trabalhando como um regressor). Uma funo de aproximao com um pequeno nmero de exemplos (para regresso no-linear ou classificao) corresponde na realidade a uma memria associativa e, portanto, no generaliza bem.

7. Rede de Kohonen e Rede ART


Na natureza, a competio por recursos representa uma maneira de diversificar e otimizar a funo dos elementos de um sistema distribudo, conduzindo otimizao a nvel local sem controle global para assinalar recursos do sistema [Haykin, 1999]. Da mesma forma, os neurnios de redes competitivas recebem informao idntica das entradas mas competem pelos recursos atravs de conexes laterais na topologia, ou atravs da formulao da regra de aprendizagem, especializando-se em reas diferentes da entrada. A competio intrinsecamente uma operao no-linear e, portanto, o tratamento matemtico no est to desenvolvido como em outras reas de sistemas adaptativos. Existem dois tipos bsicos de competio: a competio forte (hard), na qual somente um neurnio ganha os recursos, e a competio fraca (soft), na qual h um vencedor, mas seus vizinhos tambm recebem uma parte dos recursos. A rede competitiva mais simples chamada de rede o-vencedor-leva-tudo (winnertakes-all), a qual consiste de uma camada de neurnios, todos com mesma entrada. O neurnio com melhor sada o vencedor. Na rede o-vencedor-leva-tudo no h controle global. Se houverem N entradas, a sada ser dada por:

yk

1, 0,

para o maior x k para os demais

(48)

Na rede o-vencedor-leva-tudo h realimentao lateral entre os neurnios competitivos e a sada leva algum tempo at estabilizar, conforme a figura 37. Embora a amplitude da diferena na entrada possa ser pequena, a sada bem definida.

Figura 37 Rede o-vencedor-leva-tudo.

O objetivo da aprendizagem competitiva criar uma regra de aprendizagem que possa ser aplicada a uma topologia de camada nica e que atribua os neurnios a reas diferentes do espao de entrada. A aprendizagem competitiva um paradigma de aprendizagem no-supervisionada, a qual extrai informao somente dos padres de entrada sem a necessidade de uma resposta desejada. Grossberg props uma rede como um nico neurnio de McCulloch-Pitts treinado com a regra estrela (instar rule) [Grossberg, 1982]:

wij n 1

wij n

yi n x j n

wij n

(49)

na qual y(n) a sada, limitada aos valores zero e um, ou seja, o peso atualizado somente se o neurnio est ativo (figura 38).

Figura 38 Rede Instar de Grossberg.

Na rede Instar, quando o neurnio est ativo, a rede move os pesos na direo da entrada em uma linha direta proporcional ao tamanho de . Um neurnio treinado com a regra instar fornece sada 1 para exemplos prximos do padro de treinamento (com o bias controlando a vizinhana), ou seja, capaz de reconhecer se um vetor padro similar uma classe armazenada nos pesos (figura 39).

Figura 39 Movimento dos pesos na regra instar.

Verifica-se aqui que regra instar similar regra de Hebb e de Oja:


Regra de Hebb : w Regra de Oja : w Regra instar : w yx yx y 2 w yx yw

(50)

Como acontece na regra de Oja, o segundo termo da regra instar evita a instabilidade presente na regra de Hebb. Usando a regra instar com um neurnio no-linear, padres no-freqentes so preservados, enquanto o neurnio estiver inativo. A regra competitiva torna-se ento

w i* n 1

w i* n

xn

w i* n

(51)

na qual i* o neurnio que venceu a competio. Todos os outros neurnios mantm seus pesos anteriores. O tamanho do passo (0 < < 1) controla o tamanho da atualizao em cada iterao. O neurnio mais prximo entrada atual deve vencer a competio, portanto precisa-se de uma medida de proximidade. Usando-se para tanto o produto interno, deve-se levar em conta que o mesmo sensvel no somente s direes mas tambm ao comprimento dos vetores, portanto a entrada e os pesos devem ser normalizados. Uma alternativa ao produto interno o uso da distncia Euclidiana como mtrica para definir o vencedor:

vencedor

max i Wi x

ou vencedor

min i x wi

(52)

Como a raiz quadrada uma funo computacionalmente cara, a distncia mtrica menos eficiente que o produto interno:
x w
k

xk

wk

(53)

As vezes a mtrica de Manhattan usada, pois s envolve subtraes e valores absolutos. Usando a regra competitiva, uma rede linear de camada nica agrupa e representa dados que residem em uma vizinhana do espao de entrada. Cada vizinhana representada por um nico neurnio. Os pesos de cada neurnio representam pontos no espao de entrada chamados vetores prottipos. Se os vetores forem unidos por uma linha e forem traadas perpendiculares na metade de cada uma, as mesmas se encontraro e

formaro uma estrutura semelhante a uma colmia de abelhas. Esta estrutura chamada de tesselao de Voronoi (figura 40).

Figura 40 Tesselao de Voronoi.

Na tesselao de Voronoi, as amostras de dados que esto nas regies so assinaladas aos correspondentes vetores-prottipo. Disto observa-se que agrupamento uma transformao de contnuo para discreto. Do ponto de vista terico, agrupamento uma forma de estimao no-paramtrica de densidade. O algoritmo no-neural tpico de agrupamento o k-mdio, o qual encontra a melhor diviso de N amostras em k grupos, tal que a distncia total entre as amostras agrupadas e seus respectivos centros, isto , a varincia total, seja minimizada. As redes competitivas implementam uma verso on-line do agrupamento k-mdio em vez das operaes de adaptao batch. Agrupamento o processo de agrupar amostras de entradas que so vizinhos espaciais, sendo um processo no-supervisionado. J a classificao consiste na rotulao de amostras de entrada atravs de algum critrio externo, sendo um processo supervisionado. Como agrupamento no-supervisionado, ele no pode ser usado diretamente para classificao. Em vrias aplicaes prticas, os dados de cada classe tendem a ser densos e, portanto, h um vale natural entre as classes. Nestes casos o agrupamento pode ser utilizado como um pr-processador para a classificao. Com isto obtm-se redes de classificao mais simples. A competio fraca (soft competition) cria uma bolha de atividade no espao de sada, onde o neurnio mais prximo o mais ativo e seus vizinhos so menos ativos. Uma rede softmax pode ser criada usando realimentao lateral, onde os pesos laterais variam com a distncia dos neurnios conectados. A competio fraca cria uma relao de vizinhana entre neurnios, isto , eles ligam-se por uma mtrica de similaridade. Isto implica que mapeamentos topolgicos do espao de entrada para o espao dos neurnios so possveis. A rede SOM (Self-Organizing Map) de Kohonen realiza um mapeamento de um espao contnuo de entrada para um espao discreto de sada, onde as propriedades topolgicas da entrada so preservadas. A rede SOM de Kohonen uma rede linear de

camada nica totalmente conectada, cuja sada organizada geralmente em uma ou duas dimenses, conforme a figura 41. Quando a SOM se adapta a entradas de altas dimenses, ela deve se estender e enrolar para cobrir o espao de entrada (figura 42).

Figura 41 Rede SOM de Kohonen com sada em duas dimenses.

O algoritmo SOM de aprendizagem assume que a rede de inibio lateral produz uma distribuio gaussiana centrada no neurnio vencedor. Como aplica-se a regra de aprendizagem do tipo instar, que escala a regra competitiva pela atividade de sada de cada neurnio, a regra competitiva SOM de Kohonen torna-se

wi n 1

wi n

i ,i*

n xn

wi n

(54)

na qual a funo i,i* uma funo de vizinhana centrada no neurnio vencedor. Normalmente, tanto o tamanho do passo quanto a vizinhana diminuem com o tempo, e a funo de vizinhana normalmente uma gaussiana:
i ,i *

exp

d i ,i * 2
2

(55)

com uma varincia que decresce com a iterao. Inicialmente ela cobre todo o mapa, mas reduz-se progressivamente a uma vizinhana de zero, isto , somente o neurnio vencedor atualizado. medida que a vizinhana reduzida, a rede move-se de uma competio muito fraca (na qual quase todo neurnio atualizado) para uma competio forte (na qual somente o neurnio vencedor atualizado). H evidncias que a rede SOM cria um espao de sada discreto onde relaes topolgicas dentro das vizinhanas do espao de entrada so preservadas. A rede SOM criada de uma maneira no-supervisionada e a seleo de parmetros crucial para a preservao de topologia. A experincia mostrou que h duas fases na aprendizagem SOM: a)Fase de ordenao topolgica dos pesos, ou seja, definio das vizinhanas; e b)Fase de convergncia com o ajuste fino da distribuio de entrada.

Figura 42- Sada unidimensional e bidimensional para uma rede SOM de Kohonen.

Na fase de ordenao topolgica dos pesos, suposta tendo No iteraes, a funo de vizinhana decresce, em geral linearmente, com um raio definido por:
n
0

n 1

n N0

(56)

Normalmente a taxa de aprendizagem alta (acima de 0.1) para permitir rede se auto-organizar. Ela tambm linearmente ajustada atravs da frmula
n
0

(57)

na qual

a taxa de aprendizagem inicial e K a taxa final de aprendizagem.

A fase de convergncia a fase mais demorada, onde se mantm uma taxa de aprendizagem pequena (0.01) e usa-se a menor vizinhana (somente o neurnio vencedor ou seus vizinhos mais prximos so atualizados). A escolha do nmero de neurnios feita experimentalmente. O nmero de sadas afeta a preciso do mapeamento e o tempo de treinamento. O aumento do nmero de neurnios atualizados aumenta a resoluo mas aumenta em muito o tempo de treinamento. As principais propriedades da rede SOM so as seguintes: a)Aproximao do Espao de Entrada: A rede SOM capaz de preservar a estrutura do espao de entrada relativamente bem; b)Ordenamento Topolgico: Os neurnios na sada da rede SOM esto topologicamente ordenados no sentido de que neurnios vizinhos correspondem a regies similares no espao de entrada; c)Manuteno da densidade: Regies no espao de entrada com maior densidade de pontos so mapeadas para regies maiores no espao de sada. possvel criar classificadores a partir de redes competitivas. Uma das redes mais conhecidas neste sentido so as redes do tipo LVQ (Learning Vector Quantization). Este tipo de rede faz uso de informaes de classes para ajustar os limites das regies de

tesselao. Se a regra competitiva produz a sada certa, ela no causar alterao; entretanto, se a sada estiver errada, os pesos dos neurnios devem ser repelidos do agrupamento atual, pela regra

wi* j

xj xj

wi* j , wi* j ,

para classe correta para classe incorreta


(58)

Esta regra apresenta problemas se os dados de entrada forem multimodais. Kohonen props uma srie de redes (LVQ1, LVQ2, LVQ3 e outras) que so capazes de trabalhar melhor com dados multimodais [Kohonen, 1995]. Grossberg tambm props a rede outstar, que pode associar uma entrada escalar a um vetor de sada para recuperao de padres (figura 43). A regra de aprendizagem obtida alterando os papis das entradas com a sada, isto , fazendo-se

w ij n 1

w ij n

x j n yi n

wij n

(59)

A rede instar-outstar mapeia dados de entrada em padres de sada. Esta arquitetura pode ser usada para descoberta de grupos se a resposta desejada torna-se a entrada, d(n)=x(n) e a sada do sistema torna-se a camada competitiva. O maior problema a instabilidade devido aprendizagem instar e recursos limitados. A partir desta dificuldade surgiu o que ficou conhecido como Dilema Estabilidade-Plasticidade (D-E-P): Como fazer um sistema se adaptar, evitando-se simultaneamente que as entradas atuais destruam o treinamento passado. Para resolver o D-E-P pode-se usar a poro outstar da rede e exigir que a entrada atual esteja a uma distncia pr-especificada do centro do grupo. Grossberg criou um mtodo para adicionar novos neurnios camada competitiva quando no h ressonncia entre o dado atual e os grupos existentes. Neste mtodo, a especificao da vizinhana controlada por um parmetro de vigilncia. Esta rede chamada de ART (Adaptive Ressonance Theory). Ela capaz de se dimensionar para realizar o agrupamento de dados e pode ser usada para detectar padres no vistos anteriormente, quando cria novos grupos aps o perodo de aprendizagem [Braga, 2000]. Entretanto, o ajuste do parmetro de vigilncia delicado.

8. Extrao do Conhecimento de Redes Neurais Treinadas


8.1. Integrao entre Conhecimento Neural e Simblico Neurocomputao um dos termos continuamente ligados s redes neurais artificiais. Sua nfase est no uso e representao de conhecimento especfico do problema. Aqui aplica-se a mxima de que Conhecimento poder. A modelagem explcita do conhecimento representado por um sistema neurcomputacional continua sendo um dos principais temas de pesquisa hoje. A neurocomputao baseada em conhecimento diz respeito a mtodos e tcnicas que trabalham com a representao e processamento explcito de conhecimento onde um sistema de neurocomputao est envolvido. Historicamente ela est inspirada na IA simblica e nas redes neurais artificiais [Fu, 1993].

Figura 43 Rede outstar de Grossberg.

Existem basicamente trs tipos de arquitetura na rea: a)Abordagem Hbrida: Neste caso, os mdulos neural e simblico so componentes distintos, partilhando ou transferindo conhecimento entre si; b)Abordagem Unificada: Aqui o conhecimento modelado usando conexes locais e/ou distribudas entre os neurnios; c)Abordagem Translacional: Constitui-se um meio termo entre as abordagens anteriores. A abordagem tradicional que envolve uma representao explcita do conhecimento a de Sistemas Especialistas. Os sistemas especialistas tm como objetivo a representao e uso de grandes quantidades de conhecimento, assegurando a sua integridade, consistncia e explorao efetiva. Eles realizam uma tarefa de tomada de deciso complexa dentro de um domnio de problema bem especfico. A arquitetura de sistemas especialistas bastante modular sendo composta, geralmente, pelos seguintes mdulos: Base de Conhecimentos, Base de Fatos, Mquina (ou Motor) de Inferncia, Mecanismo de Explanao e pela Interface com o Usurio. Nos sistemas especialistas o usurio descreve o problema de maneira interativa, e a partir da o sistema deve inferir uma soluo, mesmo com informao incompleta ou imprecisa. Ele tambm deve fornecer ao usurio alguma explicao de suas concluses para justificar suas inferncias (explanaes normalmente designadas COMO? e POR QU?). Uma comparao entre as abordagens dos sistemas especialistas (tambm chamados de sistemas baseados em regras) com os sistemas neurais envolve os seguintes elementos: tamanho da tarefa, aquisio e edio do conhecimento, consideraes sobre matching parcial, consideraes sobre informao incompleta e sobre a capacidade de explanao. Existem vrias estratgias possveis para a integrao de conhecimento neural e simblico. Dentre os sistemas hbridos, podemos ter vrias abordagens, tais como: a)Dividir-e-conquistar: Consiste no particionamento do problema em unidades menores, utilizando-se em cada subunidade o paradigma mais apropriado. Um exemplo de tal

sistema foi desenvolvido para escalonamento de caminhes de transporte de cargas [Caudill, 1991]; b)RNA embutida: Neste caso a rede neural faz parte de um sistema baseado em regras. A rede neural pode ser utilizada, por exemplo, para a avaliao das condies de algumas regras, ou ainda para realizar algumas atividades da mquina de inferncia tradicional. Alguns exemplos de sistemas desenvolvidos baseados nesta forma de integrao so o sistema COLE (COnnectionist Logic programming Environment) [Kasabov and Petkov, 1992], o sistema COPE (COnnectionist Production systems Environment) [Kasabov, 1993] e o sistema FEL-EXPERT [Marik et al., 1992]; c)Implementao neural de conhecimento explcito: A idia principal nesta estratgia a de criar a rede neural utilizando-se de conhecimento explcito acerca do problema, ou seja, ao se definir a rede neural que ser treinada, os neurnios representaro conceitos, proposies etc. e as conexes entre os mesmos representaro relaes causais e dependncias lgicas. Um exemplo de sistemas baseados neste princpio o sistema RUBICON [Samad, 1988]; d)Incorporao de regras em redes neurais treinadas: Parte-se do princpio que h uma rede neural treinada para a soluo do problema e incorpora-se conhecimento explcito mesma [Mazn, 1995]; e)Extrao de regras a partir de redes neurais treinadas: Uma rede neural pode ser treinada, a partir do conjunto de dados disponveis, para resolver o problema e ento analisada para a obteno de um conjunto de regras Esta uma abordagem que pode reduzir significativamente o tempo de desenvolvimento de um sistema especialista. Alguns exemplos desta abordagem so o algoritmo VIA (Validity Interval Analysis) [Thrun, 1995] e o sistema TREPAN [Craven and Shavlik, 1996]. possvel tambm utilizar uma abordagem evolucionria para a gerao do melhor conjunto de regras, em termos de preciso e compreensibilidade, a partir de redes neurais artificiais [Santos et al., 2000]. Muitas vezes utiliza-se a denominao de sistemas neurais especialistas para alguns dos sistemas neurocomputacionais que buscam diminuir as desvantagens da representao implcita do conhecimento, introduzindo heursticas. Nestes casos, a rede neural enriquecida com outras funcionalidades para ter as caractersticas de sistemas especialistas. Alguns exemplos de sistemas neurais especialistas so o sistema MACIE (MAtrix Controlled Inference Engine) [Gallant, 1993] e o sistema EXPSYS [ima, 1995]. Uma das possibilidades de desenvolvimento de sistemas neurocomputacionais baseados na abordagem unificada consiste no desenvolvimento de arquiteturas que permitam a criao de redes neurais artificiais a partir de um conjunto de regras simblicas, tendo em vista que o conhecimento simblico sobre determinados domnios freqentemente est disponvel na forma de regras de produo [Towell, 1994]. Desta forma, conhecimento a priori sobre uma determinada aplicao pode ser embutido na etapa de definio inicial de uma rede neural, antes do treinamento. Um algoritmo que realiza esta tarefa o chamado VL1ANN [Cloete and Zurada, 2000]. Este algoritmo aceita regras que obedecem s convenes de VL1 [Theron and Cloete, 1996], sendo compostos por dados numricos contnuos e dados nominais como atributos de entrada. A rede neural gerada do tipo avante (sem conexes recorrentes), a qual pode ser treinada usando algoritmos tradicionais como o de retro-propagao na etapa

posterior gerao da mesma, permitindo o refinamento da representao do conhecimento inicial. O algoritmo VL1ANN est descrito na figura 44. 1. Codificar variveis de entrada como valores reais (numricos) 2. Para cada regra fazer 1. Para cada tomo da regra fazer 1. Codificar o tomo como nova unidade relacional na camada 1 conectada entrada na camada 0 2. Conectar todas as unidades relacionais da regra a uma nova unidade AND na camada 2 3. Conectar todas as unidades AND representando regras com a mesma concluso a uma nova unidade OR na camada 3 4. Para cada varivel de sada Attr que no esteja ortogonalmente codificada fazer 1. Mapear todas as unidades OR de Attr na camada 3 uma nica nova unidade de sada na camada 4
Figura 44 Algoritmo VL1ANN para representao de regras em redes neurais avante.

A seqncia de atividades para o desenvolvimento de arquiteturas translacionais consiste em obter conhecimento simblico, ou seja, uma forma estruturada de descrio do problema, a seguir traduzir o conhecimento em uma rede neural artificial, trein-la para revisar e refinar o conhecimento embutido na mesma, extrair o conhecimento simblico da rede neural treinada e finalmente refinar o conhecimento simblico para posterior uso. As principais caractersticas dos mtodos translacionais so as seguintes: a)Tipo de representao do conhecimento prvio e final, o qual pode ser sob a forma de regras para o caso de redes neurais em avano, sob a forma de autmatos para o caso de redes neurais recorrentes, sob a forma de grafos direcionados para a representao de neurnios recursivos, ou ainda sob a forma de rvores de deciso; b)Restries baseadas na arquitetura: Como a arquitetura deve mapear a representao estruturada desejada, deve-se levar em conta o nmero de camadas, que define o nvel requerido para mapear regras topologia da rede neural, os tipos de funo de ativao, que em geral so a sigmide ou ento baseada em fatores de certeza, os pesos, que podem estar na faixa {-1,0,1} ou [-1,1], e o tipo de entradas: {0,1} ou {-1,1}; c)Mtodo de treinamento: Em funo das restries nos parmetros durante treinamento tem-se pesos fixos ou em uma faixa de valores, podem ocorrer modificaes na topologia para adicionar ou retirar unidades. Alm disto, pode haver modificao da funo de aprendizagem atravs do uso de termos de regularizao que criam penalidade para obter pesos na faixa desejada; d)Os mtodos de extrao do conhecimento podem ser baseados em requisitos de treinamento especializado e uma arquitetura de rede neural restrita, ou dirigidos a uma rede neural genrica, sem restries com relao ao tipo de treinamento a ser efetuado sobre o conhecimento simblico embutido.

A tcnica de extrao de regras consiste na tarefa de converter modelos de redes neurais treinadas em representaes mais facilmente compreensveis pelos seres humanos. Estas tcnicas podem ser agrupadas em trs tipos: a)decomposicional, na qual a extrao ocorre ao nvel de associaes escondidas e de sada; b)pedaggica, na qual a rede neural vista como caixa preta, e a extrao de regras ocorre sobre arquiteturas sem restries; e c)ecltica, que uma composio das duas anteriores. Os mtodos de extrao de regras so categorizados pela sua: a)Compreensibilidade: Indica o quanto so compreensveis por seres humanos; b)Fidelidade: A que nvel as regras modelam a rede neural da qual foram extradas; c)Preciso: Indica o desempenho sobre exemplos no vistos; d)Escalabilidade: Demonstra como evolui o tempo de extrao em relao a grandes espaos de entrada, unidades e conexes; e)Generalidade: Necessidade de treinamento especial ou restries. Uma etapa fundamental da extrao de regras baseada nos mtodos de busca [Luger, 1993]. Para tanto, um dos primeiros algoritmos utilizados foi o SUBSET (figura 45). Uma das caractersticas do algoritmo SUBSET a de que ele extrai regras dos neurnios das camadas intermedirias e de sada, buscando subconjuntos de pesos para cada neurnio cuja soma supera o limiar. Isto gera um grande nmero de possibilidades, o que implica em um processamento excessivo e o resultado implica em regras com grande nmero de antecedentes. Um exemplo de uma rede neural e das regras extradas da mesma usando o algoritmo SUBSET esto na figura 46. Um algoritmo bastante poderoso para a extrao de conhecimento o TREPAN (TREes Parroting Networks) [Craven and Shavlik, 1996]. Este algoritmo independe da topologia da rede, fornecendo uma rvore de deciso como representao do conhecimento. Para atingir isto ele usa o mtodo do melhor primeiro para realizar a busca [Russel et Norvig, 1995]. A classe de cada exemplo definida por um orculo (sendo utilizada para tanto a prpria rede neural) e ele faz uso de exemplos complementares para garantir um nmero mnimo de exemplos. Para cada neurnio da camada escondida e intermediria fazer Formar Sp subconjuntos, combinando somente pesos positivos cujo somatrio supera o limiar Para cada elemento P dos subconjuntos Sp fazer Formar Sn subconjuntos de N elementos, considerando as combinaes mnimas de pesos negativos, tal que a soma absoluta destes pesos seja maior que a soma de P menos o valor do limiar Formar a regra: Se P AND no N ento neurnio
Figura 45 Descrio do algoritmo SUBSET.

Figura 46 Rede neural treinada e regras extradas usando o algoritmo SUBSET.

9. Links
A seguir so fornecidos alguns links para endereos relativos s redes neurais artificiais. 1) Adaptive Resonance Theory clearinghouse, by Daniel Tauritz:
http://web.umr.edu/~tauritzd/art/index.html

b) Artificial Neural Networks Technology:


http://www.dacs.dtic.mil/techs/neural/neural_ToC.html

c) Applets for Neural Networks and Artificial Life:


http://neuron.eng.wayne.edu/

d) Arquivo contendo vrios artigos e teses sobre Redes Neurais Artificiais:


ftp://archive.cis.ohio-state.edu/pub/neuroprose/

e) Homepage do Prof. Rudy Setiono:


http://www.comp.nus.edu.sg/~rudys/

f) EasyNNplus Um simulador grtis de Redes Neurais Artificiais:


http://www.easynn.com/easynnplus.html

g) International Neural Network Society Special Interest Group Brazil:


http://www.cpdee.ufmg.br/~apbraga/siginns_brazil.html

h) Redes SOM e LVQ:


http://www.cis.hut.fi/research/som-research/nnrc-programs.shtml

i) Implementation of a Fast Artificial Neural Network Library in C:


http://fann.sourceforge.net/report/report.html

j) Java Applets for Neural Network and Artificial Life:


http://staff.aist.go.jp/utsugi-a/Lab/Links.html

k) JOONE - Java Object Oriented Neural Engine, um simulador gratis em Java:


http://www.jooneworld.com/

l) LENS The light, efficient network Simulator, um simulador de redes neurais artificiais:
http://tedlab.mit.edu/~dr/Lens/

m) LIP6 - Connexionnist Home Page:

http://www-connex.lip6.fr/index.php

n) Neural Computing Research Group:


http://www.ncrg.aston.ac.uk/GTM/

o)Neural Nets by Kevin Gurney:


http://www.shef.ac.uk/psychology/gurney/notes/index.html

p)Evolutionary Design of Neural Networks:


http://www.cs.iastate.edu/~gannadm/homepage.html

q) Neural Networks at your Fingertips:


http://www.geocities.com/CapeCanaveral/1624/

r)Neural Networks Tool Nenet:


http://koti.mbnet.fi/~phodju/nenet/Nenet/General.html

s) NeuroDimension, Inc.:
http://www.nd.com/

t)Neuronale Netze (pgina com muitos links sobre redes neurais artificiais):
http://www.informatik.uni-freiburg.de/~heinz/nn_page.html

u)SNNS um excelente simulador de redes neurais artificiais grtis:


http://www-ra.informatik.uni-tuebingen.de/SNNS/

10. Referncias Bibliogrficas


Jain, A. K., Mao, J., and Mohiuddin, K. M., Artificial Neural Networks: A Tutorial, IEEE Computer, pp. 31-44, March 1996. Almeida, L. B., Langlois, T., and Amaral, J. D., On-Line Step Size Adaptation, Technical Report INESC RT07/97, 1997. Aspvall, B., and Stone, R.E., Khachiyans Linear Programming Algorithm, Journal of Algorithms, 1, 1980, pp. 1-13. Bender, E. A., Mathematical Methods in Artificial Intelligence, IEEE Computer Society Press, 1996. Bishop, C. M., Neural Networks for Pattern Recognition, Clarendon Press, Oxford, 1995. Braga, A. P., Ludermir, T. B., and Carvalho, A. C. P. L. F., Redes Neurais Artificiais: Teoria e Aplicaes, LTC Livros Tcnicos e Cientficos Editora S.A., 2000. Brunak, S., and Lautrup, B., Neuronale Netze: Die Nchste Computer-Revolution, Carl Hanser Verlag, 1993. Caudill, M., Expert Networks, Byte, 16(10):108-116, 1991. Caudill, M., and Butler, C., Understanding Neural Networks: Computer Explorations Volume 1: Basic Networks & Volume2: Advanced Networks, The MIT Press, 1992. Chen, C.-T., Linear System Theory and Design, CBS College Publishing, 1984. Cloete, I., and Zurada, J. M. (Eds.), Knowledge-Based Neurocomputing, The MIT Press, 2000. Cohen, P. R., Empirical Methods for Artificial Intelligence, The MIT Press, 1995. Craven, M. W., and Shavlik, J. W., Extracting Tree-Structured Representations of Trained Networks, Advances in Neural Information Processing Systems, 8, 1996.

Fausett, L., Fundamentals of Neural Networks Architectures, Algorithms, and Applications, Prentice Hall, Inc., 1994. Fiesler, E., Classification and Formalization of Artificial Neural Networks, in Computer Standards and Interfaces, Vol. 16, John Fulcher (Ed.), Elsevier Sciences Publishers B.V., Amsterdam, The Netherlands, 1994. Fu, L. M., Knowledge-Based connectionism for revising domain theories, IEEE Transactions on Systems, Man and Cybernetics, 23(1):173-182, 1993. Gallant, S. I., Neural Network Learning and Expert Systems, The MIT Press, 1993. Golden, R. M., Mathematical Methods for Neural Network Analysis and Design, The MIT Press, 1995. Grossberg, S., Studies of Mind and Brain, Reidel Publishing Company, Boston, 1982. Hassoun, M. H., Fundamentals of Artificial Neural Networks, The MIT Press, 1995. Haykin, S., Neural Networks A Comprehensive Foundation, 2nd. Edition, Prentice Hall, Inc., 1999. Hebb, D., The Organization of Behavior: A Neurophysiological Theory, John Wiley & Sons, 1949. Hinton, G., and Sejnowski, T. J. (Eds.), Unsupervised Learning: Foundations of Neural Computation, The MIT Press, 1999. Hoffmann, N., Kleines Handbuch Neuronale Netze Anwendungsorientiertes Wissen zum Lernen und Nachschlagen, Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, 1993. Jacobs, R. A., Increased Rates of Convergence Through Learning Rate Adaptation, Neural Networks, 1, pp. 295-307, 1988. Kasabov, N. K., and Petkov, S. H., Approximate Reasoning with Hybrid Connectionist Logic Programming Systems, Proceedings of the International Conference on Artificial Neural Networks ICANN92, eds. I. Aleksander and J. Taylor, pp. 749-752, Elsevier Science Publisher B.V., 1992. Kasabov, N. K., Hybrid Connectionist Production Systems: An Approach to Realising Fuzzy Expert Systems, Journal of Systems Engineering, 1:15-21, 1993. Kinnebrock, W., Neuronale Netze Grundlagen, Anwendungen, Beispiele, R. Oldenbourg Verlag, GmbH, 1992. Kohonen, T., Self-Organizing Maps, Springer-Verlag, New York, 1995. Kratzer, K. P., Neuronale Netze Grundlagen und Anwendungen, Carl Hanser Verlag, 1991. Luger, G. F., and Stubblefield, W. A., Artificial Intelligence Structures and Strategies for Complex Problem Solving, 2nd. Edition, The Benjamin/Cummings Publishing Company, Inc., 1993. Mazn, M. Integrating Rule-Based and Neural Approaches to Expert System Design, Master Thesis, Department of Software Engineering, Faculty of Mathematics and Physics, Charles University, Prague, 1995.

McCulloch, W.S., Pitts, W., A Logical Calculus of the Ideas Immanent in Nervous Activity, Bulletin of Mathematical Biophysics, Vol. 5, pp. 115-133, 1943. Mehrotra, K., Mohan, C. K., and Ranka, S., Elements of Artificial Neural Networks, The MIT Press, 1997. Michalewicz, Z., and Fogel, D. B., How to Solve It: Modern Heuristics, Springer-Verlag, 2000. Minsky, M.L., Papert, S.A., Perceptrons, Cambridge, MA : MIT Press, 1969. Mitchell, T. M., Machine Learning, WCB McGraw-Hill, 1997. Oja, E., A Simplified Neuron Model as a Principal Component Analyzer, Journal of Mathematical Biology, 15:239-245, 1982. Pham, D.T., and Karaboga, D., Intelligent Optimisation Techniques Genetic Algorithms, Tabu Search, Simulated Annealing and Neural Networks, Springer-Verlag, 2000. Prncipe, J. C., Euliano, N. R., and Lefebvre, W. C., Neural and Adaptive Systems Fundamentals Through Simulations, John Wiley & Sons, Inc., 2000. Reed, R. D., and Marks III, R. J., Neural Smithing Supervised Learning in Feedforward Artificial Neural Networks, The MIT Press, 1999. Rosenblatt, F., The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain, Psychological Review, Vol. 65, pp. 386-408, 1956. Rumelhart, D.E., Hinton, G.E., Williams, R.J., Learning Representations of BackPropagation Errors, Nature (London), Vol. 323, pp. 533-536, 1986. Russel, S., and Norvig, P., Artificial Intelligence A Modern Approach, Prentice-Hall, Inc., 1995. Samad, T., Towards Connectionist Rule-Based Systems, Proceedings of the IEEE International Conference on Neural Networks, San Diego, Vol. II, pp. 525-532, 1988. Santos, R. T., Nievola, J. C., and Freitas, A. A., Extracting Comprehensible Rules from Neural Networks via Genetic Algorithms, 2000 IEEE Symposium on Combinations of Evolutionary Computation and Neural Networks, pp. 130-139, 2000. ima, J., Neural Expert Systems, Neural Networks, 8(2):261-271, 1995. Stanley, J., and Bate, E., Neuronale Netze Computersimulation biologischer Intelligenz, Systhema Verlag GmbH, 1991. Sundararajan, N., Saratchandran, P., and Wei, L. Y., Radial Basis Function Neural Networks with Sequential Learning MRAN and Its Applications, World Scientific Publishing Co. Pte. Ltd., 1999. Theron, H. and Cloete, I., BEXA: A covering algorithm for learning propositional concept descriptions, Machine Learning, 24:5-40, 1996. Thrun, S., Extracting Rules from Artificial Neural Networks with Distributed Representation, Advances in Neural Information Processing Systems, 7, 1995.

Towell, G. G., and Shavlik, J. W., Knowledge-based artificial neural networks, Artificial Intelligence, 70:119-165, 1994. Vonk, E., Jain, L.C., and Johnson, R.P., Automatic Generation of Neural Network Architecture Using Evolutionary Computation, World Scientific Publishing Co. Pte. Ltd., 1997.

Você também pode gostar