1 Co-evolução quântica (CoEQ) para seleção das entradas de uma RNA em um problema de previsão meteorológica Pedro F. C. Blois de Assis ([email protected]) Resumo — O sistema atual para previsão meteorológica utiliza complexas equações estatísticas e um histórico de muitos anos para a geração de dados futuros. Isso torna a previsão meteorológica um processo muito caro computacionalmente e extremamente demorado. As redes neurais artificiais (RNA) vêm sendo utilizadas com sucesso em problemas de aprendizado supervisionado de séries temporais, mas a sua topologia e as entradas necessárias para a previsão não são conhecidos a priori, necessitando de vários experimentos para as suas escolhas. Outra desvantagem das RNA, é que o método de treinamento das mesmas é baseado em uma busca local da combinação ótima de pesos, fazendo com que convergências prematuras a ótimos locais ocorram com freqüência. Este trabalho propõe a utilização de co-evolução cooperativa entre algoritmos evolutivos com inspiração quântica assim como outras três metodologias (seleção com inspiração variacional, minimização da diferença entre as energias do espectro de freqüências e método de Lesion) para a seleção das entradas de uma RNA para o problema de previsão meteorológica. Os resultados mostram o potencial dos métodos investigados sendo o CoEQ o mais promissor para o problema. Palavras Chave — Algoritmos genéticos, algoritmos com inspiração quântica, redes neurais artificiais, co-evolução. Abstract – The current system for meteorological forecast uses very complex statistic equations and a too long series to generate future data. Thus, the meteorological forecast becomes a very expensive and too long one. Artificial Neural Networks have been used successfully on supervised learning problems of temporal series. However, its topology and the necessary entry are not known a priori, what creates the need for many experiments in order to make a choice. Another disadvantage of ANN refers to their training method which is based on a local search for an optimal weights combination, making the premature convergences to optimal locations to happen very frequently. This study proposes the use of cooperative co-evolution between evolutive algorithms with Quantico inspirations as well as among other three methodologies (selection with variational inspiration, minimizing the difference among the frequency spectrum energies and the Lesion method) for the ANN entries selection for the meteorological forecast problem. The results show the potential for the investigated methods from which the CoEQ is the most promising. Key words – Genetic Algorithms, algorithms with Quantico inspiration, Artificial Neural Network, co-evolution. I. INTRODUÇÃO V ários aspectos da nossa vida cotidiana são afetados pelo tempo: nosso vestuário, nossas atividades ao ar livre, o preço dos produtos hortifrutigranjeiros. Ocasionalmente, as condições de tempo são extremas e o impacto pode estenderse de uma mera inconveniência a um desastre de grandes custos materiais e perda de vidas humanas. Os meios de transporte (terrestre, marítimo e aéreo) dependem muito do tempo. O tempo e o clima são decisivos também para a agricultura, zootecnia e gerenciamento de recursos hídricos. Em adição a estes aspectos tradicionalmente reconhecidos, tem havido e continuará havendo uma demanda crescente por decisões políticas envolvendo a atmosfera, relacionadas à poluição e seu controle, efeitos de vários produtos químicos sobre a camada de ozônio e outros impactos ambientais. Portanto, há necessidade de crescente conhecimento sobre a atmosfera e seu comportamento [5]. A falha na previsão desse comportamento pode levar a problemas para a sociedade e geral. Prejuízos encontrados na agricultura podem ser atribuídos a planejamentos feitos com base nas previsões climáticas publicadas. O agricultor decide por plantar ou não certo tipo de vegetal baseado nas condições do tempo. Caso essas condições não ocorram, uma safra inteira pode ser perdida, incorrendo em um prejuízo significativo para o agricultor. Esta perda, dependendo do seu tamanho, pode acarretar no aumento de preço dos produtos derivados implicando no aumento do custo de vida do cidadão. No âmbito dos esportes, aqueles que dependem do vento, sofrem com as falhas do serviço de meteorologia, principalmente nas regiões onde o vento forte ocorre poucas vezes por mês. Freqüentes são as previsões de ventos fortes que na verdade não passam de uma brisa, impossibilitando a realização de uma regata ou competição. Não raro também são as vezes em que além de a magnitude do vento, sua direção e sentido também são informados erroneamente. Como alternativa às equações estatísticas, propõe-se a utilização de redes neurais artificiais (RNA) por apresentarem bons resultados em problemas de aprendizado supervisionado de séries temporais [6, 7]. No entanto, a topologia ideal para o problema bem como as entradas necessárias (janela de valores passados) para uma boa estimativa de um dado futuro são informações desconhecidas e que só conseguem ser elucidadas mediante diversos experimentos onde tentativas com diferentes topologias e diferentes conjuntos de entradas são testados até que um desempenho tolerável seja atingido [1]. Este processo pode ser bastante demorado e computacionalmente caro. Por fim, para obter o conjunto ideal de pesos de uma RNA de modo que o erro na previsão seja tolerável, utilizase comumente métodos de busca baseados na variação do erro da saída do sistema. Esse método de busca local pode convergir prematuramente a mínimos locais [8]. Algoritmos evolutivos tradicionais foram propostos para estimar o conjunto de pesos ótimos para uma RNA, mas não apresentaram bons resultados comparados aos métodos tradicionais de treinamento de RNAs devido à necessidade de realizar um número elevado de avaliações da função objetivo [1]. 2 Algoritmos evolutivos com inspiração quântica (AEIQ) foram propostos com sucesso para treinamento de RNA recorrentes por necessitarem de um número menor de indivíduos para a evolução havendo consequentemente um número menor de avaliações da função objetivo [1]. O operador Lesion foi utilizado (em [1]) para remover neurônios excedentes da RNA toda vez que a evolução parava de progredir, apontando assim uma metodologia para otimização da topologia da RNA. Deseja-se descobrir automaticamente quais são os valores passados necessárias à uma RNA para se prever o determinado valor futuro. Por exemplo: para se prever a velocidade do vento daqui a 4 horas são necessários os valores de temperatura, umidade, velocidade e direção do vento de 15 em 15 minutos das últimas 24 horas? Este trabalho mostra 4 técnicas propostas para a seleção das entradas a serem utilizadas em uma RNA para o problema de previsão meteorológica. São elas: Co-evolução entre AEIQs (CoEQ), Lesion, seleção com inspiração variacional e análise da energia do espectro de freqüências. Experiências foram feitas com as técnicas e os resultados mostram que o CoEQ apresenta vantagens sobre as demais técnicas. II. ALGORITMOS EVOLUTIVOS COM INSPIRAÇÃO QUÂNTICA - AEIQ “Esses algoritmos se baseiam em idéias inspiradas na física quântica, em particular no conceito de superposição de estados, apresentando melhor desempenho em diversos tipos de aplicações” [1]. O AEIQ também é caracterizado por um cromossomo, uma função de avaliação e uma dinâmica populacional. Sua principal diferença encontra-se na representação de um gene. Enquanto que nos algoritmos evolutivos tradicionais os genes representam um único estado determinado pelo seu atual valor, no AEIQ, um gene representa uma gama de possíveis estados determinado por uma função de densidade de probabilidade (para o caso de um AEIQ para problemas com representação numérica). Dessa forma um cromossomo representa não só um único indivíduo, mas sim uma superposição de possíveis estados contínuos, determinado pela probabilidade de ocorrência de cada gene. Essa característica confere à técnica a possibilidade de evoluir soluções utilizando menos indivíduos na população, dado que cada um representa na verdade várias possíveis soluções, semelhante ao espaço de crenças dos algoritmos culturais. Desta forma o AEIQ é capaz de evoluir soluções tão boas quanto os algoritmos evolutivos tradicionais com um número significativamente menor de avaliações por geração, tornando-o mais barato computacionalmente. A Figura 1 mostra um pseudo-código de um AEIQ. O algoritmo será explicado adiante. Figura 1: Pseudo-código do algoritmo evolutivo com inspiração quântica usando representação real. População quântica – Q(t): Uma população quântica é formada por N indivíduos quânticos que representam a superposição dos possíveis estados que um indivíduo clássico pode assumir ao ser observado. Cada indivíduo quântico q por sua vez é formado por G genes quânticos que são formados por funções que representam uma densidade de probabilidade Pij (onde i = 1,2,3,...,N e j = 1,2,3,...,G). Desta forma, os indivíduos quânticos podem ser representados por: qi = Pi1 ( x ) Pi 2 ( x ) Pi 3 ( x ) K PiG ( x ) (1) Pij é utilizada pelo AEIQ para gerar valores para os genes dos indivíduos clássicos. Esta função de densidade de probabilidade é representada como mostra a equação (2). Pij ( x ) = ψ ij* ( x )ψ ij ( x ) (2) Onde ψ ij ( x ) representa a função de onda associada ao gene j do indivíduo i da população quântica e ψ ij * ( x ) representa o conjugado complexo desta função de onda. A função de densidade de probabilidade utilizada em [1] é o pulso quadrado, que deve possuir uma área unitária respeitando a propriedade de normalização de uma função de densidade de probabilidade. Com isso cada função (e consequentemente cada gene quântico) pode ser representada por um par de valores µ e σ, valor central e largura do pulso respectivamente. A Figura 2 mostra um exemplo de dois genes quânticos (g11 e g12) formadores do indivíduo quântico q1. Figura 2: Genes de um indivíduo quântico usando pulsos quadrados com função de densidade de probabilidade. Onde q1 pode é representado como mostra a equação (3). A primeira coluna representa g11 e a segunda coluna representa g12. 3 −5 0 q1 = 20 20 (3) Observação dos indivíduos quânticos: No passo 4 do código mostrado na Figura 1, indivíduos clássicos (E(t)) são gerados a partir da população quântica. Essa observação dos indivíduos quânticos é que permite a geração de indivíduos clássicos, ou seja, indivíduos cujos genes são números reais dentro do intervalo válido do domínio. Para executar essa observação, um número aleatório é gerado no intervalo de [0, 1] e em seguida identifica-se o ponto x tal que: −1 ∫ Pij ( x ) dx = r = Vij ( x ) ∴ x = Vij ( r ) Co-evolução quântica – CoEQ: Nesta abordagem, pretende-se utilizar dois algoritmos evolutivos com inspiração quântica co-evoluindo cooperativamente onde uma população representa as possíveis soluções dos pesos das redes neurais (cromossomo de representação por números reais) e a outra população representa as entradas a serem fornecidas à RNA (cromossomo de representação por números inteiros). A representação para a primeira população é mostrada na equação 6. (4) Onde V ( x ) é a função cumulativa de probabilidade do ij valor x ser observado e r é o número aleatório sorteado para a tarefa. Temos, portanto, que x é um valor real gerado através da observação do gene j do indivíduo i. Logo, podese gerar mais de um indivíduo clássico por indivíduos quânticos, bastando para isso gerar um número aleatório r para cada observação do indivíduo quântico. Matematicamente, essa observação é feita como mostra a equação 5. σ xmj = rmjσ ij + µij − ij 2 passados de temperatura, umidade, velocidade e direção do vento são necessários para se prever um determinado valor futuro. (5) q = S11S12 KSij B1KB j S11S12 KS jk B1KBk 424 3 142431 424 314243 1 nout np np×nout np×ni (6) Onde Sij é o peso entre a entrada i e o neurônio j da camada escondida, Bj é o bias do neurônio j da camada escondida, Sjk é o peso entre o neurônio j da camada escondida e o neurônio k da camada de saída e Bk e o bias do neurônio k da camada de saída. Os valores ni, np e nout são respectivamente o número de entradas, o número de neurônios na camada escondida e o número de saídas. Portanto o total de genes de cada indivíduo dessa população será: Onde xmj é o j-ésimo gene do m-ésimo indivíduo clássico que se está gerando, rmj é o número aleatório gerado para o gene do indivíduo que está sendo observado, µ ij e σij são a posição do centro e a largura do pulso quadrado que está sendo usado para observar o gene clássico. numGenes = np ( ni + nout + 1) + nout No passo 8 do pseudo-código mostrado, é feita uma recombinação dos indivíduos clássicos novos e antigos, possibilitando assim uma mistura do material genético atual e passado. No passo seguinte, os indivíduos são então avaliados para que no passo 10 os piores indivíduos da última geração sejam substituídos pelos melhores indivíduos da nova geração. Finalmente no passo 12, a população quântica é então atualizada utilizando-se a seguinte heurística: “se menos de 20% dos indivíduos da população clássica gerada tiverem melhorado de uma geração para a outra, é provável que o algoritmo esteja fazendo uma busca em uma região muito grande e, neste caso, pode ser interessante reduzir o espaço de busca; se mais de 20% dos indivíduos tiverem melhorado de uma geração para a outra, é provável que o algoritmo esteja fazendo a busca em uma região muito pequena (e portanto achando, facilmente, indivíduos com avaliação melhores) e o mesmo deve tentar ampliar a região de busca.” Onde Ti é um número inteiro, não negativo, que representa a posição da temperatura de Ti instantes antes do valor mais recente da janela de tempo em questão. Por exemplo: III. TÉCNICAS DE SELEÇÃO DE ENTRADAS Nesta seção serão apresentadas as técnicas idealizadas para a escolha das entradas da RNA para um problema de previsão meteorológica. Deseja-se descobrir quais os valores (7) Para a segunda população a representação adotada foi: q = [T1KTa U1KUb V1KVc D1KDd ] q = [ 1 2 3 1 2 3 1 2 3 1 3 5] (8) (9) O cromossomo exemplificado na equação 9 mostra que para estimarmos um determinado valor futuro são necessários os três últimos valores de temperatura, umidade e velocidade do vento e o último, o antepenúltimo e o quinto último valor da direção do vento. Portanto, temos que Ui, Vi e Di são respectivamente as posições das grandezas de umidade, velocidade do vento e direção do vento. Os valores a, b, c, e d, representam o número de dados necessários de temperatura, umidade, velocidade e direção do vento, respectivamente, para a previsão. Se durante a evolução o número de pontos de um determinado parâmetro (temperatura, umidade etc.), necessário para a previsão, for menor que o especificado inicialmente, zeros aparecerão no cromossomo dentre as posições indicativas de cada parâmetro. Por exemplo: q = [ 1 2 3 1 2 0 1 2 3 1 3 5] (10) 4 No cromossomo mostrado na equação 10, temos que a evolução mostrou que apenas o último e o penúltimo valores de umidade são necessários para a previsão de um certo valor futuro. O número de genes de um indivíduo dessa população será: numGenes = a + b + c + d camada escondida e f(.) são as funções de ativação dos neurônios da rede. Neste trabalho, a função de ativação utilizada foi a tansig. A equação 13 mostra o cálculo da variação da saída (out) em relativo a variação das entradas (E). Como, neste trabalho, a função de ativação utilizada é a tansig, tem-se que: (11) δ out T T = f ' f ( S1E + B1 ) S2 + B2 f ' ( S1E + B1 ) S2S1 δE ( Lesion: Este operador foi utilizado por [1] para eliminar neurônios da rede neural toda vez que a evolução estagnasse. Ela consiste em remover um neurônio qualquer (remover todos os pesos que estão vinculados ao neurônio escolhido) e verificar se o melhor indivíduo da população terá uma nova avaliação menor que a avaliação antiga mais uma dada tolerância. Caso isso ocorra, esse neurônio não era importante, logo pode ser removido. Da mesma forma, se a evolução da população parar durante um certo número de gerações, a importância das entradas será testada removendo-se a entrada e verificando se a avaliação da nova rede não piora mais do que um determinado nível. Neste caso, a entrada em questão não era importante, sendo, portanto removida da rede. Esta técnica será utilizada durante a evolução do AEIQ na otimização dos pesos da rede neural. Só há, portanto, uma população e a representação dos cromossomos é a mesma da primeira população do CoEQ. Seleção com inspiração variacional: O cálculo variacional visa fundamentalmente investigar os máximos e mínimos de funcionais através da variação das suas variáveis de estado. Inspirado nesse princípio, esta técnica procura encontrar a entrada menos importante (cuja ausência não provoque uma piora significativa na avaliação da rede) através das alterações da saída da rede devido a pequenas variações nas entradas. Ou seja, se perturbarmos uma entrada qualquer e a saída da rede, em média (testandose para todo o conjunto de treinamento), se mantiver dentro de uma faixa de valores toleráveis, então provavelmente aquela entrada não é importante para o sistema. Sabemos que: h2 644474448 T out = f f S1E + B1 S2 + B2 1 4 24 3 h3 14444244443 (12) h1 δ out = ∂out ∂h ∂h ∂h ∂h ∂h δ E = 1 2 δ E = 1 2 3 δ E ∂E ∂h2 ∂E ∂h2 ∂h3 ∂E (13) Onde S1 é a matriz de pesos entre as entradas e os neurônios da camada escondida, B1 são os bias da camada escondida, S2 são os pesos entre a camada escondida e a saída e B2 são os bias da saída. A equação 12 mostra a expressão matemática da saída de uma rede neural artificial com uma ) (14) Onde f’(.) é a derivada da função tansig com relação ao seu argumento. Esta técnica também será utilizada durante a evolução do AEIQ na otimização dos pesos da rede neural. Só há, portanto, uma população e a representação dos cromossomos é a mesma da primeira população do CoEQ. Minimização da diferença entre as energias do espectro de freqüências: Toda forma de onde pode ser decomposta em infinitos senos e co-senos de diferentes freqüências. A ferramenta através da qual essa decomposição é feita, é chamada de transformada de Fourier. O espectro de freqüência é, portanto, o conjunto de freqüências das funções básicas (senos e/ou co-senos) que compõem o sinal original. A energia total do sinal analisado pode ser obtida da seguinte forma [4]: E= 2 1 ∞ X ( jω ) dω ∫ −∞ 2π (15) Onde X(jω) é a transformada de Fourier do sinal analisado. Sabe-se que quanto mais neurônios existirem em uma RNA, maior é o número de parâmetros livres (pesos) da mesma. Quanto mais pesos uma RNA tiver, maior é a sua capacidade de aproximar funções com os mais diversos comportamentos, no entanto um número excessivo de graus de liberdade de uma RNA pode fazer com que a mesma aproxime os valores dos conjuntos de treinamento através de uma forma de onda com freqüências muito acima das necessárias. Uma analogia que se pode fazer para exemplificar esse fenômeno seria a aproximação de uma função linear, representada por três pontos de amostragem apenas, através de um polinômio de terceiro grau. É possível ajustar-se os coeficientes do polinômio de terceiro grau de maneira a obter erro nulo nos pontos amostrados. No entanto, comete-se um erro significativo ao aproximarmos um polinômio de primeiro grau por um de terceiro grau. Uma das maneiras de detectar isso é reparar que a função de terceiro grau possui uma energia maior que a forma de onda aproximada, indicando que a aproximação possui mais graus de liberdade do que o necessário. Desta forma, pode-se estimar que os graus de liberdade ideais de uma RNA são àqueles tais que a diferença entre as energias do espectro de freqüência, do sinal produzido pela 5 RNA e da forma de onda do conjunto de treinamento, é mínima. Para uma RNA com np neurônios na camada escondida, cada entrada possui np pesos associados. Ao retirar-se uma entrada diminui-se os graus de liberdade do sistema, assim como ao colocar-se uma entrada a mais no sistema, aumentase os parâmetros livre da RNA. Com isso, pode-se avaliar a importância de uma entrada através da variação da diferença entre as energias do conjunto de treinamento e da saída da RNA. Se a existência da entrada analisada proporcionar uma menor diferença entre as energias, comparada a sua ausência, então essa entrada é importante para o sistema. Caso contrário, ela pode ser descartada. Esta técnica também será utilizada durante a evolução do AEIQ na otimização dos pesos da rede neural. Só há, portanto, uma população e a representação dos cromossomos é a mesma da primeira população do CoEQ. IV. EXPERIMENTOS REALIZADOS Para testar as técnicas propostas, utilizou-se o código desenvolvido em [1] para algoritmos evolutivos com inspiração quântica com representação por números reais. Adaptações foram feitas na função de avaliação do sistema, dado que em [1] utilizou-se redes neurais recorrentes, enquanto que nesse trabalho optou-se por utilizar redes neurais feedfoward. O operador Lesion para atualização da topologia da rede foi desabilitado de maneira que o desempenho fossem mais diretamente relacionados às técnicas propostas. Para a CoEQ, foi feita mais uma adaptação para que cromossomos com representação inteira pudessem ser utilizados. A topologia da rede utilizada foi a mesma para todos os experimentos e o número de neurônios foi decidido depois de alguns experimentos utilizando o algoritmo AEIQ original de [1]. Os dados meteorológicos utilizados para os experimentos foram informações meteorológicas da cidade de Campinas, SP, de temperatura, umidade, velocidade e direção do vento coletados no período de 28/07/2006 e 22/02/2008 com intervalos de medição de hora em hora, obtidos no site http://www.cnpm.embrapa.br/projetos/estacaometeorologica /bd/. Como alvo da previsão, escolheu-se o valor da velocidade do vento de 4 horas à frente. Os valores coletados entre os dias 15/12/2007 e 22/02/2008 foram utilizados para avaliar o desempenho final da RNA obtida nas evoluções. Todos os algoritmos evolutivos foram executados com a mesma parametrização, a saber: população de indivíduos quânticos: 5; taxa de recombinação do indivíduos quânticos: 0,9; população de indivíduos clássicos: 10; gap da população de indivíduos clássicos: 9; taxa de recombinação de indivíduos clássicos: 0,9; fator de atualização da largura dos indivíduos quânticos: 0,9; → número de gerações para atualização dos indivíduos quânticos: 10; → → → → → → → tolerância para a avaliação do novo conjunto de entradas (quando aplicável): 0,1%; → número de processadores na camada escondida: 20; → número de gerações: 500. Todas as técnicas propostas (com exceção da CoEQ) foram aplicadas depois que a evolução ficasse estagnada por 10 gerações. Para a CoEQ, o cromossomo da espécie que evoluiu as entradas da rede teve um tamanho fixo de 40 genes, sendo que o domínio utilizado para os valores dos genes foi o intervalo entre 0 e 100. A decodificação foi feita assumindose que a=b=c=d=10 (valores utilizados na equação 8), significando que o algoritmo deve achar 10 entradas para os quatro parâmetros meteorológicos (temperatura, umidade etc.) no intervalo de 0 a 100. Para as outras técnicas, a janela inicial para a neuro-evolução foi de todos os valores de até 100 instantes atrás para os quatro parâmetros meteorológicos, totalizando 400 entradas para a rede neural artificial. Com a evolução, as entradas desnecessárias foram sendo retiradas de acordo com as abordagens descritas no trabalho. O cromossomo da espécie que evoluiu os pesos da rede, foram todos iguais com genes observados no domínio de -2 a 2. V. RESULTADOS OBTIDOS A CoEQ se mostrou mais lenta que as demais técnicas devido ao fato de estar evoluindo duas populações ao mesmo tempo. Além disso, nas demais técnicas, apenas os novos indivíduos (gap indivíduos) de cada geração eram avaliados, diminuindo ainda mais o tempo computacional. Sob este mesmo aspecto, na CoEQ, como a cada geração o melhor indivíduo da outra espécie era diferente (na maioria da vezes), toda a população tinha que ser reavaliada, pois as condições em que as avaliações na geração anterior foram feitas mudaram. A Figura 3 mostra a curva de desempenho da CoEQ. Figura 3: Curva de desempenho da CoEQ. Pode-se ver que o desempenho da CoEQ alcança uma avaliação de aproximadamente 2500 na 50ª geração e um valor mínimo abaixo de 2000. Esses resultados se mostraram melhores que os das outras técnicas abordadas. A Figura 4 mostra o resultado final da RNA com os pesos e entradas evoluídos pela CoEQ. Apesar dos bons resultados 6 no desempenho durante a evolução (comparando-se às outras técnicas), a RNA final não foi capaz de prever satisfatoriamente os valores de velocidade do vento de 4 horas à frente. A Figura 7 mostra a curva de desempenho obtida pela evolução dos pesos da rede neural com eventuais remoções de entradas através do operador com inspiração no cálculo variacional. Pode-se ver que o sistema atinge uma avaliação de 2500 próximo a 150ª geração e seu valor final também foi acima de 2000. A Figura 8 mostra o resultado final da RNA evoluída com o AEIQ com o operador com inspiração no cálculo variacional aplicado às entradas da rede. Figura 4: Resultado final da previsão feita pela RNA evoluída pela CoEQ. A Figura 5 mostra a curva de desempenho obtida pela evolução dos pesos da rede neural com eventuais remoções de entradas através do operador Lesion. Pode-se ver que o sistema atinge uma avaliação de 2500 depois da 100ª geração e seu valor final foi acima de 2000. Figura 7: Curva de desempenho do AEIQ com o operador inspirado no cálculo variacional executado nas entradas da RNA. Figura 5: Curva de desempenho do AEIQ com o operador Lesion executado nas entradas da RNA. A Figura 6 mostra o resultado final da RNA evoluída com o AEIQ com o operador Lesion aplicado às entradas da rede. Figura 8: Resultado final da previsão feita pela RNA evoluída pelo AEIQ com o operador com inspiração no cálculo variacional. A Figura 9 mostra a curva de desempenho obtida pela evolução dos pesos da rede neural com eventuais remoções de entradas através do operador que minimiza a diferença entre as energias dos espectros de freqüência. Pode-se ver que o sistema também atinge uma avaliação de 2500 depois da 150ª geração e seu valor final também foi acima de 2000. Figura 6: Resultado final da previsão feita pela RNA evoluída pelo AEIQ com o operador Lesion. 7 apresenta a possibilidade de ordenação dos candidatos a remoção de acordo com o efeito da sua variação produzido na saída do sistema, sem a necessidade de se avaliar o sistema. Essa vantagem direciona a busca por candidatos a remoção agilizando a evolução. VI. CONCLUSÕES Figura 9: Curva de desempenho do AEIQ com o operador que minimiza a diferença entre as energias dos espectros de freqüência executado nas entradas da RNA. A Figura 10 mostra o resultado final da RNA evoluída com o AEIQ com o operador que minimiza a diferença entre as energias dos espectros de freqüência aplicado às entradas da rede. Foram propostas quatro técnicas de seleção de entradas de uma rede neural artificial para problemas de previsão meteorológica. As técnicas propostas foram: co-evolução cooperativa entre algoritmos evolutivos com inspiração quântica – CoEQ (uma espécie evoluindo as entradas e a outra espécie evoluindo os pesos da RNA); operador de seleção com inspiração no cálculo variacional; operador Lesion e o operador de seleção que minimiza a diferença entre a energia do espectro de freqüências da saída produzida pela RNA e a energia do conjunto de treinamento. A CoEQ mostrou ter um desempenho melhor que os demais por atingir uma menor avaliação ao final da evolução. No entanto, todos os experimentos mostraram um resultado final ruim (saída da rede neural comparada com o conjunto de treinamento). VII. TRABALHOS FUTUROS Como a CoEQ se mostrou mais eficiente na otimização das entradas, propõe-se utilizar a seleção inspirada no cálculo variacional aliada a minimização da diferença entre as energias dos espectros de freqüências da saída do sistema e do conjunto de treinamento para a otimização da topologia da RNA. Primeiramente seria verificado, através da minimização da diferença das energias o número de neurônios aproximado para a tarefa a ser executada. Em seguida, durante a co-evolução, neurônios da camada escondida seriam removidos de acordo com a sua importância no sistema através do cálculo variacional. Figura 10: Resultado final da previsão feita pela RNA evoluída pelo AEIQ com o operador que minimiza a diferença entre as energias dos espectros de freqüência. Como a atualização das entradas nas técnicas propostas (com exceção da CoEQ) é feita apenas quando a evolução está estagnada por 10 gerações, conforme proposto em [1], poucas entradas são removidas durante a evolução. Nesse trabalho, o número máximo de gerações admitido foi de 500, significando que no pior dos casos, 50 entradas podem ser removidas, o que representa 1/8 das entradas iniciais. Pelas Figuras 6, 8 e 10, pode-se perceber que a energia do espectro de freqüências do sinal de saída das RNAs resultantes é maior que a do conjunto de treinamento (pois a saída das RNAs oscilam mais e com maior amplitude). Isso indica, que as RNAs resultantes possuem mais graus de liberdade que o necessário e que a remoção das entradas está se dando de forma insuficiente. Os operadores Lesion e seleção com inspiração no cálculo variacional se mostraram equivalentes em termos de desempenho na evolução. No entanto, o Lesion necessita fazer uma avaliação para cada entrada candidata a remoção, até que se encontre alguma que satisfaça as condições de exclusão. Já a seleção por inspiração no cálculo variacional REFERÊNCIAS [1]. Abs da Cruz, André V., Algoritmos Evolutivos com Inspiração Quântica para Problemas com Representação Real. Tese de doutorado, Pontifícia Universidade Católica do Rio de Janeiro, 2007; [2]. Michalewics, Z., “Genetic Algorithms + Data Structures = Evolution Programs”, Springer-Verlag New York, NY, USA, 1999; [3]. Haykin, S., “Redes Neurais: Princípios e Prática”, Prentice Hall, 2ª ed., 2001; [4]. Oppenheim, A. V., Willsky, A. S., “Signals & Sistems”, Prentice Hall, 2ª ed, 1997; [5]. Quadro, M., “Estrutura da Meteorologia – MEF01”, Apostila do Curso Técnico de Meteorologia, Centro Federal de Educação Tecnológica de Santa Catarina, 2004; [6]. Karla Figueiredo, Carlos R. Hall Barbosa, André V. A. da Cruz, Marley M.B.R. Vellasco, Marco Aurélio C. Pacheco, Roxana J. Contreras, Mônica Barros, Reinaldo Castro Souza, Valdo da Siva Marques, Ulmar Manoel Duarte, Marcos Huber Mendes, MODELO DE PREVISÃO DE VAZÃO COM INFORMAÇÃO DE PRECIPITAÇÃO UTILIZANDO REDES NEURAIS, aceito para publicação na Revista Brasileira de Recursos Hídricos; [7]. Marley Maria B.R. Vellasco, Marco Aurélio C. Pacheco, Luiz Sabino Ribeiro Neto, Flávio Joquim de Souza, "Electric Load Forecasting: Evaluating the Novel Hierarchical Neuro-Fuzzy BSP Model", International Journal of Electrical Power & Energy Systems, (ISSN 8 0142-0615), Vol. 26, No. 2, pp. 131-142, Elsevier Science Ltd, Fevereiro 2004; [8]. Yao, X.. Evolving artificial neural networks. In: PROCEEDINGS OF THE IEEE, volumen 87, p. 1423–1447, 1999. 1.1.