• Nenhum resultado encontrado

O método proposto em [13], denominado TWESN, utiliza uma ESN para a previsão da velocidade do vento no horizonte 𝑡 + 𝑘. O método se baseia na receita clássica proposta em [37] para definição dos hiperparâmetros e topologia da ESN.

As entradas do modelo são os quatro últimos valores observados da velocidade do vento. A saída é a velocidade prevista em 𝑡 + 𝑘. A topologia de entradas e saídas segue aquela proposta em [23]. O nome escolhido foi TWESN porque o método utiliza internamente a Transformada Wavelet Discreta (APÊNDICE C) e uma ESN. Na Figura 6 apresenta-se um esquema do método.

Figura 6 – Esquema do método TWESN.

Fonte: Elaboração própria.

Internamente, cada velocidade de entrada 𝑣(𝜏) é substituída pelos quatro sinais correspondentes 𝑎3(𝜏), 𝑑3(𝜏), 𝑑2(𝜏), 𝑑1(𝜏), em que 𝜏 = 𝑡 − 3, 𝑡 − 2, 𝑡 − 1, 𝑡. Estes diferentes

tipos de sinais fornecidos à ESN são definidos da seguinte maneira:

 Aplica-se ao vetor das velocidades a decomposição em três níveis da Transformada

Wavelet Discreta;

 Montam-se quatro vetores de mesma ordem do vetor das velocidades, sendo eles:A3

– vetor de aproximação do 3º nível; D3 – vetor de detalhe do 3º nível; D2 – vetor de

A quantidade de neurônios do reservoir é determinada variando-se o número de neurônios deste, sendo selecionada a quantidade que fornecer o melhor desempenho durante os treinamentos. Os neurônios do reservoir utilizam funções de ativação do tipo Tangente Hiperbólica, Sigmóide Logística ou Identidade. O único neurônio da camada de saída utiliza a função Identidade. O raio espectral da matriz de pesos do reservoir é determinado variando-se o seu valor, sendo selecionado aquele que fornecer o melhor desempenho durante os treinamentos.

3.6.1 Procedimentos para o Treinamento e Ajuste do TWESN  Partição das Bases de Dados

Antes de realizar os treinamentos do método TWESN para uma determinada série temporal, monta-se uma matriz dos padrões de entradas e saída. Para cada linha da matriz de padrões, nas primeiras colunas estão as entradas e na última coluna a saída. As matrizes têm dezessete colunas, as quais são normalizadas conforme proposto em [23], onde ressalta-se que devem ser realizadas duas normalizações distintas. Uma delas se aplica ao vetor A3 e a outra se

aplica à concatenação dos vetores D3, D2 e D1. Para a normalização dos vetores de detalhes,

𝑆min corresponde ao valor mínimo das três séries de detalhes concatenadas, e 𝑆max corresponde ao valor máximo. O valor de saída do modelo é normalizado, logo, os valores de 𝑆min e 𝑆max utilizados para o ajuste devem ser armazenados para que se possa realizar a desnormalização de 𝑣̂(𝑡 + 𝑘|𝑡).

A partir de cada uma das matrizes de padrões normalizadas, são criados os conjuntos de treinamento, com 90% das linhas, e teste, com os 10% restantes.

 Determinação da Quantidade de Neurônios do Reservoir

Utilizando procedimento semelhante àquele adotado em [23], a quantidade de neurônios do reservoir é determinada por tentativas, sendo eleita aquela correspondente ao melhor desempenho relativo ao conjunto de teste na etapa de treinamento. A execução do procedimento é a seguinte:

I. Cria-se uma ESN com 100 neurônios no reservoir com funções de ativação do tipo Tangente Hiperbólica;

II. Atribuem-se pesos aleatórios às conexões da ESN e na sequência a matriz de pesos do reservoir é ajustada para que seu raio espectral seja igual a 0,8;

III. Realiza-se o treinamento supervisionado da ESN através da function “train_esn” (utilizando a pseudoinversa, no modo off-line e com o parâmetro nForgetPoints igual a 100), específica da toolbox [49];

IV. Calculam-se o MAE, MSE, RMSE e MAPE para cada um dos conjuntos (treinamento e teste);

V. Adicionam-se mais 100 neurônios ao reservoir, retornando posteriormente ao passo II até o reservoir possuir 1.000 neurônios;

VI. Escolhe-se a arquitetura da ESN (quantidade de neurônios no reservoir) que apresenta menor RMSE para o conjunto de teste.

 Determinação do Melhor Raio Espectral

Após a determinação da quantidade de neurônios no reservoir, a qual fornece a arquitetura final das ESN, falta ainda descobrir aquelas que se adaptem melhor ao problema abordado. Em outras palavras, falta definir quais ESN possuem melhor capacidade de generalização para as previsões das velocidades de cada localidade e para cada um dos passos de previsão considerados.

Utilizando procedimento semelhante àquele adotado para a determinação do tamanho do reservoir, o valor do raio espectral da matriz de pesos do reservoir é determinado por tentativas, sendo eleito aquele correspondente ao melhor desempenho relativo ao conjunto de teste na etapa de treinamento. A execução do procedimento é a seguinte:

I. Cria-se uma ESN com 1.000 neurônios no reservoir com funções de ativação do tipo Tangente Hiperbólica;

II. Atribuem-se pesos aleatórios às conexões da ESN e na sequência a matriz de pesos do

reservoir é ajustada para que seu raio espectral seja igual a 0,1;

III. Realiza-se o treinamento supervisionado da ESN através da function “train_esn” (utilizando a pseudoinversa, no modo off-line e com o parâmetro nForgetPoints igual a 100), específica da toolbox [49];

IV. Calculam-se o MAE, MSE, RMSE e MAPE para cada um dos conjuntos (treinamento e teste);

V. Incrementa-se o valor do raio espectral em 0,1, retornando posteriormente ao passo II até que o valor do raio espectral seja igual a 1,4;

VI. Retorna-se ao passo I alterando as funções de ativação para Sigmóide Logística (na primeira vez em que se chega ao passo VI) ou Identidade (na segunda vez em que se chega ao passo VI);

VII. Escolhe-se como melhor ESN aquela cujo raio espectral apresenta menor RMSE para o conjunto de teste.

3.6.2 Parâmetros

Para a criação das ESN do método TWESN utilizou-se uma toolbox de Reservoir

Computing [49], desenvolvida para o MATLAB® e cujo código é aberto. Os parâmetros utilizados para criar as ESN (com a utilização da function generate_esn) foram os seguintes:

 nInputUnits → número de entradas da ESN;

 nInternalUnits → número de neurônios no reservoir;  nOutputUnits → número de saídas da ESN;

 'spectralRadius' → valor do raio espectral;  'inputScaling' → vetor unitário (nInputUnits x 1);  'inputShift'→ vetor nulo (nInputUnits x 1);

 'teacherScaling' → vetor unitário (nOutputUnits x 1);  'teacherShift' → vetor nulo (nOutputUnits x 1);  'feedbackScaling' → vetor nulo (nOutputUnits x 1);  'type' → tipo da ESN – 'plain_esn';

 'reservoirActivationFunction' → função de ativação dos neurônios do reservoir (string variável – 'identity', 'tanh' ou 'sigmoid01');

 'outputActivationFunction' → função de ativação da saída da ESN – 'identity';

 'inverseOutputActivationFunction' → inversa da função de ativação da saída da ESN –

'identity'.

Documentos relacionados