previsão da atividade econômica através de redes … · ii previsão da atividade econômica...

77
Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Universidade Federal do Rio de Janeiro – UFRJ Instituto de Pós-graduação em Administração – COPPEAD Mestrado em Administração Orientadores: Claudio Contador Ph. D. em Economia Luiz Pereira Calôba Ph. D. em Processamento de Sinais Rio de Janeiro 2000

Upload: duongtu

Post on 01-Oct-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

Previsão da Atividade Econômica Através de RedesNeurais

Petrônio Duarte Cançado

Universidade Federal do Rio de Janeiro – UFRJInstituto de Pós-graduação em Administração – COPPEAD

Mestrado em Administração

Orientadores: Claudio ContadorPh. D. em Economia

Luiz Pereira CalôbaPh. D. em Processamento de Sinais

Rio de Janeiro

2000

Page 2: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

ii

Previsão da Atividade Econômica Através de Redes Neurais

Petrônio Duarte Cançado

Dissertação submetida ao corpo docente do Instituto de Pós-Graduação emAdministração – COPPEAD, da Universidade Federal do Rio de Janeiro, UFRJ, comoparte dos requisitos necessários para a obtenção do grau de Mestre em Ciências (M.Sc.)

Aprovado por:

Orientador: ________________________ - Presidente da BancaProf. Cláudio Contador – COPPEAD/UFRJ

Orientador: ________________________Prof. Luiz Pereira Calôba – COPPE/UFRJ

Examinador: ________________________Prof. Eduardo Saliby – COPPEAD/UFRJ

Rio de Janeiro

2000

Page 3: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

iii

Cançado, Petrônio Duarte.

Previsão da atividade econômica através de Redes Neurais/ Petrônio Duarte Cançado.Rio de Janeiro: UFRJ / COPPEAD, 2000.

viii, 146p. ; il.

Tese – Universidade Federal do Rio de Janeiro, COPPEAD, 2000.

1. Séries Temporais. 2. Produto Interno Bruto - Previsão. 3. Redes Neurais. I. Título.II. Tese (Mestr. – UFRJ/COPPEAD)

Page 4: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

iv

Dedicatória

Dedico este trabalho a meu pai Hêiter, a minha mãe Inês Lúcia e a meus irmãos,Andrezza, Paulo Henrique e André Luiz, pelo apoio que me deram durante todo o cursona COPPEAD.

Page 5: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

v

Agradecimentos

Agradeço a todos os professores da COPPEAD por sua dedicação ao curso de mestrado.Agradeço em especial ao professor Cláudio Contador e ao professor Luiz PereiraCalôba que me ajudaram e me acompanharam desde a escolha do tema deste trabalho.

Page 6: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

vi

CANÇADO, Petrônio Duarte. Previsão da atividade econômica através de redesneurais. Orientadores: Claudio Contador e Luiz Pereira Calôba. Rio de Janeiro:UFRJ/COPPEAD, 2000. Dissertação (Mestrado em Administração)

Esse estudo analisa as peculiaridades das redes neurais para possíveis aplicações emeconomia e finanças, e desenvolve um preditor do PIB Brasileiro baseado em redesneurais. Em seguida, compara os resultados obtidos dessa forma com aqueles obtidoscom uma regressão linear. A partir dessa análise, destaca as vantagens e desvantagensda utilização de redes na previsão de variáveis econômicas no Brasil, inclusive emperíodos de extrema turbulência. O trabalho também tem a função de familiarizarpessoas do meio econômico e financeiro com essa nova ferramenta, visto que esta aindase apresenta pouco difundida. Vale destacar que, no processo de preparação dos dados,foi gerado interessante resultado secundário. Trata-se da representação do "estado" daeconomia brasileira a partir da representação das variáveis utilizadas no modelo deprevisão do PIB por componentes principais, ou transformada de Kahunen-Loeve.

Page 7: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

vii

CANÇADO, Petrônio Duarte. Previsão da atividade econômica através de redesneurais. Orientadores: Claudio Contador e Luiz Pereira Calôba. Rio de Janeiro:UFRJ/COPPEAD, 2000. Dissertação (Mestrado em Administração)

This work is an analysis of the peculiarities of using neural networks in finance andeconomy in Brazil. A predictor of the Brazilian GDP was developed and the resultswere compared with those obtained through a linear regression model. This workhighlights the advantages and disadvantages of using neural networks to predictmacroeconomic variables in Brazil, including periods of extreme turbulence. This workis also aimed at the familiarizing the financial and economic community with this tool,as it is still not well disseminated. It is worth mentioning that the work has generated aninteresting secondary result: the representation of the Brazilian economy through theKahunen-Loeve's transformation of the variables used to predict the Brazilian GDP.

Page 8: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

viii

SUMÁRIO

p.1 INTRODUÇÃO 1

2 REDES NEURAIS 32.1 Introdução 42.2 Histórico 62.3 Neurônio: Unidade Básica de Processamento 72.4 Ligando Neurônios 92.5 Redes Feedforward 12

3 BACKPROPAGATION 143.1 Introdução 153.2 Problemas com o Treinamento 173.2.1 Mínimos Locais 173.2.2 Paralisia 183.2.3 Passo de Treinamento 193.2.4 Super Especialização 203.3 Adaptações no Algoritmo Básico 233.3.1 Escolha do Passo 233.3.2 Momento 243.3.3 Critério de Parada 253.4 Divisão dos conjuntos de treino teste 25

4 MONTANDO O PREDITOR DO PIB 274.1 Introdução 284.2 Escolha das Variáveis 284.3 Tratamento das Dados 304.4 Divisão dos Dados / Evolução da Economia 324.5 Resultados Obtidos Através de Redes Neurais 384.5.1 Análise dos Resultados 394.6 Resultados Obtidos Através de Regressão Linear 43

5 CONCLUSÃO 46

6 REFERÊNCIAS BIBLIOGRÁFICAS 51

7 ANEXO 52

8 APÊNDICE 58

Page 9: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

1 INTRODUÇÃO

Redes neurais são uma tecnologia de processamento de informação que vemsendo utilizada em uma ampla gama de aplicações, como reconhecimento de padrões,otimização, processamento de sinais etc. Elas são particularmente eficientes na soluçãode problemas complexos, que apresentam características não lineares. Em finanças eeconomia, problemas dessa natureza são uma constante e o uso de redes neurais surgecomo uma nova e promissora opção. No entanto, sua aplicação nessas áreas ainda éinsipiente e inspira estudos mais aprofundados.

Quando analisamos as peculiaridades dessa tecnologia, percebemos algumaspossíveis aplicações em economia e finanças, tais como previsões de variáveiseconômicas, análise de crédito, análise do risco de falência, dentre outras. Apesar disso,ainda não está claro onde uso de rede neurais trará, efetivamente, uma melhoria deperformance quando comparado aos métodos atualmente mais utilizados. Assim,ressaltamos mais uma vez a importância de estudos que tragam comparações entreresultados conseguidos através das diferentes metodologias. É com esse objetivo quedesenvolvemos um preditor do PIB brasileiro baseado em redes neurais.

Com o fim de gerarmos os resultados, desenvolvemos em linguagem “Pascal”um programa que gera e treina uma rede neural. A rede utilizada foi do tipo“feedforward” com uma camada intermediária. O método de treinamento utilizado foi ode “back-propagation”, por se adaptar bem a esse tipo de problema.

Em seguida, comparamos os resultados obtidos dessa forma com aqueles obtidoscom uma regressão linear. A partir dessa análise destacamos as vantagens edesvantagens da utilização de redes na previsão de variáveis econômicas no Brasil,inclusive em períodos de extrema turbulência. Escolhemos fazer a comparação com aregressão devido a sua simplicidade, facilidade de uso e grande aceitação. Além disso,essa comparação permite um sem número de comparações indiretas entre a performanceda rede e a performance de outras metodologias.

Esse trabalho também tem a função de familiarizar as pessoas do meioeconômico e financeiro com essa nova ferramenta, visto que esta ainda se apresentapouco difundida. Apesar de não ser nossa intenção entrar em maiores detalhes sobre osdiversos tipos de redes neurais e seus métodos de treinamento, dada a vasta literaturadisponível sobre o assunto, nos próximos capítulos apresentamos uma idéia geral dofuncionamento de uma rede neural. Passamos então a elaboração e treinamento da redeneural que será utilizada na previsão do PIB brasileiro.

No processo de preparação dos dados, geramos um interessante resultadosecundário. Trata-se da representação do “estado” da economia brasileira a partir darepresentação das variáveis utilizadas no modelo de previsão do PIB por componentesprincipais, ou transformada de Kahunen-Loeve.

Procuramos fazer um trabalho que possa ser entendido e utilizado por pessoasleigas no assunto e sem grandes conhecimentos em matemática, deixando claro quais asvantagens e problemas inerentes ao uso de redes neurais. Por outro lado, algumas

Page 10: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

2

modificações utilizadas no método de treinamento básico e alguns dos resultadosobtidos podem interessar a pessoas com maior familiaridade no assunto.

Page 11: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

3

2 - Redes Neurais

Page 12: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

4

2.1 Introdução:

Redes neurais artificiais, ou simplesmente redes neurais, são uma tecnologia deprocessamento de informação que teve sua origem no estudo do funcionamento docérebro e do sistema nervoso. Sua origem é, portanto de inspiração biológica.Entretanto, a utilização de redes neurais se expandiu rapidamente e essa tecnologia jávem sendo utilizada em diversas áreas, tais como medicina, engenharia, física eeconomia. Alguns textos mais ou menos completos que usamos neste trabalho estãocitados nas referências [1 –5].

Embora a semelhança seja apenas superficial, as redes neurais artificiaisguardam muitas características que nos lembram de fato o funcionamento do cérebro.Essas características são muito desejáveis em diversas situações práticas e apossibilidade de replicá-las em sistemas computacionais desperta grande interesse.Redes neurais são especialmente eficientes na resolução de problemas que são de difícilsolução através de métodos computacionais convencionais, mas que são lidados comrelativa facilidade pelo homem. Nós, por exemplo, somos capazes de reconhecer comrelativa facilidade o rosto de uma pessoa, mesmo que ela envelheça, mude de posiçãoou mude o corte de cabelo; entretanto, é muito difícil explicar qual o modelo, oalgoritmo, que estamos utilizando. Esse tipo de problema vem sendo lidado comsucesso através do uso de redes neurais.

De forma geral, uma rede neural “aprende” a resolver um problema a partir deexemplos que apresentamos a ela sistematicamente. Por exemplo, se desejamos que elanos faça uma previsão do PIB, devemos apresentar para a rede valores passados do PIBjuntamente com as outras variáveis de entrada correlacionadas ao mesmo. A partirdesses “exemplos” passados, a rede vai ajustando seus parâmetros internos de forma aerrar cada vez menos. Esse processo de ajustamento dos parâmetros internos édenominado treinamento. O conjunto de dados utilizados deve ser grande e otreinamento pode requerer um tempo de treinamento razoável.

Capacidade de generalização é uma outra característica importante das redesneurais. Uma vez tendo aprendido, a partir de um certo conjunto de dados, ela deve sercapaz de apresentar bons resultados para dados fora desse conjunto. Por exemplo, umavez tendo aprendido a calcular os valores do PIB que lhe foram apresentados, a partir devariáveis passadas, uma rede consegue nos fornecer uma boa previsão, ao lheapresentarmos variáveis atuais, que não faziam parte do conjunto de dados utilizadosinicialmente.

Assim como nosso cérebro, as redes neurais são robustas. A presença ou não deum neurônio, distorções nos dados de entrada e até mesmo a falta de um certo dado deentrada, não comprometem seriamente o funcionamento da rede neural na maioria doscasos. Morrem em média mil neurônios por dia em nossos cérebros, nenhum nasce,nenhum se regenera, entretanto continuamos a viver normalmente.

Existem também alguns inconvenientes inerentes ao uso de redes, que dificultame muitas vezes impossibilitam sua utilização em diversas situações. Vamos destacaralguns dos principais problemas e dificuldades que geralmente são encontrados.

Page 13: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

5

É muito difícil compreendermos o funcionamento da rede após o seutreinamento. Quando lidamos com redes com muitos neurônios, fica praticamenteimpossível determinarmos a forma de atuação de cada um, de suas interconexões, deexplicarmos a importância relativa das variáveis de entrada, e de explicarmos asrelações entre entrada e saída. A rede neural passa a funcionar como uma “caixa preta”que realiza a tarefa para a qual foi treinada mas sem que se possa descrever claramenteas relações entre as variáveis. Essa é uma característica que incomoda muitas pessoas,mas vale lembrar que utilizamos redes neurais justamente para problemas onde é difícila modelagem matemática ou o estabelecimento de um algoritmo que os solucione.

Para que o treinamento funcione bem, é importante a disponibilidade de umgrande conjunto de dados, que são apresentados repetidamente para a rede até que esta“aprenda” uma determinada tarefa. A impossibilidade de dispormos de uma base dedados suficientemente grande traz uma série de problemas para o treinamento da rede,podendo, em muitos casos, comprometer a utilização do método.

O treinamento pode ser um processo lento. Em alguns problemas é necessáriomuito tempo de treinamento para que a rede atinja uma performance satisfatória. Muitasvezes, o resultado desejado não é alcançado numa primeira tentativa e, nesses casos,todo o processo deve ser repetido. Na verdade, nada garante que a rede atingirá umasolução ótima.

A teoria por traz da metodologia ainda carece de maior embasamentomatemático. Muitos pontos importantíssimos em relação a sua aplicação se encontramobscuros, nebulosos e muita pesquisa precisa ainda ser feita. Não há, por exemplo, umateoria que indique qual a arquitetura (número de neurônios e de que forma estãoligados) que melhor se adequa a cada problema. Assim, muitas vezes o processo detreinamento deve ser acompanhado de perto por uma pessoa que já possua algumaexperiência no assunto, para que resultados satisfatórios sejam atingidos.

Deve ficar claro que redes não devem ser utilizadas em qualquer situação. Seuuso só é justificado em problemas que não são facilmente modelados pelos métodostradicionais, problemas que apresentam não linearidades etc.

Page 14: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

6

2.2 - Histórico

O funcionamento do nosso sistema nervoso há muito exerce fascínio e muitasforam as tentativas de melhor entendê-lo. A medida que as pesquisas avançavam, suacomplexidade ficava mais e mais clara. Dezenas de bilhões de neurônios, cada qualligado a milhares de outros produzem um sistema de difícil análise e compreensão. Noentanto, avanços foram feitos e foram desenvolvidos modelos matemáticos queprocuravam representar o funcionamento de um neurônio biológico.

A partir desses modelos, várias linhas de pesquisa começaram a serdesenvolvidas. Logo, ficou claro que sistemas simples podiam realizar tarefas que eramsimilares às realizadas pelo cérebro. A partir daí, dois principais objetivos passaram apermear os estudos realizados. O primeiro era o de utilizar redes neurais artificiais comobjetivo de entender melhor o funcionamento do sistema nervoso biológico. O segundofoi o de utilizar as potencialidades dessa nova ferramenta aplicando-a na solução deproblemas em outras áreas.

Em 1958, Rosemblat desenvolveu uma rede e um processo de treinamento queforam o ponto de partida para vários métodos que funcionavam em redes muito simples,com apenas uma camada de neurônios. Alguns sucessos conseguidos geraram uma certaeuforia sobre o assunto, euforia esta que foi suplantada por uma grande decepçãoquando da publicação em 1969 do livro Perceptrons de Minsky e Papert. Nessetrabalho, os autores provaram que redes de apenas uma camada só eram capazes desolucionar uma classe muito restrita e limitada de problemas de classificação, a dosproblemas linearmente separáveis. A ausência de métodos de treinamento que seadequassem a redes de mais de uma camada de neurônios, juntamente com o grandedesânimo que seguiu a publicação do livro, fez com que a área ficasse praticamenteabandonada por mais de uma década.

Somente em meados dos anos 80, inicialmente com os trabalhos de Hopfield em1982-84 sobre a utilização de redes neurais em problemas de otimização combinatória,e principalmente com os trabalhos do grupo PDP do MIT em 1986, que “redescobriu”uma metodologia de treinamento para redes de mais de uma camada, redes neuraisvoltaram a chamar atenção da comunidade acadêmica. Com a obtenção de grandenúmero de bons resultados práticos, uma nova onda de euforia começou a cercar oassunto.

Atualmente existem diversas metodologias de treinamento e diversas“arquiteturas” de redes que vem sendo utilizadas com sucesso. Entretanto, ressaltamosmais uma vez que redes neurais não se adaptam bem a qualquer tipo de problema. Há,hoje, uma tendência de se desenvolver sistemas híbridos que utilizem diversastecnologias que se complementam.

Page 15: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

7

2.3 – Neurônio: Unidade Básica de Processamento.

A unidade básica de funcionamento de uma rede neural, biológica ou artificial, éo neurônio. Logo, a compreensão do funcionamento dessa unidade é fundamental para oentendimento do método. Na figura abaixo mostramos dois neurônios biológicos edestacamos suas partes mais importantes: Corpo celular, dendritos, e axônio.

FIGURA 1 - Neurônio Biológico

As sinapses são conexões que ligam dois neurônios: O axônio de um neurônio éligado ao dendrito de um outro através de uma sinapse. É pelo axônio que o sinal desaída de um neurônio é transmitido. Os dendritos, por sua vez, recebem os sinais deentrada provenientes de outros neurônios.

Cada célula nervosa recebe sinais elétricos de excitação proveniente de outrosneurônios, através das sinapses. As sinapses amplificam esses sinais de entradafortalecendo-os ou enfraquecendo-os. Ponderados pelas sinapses, estes sinais sãotransmitidos ao corpo celular, estimulando a célula. Esse estímulo é que determina aintensidade do sinal elétrico a ser transmitido a outros neurônios através do axônio(saída).

A relação entre a saída de um neurônio e os sinais que o estimulam não é linear.Essa característica torna os sistemas nervosos extremamente complexos bem como astarefas que eles são capazes de realizar.

Com o funcionamento básico do neurônio biológico em mente, passamos adescrição do neurônio artificial. Um neurônio artificial é, na verdade, um modelomatemático simplificado do neurônio biológico. Eles possuem os mesmos elementosbásicos de seus pares biológicos e funcionam de modo extremamente simples. Omodelo normalmente utilizado está descrito abaixo.

Page 16: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

8

Cada neurônio artificial “i” possui uma saída Vi que é um valor realrepresentando o seu nível de ativação. Os neurônios estão ligados entre si através desinapses, que assumem valores numéricos reais. No decorrer desse trabalho, iremosutilizar a notação “Wij” para denominar a sinapse que liga a saída do neurônio “j” aentrada do neurônio “i”.

Podemos descrever o funcionamento de um neurônio “i” da seguinte forma: Oneurônio “i” faz o somatório ponderado pelas sinapses das saídas de todos os neurôniosligados a sua entrada, juntamente com um valor constante de excitação (V0=1), criandoa variável interna Ui. Esse valor constante de excitação existe para criar umapolarização ou “bias”, que além de facilitar o treinamento, aumenta a fidelidade emrelação ao par biológico. O somatório que origina Ui pode ser escrito da seguinte forma:

nUi = Σ Vk x Wik k=0

Uma vez calculado Ui, a saída Vi do neurônio “i” fica determinada a partir deuma função não-linear, chamada de função de ativação “f(.)” do neurônio.Normalmente, a função de ativação utilizada é uma sigmóide ( função em forma de S,monótona, não decrescente e diferenciável). A tangente hiperbólica é um exemplo desigmóide e é uma das funções mais utilizadas. Neste trabalho ela foi adotada comofunção de ativação. Assim, podemos escrever a saída do neurônio da seguinte forma:

Vi = f(Ui)

Neste trabalho:

Vi = Tgh(Ui)

Mostramos agora a função de ativação adotada:

-1.5

-1

-0.5

0

0.5

1

1.5

-5 -4 -3 -2 -1 0 1 2 3 4 5Ui

F (U

i) =

Tgh

(Ui)

FIGURA 2 - Tangente Hiperbólica

Page 17: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

9

O esquema de um neurônio artificial facilita muito a compreensão de seufuncionamento :

FIGURA 3 - Neurônio Artificial

2.4 - Ligando os Neurônios

Ao ligarmos neurônios obtemos uma rede neural. No cérebro humano,observamos bilhões de neurônios, cada um ligado a milhares de outros. As redesartificiais utilizadas para fins práticos são extremamente simples quando comparadas àsbiológicas. Em geral, o número de neurônios utilizado é pequeno e impomos restriçõessobre como se fazer ligações entre eles. Apesar dessa aparente simplicidade, as redesartificiais podem realizar operações muito complexas.

Chamamos de arquitetura de uma rede o número de neurônios que ela possui ede que forma estão ligados. Existem alguns arranjos que estão mais consagrados naliteratura, por terem se mostrado bastante eficientes para algumas classes de problemasou por se adaptarem bem a uma determinada metodologia de treinamento. No entanto,antes de entrar nos detalhes de uma dada arquitetura, vamos entender o funcionamentogeral de uma rede.

Uma rede neural artificial é um sistema não linear, que mapeia entradas emsaídas desejadas. As entradas precisam estar escritas de tal forma que possam ser“compreendidas” pela rede, e as saídas de forma que possam ser geradas por ela. Asentradas e saídas precisam ser um conjunto de números reais. Assim, na maioria doscasos, precisamos rescrever um dado problema para podermos resolve-lo através deredes.

Em sistemas biológicos, o sistema sensorial é responsável por captar os sinais domeio externo e transformá-los em impulsos eletroquímicos que podem ser “entendidos”e tratados pelo sistema nervoso. Quando deparamos com um problema, precisamosfazer o papel do sistema sensorial transformando as variáveis de entrada e saída em

Page 18: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

10

variáveis que possam ser “entendidas” pela rede neural artificial. Vamos exemplificaratravés de um problema bastante simples.

Suponha, por exemplo, que queiramos utilizar uma rede para reconhecer ascinco vogais do alfabeto { A, E, I, O, U } que estão escritas em cinco cartões. Cada vezque apresentarmos um cartão para a rede queremos que ela nos indique qual vogal estáescrita. Precisamos rescrever o problema para tratá-lo e existem inúmeras maneiras defazê-lo.

Poderíamos utilizar uma rede com cinco saídas, cada uma corresponderia a umavogal. Ao apresentarmos a primeira vogal “A” para a rede esta acionaria a primeirasaída e inibiria as demais. O mesmo deveria ocorrer para as demais vogais. Precisamosnos lembrar que saídas da rede são saídas de neurônios e que, no caso de utilizarmos atangente hiperbólica como função de ativação, são números reais entre -1 e 1. Assim,acionar uma saída poderia significar levá-la a 1 e inibi-la, levá-la a -1.

Dessa forma, ao apresentarmos um cartão contendo a letra A para a rede, eladeveria apresentar como saída o vetor (1,-1,-1,-1,-1). No caso da letra O, a saída deveriaser (-1,-1,-1, 1,-1).

Resolvido o problema de representar as saídas, precisamos resolver o problemade representar as entradas, de forma que elas possam ser devidamente tratadas. Umamaneira de fazê-lo seria transformando-as numa seqüência de 1’s e -1’s. Isso poderia serfeito subdividindo o cartão em um certo número pequenas regiões, por exemplo 9. Acada região corresponderia uma entrada. Se houvesse algo escrito em uma dada região,a entrada correspondente assumiria valor 1, caso contrário, assumiria valor -1. Assim,transformaríamos cada vogal em uma seqüência de 1’s e -1’s que poderia ser facilmentelida e trabalhada pela rede.

FIGURA 4- Conversão das entradas

Procedendo desta forma, as vogais seriam representadas da seguinte forma:

• A ⇒ (-1, 1,-1, 1, 1, 1, 1,-1, 1);• E ⇒ ( 1, 1, 1, 1, 1,-1, 1, 1, 1);• I ⇒ (-1, 1,-1,-1, 1,-1,-1, 1,-1);• O ⇒ ( 1, 1, 1, 1,-1, 1, 1, 1, 1);

Page 19: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

11

• U ⇒ (1,-1, 1, 1,-1, 1, 1, 1, 1).

Para esse problema específico, uma rede neural consistiria num sistema com 9entradas e 5 saídas. Quando recebesse em suas entradas um conjunto que representasseuma das vogais acima, deveria ativar a saída correspondente e inibir as demais. Oproblema de identificar as vogais escritas num cartão se transformou no problema degerar o vetor de saída que identifica a vogal representada no vetor de entrada.Mostramos abaixo como o sistema funcionaria no caso de apresentarmos um cartão coma letra E.

Letra E representada na entrada Letra E representada na saída

1 1 1 -1 1 1 1 Rede Neural -1-1 -1 1 -1 1 1

FIGURA 5 - Identificando a letra E

Com o problema devidamente escrito, passamos a síntese da rede. Essa sínteseconsiste em determinar a arquitetura de uma rede ( número de neurônios e de que formaestão ligados) que gere as saídas desejadas a partir das entradas apresentadas.Felizmente, como já foi mencionado anteriormente, existem alguns arranjos deneurônios já consagrados na literatura, bem como metodologias para a determinação dosvalores das sinapses que conectam os neurônios.

Destacamos, agora, alguns arranjos, ou tipos de redes que vem sendoamplamente utilizadas. Cada uma possui suas próprias peculiaridades, vantagens edesvantagens.

Redes feedforward (sem recorrência);Quantizadores Vetoriais (Kohonen, ART, RBF e similares);Redes recorrentes (Hopfield e similares).

Neste trabalho utilizaremos redes feedforward e adotaremos backpropagationcomo metodologia de treinamento (determinação dos valores das sinapses). Essacombinação é, sem sombra de dúvidas, a mais utilizada por uma série de fatores.Primeiramente, o fato de redes feedforward não apresentarem realimentações garante aestabilidade do sistema. Além disso, essa combinação se mostra muito simples e já foi

Page 20: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

12

aplicada com sucesso a muitas classes de problemas, como previsões, simulação desistemas não lineares, reconhecimento de padrões etc.

2.5 - Redes Feedforward

Vamos, agora, tratar mais especificamente do tipo de arquitetura de rede neuralque será utilizado no decorrer do trabalho: redes feedforward.

Redes feedforward são redes onde os neurônios são dispostos em camadas. Cadaneurônio de uma camada se conecta com todos da camada seguinte e somente comestes. O número de neurônios da primeira camada é igual ao número de entradas e onúmero de neurônios da última camada se iguala ao número de saídas. O número decamadas intermediárias e o número de neurônios em cada camada precisa serdeterminado para cada problema. Não há teoria que indique qual o número ideal decamadas intermediárias nem quantos neurônios deve-se colocar em cada uma. É comumse determinar esses números com base na experiência passada de problemas análogos eatravés de tentativa e erro.

Devemos mencionar uma discussão que existe sobre a maneira de se contar onúmero de camadas. Isto ocorre pois a primeira camada não têm a mesma função dasdemais. Esta serve apenas para distribuir as entradas no sistema e não realiza nenhumaoperação matemática. Assim, alguns autores não a incluem na contagem.

A compreensão deste tipo de arquitetura de rede fica muito mais clara comauxílio de uma representação gráfica:

FIGURA 6 - Exemplo de rede feedforward.

Na figura mostrada acima, representamos uma rede feedforward com 3 camadas.A primeira camada não possui neurônios propriamente ditos. Ela simplesmente distribuias n entradas ( X1, X2, ..., Xn ) à segunda camada. A saída dos neurônios da segundacamada é transmitida a terceira. A saída dos neurônios da última camada são as saídasda rede.

Fazer a síntese de uma rede feedforward significa determinar o número de camadas, onúmero de neurônios em cada camada, e o valor de todas as sinapses que a compõem.

Camada 1 (entradas) Camada 2 Camada 3

X1

X2

XN

Saídas daRede

Page 21: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

13

Como já foi mencionado, o número de neurônios da primeira e ultima camadas sãodeterminados pelo número de entradas e saídas da rede. Mostra-se teoricamente queuma camada intermediária é suficiente para se resolver quaisquer problemas [5]. Umaúnica camada intermediária também conduz a bons resultados na quase totalidade doscasos práticos. Assim, a síntese de uma rede desse tipo, na grande maioria dos casos,consiste na determinação do número de neurônios da camada intermediária ( segundacamada ) e na determinação dos valores das sinapses.

Apesar da aparente simplicidade, a síntese de uma rede feedforward não é umproblema de fácil solução. No exemplo citado anteriormente, dos cartões com as vogais,teríamos uma rede com 9 entradas e 5 saídas. Assim teríamos 9 neurônios na primeiracamada e 5 na camada de saída. Como primeira tentativa, poderíamos fazer uma redecom uma camada intermediária de 7 neurônios. Quanto maior o número de neurônios nacamada intermediária, maior a capacidade da rede realizar funções de grandecomplexidade. No entanto, quanto maior o número de neurônios na camadaintermediária, maior é o problema de se determinar os valores das sinapses. Assim,devemos buscar o menor número de neurônios que possibilite uma performancesatisfatória e, como já mencionado anteriormente, em geral isso é feito na base datentativa e erro. Determinar o valor de todas as sinapses que compõem essa redefazendo com que ela reconheça as vogais gravadas nos cartões é um problema de difícilsolução analítica.

Uma saída para a resolução do problema de determinação do valor das sinapsesé a adoção de um método iterativo. Nesse caso, os valores das sinapses iriam sendomodificados a cada iteração na tentativa de fazer com que a rede realize a tarefa quedesejamos. Foi assim que nasceu a backpropagation, método mais utilizado paradeterminação dos valores das sinapses, que é discutido no capítulo 3.

Page 22: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

14

3 - Backpropagation

Page 23: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

15

3.1 – Introdução

Backpropagation é o método mais utilizado e conhecido de treinamento de redesneurais. Treinar uma rede significa determinar o valor de todas as sinapses que elapossui. A popularidade desse método se deve a sua simplicidade e a possibilidade defácil aplicação em uma enorme variedade de problemas.

A idéia por trás da backpropagation é a de ir alterando os valores das sinapsesaté que ela realize o mapeamento que queremos. Em geral, essas sinapses são iniciadascom valores aleatórios e vão sendo modificadas no sentido de melhorar a performanceda rede. A medida que as sinapses vão sendo alteradas, dizemos que a rede está“aprendendo” e, ao final do processo, (se bem sucedido) dizemos que ela aprendeu arealizar uma determinada atividade.

Para modificarmos os valores das sinapses no sentido de melhorar aperformance da rede, precisamos definir o que é essa performance e como medi-la.Além disso, precisamos entender de que forma uma mudança nos valores das sinapsesmodifica a performance da rede. Esse é um ponto importante na compreensão dessemétodo de treinamento. Precisamos criar um critério objetivo que, a partir dos valoresatuais das sinapses, nos indique quão bem a rede está realizando uma dada atividade.

Esse critério se operacionaliza através da criação de um funcional. Essefuncional gera, a partir dos valores das sinapses, um número real que indica quão bem arede está executando a tarefa para qual foi designada. Quanto menor (ou maior) o valorretornado pelo funcional melhor a performance da rede.

O problema de treinar a rede passa a ser tratado como o problema de encontraras sinapses que minimizam (ou maximizam) esse funcional. O problema de encontrar oconjunto de sinapses que faz uma rede neural realizar uma atividade desejada setransformou num problema de minimização. O método de backpropagation consiste naminimização do funcional que criamos para medir a performance de uma rede. Essaminimização é feita através do método do gradiente descendente.

Vale lembrar que as saídas de uma rede dependem do valor das entradas, da suaarquitetura ( número de neurônios e como estão ligados ) e, finalmente, do valor dassinapses. Assim, uma vez determinada a arquitetura, a relação entre entradas e saídasdepende apenas do valor das sinapses. Logo, podemos dizer que o valor das sinapsesestá intimamente ligado com a performance de uma rede neural e que o critério utilizadopara medi-la deve ser função do mesmo.

Podemos utilizar vários critérios para medir quão bem uma rede neural está sesaindo ao realizar uma atividade. No entanto, algumas características são muitodesejáveis. É importante que esse critério pudesse ser utilizado para qualquer tipo deproblema e que não implicasse em cálculos complexos e demorados, o que dificultaria otreinamento da rede.

O funcional normalmente utilizado é o erro médio quadrático das saídas, tantopor satisfazer os pontos levantados acima quanto por ser fácil cálculo do seu gradiente.

Page 24: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

16

Quanto maior o erro médio quadrático das saídas, pior a performance da rede. Assim, ométodo de treinamento consiste em determinar as sinapses que minimizam o erro médioquadrático das saídas.

Para calcular o erro médio quadrático das saídas durante o processo detreinamento, apresentamos variáveis previamente selecionadas para a rede (variáveisque fazem parte do conjunto de treinamento) e computamos o erro entre as saídasgeradas pela rede a as saídas desejadas. Denominamos par “entrada-saída”, o conjuntocomposto por uma variável de entrada e a saída desejada correspondente. Lembramosque para treinar uma rede é importante a disponibilidade de um grande número de pares“entrada-saída” que irão fazer parte do conjunto de treinamento. É comum separaralguns pares “entrada-saída” para verificar a performance da rede em um conjunto devariáveis não utilizadas no processo de treinamento (esse conjunto é denominadoconjunto de teste).

Supondo uma rede neural feedforward com N saídas, a fórmula básica detreinamento da rede é dada pela fórmula abaixo.

∑=

=∆P

k

ki

kjij V

PW

1

2 δα

Onde,

∆ Wij = Ajuste a ser feito na sinapse Wij;

Wij = Sinapse que liga o a saída do neurônio “j” a entrada do neurônio “i”;

α = Passo de treinamento;

P = Número de pares entrada-saída que fazem parte do conjunto de treino.

V = Saída do neurônio “j” ao apresentarmos uma entrada k para a rede.

δ = Somatório dos erros nas N saídas da rede ponderados pelo ganho depequenos sinais da extremidade da sinapse Wij até a respectiva saída. Então, δi

k

pode ser interpretado como a soma dos erros nas saídas propagados “de volta” àextremidade da sinapse Wij.

No apêndice 1 mostramos com maior detalhe como deduzir esse resultado.

kj

kj

Page 25: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

17

3.2 - Problemas com o treinamento

Destacamos a seguir alguns problemas que são extremamente comuns aotreinarmos uma rede através de backpropagation, e para os quais devemos estar atentos:

3.2.1 - Mínimos locais

A primeira dificuldade a ser destacada é a presença de mínimos locais. Esse éum problema muito comum em processos de minimização e é uma constante notreinamento de redes. Mínimos locais são vetores Wl (de sinapses) que apresentam asmelhores performances em suas vizinhanças. O método de treinamento pode convergirpara um desses vetores e nunca atingir o vetor Wot que realmente implica na melhorperformance da rede.

Vamos exemplificar o problema com o gráfico abaixo. Para melhor visualizaçãovamos representar o vetor de sinapses W com apenas uma dimensão.

Erro médio quadrático X W

0

1

2

3

4

5

-50 -40 -30 -20 -10 0 10 20 30 40 50

W

Fo(w)

FIGURA 7 - Exemplo de funcional a ser minimizado.

No gráfico acima, podemos observar a presença de 2 mínimos locais. O primeirose encontra nas proximidades de W = -35 e o segundo em W = 25. Como o método dogradiente procura fazer pequenas mudanças em W de forma a diminuir Fo, otreinamento poderia convergir para qualquer um dos mínimos locais. Atingido umdesses pontos, pequenas mudanças em W implicariam em deterioração da performanceda rede ( o erro médio quadrático aumenta ) e conseqüente retorno ao mínimo local.Poderíamos nunca atingir o mínimo global que aparece para W = -5. Dependendo dovalor inicial de W qualquer um dos três mínimos seria atingido.

Uma maneira de contornar o problema dos mínimos locais é introduzir umprocedimento denominado “simulated annealing” [1,6]. Este consiste em introduzir um

Page 26: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

18

ruído aleatório no vetor W em determinados momentos fazendo com que ele “escape”dos mínimos locais. A restrição contra esse procedimento é que ele torna o treinamentomuito mais lento e complexo.

É importante mencionarmos que raramente temos certeza que o treinamentoatingiu um mínimo global. No entanto, o que importa é atingirmos um valor de W queproporcione uma performance satisfatória da rede neural. Quando o treinamento ficaparado, devido a presença de um mínimo local, e essa performance satisfatória não éatingida, devemos reiniciar o treinamento com um novo conjunto de valores para assinapses.

3.2.2 - Paralisia

Um outro problema que atinge o treinamento é denominado paralisia. Ele ocorredevido ao formato normalmente utilizado na função de ativação do neurônio (o formatode S). A paralisia causa problemas ao treinamento principalmente quando queremosusar a rede para funcionar como um classificador.

O problema ocorre quando as sinapses assumem valores muito grandes. Paracompreender melhor o fenômeno vamos analisar o que ocorre com um único neurônio.Vamos supor que sua função de ativação seja a tangente hiperbólica, representadanovamente no gráfico abaixo.

-1.5

-1

-0.5

0

0.5

1

1.5

-5 -4 -3 -2 -1 0 1 2 3 4 5Ui

F (U

i) =

Tgh

(Ui)

FIGURA 8 - Função de ativação de um neurônio

Observamos que para valores muito grandes e positivos de Ui, a saída noneurônio é praticamente constante e igual a 1. Já para valores grandes e negativos de Ui,a saída tende a -1. Lembramos que Ui é resultado de uma soma das entradas ponderadaspelas sinapses. Assim, se os valores das sinapses forem muito elevados, com maiorfacilidade, Ui será muito elevado e a saída do neurônio será praticamente igual a 1 ou -1e pequenas mudanças nas sinapses não alterarão a saída do neurônio.

O mesmo fenômeno se repete para a rede como um todo. Quando o vetor desinapses W apresenta valores grandes, pequenas mudanças nos valores das sinapses nãoalteram as saídas da rede e, consequentemente, sua performance. Em outras palavras,

Page 27: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

19

pequenas mudanças nos valores das sinapses deixam de provocar modificações deperformance a medida que as sinapses assumem valores demasiadamente elevados.

Essa perda de sensibilidade é decorrência do gradiente do erro médio quadráticodas saídas, que desejamos minimizar. Este gradiente se torna muito pequeno (Fo ficacom um formato achatado). Como as mudanças nos valores das sinapses dado pelométodo de treinamento é proporcional ao gradiente de Fo, o processo de treinamentopode ficar praticamente paralisado.

Paralisia

0

1

2

3

4

5

-90 -80 -70 -60 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90

W

Fo(w)

FIGURA 9 – Paralisia

Adotar heurísticas para verificar se os valores de Ui estão demasiadamenteelevados (ex: Ui > 5 quando estamos utilizando tangente hiperbólica como função deativação), ou limitar os valores das sinapses são procedimentos usados para sinalizar eevitar esse problema [1,2].

Vale ressaltar que se as sinapses forem iniciadas com valores elevados aparalisia pode ocorrer já nos primeiros passos de treinamento. Para evitar esse problemadevemos normalizar as entradas ( escalonar de forma que fiquem limitadas entre -1 e 1 )e limitar as sinapses iniciais a valores entre – (1/N)0.5 e (1/N)0.5, onde N é o maiornúmero de sinapses de qualquer neurônio [2].

3.2.3 - Passo de treinamento

A escolha de α, ou passo de treinamento, é crucial para obtermos um bomresultado. Para cada problema esse passo deve ser ajustado de forma a se obterresultados satisfatórios. Se o passo de treinamento for muito pequeno o treinamento ficademasiadamente lento, e maiores são as chances de o treinamento parar em mínimolocal. Se, por outro lado, utilizarmos um passo grande, o método pode divergir.

Page 28: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

20

Outro ponto a ser levantado é que no início do treinamento é interessanteutilizarmos um valor de α maior, pois provavelmente nos encontramos distante do vetorótimo de sinapses e desejamos acelerar o processo. Já no fim do treinamento, é maisvantajoso utilizarmos um valor de α menor, para evitar oscilações em torno do ponto demínimo e permitir um ajuste fino nos valores das sinapses. Assim, muitos autoresdefendem a utilização de um passo que vai decaindo ao longo do treinamento. Nessetrabalho utilizamos um passo variável para cada sinapse. Essa modificação do algoritmobásico de treinamento será mais detalhada no item 3.3.1.

3.2.4 – Super Especialização

Um problema que tem especial importância é o da super especialização da rede,ou “overtraining”. Esse problema é decorrência da grande capacidade de uma redeaproximar não linearidades e fica mais claro com auxílio de um exemplo.

Suponha que estejamos estudando um fenômeno econômico, por exemplo acurva de oferta da “comoditie” XPTO. Colhemos uma série de dados relacionandopreço e quantidade ofertada provenientes de uma revista especializada. Montamos entãoo gráfico abaixo.

20

21

22

23

24

25

26

27

28

29

100 200 300 400 500 600 700 800 900 1000

Quantidade Ofertada ( Mil Toneladas)

Preç

o (R

$)

FIGURA 10 – Preço X Quantidade Ofertada

Vamos supor também que a curva de oferta de XPTO é bem conhecida no meioeconômico e pode ser representada como mostra a figura abaixo.

Page 29: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

21

20

21

22

23

24

25

26

27

28

29

30

100 200 300 400 500 600 700 800 900 1000

Quantidade Ofertada ( Mil Toneladas)

Preç

o (R

$)

FIGURA 11 – Curva de Oferta

Podemos observar que os pontos colhidos no experimento realizado seencontram próximos à curva tracejada mas raramente se encontram exatamente sobre acurva. Isso pode ser explicado devido a problemas que ocorreram no processo de coletados dados, erros de arredondamento, qualidade das fontes de informação, mudançaspontuais na economia etc. A curva tracejada representa bem o fenômeno se, aoapresentarmos novos pontos relacionando preço e quantidade ofertado do produto, essespontos continuarem próximos à curva de oferta desse produto.

Vamos agora imaginar que a curva de oferta de XPTO não houvesse sidodeterminada. Neste caso, poderíamos tentar determiná-la através de uma rede neural.Para isso, teríamos de construir uma rede com uma entrada (quantidade ofertada), umasaída (preço de XPTO) e uma camada intermediária com um determinado número deneurônios. Feito isso, bastaria treiná-la com os pontos colhidos em nossa base de dados.

O problema que enfrentaríamos seria o de a rede representar característicasespecíficas do conjunto de dados utilizado no treinamento. Ao deixarmos o treinamentose prolongar por um tempo demasiadamente longo, a rede começaria a se “especializar”nos pontos tomados nessa amostragem, começaria a representar, além do fenômenoeconômico de interesse, os erros de coleta, mudanças pontuais na economia etc. A curvade oferta assim obtida poderia acabar passando exatamente pelos pontos colhidos, comomostra a figura abaixo.

Page 30: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

22

20

21

22

23

24

25

26

27

28

29

100 200 300 400 500 600 700 800 900 1000

Quantidade Ofertada ( Mil Toneladas)

Preç

o (R

$)

FIGURA 12 – Super Especialização

O problema por trás da especialização da rede é a deterioração de suacapacidade de generalização. A curva dada pela rede representa muito bem a relaçãoentre o preço e quantidade ofertada de XPTO dos pontos que utilizamos para fazer otreinamento da rede, mas passa a não representar tão bem pontos que não foramutilizados no treinamento. Se coletássemos novos dados, estes provavelmente iriam sesituar mais distantes da curva dada pela rede, que da curva mostrada anteriormente. Emoutras palavras, a rede deixa de representar bem a curva de oferta de XPTO.

A solução para esse problema é a divisão do conjunto de dados disponíveis emdois conjuntos denominados conjunto de treinamento e conjunto de teste. Os dadospertencentes ao conjunto de treinamento são efetivamente utilizados para treinar a rede.Vamos ajustando os valores das sinapses de modo a melhorar o erro médio quadráticoda rede para esse conjunto de dados.

Em determinados momentos, apresentamos à rede os dados pertencentes aoconjunto de teste e calculamos o erro médio quadrático para esse conjunto. Ressaltamosque não utilizamos o conjunto de teste para modificar os valores das sinapses. Esseconjunto serve apenas para avaliarmos como está a performance da rede para umconjunto de dados que não pertencem ao conjunto de treinamento.

No início do treinamento, percebemos que o erro médio quadrático da rede (suamedida de performance) cai em ambos os conjuntos. No entanto, quando a rede começaa se especializar no conjunto de treinamento, sua performance no conjunto de teste piorasignificativamente. Isso caracteriza o “overtraining” ou super especialização da rede.Devemos parar o treinamento antes de o erro médio quadrático do conjunto de testecomeçar a aumentar. É importante mencionar que, de maneira geral, a performance darede é melhor no conjunto de treinamento, o que é bastante intuitivo (foi esse o conjuntoutilizado no ajuste das sinapses).

Mostramos abaixo um gráfico típico que mostra o decaimento do erro médioquadrático nos conjuntos de treinamento e teste. Esses erros serão denominados erro detreinamento e erro de teste daqui por diante. Marcamos com um asterisco um ponto nasproximidades de onde começamos perceber “overtraining”.

Page 31: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

23

0

0.2

0.4

0.6

0.8

1

1.2

1.4

0 1000 2000 3000 4000 5000 6000 7000

Número de Iterações

Erro

méd

io q

uadr

átic

o

erro de treino erro de teste

FIGURA 13 – Evolução típica dos erros de treino e teste durante o treinamento.

Não há teoria que nos garanta a melhor divisão dos dados disponíveis nessesdois conjuntos. Apesar disso, é importante que os dois conjuntos sejam representativosdo fenômeno que queremos analisar. Essa dificuldade se acentua muito quando temospoucos dados disponíveis.

3.3 – Adaptações no Algoritmo Básico de Treinamento

Fizemos algumas modificações no algoritmo básico de backpropagationutilizado para treinar a rede destinada a prever o PIB brasileiro. O principal objetivo foio de automatizar ao máximo a escolha do passo de treinamento e o de evitar oscilaçõesdurante o decaimento dos erros de treino e teste.

3.3.1 - Escolha do Passo

A escolha de um valor de alfa (passo de treinamento) adequado é fundamental emuitas vezes é feita baseada na experiência de quem está monitorando o treinamento darede. Como já mencionamos anteriormente, valores pequenos fazem com que aconvergência fique muito lenta além de aumentar a probabilidade de o métodoconvergir para um mínimo local. Essa combinação é frustrante pois significa esperarhoras de processamento sabendo da grande chance de não atingirmos o resultadoesperado (nesse caso o treinamento deve ser recomeçado). Por outro lado, valoresgrandes propiciam um treinamento mais rápido, porém muito oscilatório, e as vezesdivergente. As sinapses oscilam em torno do mínimo mas não o atingem pois asmudanças nas sinapses são abruptas. Além disso, se o valor do passo forexcessivamente grande, o processo de treinamento pode divergir.

Nesse trabalho seguimos o procedimento descrito por Silva e Almeida [9] onde aescolha de alfa é feita de forma automática. A primeira modificação foi a adoção de umpasso (α) independente para cada sinapse. Deixamos de ter um passo único e passamosa trabalhar com uma matriz α com componentes αij correspondentes a cada sinapse Wij.

Page 32: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

24

É vantajoso utilizarmos passos diferentes nas diversas direções de W basicamente pordois motivos. O primeiro é que o funcional a ser minimizado geralmente apresenta umcomportamento bastante distinto em cada direção. O segundo é que cada Wij podeatingir seu valor “ótimo”, em momentos diferentes do treinamento (o treinamento deveparar em uma direção e prosseguir nas demais).

A segunda modificação é a modificação automática de alfa. A idéia é deaumentar αij quando Wij está distante do seu valor ótimo e diminuir αij quando nosaproximamos desse valor. Como não sabemos qual é o valor ótimo de Wij, nosutilizamos da derivada da função erro em relação a Wij para aumentar ou diminuir αij.Quando essa derivada mantém o mesmo sinal do passo anterior aumentamos o valor deαij pois o mínimo ainda não deve ter sido ultrapassado. Quando essa derivada muda desinal, diminuímos αij pois essa é uma indicação que já ultrapassamos o ponto demínimo.

Abaixo resumimos o procedimento descrito acima em notação matemática.

∂∂

∂∂

=−

−−

contráriocasoBWW

seA

kij

ij

k

ij

kkijk

ij

,

0,

1

11

α

εεαα

Onde,

A e B = são constantes (nesse trabalho A = 1.01 e B =0.99);

Wij = Sinapse que liga o neurônio “j” ao neurônio “i”

k = iteração atual;

εk = erro médio quadrático na iteração k;

kiteraçãonaWaentecorrespondpasso ijkij =α

Algumas observações precisam ainda ser feitas. Primeiramente, é prudentedeterminarmos um valor máximo para αij, para evitar problemas de divergência dotreinamento. Utilizamos αij máximo = 0.2. É prudente não utilizar taxas de crescimentoe decaimento de α muito elevadas, mas ressaltamos que resultado final não é muitosensível à escolha dessas taxas (observe os valores típicos na equação acima).

3.3.2 - Momento

Também como sugerido por Silva e Ameida [9], utilizamos um procedimentodenominado momento para diminuir oscilações dos erros de treino e teste durante oprocesso de treinamento. A idéia é a de impedir mudanças bruscas no vetor W:

Page 33: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

25

∆Wij(k) = β * ∆Wij(k-1) + ∆Wij(K)

Onde,β = constante (nesse trabalho utilizamos β = 0.1);

∆Wij(k)= variação do valor da sinapse que liga o neurônio “j” ao neurônio “i” naiteração k.

∆Wij(k)= idem, calculado segundo backpropagation.

No apêndice A, apresentamos a forma mais comum de se aplicar o momento.

3.3.3 - Critério de parada

Podemos dizer que o treinamento consiste na busca de um vetor W ótimo.Ótimo pois deve minimizar o erro quadrático médio além permitir à rede uma grandecapacidade de generalização. Uma vez encontrado esse vetor, podemos dizer que otreinamento está encerrado. Logo, a seleção de W ótimo está intimamente ligada àperformance da rede ao longo do treinamento assim como ao problema de“overtraining”.

Normalmente, os métodos de treinamento procuram convergir para o mínimoglobal, ou para o vetor W que minimize o erro médio quadrático das saídas. A medidaque o treinamento prossegue, o vetor de sinapses vai se aproximando de Wótimo. Ocritério de parada consiste, de forma geral, na determinação do número de iteraçõessuficientes para que a rede apresente resultados satisfatórios. Após esse número deiterações, o treinamento para e os resultados finais podem ser gerados.

O número de passos não pode ser muito pequeno pois, nesse caso, o treinamentopode ficar incompleto; nem muito grande pois pode implicar em “overtraining”. Asolução que adotamos foi fazer um monitoramento do erro no conjunto de teste aolongo do treinamento. Sempre que um vetor “melhor” para o conjunto de teste éencontrado, ele é guardado. Melhor, nesse caso, significa um vetor W que apresenteerro médio quadrático no conjunto de teste menor. Assim, podemos fazer umtreinamento com um número de passos relativamente elevado e, ao final do processo,recuperar o vetor W que apresentou melhor performance para o conjunto de teste. Esseé o vetor utilizado para gerar os resultados.

3.4 - Divisão dos Conjuntos de treino teste

A divisão dos dados em dois conjuntos (de treinamento e de teste) é fundamentalpara evitarmos o problema de overtraining. Normalmente ainda é necessário a criaçãode um terceiro conjunto: o conjunto de validação.

Como utilizamos um critério, que leva em conta o erro médio quadrático no conjunto deteste, para selecionar o conjunto de sinapses a ser utilizado na geração dos resultados, é

BP

BP

Page 34: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

26

recomendável a criação desse terceiro conjunto (conjunto de validação). Utilizaremos osdados desse conjunto para avaliarmos a performance da rede após o treinamento. Assim,temos o conjunto de treinamento, cujos dados são utilizados no processo de ajuste dassinapses; temos o conjunto de teste, cujos dados são utilizados para verificar aperformance da rede em elementos fora do conjunto de treinamento, e que também éutilizado na seleção do conjunto de sinapses ótimo; e finalmente temos o conjunto devalidação, utilizado para testar a performance da rede após todo o processo detreinamento.

Desta forma, precisamos dividir os dados disponíveis do problema nesses trêsconjuntos. Apesar da importância dessa divisão, não há teoria que nos garanta a melhorforma de implementá-la. De forma geral, conjunto de treinamento deve conter o maiornúmero de dados possível. Os conjuntos de teste e validação devem representar bem oproblema que estamos trabalhando.

No decorrer do próximo capítulo detalharemos como foi feita a divisão dosconjuntos de treino, teste e validação utilizados no problema da previsão do PIBbrasileiro.

Page 35: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

27

4 - Preditor do PIB

Page 36: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

28

4.1 – Introdução

Passamos agora ao problema de previsão do PIB brasileiro. Vamos utilizar umarede neural tipo feedforward com uma camada intermediária. Adotaremosbackpropagation para treiná-la, com as modificações já descritas no capítulo anterior.Descreveremos detalhadamente todo o processo de confecção da rede neural, que fará aprevisão do PIB para o próximo trimestre (em relação a mais recente das variáveis deentrada), desde a escolha das variáveis de entrada à análise dos resultados.Compararemos os resultados obtidos através de redes neurais com os obtidos através demodelo baseado em regressão linear. O objetivo é exemplificarmos a aplicação de redesneurais em um problema de interesse prático, destacando vantagens e desvantagens douso dessa tecnologia. Assim, esse exemplo é uma boa oportunidade para oesclarecimento de dúvidas eventuais bem como um ponto de partida para outrasaplicações.

4.2 - Escolha das variáveis

Um dos maiores problemas encontrados em realizar uma boa previsão, estáligado à escolha e tratamento das variáveis de entrada. A presença de variáveisredundantes, ou de variáveis que não tragam informação útil prejudica o processo deprevisão e treinamento da rede tornando-os lentos e ineficientes. Por outro lado, nãoconsiderar variáveis relevantes leva a resultados insatisfatórios (previsões com erroelevado). Nos dois casos, o bom funcionamento da rede fica comprometido. Dessaforma, determinar corretamente um bom conjunto de variáveis é determinante para sealcançar um bom resultado.

Para selecionarmos um número razoável de variáveis de entrada de nossomodelo realizamos um teste, gerando correlações entre o PIB e mais de novecentasoutras variáveis econômicas, procurando as de maior correlação durante um período devinte anos (de 1976 à 1995).

Dentre essas variáveis, considerando o período acima, encontramos cerca de 300variáveis com correlações acima de 13%. Excluímos, então, variáveis espúrias (nenhumsentido econômico) e variáveis com série histórica limitada. Precisamos de sérieshistóricas longas, possibilitando um grande números de pares “entrada-saída”, para queseja possível o treinamento da rede e uma análise dos resultados obtidos.

Em seguida, entre as variáveis restantes, foram selecionadas 12 queapresentavam um forte sentido econômico de causalidade em relação ao PIB, formandoconjuntamente um cenário representativo da economia em um dado instante. Fizemosum pré-processamento dessas variáveis (ver item 4.3) e geramos correlogramas entre asvariáveis de entrada e o PIB brasileiro.

Através desses correlogramas determinamos também qual a defasagem de tempona qual a correlação é máxima. Essa defasagem precisa ser maior ou igual que ohorizonte da previsão. Dessa forma, para prever o PIB no instante 0 são utilizados osvalores de cada uma das variáveis em um determinado tempo -Dn, onde Dn é a

Page 37: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

29

defasagem em trimestres da variável n. Incluímos ainda o ciclo da série do PIB, que foiestimado durante o pré-processamento das variáveis, como variável de entradaadicional. As 13 variáveis de entrada selecionadas para a confecção do modelo deprevisão do PIB, bem como suas defasagens (para a previsão com horizonte de 3 meses)são fornecidas na tabela a seguir.

Variável Correlação (apóstratamento)

Atraso (trimestres)

Pessoal ocupado na indústria têxtil em SP 0.29 1Taxa de juros real (capital de giro) -0.32 4M1 + poupança -0.25 1M5 -0.23 1IGP-DI -0.26 1IBOVESPA 0.22 1Taxa de câmbio paralelo -0.27 1Venda de caminhões pesados 0.13 1Prod. Industrial de Material de transporte (SP) 0.27 4Utilização do capital mobiliário em SP 0.38 1Produção total de veículos 0.20 4PIB 0.57 1Ciclo (comentado abaixo) 0.11 4TABELA 1 - Variáveis de entrada

Os dados selecionados datam do período entre Janeiro de 76 e Dezembro de 95,mas como o PIB é uma variável trimestral, ficamos com 80 trimestres de estudo. Comoa maior defasagem é de 12 meses, ficamos limitados a prever e testar o PIB entreJaneiro de 77 e Dezembro de 95, o que nos limita a 76 pares entrada/saída. No caso dasdemais variáveis (que apresentam dados mensais) utilizamos o valor correspondente aosegundo mês de cada trimestre (fevereiro, maio, agosto e novembro). Mostramos natabela abaixo o primeiro par “entrada-saída”.

Entradas SaídaPessoal ocupado na indústria têxtil em SP (Nov – 1976)Taxa de juros real (Fev – 1976)M1 + poupança (Nov – 1976)M5 (Nov – 1976)IGP-DI (Nov – 1976) PIBIBOVESPA (Nov – 1976) 1 Trimestre de 1977Taxa de câmbio paralelo (Nov – 1976)Venda de caminhões pesados (Nov – 1976)Prod. Industrial de Material de transporte (SP)Utilização do capital mobiliário em SP (Nov – 1976)Produção total de veículos (Fev – 1976)PIB (Quarto trimestre de 1976)Ciclo (Fev – 1976)TABELA 2 – Par entrada-saída

Page 38: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

30

Para cada trimestre, temos um par entrada-saída correspondente, composto pelo PIB dotrimestre (saída) e variáveis de entrada com respectivos atrasos (entrada). A partir deagora, vamos nos referir a um dado trimestre ou par entrada-saída correspondente a essetrimestre indistintamente.

4.3 - Tratamento dos dados

Para realizar uma boa previsão, seja qual for o método usado, é praticamenteindispensável se fazer um tratamento inicial de todas as variáveis do modelo.Transformações simples nessas variáveis, facilitam muito o processo de treinamento darede neural que irá realizar a previsão do PIB. Nesse trabalho, o tratamento incluiuretirada de tendência de todas as variáveis, transformações logarítmicas nas queapresentavam comportamento exponencial e normalização.

Vamos detalhar o tratamento que foi feito na variável PIB. Utilizaremos essavariável como exemplo pois ela sofreu um tratamento especial. Além do procedimentocomum às demais, retiramos a sazonalidade trimestral e o ciclo (através de umadecomposição em série de Fourier). A primeira etapa do tratamento se reduz a retiradada reta de tendência. Determinamos essa reta através do critério dos mínimosquadrados.

0

20

40

60

80

100

120

140

160

Fev/77 Fev/79 Fev/81 Fev/83 Fev/85 Fev/87 Fev/89 Fev/91 Fev/93 Fev/95

PIB Tendência

PIB do quarto trimestre de 1984 = 100

FIGURA 14 – Evolução do PIB e reta de tendência.

A série original do PIB brasileiro utilizada nesse trabalho já havia sendonormalizada, fazendo-se o PIB do 4 trimestre de 1984 igual a 100.

Retirada a tendência normalizamos a série do PIB sem tendência para que seusvalores ficassem entre –0.5 e 0.5 para facilitar o posterior treinamento da rede neural.Observando essa série normalizada do PIB sem tendência (fig.15), percebemos apresença de um ciclo econômico e de uma sazonalidade trimestral bem marcantes.Determinamos o ciclo econômico através da decomposição em série de Fourier.

Page 39: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

31

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

Fev/77 Fev/79 Fev/81 Fev/83 Fev/85 Fev/87 Fev/89 Fev/91 Fev/93 Fev/95

Pib sem tendência Ciclo econômico

FIGURA 15 – Evolução do PIB sem tendência e ciclo econômico.

A partir da série já sem ciclo e tendência (fig.16) fizemos a retirada dasazonalidade.

-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

Fev/77 Fev/79 Fev/81 Fev/83 Fev/85 Fev/87 Fev/89 Fev/91 Fev/93 Fev/95

Pib s/ tendencia e ciclo Sazonalidade

FIGURA 16 – Evolução do PIB sem tendência/ciclo e Sazonalidade.

Ficamos ainda com um resíduo que não pode ser explicado pela decomposiçãoda série do PIB em tendência, ciclo e sazonalidade (fig. 17).

Page 40: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

32

-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

Fev/77 Fev/79 Fev/81 Fev/83 Fev/85 Fev/87 Fev/89 Fev/91 Fev/93 Fev/95

PIB após pré-processamento

FIGURA 17 – Evolução do PIB após pré-processamento, resíduo.

Podemos recompor a série original sem dificuldades:

PIB = tendência + (ciclo + sazonalidade + PIB após pré-processamento)/fatorOnde fator é a constante utilizada para normalizar o PIB sem tendência entre: –

0.5 e 0.5.

Nesse trabalho queremos prever o PIB após o pré-processamento, que iremosdenominar resíduo. Vamos utilizar a rede neural para prever o sinal que restou apósretirarmos da série do PIB a tendência, o ciclo e a sazonalidade. Ressaltamos que atendência, o ciclo e a sazonalidade são características muitos marcantes na sériehistórica do PIB brasileiro e a simples decomposição descrita acima já descreve bastantebem o comportamento do PIB brasileiro no período em análise.

4.4 – Divisão dos Dados / Evolução da Economia

Para que possamos treinar uma rede neural, é preciso dividir os pares entrada-saída disponíveis em 2 conjuntos: treino e teste. Como já foi mencionado anteriormente,o conjunto de treino será utilizado no processo de ajuste das sinapses e o conjunto deteste será utilizado para medirmos a performance da rede ao longo do processo detreinamento, evitando o “overtraining”.

Nesse trabalho, utilizamos um terceiro conjunto (conjunto de validação), cujasvariáveis não fazem parte nem do conjunto de treino nem do de teste. Esse conjunto nãofoi utilizado em nenhum momento durante o treinamento da rede, e tem como finalidadesimularmos um caso real de previsão, onde o modelo é criado a partir de variáveispassadas e utilizado para indicar qual será o PIB num período futuro (que obviamentenão foi utilizado na criação do modelo). Assim, utilizamos os conjuntos de treino e teste

Page 41: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

33

para montar o modelo de previsão do PIB e o conjunto independente de validação paragerar os resultados (previsões).

período utilizado para criar o modelo período onde o modelo será utilizado

HOJE

Conjuntos de Treino e Teste Conjunto de Validação

Como iremos fazer a previsão do PIB apenas para o próximo trimestre, o “par entrada-saída” correspondente a esse trimestre será nosso conjunto de validação. Precisamosainda determinar que período será utilizado na confecção do modelo e posteriormentedividir os pares entrada-saída, que fazem parte desse período, nos conjuntos de treino eteste. Nesse trabalho, isso significa determinar quantos trimestres iremos utilizar parafazer o modelo de previsão e, posteriormente, determinar quais trimestres serãoutilizados para o conjunto de treino e de teste.

Para se determinar quantos trimestres passados utilizar para a confecção domodelo, deve-se ter uma boa idéia de como a economia brasileira se comportou aolongo desses anos. Devemos verificar se o sistema que buscamos modelar é variante ouinvariante no tempo, e de que forma as variáveis que nós selecionamos se comportamao longo dos diversos choques por que a economia brasileira passou durante os últimos20 anos.

Foi com esse intuito que fizemos a representação das variáveis de entrada aserem utilizadas no modelo de previsão, por suas 2 primeiras componentes principais[1,2]. Através das componentes principais, podemos “reduzir” o espaço das variáveis deentrada utilizadas no modelo a fim de melhor representá-las graficamente. Na verdade,cada componente principal é uma combinação linear das variáveis de entrada. Aprimeira componente é aquela que melhor representa o conjunto de todas as variáveis, aduas primeiras formam o conjunto de duas variáveis que melhor representa o conjuntode todas as variáveis.

Segue abaixo uma tabela onde mostramos os coeficientes das 2 primeiras componentesprincipais. O valor de cada componente principal referente a um dado trimestre écalculada através do somatório das variáveis de entrada atrasadas, ponderadas peloscoeficientes mostrados abaixo. Lembramos que o atraso a ser utilizado para cadavariável foi tomado a partir do correlograma de cada variável com a série do PIBconforme apresentado na tabela1.

Variáveis de entrada Coeficientes da 1a

componenteCoeficientes da 2a

componentePessoal ocupado na indústria têxtil em SP 0,570 -0,334Taxa de juros real (capital de giro) -0,079 0.425M1 + poupança -0,986 0,025M5 -0,983 0,058IGP-DI -0,979 0,086

Page 42: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

34

IBOVESPA -0,973 0,028Taxa de câmbio paralelo -0,976 0,095Venda de caminhões pesados -0,361 -0,514Prod. Industrial de Material de transporte (SP) -0,437 -0,737Utilização do capital mobiliário em SP 0,256 -0,494Produção total de veículos -0,616 -0,608PIB 0,304 -0,660Ciclo (comentado abaixo) 0,083 -0,547TABELA 3 – Componentes Principais

Apresentamos a seguir alguns gráficos onde plotamos as 2 primeiras componentesprincipais das variáveis de entrada para cada trimestre de janeiro de 1977 a dezembro de1995. A primeira componente principal é representada no eixo das abscissas e a segundano eixo das ordenadas. Lembramos que essas 2 componentes principais são a melhorforma linear de representar no plano as variáveis de entrada de nosso modelo, que porsua vez, devem representar a economia brasileira em um dado instante. Assim, aevolução dessas 2 primeiras componentes principais pode ser vista como umarepresentação gráfica da evolução da economia brasileira no período analisado. Apenaspara melhor visualização, além de apresentamos a evolução das componentes principaisdurante todo o período analisado em um único gráfico, apresentamos a mesma evoluçãoem 4 gráficos onde o período é dividido.

Evolução das Componentes Principais

-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

-1.2 -0.8 -0.4 0 0.4 0.8 1.2

comp.2

comp.1

Fev-77

N ov-95

Page 43: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

35

-0.5

-0.25

0

0.25

0.5

-1 -0.5 0 0.5 1

comp.1

comp.2

Fev-77

Ago-81

-0.5

-0.25

0

0.25

0.5

-1 -0.5 0 0.5 1

comp.1

comp.2

Nov-81

Mai-86

-0.5

-0.25

0

0.25

0.5

-1 -0.5 0 0.5 1

comp.1

comp.2

Nov-95

Mai-91

-0.5

-0.25

0

0.25

0.5

-1 -0.5 0 0.5 1

comp.1

comp.2

Fev-91

Ago-86

FIGURA 18 – Evolução das componentes principais das variáveis de entrada utilizadasno modelo de previsão.

É interessante notarmos que essa representação da economia brasileira nos mostradiversos períodos de transição, onde as componentes principais mudam de região noplano, assim como períodos de maior estabilidade, onde as componentes principaiscircundam determinada região. Isso é fruto da própria evolução da economia brasileira,que é marcada por diversas crises e planos econômicos. Vale destacar o períodoposterior ao plano Collor (que foi implantado no início de 1990), onde as componentesprincipais apresentam abruptas mudanças e demoram a encontrar um novo ponto deestabilidade.

Apresentamos no gráfico abaixo a relação entre o módulo do vetor composto pelas 2primeiras componentes principais das variáveis de entrada com o módulo do vetorcomposto por todas as variáveis de entrada. Vamos denominar essa relação comorepresentatividade das componentes principais. Através da representatividade, podemosobservar quão bem essas 2 componentes principais representam o conjunto de todas asvariáveis de entrada. Observamos que, de maneira geral, as 2 primeiras componentesprincipais se apresentam como uma boa forma representação das variáveis de entrada,exceto durante o plano Collor em 90 e, em menor escala, no início da decada de 80,quando o país viveu um período de forte inflação e recessão econômica.

Page 44: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

36

0%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

Fev-77 Fev-79 Fev-81 Fev-83 Fev-85 Fev-87 Fev-89 Fev-91 Fev-93 Fev-95

Repr

esen

tativ

idad

e

FIGURA 19 – Representatividade das componentes principais.

Essa análise gráfica, ilustra de forma simples o impacto que os diversos planoseconômicos tiveram sobre a economia brasileira como um todo. Além disso, as grandesoscilações apresentadas pelas componentes principais (vide gráfico 18) são umaindicação que não devemos utilizar dados muito antigos para fazer um modelo deprevisão do PIB brasileiro. No entanto, quanto menor o período utilizado na elaboraçãodo modelo de previsão, menor o conjunto de dados disponíveis, o que torna mais difícilo treinamento da rede (ou mesmo a criação de um modelo a partir de regressão linear).

Com o objetivo de determinarmos o número de trimestres a serem utilizados naelaboração do modelo de previsão do PIB através de redes neurais, adotamos o seguinteprocedimento. Fizemos uma série de modelos de previsão extremamente simples, quepudessem ser rodados rapidamente em diversas situações. Esses foram modeloselaborados a partir de regressão linear, tendo como entradas apenas as 2 primeirascomponentes principais das variáveis que já havíamos selecionado, e como saída o PIBbrasileiro. A seguir mostramos o erro médio quadrático das previsões em função donúmero de trimestres utilizados na elaboração desses modelos:

0.000

0.005

0.010

0.015

0.020

0.025

0 1 2 3 4 5 6

# de anos utilizados na elaboração do modelo

Erro

Méd

io Q

uadr

átic

o da

pre

visã

o

FIGURA 20 – Erro da previsão em função do número deanos utilizados na elaboração do modelo.

Conforme esperado, quando utilizamos um período muito pequeno para elaborar omodelo, o erro de previsão aumenta (poucos dados disponíveis). Da mesma forma,quando aumentamos muito o período utilizado para a elaboração do modelo, o erro

Collor

Delfim

Page 45: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

37

também aumenta (o sistema é variante no tempo e dados muito antigos atrapalham aelaboração do modelo).

Analisando os resultados apresentados na figura 20 decidimos utilizar os 16 últimostrimestres (4 últimos anos) para montar o modelo de previsão através de redes neurais.Como dispomos de 76 pares entrada-saída (1 por trimestre) fizemos a previsão do PIBem 60 trimestres. Os 16 primeiros trimestres, referentes aos anos de 1977 a 1980 foramutilizados apenas na elaboração do modelo a ser utilizado na previsão do PIB para oprimeiro trimestre de 81. Para cada um dos 60 trimestres onde fizemos a previsão doPIB, utilizamos os 16 trimestres anteriores para confecção do modelo.

Para cada um desses 60 trimestres foi preciso ainda, dividir os 16 pares entrada-saídacorrespondentes aos 16 trimestres anteriores nos conjuntos de treinamento e teste.Primeiramente, arbitramos que os conjuntos de teste terão 4 pares entrada-saída, e os detreino 12.

Apesar de não haver uma teoria de nos garanta a melhor maneira de fazer essa divisão, éimportante que tanto o conjunto de treino como o de teste representem bem o períodoque desejamos prever (no caso o próximo trimestre).

Para tanto, recorremos mais uma vez ao gráfico com as 2 primeiras componentesprincipais das variáveis de entrada utilizadas no modelo. Para cada um dos 16 trimestresutilizados na elaboração do modelo de previsão, temos um par entrada-saídacorrespondente, e essa entrada pode ser representada num plano através de suas 2primeiras componentes principais (como já mostrado anteriormente). Podemos aindaplotar no mesmo gráfico as 2 primeiras componentes principais do vetor de entradacorrespondentes ao trimestre onde queremos prever o PIB.

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

-1 -0.8 -0.6 -0.4 -0.2 0 0.2

Comp.1

Com

p.2

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0 0.1 0.2 0.3 0.4 0.5 0.6

Comp.1

Com

p.2

10 Tri de 1981

40 Tri de 1985

Page 46: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

38

-0.5

-0.4

-0.3

-0.2

-0.1

0.0

0.1

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Comp.1

Com

p.2

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

-1.1 -0.9 -0.7 -0.5 -0.3 -0.1 0.1 0.3

Comp.1

Com

p.2

FIGURA 21 – Exemplos de divisão dos dados entre conjunto de treino e teste.Lembramos que as variáveis de entrada utilizadas para se fazer a previsão do PIB estãonecessariamente disponíveis no momento em que fazemos a previsão.

Como o conjunto de teste é utilizado para monitorarmos a performance da rede, demosuma maior importância na seleção dos pares entrada-saída que irão fazer parte desseconjunto. Assim, evitamos ao máximo que façam parte do conjunto de teste paresentrada-saída cujo vetor de entrada se apresente “distante” do vetor de entrada a serutilizado na previsão (a “distância” é observada através de gráficos como na Figura 21).No conjunto de teste, também são evitados os pares entrada-saída cujo vetor de entradaapresente as 2 primeiras componentes principais com baixa representatividade.

O conjunto de treino fica então composto pelos 12 pares entrada-saída restantes. Aindaassim, procuramos que alguns pares entrada-saída cujo vetor de entrada se apresentepróximo do vetor utilizado na previsão façam parte do conjunto de treino.

4.5 –Resultados Obtidos Através de Redes Neurais.

Fizemos a previsão do PIB brasileiro através de redes neurais para cada um dos60 trimestres entre Jan-81 a Dez-95. Fizemos previsões utilizando redes de 3, 5, 7, 10,15 e 20 neurônios na camada intermediária para cada um desses trimestres (para a redecom 20 neurônios fizemos previsões somente entre o primeiro trimestre de 81 e o

Componentes Principais da Var. de entrada que, quando apresentada à rede, irá fornecer a previsão do PIB.Componentes Principais das Var. de entrada que fizeram parte do conjunto de treino.

Componentes Principais das Var. de entrada que fizeram parte do conjunto de teste.

40 Tri de 1990

40 Tri de 1995

Page 47: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

39

primeiro trimestre de 1990). O treinamento da rede foi feito com base no período de 16trimestres que antecedem o trimestre da previsão. Lembramos que, para cada trimestre,há um par entrada-saída correspondente, composto pelo PIB do próprio trimestre e pelasvariáveis de entrada devidamente atrasadas. Esses pares entrada-saída foram,devidamente divididos nos conjuntos de treino e teste conforme já descritoanteriormente. Utilizamos o método de backpropagation, com as modificações tambémdescritas anteriormente.

A figura 22 apresenta uma evolução típica do erro médio quadrático dosconjuntos de treinamento e teste da rede neural, em função do número de passos detreinamento, evidenciando a ocorrência de “overtraining” após o erro de teste atingirum patamar mínimo. Destacamos também a pouca oscilação dos erros de treino e testeno decorrer do processo de treinamento, fruto da utilização do passo variável e domomento conforme descrito no item 3.3.1.

0.00

0.05

0.10

0.15

0.20

0 5000 10000 15000 20000

Número de iterações (passos)

Etreino Eteste

FIGURA 22 – Erros de teste e treino em função ao longo do treinamento

4.5.1 – Análise dos Resultados

Primeiramente lembramos que antes de elaborarmos os modelos de previsão,fizemos um pré-processamento da série histórica do PIB brasileiro. Nesse pré-processamento, foi feita a retirada da tendência, ciclo e sazonalidade da série (conformedescrito no item 4.3). Além disso, a série original do PIB brasileiro foi normalizada demodo que todos os valores ficassem entre -0.5 e 0.5.

A previsão dada pela rede neural é a previsão do PIB após o pré-processamento.Para chegarmos ao resultado real do PIB, basta fazermos a operação inversa ao pré-processamento, que consiste na adição da sazonalidade, do ciclo, rescalonamento(multiplicar por uma constante) e adição da tendência. Apenas para fins ilustrativos,apresentamos no gráfico abaixo a série original do PIB brasileiro no período de janeirode 1981 a dezembro de 1995, juntamente com os respectivos valores previstos a partirde redes com 10 neurônios na camada intermediária.

Page 48: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

40

70

80

90

100

110

120

130

140

150

Fev/81 Fev/83 Fev/85 Fev/87 Fev/89 Fev/91 Fev/93 Fev/95

PIB

(Bas

e qu

arto

trim

estr

e de

198

4 =

100)

PIB

Previsão

FIGURA 23 – Série original do PIB e Previsão após adição de sazonalidade, do ciclo,rescalonamento e adição da tendência (rede com 10 neurônios).

Essa operação inversa ao pré-processamento da série do PIB (rescalonamento dasérie prevista, adição de tendência, ciclo e sazonalidade) não traz nenhum impacto naanálise comparativa da performance das previsões. Assim, para simplificar o trabalho, aanálise dos resultados foi feita diretamente a partir das previsões do PIB após o pré-processamento (sem rescalonamento, adição de tendência, ciclo e sazonalidade).

-0.3

-0.2

-0.1

0.0

0.1

0.2

0.3

Fev/81 Fev/83 Fev/85 Fev/87 Fev/89 Fev/91 Fev/93 Fev/95

Previsão

PIB

FIGURA 24 – Série do PIB após pré-processamento e previsão obtida com redesneurais com 10 neurônios na camada intermediária.

Para medir a performance da rede neural, calculamos erro médio quadrático das60 previsões feitas pelas redes neurais nos de janeiro de 1981 a dezembro de 1995.Compararemos esse resultado com a potência (média dos quadrados dos termos dasérie) da série do PIB após o pré-processamento. Isso nos mostra se a previsão estádiminuindo a potência do PIB após o pré-processamento ou acrescentando maisvariância ao sinal.

Page 49: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

41

Como o plano Collor trouxe grande impacto sobre o PIB brasileiro e sobre asvariáveis que utilizamos em nosso modelo de previsão a partir do 2 trimestre de 1990,vamos analisar a performance da rede neural nos períodos posterior e anterior ao planoCollor.

Conforme mencionamos anteriormente, fizemos a previsão do PIB brasileiropara cada trimestre entre janeiro de 1981 e dezembro de 1995 a partir de redes neuraiscom 3, 5, 7, 15 e 20 neurônios. Para cada trimestre, fizemos o treinamento de cada umadas redes a partir de 16 pares entrada-saída divididos em conjunto de teste e treinoconforme descrito no item 4.4. Lembramos que esses 16 pares entrada-saídacorrespondem aos 16 trimestres (ou 4 anos) que antecedem a previsão.

Apresentamos na tabela abaixo o resumo dos resultados obtidos:

Potência do PIB 0.0115 100.0% 0.0106 100.0% 0.0129 100.0%

EMQ (3 neurônios) 0.0110 95.6% 0.0093 87.9% 0.0136 106.0%

EMQ (5 neurônios) 0.0110 96.0% 0.0079 74.4% 0.0160 124.7%

EMQ (7 neurônios) 0.0114 99.0% 0.0078 73.3% 0.0171 133.0%

EMQ (10 neurônios) 0.0099 86.6% 0.0075 70.6% 0.0139 107.9%

EMQ (15 neurônios) 0.0116 100.6% 0.0071 67.0% 0.0187 145.2%

EMQ (20 neurônios) - - 0.0085 80.3% - -

do primeiro Tri-81 ao quarto Tri-95

do primeiro Tri-81 ao primeiro Tri-90

do segundo Tri-90 ao quarto Tri-95

TABELA 4 – Resumo dos Resultados

Apresentamos também a tabela completa com todas as previsões feitas doprimeiro trimestre de 1981 ao último trimestre de 1995.

Page 50: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

42

PotênciaTrimestre PIB (*) do PIB Prev. EQ(**) Prev. EQ(**) Prev. EQ(**) Prev. EQ(**) Prev. EQ(**) Prev. EQ(**)

1 Tri-81 0.2554 0.0652 0.1299 0.0157 0.1249 0.0170 0.1156 0.0195 0.1294 0.0159 0.1123 0.0205 0.1362 0.01422 Tri-81 0.0906 0.0082 0.1701 0.0063 0.1723 0.0067 0.1886 0.0096 0.1799 0.0080 0.1801 0.0080 0.0719 0.00033 Tri-81 0.0014 0.0000 0.0561 0.0030 0.1153 0.0130 0.1909 0.0359 0.1624 0.0259 0.0477 0.0021 0.0909 0.00804 Tri-81 -0.0220 0.0005 0.0143 0.0013 0.1152 0.0188 0.0264 0.0023 0.0384 0.0036 0.0097 0.0010 0.0096 0.00101 Tri-82 0.1118 0.0125 0.0432 0.0047 0.0766 0.0012 -0.0241 0.0185 0.0693 0.0018 0.0692 0.0018 0.0262 0.00732 Tri-82 0.0977 0.0095 0.0119 0.0074 0.0946 0.0000 0.1123 0.0002 0.1496 0.0027 0.1755 0.0061 0.1489 0.00263 Tri-82 0.0902 0.0081 0.0458 0.0020 0.1066 0.0003 0.1330 0.0018 0.1173 0.0007 0.0966 0.0000 0.1057 0.00024 Tri-82 0.0334 0.0011 0.0737 0.0016 0.1050 0.0051 0.1124 0.0062 0.1056 0.0052 0.0994 0.0043 0.1309 0.00951 Tri-83 -0.0348 0.0012 0.0985 0.0178 0.1062 0.0199 0.0092 0.0019 0.0667 0.0103 0.0719 0.0114 0.0735 0.01172 Tri-83 -0.1013 0.0103 0.0660 0.0280 0.0442 0.0212 -0.0881 0.0002 -0.0887 0.0002 -0.0559 0.0021 0.0662 0.02813 Tri-83 -0.1057 0.0112 -0.0763 0.0009 -0.1157 0.0001 -0.0891 0.0003 -0.0799 0.0007 -0.0986 0.0001 -0.0153 0.00824 Tri-83 -0.0979 0.0096 -0.1321 0.0012 -0.1174 0.0004 -0.1335 0.0013 -0.0829 0.0002 -0.1219 0.0006 -0.0814 0.00031 Tri-84 -0.0316 0.0010 -0.0928 0.0038 -0.1031 0.0051 -0.1010 0.0048 -0.1278 0.0093 -0.0922 0.0037 -0.1340 0.01052 Tri-84 -0.0855 0.0073 -0.0988 0.0002 -0.0966 0.0001 -0.0921 0.0000 -0.0513 0.0012 -0.1316 0.0021 -0.0588 0.00073 Tri-84 -0.0864 0.0075 -0.0974 0.0001 -0.1032 0.0003 -0.1003 0.0002 -0.1027 0.0003 -0.1004 0.0002 -0.0534 0.00114 Tri-84 -0.0360 0.0013 -0.0960 0.0036 -0.1012 0.0043 -0.1136 0.0060 -0.0739 0.0014 -0.1039 0.0046 -0.1036 0.00461 Tri-85 0.0064 0.0000 -0.0557 0.0039 -0.0565 0.0040 -0.0343 0.0017 -0.0365 0.0018 -0.0534 0.0036 0.0062 0.00002 Tri-85 -0.0756 0.0057 -0.0788 0.0000 -0.0816 0.0000 -0.0864 0.0001 -0.0413 0.0012 -0.0853 0.0001 -0.0299 0.00213 Tri-85 0.0354 0.0013 -0.0702 0.0112 -0.0823 0.0139 -0.0788 0.0130 -0.0704 0.0112 -0.0427 0.0061 -0.0419 0.00604 Tri-85 0.1002 0.0100 -0.0394 0.0195 -0.0525 0.0233 -0.0369 0.0188 -0.0584 0.0252 0.0488 0.0027 0.0000 0.01011 Tri-86 0.0555 0.0031 -0.0116 0.0045 -0.0301 0.0073 0.0728 0.0003 0.0286 0.0007 0.1076 0.0027 0.0935 0.00142 Tri-86 0.0078 0.0001 0.0743 0.0044 0.0977 0.0081 0.0847 0.0059 0.0352 0.0008 0.0481 0.0016 0.1271 0.01423 Tri-86 0.1472 0.0217 0.0319 0.0133 0.0582 0.0079 0.0868 0.0036 0.1485 0.0000 0.1940 0.0022 0.0588 0.00784 Tri-86 0.1847 0.0341 0.0137 0.0293 0.0825 0.0104 0.0352 0.0224 0.1417 0.0018 0.1403 0.0020 0.1406 0.00191 Tri-87 0.1585 0.0251 0.0070 0.0229 0.1172 0.0017 0.0189 0.0195 0.1208 0.0014 0.0025 0.0243 0.1239 0.00122 Tri-87 0.1132 0.0128 -0.0363 0.0223 0.0594 0.0029 -0.0133 0.0160 0.1008 0.0002 0.1537 0.0016 0.1284 0.00023 Tri-87 0.0379 0.0014 -0.0368 0.0056 -0.0488 0.0075 0.1097 0.0052 0.0672 0.0009 0.1280 0.0081 0.1208 0.00694 Tri-87 0.0660 0.0044 -0.0558 0.0148 -0.0332 0.0098 0.0208 0.0021 0.0727 0.0000 -0.0239 0.0081 -0.0343 0.01011 Tri-88 0.0587 0.0034 -0.0153 0.0055 0.0181 0.0016 0.0304 0.0008 0.0888 0.0009 0.0642 0.0000 0.0613 0.00002 Tri-88 0.0104 0.0001 0.0340 0.0006 0.0629 0.0028 0.0592 0.0024 0.0249 0.0002 0.0490 0.0015 0.0741 0.00413 Tri-88 0.0543 0.0030 0.0355 0.0004 0.0569 0.0000 0.0451 0.0001 0.0304 0.0006 0.0400 0.0002 0.0493 0.00004 Tri-88 -0.0734 0.0054 0.0924 0.0275 0.0833 0.0246 0.0675 0.0199 0.0642 0.0189 0.0908 0.0270 0.0712 0.02091 Tri-89 -0.0838 0.0070 0.0684 0.0232 0.0744 0.0250 0.0407 0.0155 0.1000 0.0338 0.0734 0.0247 0.0605 0.02082 Tri-89 0.1157 0.0134 0.0335 0.0068 0.0329 0.0069 0.0231 0.0086 -0.1602 0.0761 -0.0638 0.0322 0.0440 0.00513 Tri-89 0.2424 0.0587 0.0743 0.0283 0.1535 0.0079 0.1604 0.0067 0.2078 0.0012 0.1257 0.0136 0.0888 0.02364 Tri-89 0.1660 0.0276 0.1074 0.0034 0.0515 0.0131 0.1932 0.0007 0.0582 0.0116 0.0394 0.0160 -0.0659 0.05381 Tri-90 0.0101 0.0001 0.0346 0.0006 0.0082 0.0000 0.1363 0.0159 0.0494 0.0015 0.1384 0.0165 0.1404 0.01702 Tri-90 -0.2501 0.0626 0.0290 0.0779 -0.1049 0.0211 0.0817 0.1101 0.0455 0.0874 -0.0170 0.0543 - -3 Tri-90 0.0941 0.0089 0.0448 0.0024 0.0074 0.0075 -0.0556 0.0224 -0.0302 0.0155 -0.0995 0.0375 - -4 Tri-90 -0.0568 0.0032 -0.0312 0.0007 -0.1223 0.0043 -0.1475 0.0082 -0.0293 0.0008 -0.0570 0.0000 - -1 Tri-91 -0.2374 0.0564 -0.0093 0.0520 -0.0415 0.0384 -0.1166 0.0146 -0.0558 0.0330 0.0266 0.0697 - -2 Tri-91 0.0343 0.0012 0.0045 0.0009 0.0430 0.0001 0.0342 0.0000 -0.1334 0.0281 0.0049 0.0009 - -3 Tri-91 0.1209 0.0146 -0.0066 0.0162 -0.0128 0.0179 -0.0081 0.0166 0.0435 0.0060 0.0626 0.0034 - -4 Tri-91 -0.0516 0.0027 0.0232 0.0056 0.0242 0.0057 0.0259 0.0060 -0.0057 0.0021 0.1180 0.0288 - -1 Tri-92 -0.0809 0.0065 0.0140 0.0090 0.0250 0.0112 -0.1428 0.0038 -0.0958 0.0002 0.0180 0.0098 - -2 Tri-92 -0.0679 0.0046 -0.0435 0.0006 0.1749 0.0590 -0.0558 0.0001 -0.0196 0.0023 -0.0565 0.0001 - -3 Tri-92 -0.1119 0.0125 -0.0841 0.0008 -0.0398 0.0052 -0.0048 0.0115 -0.0327 0.0063 -0.0685 0.0019 - -4 Tri-92 -0.1366 0.0187 0.0123 0.0222 -0.0246 0.0125 -0.0576 0.0062 -0.1107 0.0007 0.0808 0.0473 - -1 Tri-93 -0.0498 0.0025 -0.0409 0.0001 -0.0481 0.0000 -0.0502 0.0000 -0.0852 0.0012 -0.0235 0.0007 - -2 Tri-93 0.0452 0.0020 -0.1067 0.0231 -0.1484 0.0375 -0.1366 0.0331 -0.1250 0.0289 -0.1545 0.0399 - -3 Tri-93 -0.0556 0.0031 -0.0252 0.0009 -0.1010 0.0021 0.0355 0.0083 -0.0663 0.0001 0.0846 0.0196 - -4 Tri-93 -0.0885 0.0078 0.0194 0.0116 -0.0828 0.0000 -0.0360 0.0028 -0.0632 0.0006 -0.0815 0.0000 - -1 Tri-94 0.0016 0.0000 -0.0582 0.0036 -0.0002 0.0000 -0.1363 0.0190 -0.1163 0.0139 -0.0781 0.0063 - -2 Tri-94 0.0230 0.0005 -0.0618 0.0072 -0.0207 0.0019 -0.0384 0.0038 -0.0615 0.0071 -0.0034 0.0007 - -3 Tri-94 0.0365 0.0013 0.1082 0.0051 0.1577 0.0147 0.0941 0.0033 0.0611 0.0006 0.1501 0.0129 - -4 Tri-94 0.1265 0.0160 -0.0026 0.0167 -0.0237 0.0226 0.0120 0.0131 -0.0377 0.0270 0.0599 0.0044 - -1 Tri-95 0.2290 0.0525 0.0578 0.0293 -0.0257 0.0649 -0.0323 0.0683 0.0837 0.0211 0.0466 0.0333 - -2 Tri-95 0.0891 0.0079 -0.0010 0.0081 0.1181 0.0008 0.0810 0.0001 0.0561 0.0011 0.0425 0.0022 - -3 Tri-95 -0.0924 0.0085 0.0468 0.0194 0.1085 0.0404 0.0473 0.0195 0.0776 0.0289 0.0897 0.0332 - -4 Tri-95 -0.0432 0.0019 -0.0311 0.0001 -0.0071 0.0013 -0.1939 0.0227 0.0357 0.0062 -0.1944 0.0229 - -

Resultados:

PotênciaEMQ (***)

EMQ (***)

EMQ (***)

EMQ (***)

EMQ (***)

EMQ (***)

1 Tri-81 a 4 Tri-95 0.0115 0.0110 0.0110 0.0114 0.0099 0.0116 -1 Tri-81 a 1 Tri-90 0.0106 0.0093 0.0079 0.0078 0.0075 0.0071 0.00852 Tri-90 a 4 Tri-95 0.0129 0.0136 0.0160 0.0171 0.0139 0.0187 -

15 Neurônios 20 Neurônios5 Neurônios 7 Neurônios 10 Neurônios3 Neurônios

(*) após pré-processamento(**) erro quadrático(***) erro médio quadrático

TABELA 5 – Previsões através de redes neurais.

Os resultados obtidos mostram que as previsões do PIB feitas através de redesneurais tiveram uma performance muito boa antes do plano Collor, onde a economia

Page 51: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

43

brasileira apresentou menor instabilidade. Vale ressaltar que, durante esse período, asredes neurais com 10 e 15 neurônios na camada intermediária apresentaram os melhoresresultados, o que evidencia a complexidade do problema. É interessante notar que osresultados para esse período foram melhorando gradativamente a medida em queacrescentávamos neurônios na camada intermediária, até que com 20 neurônios nacamada intermediária o resultado começa a piorar. Este efeito é esperado devido aestatística pobre. Observando os resultados da rede com 20 neurônios, por exemplo,verificamos que os maiores erros de previsão ocorreram no ano de 1989, que foi um anoatípico dada a eleição presidencial, e fim do congelamento de preços referente ao planoverão. Ao calcularmos os resultados da rede neural entre o primeiro trimestre de 1981 eo último trimestre de 1988 (excluindo, portanto o ano de 1989) verificamos que o erromédio quadrático da previsão foi 68% da potencia do PIB (após o pré-processamento)no mesmo período. Esse resultado é consistente com os dados pelas redes com 10 e 15neurônios destacado na tabela 4. De qualquer maneira, a rede com 20 neurôniosmostrou menor consistência em seus resultados e maiores problemas no processo detreinamento.

O problema com overtraining foi contornado ao guardarmos o conjunto desinapses que gerou o menor erro de teste ao longo de todo o treinamento e utilizarmosessas sinapses para fazer as previsões.

Os resultados das previsões do PIB brasileiros através de redes neurais após oplano Collor não foram satisfatórios. Nesse período, a economia brasileira se mostramuito instável, o que se refletiu no comportamento da evolução do PIB e das demaisvariáveis econômicas utilizadas no modelo de previsão. Vale ressaltar que nesseperíodo, quanto maior o número de neurônios utilizados na camada intermediária,piores foram os resultados da previsão. Aparentemente os conjuntos de treino e testeutilizados para a elaboração do modelo de previsão não representaram bem ocomportamento da economia no trimestre da previsão. A utilização de 4 anos anterioresao trimestre da previsão pode não sido adequada para se fazer o treinamento da redepara períodos após o plano Collor, onde a economia passa por grandes transformaçõesem curto espaço de tempo (talvez o melhor fosse utilizar um período menor para aelaboração do modelo). Talvez a utilização de um novo conjunto de variáveis de entradaespecífico para o período posterior ao plano Collor contribuísse para uma melhora dosresultados obtidos.

4.6 – Resultados Obtidos Através de Regressão Linear

Apenas para fins comparativos fizemos previsões do PIB brasileiro para todos ostrimestres entre janeiro de 1981 a dezembro de 1995 através de regressão linear.Utilizamos as mesmas variáveis de entrada que haviam sido utilizadas na elaboração domodelo através de redes neurais. Assim como no modelo através de redes neurais,utilizamos os 16 trimestres anteriores ao trimestre da previsão para se fazer a regressão.

Na tabela 6, apresentamos o erro médio quadrático das previsões feitas a partirde regressão linear e o comparamos com a potência do sinal do PIB.

Page 52: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

44

PotênciaTrimestre PIB (*) do PIB Prev. EQ(**)

1 Tri-81 0.2554 0.0652 0.7407 0.23562 Tri-81 0.0906 0.0082 -0.4213 0.26203 Tri-81 0.0014 0.0000 -0.4179 0.17584 Tri-81 -0.0220 0.0005 0.3037 0.10611 Tri-82 0.1118 0.0125 0.4645 0.12442 Tri-82 0.0977 0.0095 0.0342 0.00403 Tri-82 0.0902 0.0081 -0.0523 0.02034 Tri-82 0.0334 0.0011 -0.1380 0.02941 Tri-83 -0.0348 0.0012 0.2061 0.05812 Tri-83 -0.1013 0.0103 0.2888 0.15223 Tri-83 -0.1057 0.0112 0.0759 0.03304 Tri-83 -0.0979 0.0096 -0.4991 0.16091 Tri-84 -0.0316 0.0010 0.1269 0.02512 Tri-84 -0.0855 0.0073 -0.1493 0.00413 Tri-84 -0.0864 0.0075 0.0469 0.01784 Tri-84 -0.0360 0.0013 -0.2385 0.04101 Tri-85 0.0064 0.0000 -0.1031 0.01202 Tri-85 -0.0756 0.0057 0.0498 0.01573 Tri-85 0.0354 0.0013 -0.0228 0.00344 Tri-85 0.1002 0.0100 0.3154 0.04631 Tri-86 0.0555 0.0031 0.2039 0.02202 Tri-86 0.0078 0.0001 -0.0597 0.00453 Tri-86 0.1472 0.0217 0.0568 0.00824 Tri-86 0.1847 0.0341 -0.0925 0.07691 Tri-87 0.1585 0.0251 0.2601 0.01032 Tri-87 0.1132 0.0128 -0.2171 0.10913 Tri-87 0.0379 0.0014 -0.1008 0.01924 Tri-87 0.0660 0.0044 0.1923 0.01591 Tri-88 0.0587 0.0034 0.0015 0.00332 Tri-88 0.0104 0.0001 0.0304 0.00043 Tri-88 0.0543 0.0030 -0.0494 0.01084 Tri-88 -0.0734 0.0054 -0.0863 0.00021 Tri-89 -0.0838 0.0070 -0.0038 0.00642 Tri-89 0.1157 0.0134 -0.1026 0.04773 Tri-89 0.2424 0.0587 0.4495 0.04294 Tri-89 0.1660 0.0276 -0.0357 0.04071 Tri-90 0.0101 0.0001 0.0228 0.00022 Tri-90 -0.2501 0.0626 0.3966 0.41823 Tri-90 0.0941 0.0089 -0.3852 0.22984 Tri-90 -0.0568 0.0032 0.2172 0.07511 Tri-91 -0.2374 0.0564 0.8056 1.08792 Tri-91 0.0343 0.0012 -0.6750 0.50323 Tri-91 0.1209 0.0146 -0.1641 0.08124 Tri-91 -0.0516 0.0027 0.1811 0.05411 Tri-92 -0.0809 0.0065 -0.6954 0.37762 Tri-92 -0.0679 0.0046 0.1912 0.06713 Tri-92 -0.1119 0.0125 -0.3825 0.07324 Tri-92 -0.1366 0.0187 -0.3898 0.06411 Tri-93 -0.0498 0.0025 -0.6117 0.31572 Tri-93 0.0452 0.0020 -0.0091 0.00293 Tri-93 -0.0556 0.0031 0.2423 0.08874 Tri-93 -0.0885 0.0078 -0.1108 0.00051 Tri-94 0.0016 0.0000 -0.5305 0.28302 Tri-94 0.0230 0.0005 0.3324 0.09583 Tri-94 0.0365 0.0013 0.0353 0.00004 Tri-94 0.1265 0.0160 0.4358 0.09571 Tri-95 0.2290 0.0525 0.3445 0.01332 Tri-95 0.0891 0.0079 0.0587 0.00093 Tri-95 -0.0924 0.0085 0.1473 0.05744 Tri-95 -0.0432 0.0019 -0.2386 0.0382

Resultados:

PotênciaEMQ (***)

1 Tri-81 a 4 Tri-95 0.0115 0.09951 Tri-81 a 1 Tri-90 0.0106 0.05262 Tri-90 a 4 Tri-95 0.0129 0.1749

Regressão

(*) após pré-processamento(**) erro quadrático(***) erro médio quadrático

TABELA 6 – Previsões através de regressão linear.

Page 53: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

45

Observamos que as previsões através de regressão linear não tiveram boaperformance no período analisado. Verificamos que a razão por trás desses resultadosinsatisfatórios se encontrava na combinação de um grande número de variáveis deentrada utilizada com um pequeno número de pontos disponíveis para se fazer aregressão.

Como podemos observar no gráfico abaixo, percebemos que o modelo linear ficouespecializado no conjunto de pontos utilizado em sua confecção e perdeu suacapacidade de generalização. A regressão se ajusta bastante bem aos pontos que foramutilizados na confecção do modelo, mas se afasta do valor do PIB quando é feita aprevisão. Vale ressaltar que esse tipo de problema é mais comum e ocorre com maisfreqüência em metodologias não lineares como redes neurais, no entanto, comotomamos o cuidado de guardar as sinapses que minimizavam o erro no conjunto deteste, amenizamos esse problema e obtivemos melhores resultados utilizando redesneurais.

No gráfico abaixo, os pontos de Fev/77 a Nov/80 foram utilizados para a fazermos aregressão que, por sua vez, é utilizada como modelo de previsão para Fev/81.

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1 Tri-

77

2 Tri-

77

3 Tri-

77

4 Tri-

77

1 Tri-

78

2 Tri-

78

3 Tri-

78

4 Tri-

78

1 Tri-

79

2 Tri-

79

3 Tri-

79

4 Tri-

79

1 Tri-

80

2 Tri-

80

3 Tri-

80

4 Tri-

80

1 Tri-

81

Regressão PIB

FIGURA 25 – Super especialização da regressão

Page 54: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

46

5 - Conclusão

Page 55: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

47

Com esse estudo foi possível tirarmos muitas conclusões sobre o crescimento doPIB brasileiro bem como sobre as vantagens e dificuldades em usar redes neurais aofazer sua previsão.

Primeiramente, destacamos a presença de um ciclo senoidal bem definido nocrescimento econômico brasileiro de aproximadamente 10 anos. Este ciclo pode serdeterminado se fazendo uma análise de Fourier da série histórica do PIB.

Devemos sempre “extrair” da variável a ser prevista o máximo de informaçõespossível sobre seu comportamento como série temporal, e utilizar essas informaçõespara melhorar a previsão. A determinação da tendência, sazonalidade e do cicloeconômico melhoraram bastante a performance de ambos os preditores desenvolvidos:através de redes neurais e através de regressão.

Destacamos que as previsões através de redes neurais tiveram uma boaperformance no período anterior ao plano Collor, onde a economia brasileira se mostroumais estável. Nesse período as redes que proporcionaram os melhores resultados foramas com 10 e 15 neurônios na camada intermediária, o que mostra a complexidade domodelo de previsão. Já para o período que se seguiu ao plano Collor a performance darede piorou muito. Nesse período a economia se mostra muito instável e as variáveis deentrada utilizadas apresentam variações abruptas. Acreditamos que, para esses períodosde maior instabilidade, é necessário se fazer uma nova análise de quantos trimestrespassados e de quais variáveis de entrada devem ser utilizadas na elaboração do modelode previsão.

Os resultados obtidos através de regressão linear não foram satisfatórios. Oprincipal motivo foi a combinação de um grande número de variáveis de entradautilizadas (13) e de poucos pontos (16) para se fazer a regressão. Nesse caso, avantagem da utilização de redes neurais se encontra no fato de evitarmos a ocorrênciade “overtraining” durante o processo de treinamento, o que possibilita a utilização deum grande número de variáveis de entrada mesmo quando dispúnhamos de sériehistórica limitada para fazer o treinamento. Ressaltamos que a diminuição do número devariáveis de entrada poderia eventualmente melhorar o resultado da regressão linear. Noentanto, o principal objetivo desse trabalho é o de exemplificar a utilização de redesneurais na previsão de variáveis econômicas, destacando suas vantagens e desvantagens,e não o buscar o melhor modelo linear de previsão do PIB brasileiro.

Page 56: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

48

Outro ponto a ser destacado é a correlação entre as variáveis de entradautilizadas na previsão do PIB brasileiro, que é mostrado na tabela abaixo.

PIBPIB

Atras. IGP-DI TEXTIL CAM. CAMB. IBOV. MOBIL M5 M1 VEIC. CICLO TRAN. JUROSPIB 1.000 0.572 -0.262 0.287 0.128 -0.272 -0.221 0.377 -0.249 -0.227 0.202 0.106 0.272 -0.323PIB Atrasado 0.572 1.000 -0.293 0.384 0.297 -0.311 -0.273 0.529 -0.286 -0.265 0.107 0.080 0.198 -0.204IGP-DI -0.262 -0.293 1.000 -0.489 0.306 0.996 0.978 -0.285 0.998 0.995 0.477 -0.113 0.315 0.097TEXTIL 0.287 0.384 -0.489 1.000 0.001 -0.476 -0.499 0.079 -0.491 -0.499 -0.380 0.511 -0.051 -0.105CAMIN. 0.128 0.297 0.306 0.001 1.000 0.304 0.355 0.292 0.318 0.339 0.384 0.053 0.333 0.002CAMBIO -0.272 -0.311 0.996 -0.476 0.304 1.000 0.983 -0.272 0.997 0.993 0.463 -0.116 0.300 0.092IBOV. -0.221 -0.273 0.978 -0.499 0.355 0.983 1.000 -0.178 0.985 0.983 0.499 -0.102 0.330 0.048MOBIL 0.377 0.529 -0.285 0.079 0.292 -0.272 -0.178 1.000 -0.256 -0.238 0.062 -0.062 0.014 -0.259M5 -0.249 -0.286 0.998 -0.491 0.318 0.997 0.985 -0.256 1.000 0.998 0.498 -0.090 0.333 0.087M1 -0.227 -0.265 0.995 -0.499 0.339 0.993 0.983 -0.238 0.998 1.000 0.527 -0.077 0.356 0.066VEICULO 0.202 0.107 0.477 -0.380 0.384 0.463 0.499 0.062 0.498 0.527 1.000 0.250 0.890 -0.166CICLO 0.106 0.080 -0.113 0.511 0.053 -0.116 -0.102 -0.062 -0.090 -0.077 0.250 1.000 0.479 -0.113TRANSP 0.272 0.198 0.315 -0.051 0.333 0.300 0.330 0.014 0.333 0.356 0.890 0.479 1.000 -0.190JUROS -0.323 -0.204 0.097 -0.105 0.002 0.092 0.048 -0.259 0.087 0.066 -0.166 -0.113 -0.190 1.000

TABELA 7 – Correlações cruzadas das variáveis de entrada.

Como pode ser observado, as variáveis IGP-DI, taxa de cambio, IBOVESPA,M1e M5 apresentam forte correlação cruzada, o que sugeriria a eliminação de 4 dessas5 variáveis. Na verdade, elaboramos alguns modelos de previsão excluindo essasvariáveis e nossos resultados preliminares através das redes neurais mostraram sensíveldeterioração. Isso indica que essas variáveis trazem informação importante para aprevisão do PIB brasileiro, apesar de sua elevada correlação cruzada. Como o IGP-DI(importante índice de inflação) é uma dessas variáveis e a inflação teve papel marcanteno período em análise decidimos, decidimos “deflacionar” as demais variáveis peloIGP-DI. Como mostrado na tabela abaixo, as novas variáveis deflacionadas apresentambaixa correlação cruzada mas continuam apresentando importante correlação com oPIB. De alguma forma, a rede neural foi capaz de capturar essa informação,apresentando melhor resultado quando apresentarmos todas essas variáveis. É provávelque os resultados melhorassem ainda mais se tivéssemos apresentado para a rede asvariáveis já deflacionadas. A eliminação do IBOVESPA e da Taxa de Cambio, quepassaram a apresentar correlação mais baixa com o PIB após serem deflacionadas peloIGP-DI, talvez também melhorasse os resultados.

PIB IGP-DI M1 M5 IBOVESPA CAMBIOPIB 1.000 -0.357 0.389 0.183 0.050 0.055IGP-DI -0.357 1.000 -0.421 -0.218 0.099 -0.580M1 0.389 -0.421 1.000 0.870 0.427 0.519M5 0.183 -0.218 0.870 1.000 0.565 0.507IBOVESPA 0.050 0.099 0.427 0.565 1.000 0.374CAMBIO 0.055 -0.580 0.519 0.507 0.374 1.000

TABELA 8 – Das variáveis que, inicialmente apresentaram alta correlaçãodeflacionadas pelo IGP-DI.

Um dos maiores problemas encontrados para se fazer o modelo de previsãoatravés de redes neurais foi o lento processo de treinamento, que em alguns casos levoumais de 72 horas. Isso dificulta muito a elaboração do modelo já que mesmo pequenasalterações passam a tomar muito tempo (a rede precisa ser treinada novamente para quenovos resultados sejam gerados). Entretanto, cabe ressaltar que este problema pode sermuito reduzido utilizando-se técnicas mais sofisticadas de programação, o que escapado objetivo dessa tese.

Page 57: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

49

Devemos também salientar que uma vez treinada, a utilização da rede é rápida esimples. As eventuais dificuldades de tempo de computação estão relacionadas aotreinamento da rede e não a sua utilização.

Destacamos a utilização de passo automático para cada sinapse, o que reduziu asoscilações no decaimento dos erros de teste e treino, facilitando o processo detreinamento da rede. Destacamos também a importância da seleção do período a serutilizado na elaboração do modelo de treinamento e na divisão dos conjuntos de treino eteste. Nesse trabalho utilizamos os 16 trimestres imediatamente anteriores ao trimestreda previsão como o período a ser utilizado na elaboração do modelo. A divisão dosconjuntos de treino e teste foi feita baseada em gráficos onde plotamos as 2 primeirascomponentes principais das variáveis de entrada em um plano. A utilização de umperíodo de 4 anos (16 últimos trimestres) para a elaboração dos modelos utilizados naprevisão do PIB de janeiro de 1981 a dezembro de 1995 foi uma simplificação. O idealseria utilizar períodos maiores quando a economia permanece estável e períodosmenores quando esta se mostra mais instável (como ocorre após o plano Collor).

Acreditamos que a utilização das 2 primeiras componentes principais dasvariáveis de entrada para representar a evolução das variáveis de entrada em plano foimuito importante. Primeiramente, esta visualização gráfica permitiu o acompanhamentoda evolução da economia brasileira de forma bastante simples. Além disso, ela foifundamental na divisão dos conjuntos de treino e teste conforme mencionadoanteriormente.

A utilização de redes implica em uma série de esforços que precisam ser realizados emcada nova aplicação. A determinação dos conjuntos de treinamento e teste, daarquitetura da rede, do número de passos de treinamento, de adaptações do método detreinamento básico que tragam benefício ao problema em questão bem como umtratamento prévio de todas as variáveis de entrada são essenciais para que se consigamelhoria em relação aos métodos mais tradicionais. Não existem procedimentossistemáticos que determinem todos esses parâmetros, o que torna necessáriocriatividade, bom senso e alguma experiência.

Destacamos que um dos motivos pelo qual a regressão apresentou resultadospiores que a rede neural, foi a “super especialização” da metodologia linear. Esseresultado a principio é surpreendente pois metodologias não lineares costumamapresentar problemas de especialização com mais freqüência. No entanto, justamentepor esse aspecto, no processo de treinamento da rede neural procuramos nos precavermonitorando a performance da rede neural no conjunto de teste. Como a metodologialinear normalmente não apresenta esse tipo de problema e não leva em conta esse fatorna determinação do modelo, os resultados foram particularmente prejudicados aoelaborarmos um modelo de previsão com 13 variáveis de entrada e apenas 16 pontospara se fazer a regressão.

Finalmente, dada a presença de fenômenos não lineares e de difícil explicaçãono meio econômico e financeiro, o trabalho atual indica uma grande potencialidade deaplicação de redes neurais em uma ampla gama de situações. Ao mesmo tempo, ficamclaras as dificuldades de se utilizar uma metodologia nova e os esforços que precisam

Page 58: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

50

ser feitos para adaptar os procedimentos tradicionais de treinamento às características decada problema específico. Assim, redes neurais só devem ser utilizadas quando asmetodologias mais simples não vem trazendo resultados satisfatórios.

Page 59: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

51

6 - REFERÊNCIAS BIBLIOGRÁFICAS

[1] WASSERMAN, PHILIP D. Neural Computing, Theory and Pratice. New York:Van Nostrand Reinhold, 1989.

[2] CALÔBA, L. P. Introdução à Computação Neuronal. Mini Curso ministrado no9o CBA - UFES - Vitória , data.

[3] CICHOCKI, A.; UNBEHAUEN, R. Neural Networks for Optimization andSignal Processing. Stuttgart: J. Willey, 1993.

[4] HAYKIN, S. Neural Networks: A comprehensive Foundation. S.l.: MacmillanCollege Publishing Company, 1994.

[5] HECHT; NIELSEN, R. Neurocomputing. S.l.: Addison / Wesley, 1989.

[6] FIALHO,M. E PEDREIRA,C. An Interval Neural Network Architecture for TimeSeries Prediction In: Proceedings in the Third International Conference onNeural Networks in the Capital Market, 11-13 October 1995. New Jersey: WorldScientific, p. 622-627.

[7] MATHIESON, M. Ordinal Models for Neural Networks. In: Proceedings in theThird International Conference on Neural Networks in the Capital Market.New Jersey: World Scientific, 11-13 October 1995. pg. 523-537

[8]HILL, T.; O’CONNOR, M.; REMUS, W. Neural Network for Time Series Forecasts.Management Science, v. 42, n. 7, p. 1082-1092, July 1996.

[9] SILVA, F. M., ALMEIDA, L. B. Speeding up backpropagation: Advances ofNeural Computers. S.l.: R. Eckmiller, Elsevier Science Publishers, 1990. p. 151-158.

Page 60: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

52

ANEXO A – BACK PROPAGATION

Page 61: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

53

Nos parágrafos abaixo, procuramos mostrar de maneira simples como chegar afórmula de treinamento básica de backprogation.

Primeiramente, lembramos que uma rede neural implementa uma função nãolinear:

Onde, X é o vetor apresentado na entrada da rede; Y é o vetor que a rede“retorna” na saída e f(.) é a função implementada pela rede.

A rede deve nos apresentar saídas correspondentes às entradas que lhe sãoapresentadas. Por exemplo, no caso do reconhecimento das 5 vogais apresentado nocapítulo 1, queremos que a rede apresente uma saída diferente para cada vogalapresentada na entrada. Denominamos par “entrada-saída” a cada par: entradaapresentada à rede e saída que esperamos ser gerada. No exemplo mencionado acima,temos apenas 5 pares “entrada-saída”:

Entradas Saídas• A: (-1, 1,-1, 1, 1, 1, 1,-1, 1) ⇒ ( 1,-1,-1,-1,-1)• E: ( 1, 1, 1, 1, 1,-1, 1, 1, 1) ⇒ (-1, 1,-1,-1,-1)• I: (-1, 1,-1,-1, 1,-1,-1, 1,-1) ⇒ (-1,-1, 1,-1,-1)• O: ( 1, 1, 1, 1,-1, 1, 1, 1, 1) ⇒ (-1,-1,-1, 1,-1)• U: (1,-1, 1, 1,-1, 1, 1, 1, 1) ⇒ (-1,-1,-1,-1, 1)

Geralmente, o número de pares “entrada-saída” é bem maior que o apresentadoacima. Se, por exemplo, houvesse cartões com as 5 vogais escritas de outras formas ( a,A, e, i, i, O, U, U etc.) ou se houvesse cartões com as vogais manuscritas, o número depares iria crescer muito.

De maneira geral, queremos que uma rede neural realize uma função não linearrelacionando P pares “entrada-saída”, tal que:

Na maioria dos casos, f(.) não pode ser perfeitamente realizada. A rede neural faz,na verdade, uma aproximação da função f(.).

Page 62: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

54

A performance da rede é a qualidade dessa aproximação que é medida pelo erroquadrático da saída. Chamamos de erro quadrático instantâneo o erro para um par“entrada-saída” (Xk, Yk) que é dado por:

Onde M é a dimensão de Yk, dada pelo número de saídas da rede ( ou número deneurônios da última camada ). Yl

k é a l-ésima componente do vetor Yk. O erro médioquadrático é o valor esperado do erro quadrático εk entre a saída ideal e a saída real paratodos os pares (Xk,Yk). Isso é importante pois queremos que o funcional Fo(W) a serminimizado leve em conta todos os pares “entrada-saída”, k = 1, ..., P. W é um vetor quecontém o valor de todas as sinapses.

Onde E() é o valor esperado de; e εlk é o erro linear na saída l para o par (Xk,Yk).

É assim que calculamos o erro médio quadrático. Esse é o funcional, o medidor deperformance, mais utilizado e conhecido. O problema de treinar uma rede pode serresumido em encontrar o vetor de sinapses W que minimiza Fo na equação acima. Paratanto, vamos modificando o valor das sinapses ( do vetor W ). Isto é feito com base nométodo do gradiente descendente, deslocando o vetor W na mesma direção e no sentidocontrário do gradiente de Fo.

Iniciamos o processo com um conjunto de sinapses determinado aleatoriamente.A partir daí, a cada iteração, cada sinapse Wij, que liga a saída do neurônio j à entrada doneurônio i, deve sofrer um acréscimo ∆Wij dado por :

Page 63: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

55

Onde α > 0 é o passo de treinamento. Como o gradiente do valor esperado do erroquadrático é igual ao valor esperado do gradiente do erro quadrático para cada entradaenquanto as sinapses não forem alteradas, temos:

Olhando a equação acima, fica claro que para calcular ∆Wij, precisamos calculara derivada de εk em relação a Wij. Antes de levar adiante esse cálculo, vamos fazeralgumas considerações. Primeiramente lembramos que εk é o erro quadrático para o par“entrada-saída” (Xk,Yk). Para calcularmos εk, aplicamos a entrada Xk à rede produzindoos sinais internos Vj

k e Uik e a saída da rede. Pequenas variações em Ui

k proporcionampequenas variações na saída da rede. Chamaremos de Gli

k esse ganho para pequenossinais de Ui

k à saída da rede.

Esse ganho pode ser obtido diretamente por inspeção dos ganhos das sinapses(seus próprios valores) e dos ganhos dos neurônios. O ganho de cada neurônio j é dadopela derivada de sua função de ativação em relação a Uj. Como essa função é conhecida edeve ser diferenciável, não encontramos obstáculos no cálculo desse ganho. Seutilizarmos a tangente hiperbólica como função de ativação, o ganho de cada neurônio j édado por:

g(Vj) = δVj/δUj = (1-Vj2), onde Vj é a saída do neurônio j.

Temos ainda que :

Page 64: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

56

Mas, Uik = Wij x Vj

k + C, onde C é constante em relação a Wij. Assim,

Das duas equações acima, temos:

δik é o somatório dos erros nas saídas (εl

k) ponderados pelos ganhos Glik dos

caminhos da extremidade da sinapse Wij até a respectiva saída Ylk. Então, δi

k pode serinterpretado como a soma dos erros nas saídas propagados “de volta” à extremidade dasinapse Wij.

Para calcularmos ∆Wij, apresentamos as entradas à rede, esses sinais sãopropagados pela rede gerando variáveis internas e finalmente as saídas da rede. Essassaídas são comparadas com as desejadas e o erro é calculado. Esse erro é propagado “devolta” gerando os δi

k que, por sua vez, serão os responsáveis pela atualização dassinapses. É por isso que esse processo é denominado “backpropagation” e pode seraplicado de 3 formas principais:

1 - Batelada

Esse procedimento é o derivado diretamente das equações escritas acima:

Page 65: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

57

Esse procedimento exige que todas as P entradas sejam apresentadas a rede, ovalor médio de Vj

kδik seja calculado para depois calcularmos ∆Wij. Isso faz com que o

processo de treinamento se torne bastante lento.

2 - Regra Delta

Uma forma de amenizar a lentidão do procedimento acima é reduzir o número depares “entrada-saída” utilizados na determinação da média. No caso extremo, tomamosapenas um par “entrada-saída” para atualizar a sinapse. Assim ∆Wij se reduz a:

Isso corresponde a tomar o gradiente do erro quadrático instantâneo como estimativa dogradiente do erro médio quadrático. Se utilizarmos um passo de treinamento α pequeno∆Wij se torna pequeno, e o valor de Wij fica praticamente constante durante váriospassos de treinamento. Assim, os dois procedimentos se aproximam pois a soma dosdiversos ∆Wij é equivalente ao gradiente do erro médio quadrático. A vantagem é que aregra delta não necessita de memória de dados (para extrair a média) e que α não precisaser tão pequeno. A desvantagem desse método é que a convergência pode se tornar muitooscilatória.

3 - Momento

Esse procedimento busca a velocidade da regra delta evitando a oscilação durantea convergência. Para isso, a atualização das sinapses é feita passo a passo, como na regradelta. No entanto, o valor de ∆Wij é uma ponderação entre ∆Wij calculado através daregra delta e o valor de ∆Wij do passo anterior:

Ressaltamos que um valor de β próximo a 1 dificulta a parada em mínimos locais.No entanto, a escolha de α e β depende de cada problema e influencia muito no resultadofinal. Geralmente, utilizamos α = 0,1 e β = 0,9. (Nesse trabalho, utilizamos uma variaçãodo momento sugerido por Silva e Almeida [9] uma vez que optamos por utilizar umpasso de treinamento variável também sugerido por Silva e Almeida).

Page 66: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

58

APÊNDICE – LISTAGEM DOPROGRAMA

Page 67: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

59

Program Rede;

uses crt,Dos;

const n_tes=4; {numero de meses utilizados para teste} n_trei=12; {numero de meses utilizados para treino} n_val=4; {numero de meses utilizados para validacao(05/90-02/91,95,96)} n_var=13; {numero de variaveis dependentes de entrada} n=50;{max de neuronios na camada intermediaria} lmax = 249; {max de pontos nos arquivos = numero de meses} fim = 60;{n de pares(79)-primeiros 19 pares(4+12+4-1)} type nomevar = array[1..n_var+1] of string[40]; dado = array[1..n_var+1,1..lmax] of real; sinapse1 = array[1..n,0..n_var] of real; sinapse2 = array[0..n] of real; vetor = array[1..n_var] of real;

var trei : array [1..n_trei] of integer; tes : array [1..n_tes] of integer; val : array [1..n_val] of integer; arquivo : nomevar; titulo : nomevar; avanco : array [1..n_var+1] of integer; dados : dado; n_passos,l : longint; n_err : integer; n_neu : integer; n_graf,div_graf : integer; n_dadotr,n_dadote : integer; ent : vetor; saida,emq,emin1, emin2,E1,E2,E3,E4, E5,E6,emqtrei, emqtes,emqval : real; errmin :array [1..2,1..5] of real; alfa,beta : real; W1,WM1,DW1, sinal1,alfa1 : sinapse1; W2,WM2,DW2, sinal2,alfa2 : sinapse2; u,y : sinapse2; i,j : integer; testei,testee : boolean; opcaoi,opcaoe : char; a_trei,a_test, a_err,a_sai : string[20]; pontoinix, pontofimx, pontoiniy, pontofimy :real;

cor : word; grDriver : Integer; grMode : Integer; ErrCode : Integer;

code : integer; sle_graf : string; c_nada : char; arq1,arq4,arq5 : text; divdad,saidfim, errofim : string[37]; periodo : integer;

Page 68: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

60

(**************************************************************************)

function log(num:real):real; begin log:=ln(num)/ln(10); end;

(**************************************************************************)

procedure perguntas;

begin

writeln('Qual o n£mero de neur“nios na camada intermediaria ?'); readln(n_neu);

writeln('Qual o n£mero de passos ?'); readln(n_passos);

writeln('Qual o intervalo de passos para calculo dos erros?'); readln(n_err);

writeln('Qual o arquivo onde serÆo gravados os erros?'); readln(a_err);

writeln('Qual o arquivo onde serao gravadas as saidas?'); readln(a_sai);

writeln('Qual o valor de alfa?'); readln(alfa);

writeln('Qual o valor de beta?'); readln(beta); end;(**************************************************************************)procedure inicializa;begin for i:=1 to n_var do ent[i]:=0; emin1:=1; emin2:=1; saida:=0; y[0]:=1; u[0]:=1; randomize; W2[0]:=0.5*(1-random(256)/128); alfa2[0]:= 0.01; sinal2[0]:= 0; for i:=1 to n_neu do begin W2[i]:=0.5*(1-random(256)/128); alfa2[i]:= 0.01; sinal2[i]:= 0; u[i]:=0; y[i]:=0; for j:=0 to n_var do begin W1[i,j]:=0.5*(1-random(256)/128); alfa1[i,j]:=0.01; sinal1[i,j]:=0; end; end; for i:=1 to (n_var+1) do for j:=1 to lmax do dados[i,j]:=0; for i:=1 to 2 do for j:=1 to 5 do

Page 69: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

61

errmin[i,j]:=0; end;

(**************************************************************************) procedure armaz_sin;

var arq2: text; nome_arq:string[37];

begin nome_arq:=('D:\meusdo~1\petronio\tese\sinafim.PRN'); assign(arq2,nome_arq); rewrite(arq2); writeln(arq2,n_neu); for i:=1 to n_neu do begin for j:= 0 to n_var do writeln(arq2,wm1[i,j]); end; for i:=0 to n_neu do writeln(arq2,wm2[i]); close(arq2); end;(**************************************************************************) function tgh(valor:real):real; var z1,z2:real; begin if(abs(valor)>=20) then begin if (valor>=0) then tgh:=1 else tgh:=-1; end else begin z1:=exp(valor); z2:=1/z1; tgh:=(z1-z2)/(z1+z2); end; end;(**************************************************************************) procedure roda(pont:integer);

var soma: real;

begin soma:=0; for i:=1 to n_var do ent[i]:=(dados[i,(pont+avanco[i])]); for i:=1 to n_neu do begin u[i]:= w1[i,0]; for j:=1 to n_var do u[i]:=u[i]+w1[i,j]*ent[j]; end; for i:=1 to n_neu do y[i]:=tgh(u[i]); for i:=0 to n_neu do soma:=soma+y[i]*W2[i]; saida:=tgh(soma); if (saida>=1)then begin readln; end; end;(**************************************************************************) procedure armaz_sai;

var

Page 70: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

62

ind,rep: real; cont,ultimo,k,p:integer; arquivo:string[37];

begin for k:=1 to (n_val) do begin cont:=k; roda(val[cont]); write(arq4,val[cont],' ',saida,' ',dados[n_var+1,val[cont]],' '); end; writeln(arq4); end;(**************************************************************************)

procedure armaz_err;

begin write(arq5,periodo,' ',emin1,' ',E1,' ',E2,' ',E3,' ',emin2,' ',E4,'',E5,' ',E6); writeln(arq5); end;(**************************************************************************) procedure recup_sin;

var arq3:text; arquivo:string[37]; lixo:char;

begin arquivo:=('D:\meusdo~1\petronio\tese\sinafim.PRN'); assign(arq3,arquivo); {$I-} reset(arq3); if ioresult<>0 then begin writeln('Arquivo sinafim nÆo encontrado!!'); writeln('PRESSIONE QUALQUER TECLA'); c_nada:=readkey; end else begin readln(arq3,n_neu); for i:=1 to n_neu do begin for j:=0 to n_var do readln(arq3,w1[i,j]); end; for i:=0 to n_neu do readln(arq3,w2[i]); close(arq3); end; {$I+} end;(**************************************************************************) procedure ledados;

var i,j: integer; x: array[1..100] of real; arq: text;

begin for i:=1 to (n_var+1) do titulo[i]:= (' '); arquivo[1]:= ('c:\tp\lotavio\texatra.prn'); arquivo[2]:= ('c:\tp\lotavio\txatra.prn'); arquivo[3]:= ('c:\tp\lotavio\m1atra.prn');

Page 71: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

63

arquivo[4]:= ('c:\tp\lotavio\m5atra.prn'); arquivo[5]:= ('c:\tp\lotavio\igpatra.prn'); arquivo[6]:= ('c:\tp\lotavio\bovatra.prn'); arquivo[7]:= ('c:\tp\lotavio\cbatra.prn'); arquivo[8]:= ('c:\tp\lotavio\cnhatra.prn'); arquivo[9]:= ('c:\tp\lotavio\tratra.prn'); arquivo[10]:= ('c:\tp\lotavio\moatra.prn'); arquivo[11]:= ('c:\tp\lotavio\veiatra.prn'); arquivo[12]:= ('c:\tp\lotavio\fouatra.prn'); arquivo[13]:= ('c:\tp\lotavio\resatra.prn'); arquivo[14]:= ('c:\tp\lotavio\restom2.prn'); {essa ‚ a saida oarquivo14} {‚ igual pois a pr¢priasaida} for i:=1 to (n_var+1) do {‚ uma variavel de entrada} begin {com atraso de 12 meses} assign(arq,arquivo[i]); {$I-} reset(arq); if ioresult<>0 then begin writeln('Arquivo nÆo encontrado!',i); readln; end else begin readln(arq,titulo[i]); readln(arq,avanco[i]); readln(arq); readln(arq); for j:=1 to lmax do begin readln(arq,dados[i,j]); end; close(arq); end; {$I+} end; end;(**************************************************************************) procedure div_dados; var arquivo:string[40];

i:integer; teste:boolean;

begin

readln(arq1, tes[1]); readln(arq1, tes[2]); readln(arq1, tes[3]); readln(arq1, tes[4]);

readln(arq1, trei[1]); readln(arq1, trei[2]); readln(arq1, trei[3]); readln(arq1, trei[4]);

readln(arq1, trei[5]); readln(arq1, trei[6]); readln(arq1, trei[7]); readln(arq1, trei[8]);

readln(arq1, trei[9]); readln(arq1, trei[10]); readln(arq1, trei[11]); readln(arq1, trei[12]);

Page 72: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

64

for i:=1 to n_val do readln(arq1, val[i]); end;

(**************************************************************************)

procedure back; var DW1a:sinapse1; DW2a:sinapse2; cont:integer;

begin for i:=1 to n_neu do u[i]:=0; for i:=1 to n_neu do y[i]:=0; emq:=0; saida:=0; for j:=0 to n_neu do begin DW2a[j]:=DW2[j]; DW2[j]:=0; end; for j:=1 to n_neu do begin for i:=0 to n_var do DW1a[j,i]:=DW1[j,i]; DW1[j,i]:=0; end;

for cont:=1 to n_trei do begin roda(trei[cont]); emq:=emq+sqr(dados[n_var+1,trei[cont]]-saida); for j:=0 to n_neu do begin DW2[j]:=DW2[j] + alfa2[j]*alfa*y[j]*(1-sqr(saida))* (dados[n_var+1,trei[cont]]-saida); end; for j:=1 to n_neu do begin DW1[j,0]:= DW1[j,0] + alfa1[j,0]*alfa*(1-sqr(y[j]))*W2[j]*(1-sqr(saida))* (dados[n_var+1,trei[cont]]-saida); for i:=1 to n_var do DW1[j,i]:= DW1[j,i] +alfa1[j,i]*alfa*dados[j,(trei[cont]+avanco[i])]*(1-sqr(y[j]))* W2[j]*(1-sqr(saida))*(dados[n_var+1,trei[cont]]-saida); end; end; emq:=emq/n_trei; for j:=0 to n_neu do begin DW2[j]:=DW2[j]/n_trei; for i:=0 to n_var do DW1[j,i]:=DW1[j,i]/n_trei; end;

{ Aqui, aumentamos alfa se DW varia no mesmo sentido } for j:=0 to n_neu do begin if ((DW2[j]*sinal2[j] >= 0)and(alfa2[j]<0.2)) then alfa2[j]:= alfa2[j] * 1.01 else if (alfa2[j]>0.00) then alfa2[j]:=alfa2[j] * 0.99; if (DW2[j] > 0) then sinal2[j]:=1 else sinal2[j]:=-1; end; for j:=1 to n_neu do

Page 73: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

65

for i:=0 to n_var do begin if ((DW1[j,i]*sinal1[j,i] >= 0)and(alfa1[j,i]<0.2)) then alfa1[j,i]:=alfa1[j,i]*1.01 else if (alfa1[j,i]>0.00) then alfa1[j,i]:= alfa1[j,i]*0.99; if (Dw1[j,i] > 0) then sinal1[j,i]:=1 else sinal1[j,i]:=-1; end;

for j:=0 to n_neu do begin DW2[j]:=DW2[j]+beta*DW2a[j]; W2[j]:=W2[j]+DW2[j]; end; for j:=1 to n_neu do for i:=0 to n_var do begin DW1[j,i]:=DW1[j,i]+beta*DW1a[j,i]; W1[j,i]:=W1[j,i]+DW1[j,i]; end;

end;(**************************************************************************) procedure testa;

var cont:integer;

begin emq:=0; for i:=1 to n_neu do u[i]:=0; for i:=1 to n_neu do y[i]:=0; emq:=0; for cont:=1 to n_trei do begin roda(trei[cont]); emq:=emq+sqr(dados[n_var+1,trei[cont]]-saida); end; emq:=emq/n_trei; emqtrei:=emq; emq:=0; for i:=1 to n_neu do u[i]:=0; for i:=1 to n_neu do y[i]:=0; emq:=0; for cont:=1 to n_tes do begin roda(tes[cont]); emq:=emq+sqr(dados[n_var+1,tes[cont]]-saida); end; emq:=emq/n_tes; emqtes:=emq; emq:=0; for i:=1 to n_neu do u[i]:=0; for i:=1 to n_neu do y[i]:=0; emq:=0; for cont:=1 to n_val do begin roda(val[cont]); emq:=emq+sqr(dados[n_var+1,val[cont]]-saida); end; emq:=emq/n_val; emqval:=emq; {devo acrescentar aqui o c lculo do erro de vali‡Æo}

end;(**************************************************************************) procedure gramelhor;

Page 74: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

66

var i,j: integer;

begin for i:=1 to n_neu do begin for j:= 0 to n_var do wm1[i,j]:= w1[i,j]; end; for i:=0 to n_neu do wm2[i]:= w2[i]; end;

(**************************************************************************) procedure melhor;

var erro1, erro2: real;

begin erro1:=sqrt(sqr(emqtes)+sqr(emqtrei))+abs(emqtes-emqtrei); if (erro1<emin1) then begin emin1:=erro1; E1:=emqtrei; E2:=emqtes; E3:=emqval; end; erro2:=emqtes; if (erro2<emin2) then begin writeln('*****************************'); gramelhor; emin2:=erro2; E4:=emqtrei; E5:=emqtes; E6:=emqval; end; end;

(**************************************************************************) procedure reinicia; begin for i:=1 to n_var do ent[i]:=0; emin1:=1; emin2:=1; saida:=0; y[0]:=1; u[0]:=1; W2[0]:=0.5*(1-random(256)/128); alfa2[0]:= 0.01; sinal2[0]:= 0; for i:=1 to n_neu do begin W2[i]:=0.5*(1-random(256)/128); alfa2[i]:= 0.01; sinal2[i]:= 0; u[i]:=0; y[i]:=0; for j:=0 to n_var do begin W1[i,j]:=0.5*(1-random(256)/128); alfa1[i,j]:=0.01; sinal1[i,j]:=0; end; end; for i:=1 to 2 do for j:=1 to 5 do

Page 75: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

67

errmin[i,j]:=0; end;

(**************************************************************************) procedure treina;

var arquivo : text; a_erro : string[35]; pass,scont, XPTO : integer; invdiv : real; CH : CHAR; RE : BOOLEAN; saux : string;

begin a_erro:= ' '; str(periodo,a_erro); a_erro:= a_err + a_erro +'.prn'; a_erro:= 'c:\tp\saidas\' + a_erro; assign(arquivo,a_erro); rewrite(arquivo); RE:=TRUE; XPTO:=0; WHILE (RE=TRUE) DO BEGIN for l:=1 to n_passos do begin back; if ((l mod n_err) = 0) then begin testa; melhor; writeln(arquivo,l,' ',emqtrei,' ',emqtes); writeln(l); end;

end; writeln('erro minimo: ',emin1); writeln('erro treino: ',E1); writeln('erro teste: ',E2); writeln('periodo: ',periodo); writeln('periodo: ',periodo); writeln('periodo: ',periodo); writeln('periodo: ',periodo); writeln('XPTO: ',XPTO); writeln('XPTO: ',XPTO); writeln('XPTO: ',XPTO); writeln('XPTO: ',XPTO); {writeln('PRESSIONE R P/ RETREINAR'); readln(CH);} IF ((emin1 > 0.1) OR ((E2-E1) > 0.02)) then Begin CH:= 'R'; XPTO:=XPTO+1; armaz_err; armaz_sin; recup_sin; armaz_sai; end else Begin CH:='N'; end;

IF ((CH = 'R') and (XPTO <= 2)) THEN

Page 76: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

68

Begin RE:=TRUE; reinicia; end ELSE Begin RE:=FALSE; XPTO:=0; end; END; close(arquivo); end;(**************************************************************************)

procedure altera; var op:char; begin

writeln('Qual o n£mero de neur“nios na camada intermediaria ?'); readln(n_neu);

writeln('Qual o n£mero de passos ?'); readln(n_passos);

writeln('Qual o intervalo de passos para calculo dos erros?'); readln(n_err);

writeln('Qual o arquivo onde serÆo gravados os erros?'); readln(a_err);

writeln('Qual o valor de alfa?'); readln(alfa);

writeln('Qual o valor de beta?'); readln(beta);

writeln('Deseja reinicializar as sinapses(S/N)'); repeat op:=upcase(readkey); case op of 'S':inicializa; 'N':; end; until (op='S') or (op='N'); end;

(**************************************************************************)

begin perguntas; inicializa; divdad:=('d:\meusdo~1\petronio\tese\Divbat.PRN '); assign (arq1,divdad); reset(arq1); saidfim:=('d:\meusdo~1\petronio\tese\saibaa.PRN '); assign(arq4,saidfim); rewrite(arq4); errofim:=('d:\meusdo~1\petronio\tese\errbaa.PRN '); assign(arq5,errofim); rewrite(arq5);

ledados; for periodo:=1 to fim do Begin reinicia; div_dados;

Page 77: Previsão da Atividade Econômica Através de Redes … · ii Previsão da Atividade Econômica Através de Redes Neurais Petrônio Duarte Cançado Dissertação submetida ao corpo

69

treina; armaz_err; armaz_sin; recup_sin; armaz_sai; end; close(arq1); close(arq4); close(arq5);

end.