• Nenhum resultado encontrado

e uma matriz LG2005 a partir da matriz ˆL2005 prevista. Para se obterem os resultados

finais da previsão, computa-se a simples expressão matricial

L2005f inal = ˆL2005+(LG2005− LG2004) (4.19)

Ao término, computam-se as medidas de erro da previsão (ver Seção 4.2).

4.5

Rede Neural Artificial MLP

As redes neurais artificiais (RNAs) são ferramentas computacionais cujo mecanismo de funcionamento é inspirado do comportamento das redes neurais biológicas. Elas tratam-se basicamente de sistemas compostos por unidades de processamento simples (nodos, nós ou neurônios) as quais realizam o cálculo de determindas funções matemá- ticas tipicamente não-lineares (Braga et al., 2000). De acordo com Nelles (2001), suas principais características são: (i) grande número de unidades simples; (ii) existência de forte conexão entre essas unidades; (iii) robustez a falha de alguma de suas unidades; (iv) capacidade de aprendizado a partir de dados. Segundo Braga et al. (2000), os principais atrativos da solução de problemas via RNAs consistem em sua capacidade de aprender por meio de exemplos e de generalizar a informação aprendida; em outras palavras, ao se apresentarem dados às RNAs, elas extrairão automaticamente deles as características necessárias para representar a informação fornecida (essa é a chamada fase de aprendizagem) e ao se lhes apresentarem dados não conhecidos previamente, elas exibirão respostas coerentes. Isso mostra que as RNAs não se restringem a reali- zar um mero mapeamento entrada-saída, pois são capazes de realizar interpolações e extrapolações a partir do seu aprendizado.

Figura 4.4: Diagrama esquemático de um neurônio artificial.

54 4 Metodologias de Previsão saída é dada pela expressão

yk = f       m X i=1 xiwki+bk       (4.20)

em que f é uma função de ativação comumente não-linear, wki são os pesos e bk é o

termo de polarização.

Em termos de aplicações, existe uma gama muito vasta abarcada pelas RNAs dentro da qual se podem enumerar:

1. Modelagem e identificação de sistemas (Worden and Tomlinsom, 2001); 2. Controle (Carvalho and Hemerly, 2008);

3. Otimização (Curteanu and Leon, 2007);

4. Processamento de imagens e sinais (Masters, 1994); 5. Classificação (Zhang, 2000);

6. Previsão ou predição (Kermanshahi and Iwamiya, 2002).

No que diz respeito ao problema de previsão de séries temporais contemplado por este trabalho, foram utilizadas as chamadas redes perceptron multicamadas, ou MLPs (do inglês multilayer perceptron), ou seja, redes que possuem, além das camadas de entrada e de saída, camada(s) escondida(s) ou intermediária(s). A Figura 4.5 esboça uma típica topologia de uma rede MLP.

Figura 4.5: Diagrama esquemático de uma rede neural artificial MLP com uma camada escondida.

Uma das razões de tal escolha reside no fato de que uma rede MLP com pelo menos uma única camada escondida que contenha um número suficiente de neurônios é capaz de implementar qualquer função contínua (Braga et al., 2000). A saída de uma rede com tal configuração, em que o neurônio da camada de saída combina aditivamente o

4.5 Rede Neural Artificial MLP 55 seu termo de polarização b0e as saídas de cada neurônio da camada escondida, é dada

por y = M X i=1 wifi         m X j=1 wijuj+bi         +b0 (4.21)

em que M é o número de neurônios na camada escondida, m é o número de entradas, wis são os pesos da camada de saída, wijs são os pesos da camada escondida e fi(. )

é a função de ativação do i-ésimo neurônio da camada escondida. Nesse trabalho, a tangente hiperbólica foi a função de ativação considerada em todos os nurônios da camada escondida:

fi(x) =

2

1 + e−2x −1, (4.22)

enquanto que no único neurônio da camada de saída considerou-se a função de ativação linear

f(x) = x. (4.23)

Uma rede MLP com essa topologia apresenta M(m + 1) + M + 1 parâmetros a serem estimados. O algoritmo mais conhecido para o treinamento de redes MLP (isto é, para o ajuste de seus parâmetros) é o back-propagation. Os outros métodos existentes para redes MLP consistem em variações desse algoritmo. O back-propagation é dividido em duas fases: forward e backward. Em síntese, a primeira fase consiste em calcular, para um dado padrão de entrada, a saída da rede. Na segunda fase, utiliza-se o erro entre a saída calculada e a saída desejada para que se atualizam os pesos das conexões entre os neurônios. Esse procedimento é repetido reiteradas vezes, para diferentes padrões de treinamento, até que se atinja um critério de parada, quer seja um número máximo de repetições ou um valor mínimo de erro. Uma descrição cuidadosa desse algoritmo pode ser encontrada em (Braga et al., 2000).

Um problema comumente enfrentado em treinamento de RNAs é a questão de overfitting, ou seja, o fato de a rede se ajustar tão bem aos dados de treinamento ao ponto de perder a sua capacidade de generalização. Esse é um problema quando se trata da modelagem ou identificação de um sistema dinâmico, em que a capacidade de generalização da rede é uma característica imprescindível, uma vez que um ajuste quase exato aos dados de treinamento não implica necessariamente boa qualidade do modelo preditivo.

Muitas modificações do algoritmo back-propagation tem sido propostas no sentido de aumentar a velocidade do treinamento e de melhorar o seu desempenho. No presente trabalho, foi utilizado para treinamento o algoritmo de Levenberg-Marquardt (LM), o qual se trata de um algoritmo de mimização de erro quadrático não-linear. Pode-se definir que ele se adequa à resolução do problema de ajuste de curvas, qual seja: dado um conjunto de dados de variáveis dependentes e independentes (xi,yi), otimize os

parâmetros θ do modelo não-linear f (xi,θ) de modo que a soma dos quadrados dos

desvios J(θ) = m X i=1  yi− f(xi,θ)2 (4.24)

56 4 Metodologias de Previsão seja mínima. Talvez a grande vantagem de se utilizar o algoritmo LM resida no fato de ele reunir em si a velocidade do algoritmo de Newton e a estabilidade do método do gradiente descendente (Madsen et al., 2004).

Uma outra questão a ser considerada no projeto de redes MLP é a determinaçao do número de camadas escondidas e do número de neurônios em cada uma dessas camadas. Como já foi citado anteriormente, uma rede com uma única camada é capaz de aproximar qualquer função contínua a depender da sua quantidade de neurônios. Resta, portanto, somente a definição de quantos neurônios irão compor a camada escondida, o que comumente se faz por meio de testes e simulacões, como se verá mais adiante no capítulo de resultados deste trabalho.