• Nenhum resultado encontrado

5 Predição de Demanda do ARENA

5.1 Seleção do Modelo de Predição

5.1.3 Modelos de predição utilizados nos experimentos

Tradicionalmente, o problema de predição de séries temporais foi atacado a partir de modelos clássicos de aprendizagem de máquina, como métodos lineares. Entretanto, estes

Figura 5.2: Valor médio e intervalo médio de uma janela de 5 minutos

sofriam de certas limitações como a dependência de séries sem dados faltantes e relações lineares entre dados que excluíam distribuições mais complexas [59].

A técnica de aprendizagem por redes neurais já é estudada há alguns anos, mas foi recentemente que começou a ganhar mais terreno na competição com outras técnicas da área, devido ao crescimento na oferta de computadores mais rápidos. Para o problema da predição de séries temporais ela é muito útil, pois é capaz de aproximar uma função de mapeamento de variáveis de entrada em variáveis de saída, sendo robustas a ruído, conseguindo aprender e prever mesmo a partir de dados com valores faltantes, além de poderem lidar com entradas e saídas multivariadas [59]. Por estas razões, optamos por selecionar modelos baseados em redes neurais para nossos testes, descritos a seguir:

• Multi-layer Perceptron (MLP) - Trata-se de uma rede neural semelhante as redes neurais do tipo perceptron. As MLP’s combinam perceptrons em pelo menos três camadas (uma de entrada, pelo menos uma camada oculta e uma de saída) com alimentação direta, isto é, a saída de cada neurônio conectada ao neurônio da próxima camada. Além disso, utilizam de aprendizagem supervisionada, o que quer dizer que buscam mapear uma entrada com uma saída baseada em exemplos prévios de entrada e saída durante a etapa de treinamento da rede.

Figura 5.3: Vazão apresentada para um período de cinco dias

• Long Short-term Memory (LSTM) - Durante o processo de treinamento de uma rede neural, pode acontecer de que entre as iterações haja estagnação ou extra- polação dos valores de aprendizado da função. Arquiteturas LSTM [60] conseguem memorizar o estado das células de maneira a recuperar saídas anteriores para manter a evolução do aprendizado.

• Stacked LSTM - Múltiplas camadas LSTM ocultas podem ser empilhadas uma sobre a outra a fim de aumentar a profundidade do aprendizado e adicionar mais níveis de abstração [59]. Uma camada LSTM requer uma entrada tridimensional e produzem saídas bidimensionais. Com um ajuste no modelo, podemos acrescentar à saída da camada um valor referente ao passo de tempo e assim criar uma saída tridimensional que servirá de entrada para a próxima camada.

• Convolutional Neural Network / LSTM - Uma rede neural convolucionária (CNN) é um tipo de rede neural desenvolvida para trabalhar com conjuntos de imagens bidimensionais [61]. Podem ser muito efetivas na extração e aprendizado de características de sequências de dados unidimensionais, como é o caso de séries de dados temporais. Uma CNN pode ser usada num modelo híbrido combinada com uma camada LSTM, onde a camada CNN é usada para interpretar subsequências

de entradas que uma vez agregadas formam a entrada da camada LSTM.

(a) MLP (b) LSTM

(c) CNN-LSTM (d) Stacked-LSTM

Figura 5.4: Ilustração das arquiteturas de redes neurais utilizadas nos experimentos

A Figura 5.4 ilustra as quatro arquiteturas utilizadas nos experimentos. Todos os modelos de redes neurais utilizados contarão com a camada de entrada contendo três neurônios e de saída contendo um, a fim de que a entrada receba as três últimas medições de demanda ocorridas, isto é, os dados de vazão dos últimos quinze minutos para ter como saída a expectativa de demanda para os próximos cinco minutos, enquanto as camadas ocultas contarão com 50 neurônios cada.

5.2

Resultados

As redes neurais foram implementadas usando a biblioteca Python Keras [62] que executa sobre a biblioteca de código aberto TensorFlow [35]. Todos os experimentos foram

executados numa máquina virtual VMWare com Sistema Operacional Ubuntu 18.04 LTS com 64GB de memória RAM e processador Intel Xeon E5 2.0 GHz de 20 núcleos.

A função de perda utilizada no treinamento - necessária para estimar a perda do modelo e contribuir no processo de otimização a cada iteração - foi o erro quadrático médio, o que, durante os primeiros testes realizados, verificou-se que se estabilizava a partir de 10 épocas de treinamento. Sendo assim, mantivemos todos os modelos com esse número máximo de épocas. O conjunto de dados foi normalizado dentro do intervalo [0,1] e possui um total de 208.437 amostras. Destas, decidimos selecionar a primeira metade (104.218 amostras) para teste e a outra metade para validação. Durante a fase de validação, com o modelo já treinado, iteramos sobre a segunda metade do conjunto de dados e passando como entrada três amostras por vez para comparar a saída do preditor com a saída esperada e assim avaliar a acurácia dos modelos. Os gráficos apresentados na Figura 5.5 ilustram as predições obtidas pelos quatro modelos.

(a) MLP (b) LSTM

(c) CNN-LSTM (d) Stacked-LSTM

Figura 5.5: Resultado das predições realizadas pelos quatro modelos

A partir do gráfico, observa-se que todos os modelos foram capazes de capturar as ondulações na demanda ao longo do tempo, apesar de não terem sido tão precisos com relação à amplitude.

A fim de avaliar a precisão na predição dos modelos, foram extraídas três métricas: erro médio absoluto (do inglês, Mean Absolute Error, MAE ) – que calcula a diferença média entre os valores obtidos da predição e seu correspondente que de fato ocorreu no mesmo passo de tempo:

M AE = 1 n n X i=1 |yi− xi| (5.1)

Erro mediano absoluto (do inglês, Median Absolute Error, MedAE ) – que calcula a mediana de todas as diferenças absolutas entre o valor previsto (ˆy) e seu valor correspon- dente na série (y), permitindo visualizar a precisão com menor influência de outliers:

M edAE(y, ˆy) = median(|y − ˆy1|, ..., |y − ˆyn|) (5.2)

Erro quadrático médio – que calcula a média da diferença ao quadrado dos erros e vai de encontro à função de perda utilizada nos modelos, isto é, acrescenta mais uma métrica de comparação entre os modelos:

M SE = 1 n n X i=1 (yi− xi)2 (5.3)

Todos os modelos acabaram apresentando resultados parecidos, muito próximos um do outro conforme ilustrado na Figura 5.6, 5.7 e 5.8, de certa forma se equivalendo. Para MAE, todos ficaram em torno de10−3, com2 × 10−2 para MedAE e2.5 × 10−2 para MSE. Nesse sentido, a escolha entre eles foi guiada pela rapidez com que estes poderiam oferecer uma predição.

A Figura 5.9 expressa os resultados obtidos quanto ao tempo de treinamento que cada algoritmo levou sobre o mesmo conjunto de dados. Os resultados mostraram o mo- delo MLP com tempo de treinamento aproximadamente quatro vezes mais rápido que os modelos LSTM e CNN e aproximadamente sete vezes mais rápido que o modelo Stacked LSTM. Isso pode ser explicado pela maior simplicidade da arquitetura MLP em relação às demais [63], contando com uma camada a menos que CNN e Stacked e com neurônios mais simplificados que as unidades LSTM, mas que para o conjunto de dados em questão apresentou resultados satisfatórios para o problema desta tese.

A Figura 5.10 expressa os resultados obtidos quanto ao tempo para obtenção de um novo valor de predição a partir de uma entrada, neste caso, dos três últimos valores de

MLP LSTM CNN Stacked Model 0.0 0.5 1.0 1.5 2.0 2.5 Mean Absolute Error ×10−2 Figura 5.6: MAE MLP LSTM CNN Stacked Model 0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 Median Absolute Error ×10−2 Figura 5.7: MedAE

demanda captados. Pretendemos avaliar a velocidade com que o modelo pode obter novas predições a fim de verificar o impacto sobre um sistema de tempo real. Os resultados mostraram que uma vez treinados, os modelos com duas camadas e o modelo LSTM obtiveram resultados de aproximadamente4 × 10−3 segundos e a MLP mais uma vez com vantagem, com um valor abaixo de 1 × 10−3 segundos.

Nesse sentido, elegemos o MLP como o modelo a ser utilizado para predição de de- manda por ter sido o modelo com maior potencial para oferecer predições com margem

MLP LSTM CNN Stacked Model 0.0 0.2 0.4 0.6 0.8 1.0 Mean Squared Error ×10−3 Figura 5.8: MSE MLP LSTM CNN Stacked Model 0 50 100 150 200 250 300 350 T raining Time (seconds)

Figura 5.9: Tempo de treinamento

satisfatória de precisão no menor espaço de tempo possível e com menor tempo de trei- namento para iniciar.

5.3

Síntese do Capítulo

O presente capítulo apresentou a metodologia adotada e os experimentos realizados para seleção do modelo de predição a ser utilizado no ARENA no sentido de antecipar a demanda pelos serviços encadeados e auxiliar nas decisões proativas de elasticidade. Parte

MLP LSTM CNN Stacked Model 0 1 2 3 4 Av erage Prediction Time (seconds) ×10−3

Figura 5.10: Tempo para obter predição

importante desse processo foi a seleção do conjunto de dados com alta granularidade que permitiu sua divisão em janelas de tempo, com a escolha de um valor estatístico representativo da demanda de cada janela que guiará as decisões proativas, ao passo que o uso deste conjunto permitirá avaliar o ARENA sobre um padrão realístico de chegada de requisições sobre os serviços encadeados.

Documentos relacionados