• Nenhum resultado encontrado

3.2 MODELOS PROPOSTOS

3.2.1 Long Short-Term Memory - LSTM

As redes neurais do tipo Long Short-Term Memory (LSTM) são redes recorrentes muito utilizadas para processamento de séries temporais (HOUDT; MOSQUERA; NÁPOLES, 2020; HOCHREITER; SCHMIDHUBER, 1997; GOODFELLOW; BENGIO; COURVILLE, 2016). Devido à sua capacidade de armazenar informações em sua memória interna e ao uso de funções de ativação não-lineares em cada camada, o modelo LSTM pode capturar tendências não-lineares nos dados e lembrar informações anteriores por um longo tempo.

As Redes Neurais Artificiais (ANN) são inspiradas nos sistemas de aprendizado biológico e modelam suas funções básicas. Estes sistemas são redes complexas de neurônios interconectados. Nas redes neurais artificiais, os neurônios são simples unidades que aceitam um vetor de entradas de valores reais e produzem uma única saída de valor real.

O tipo de rede neural padrão mais comum é a Feed-Forward Neural Network (FFNN).

Nela os neurônios são organizados em camadas: uma camada de entrada, outra de saída e ao menos uma camada intermediária, chamada camada oculta (hidden layer). As FFND são limitadas a tarefas estáticas (não recorrentes – não dependem de valores passados dos parâmetros envolvidas). Modelos que trabalham tarefas dinâmicas consideram valores passados dos parâmetros envolvidos (recorrentes). É possível estender a FFNN para tarefas dinâmicas, sendo necessário para isso introduzir sinais de etapas anteriores de volta a rede.

Estas redes com conexões recorrentes são chamadas de Redes Neurais Recorrentes (RNN) que conseguem considerar informações de parâmetros passados (WILLIAMS; ZIPSER, 1989). Porém as RNN não conseguem armazenar informações para janelas temporais grandes, por conta de sinais de etapas anteriores desaparecerem (gradient vanishing problem) (NOH, 2021). Este problema de memória curta foi trabalhado com as Redes Neurais de Memória-Curta Longa (LSTM - Long Short-Term Memory Recurrent Neural Networks), que são um tipo de RNN. As redes LSTM são capazes de considerar informações de parâmetros anteriores em quantidades maiores de etapas de tempo (STAUDEMEYER;

MORRIS, 2019).

3.2.1.1 Perceptron

O tipo mais básico de neurônio artificial é chamado de Perceptron. Perceptrons consistem em um número de entradas externas, um limite e uma saída externa. Em muitas

Figura 2 – Finalidade do bias

Fonte: Elaborado pelo autor.

Figura 3 – Estrutura perceptron

Fonte: adaptado de Staudemeyer e Morris (2019).

configurações, há uma parte invariável da previsão, que é chamada de bias (viés). Por exemplo, considere uma situação em que as entradas de uma classificação binária, com amostras de −1 ou +1, são centradas na média, porém a média dessa predição não é 0, pois está fora do domínio. Isso tenderá a ocorrer em situações em que a distribuição da classe binária é altamente desequilibrado. Neste caso, a abordagem sem o bias não é suficiente para a previsão. Surge assim a necessidade de se incorporar uma variável de bias adicional b que captura essa parte invariável da previsão. Em resumo o bias é um termo que desloca o hiperplano de separação da origem do espaço das amostras, conforme demonstrado na Figura 2. O perceptron recebe um vetor de entrada de valores reais e todos eles são multiplicados por pesos, sendo adicionado ao resultado um valor fixo, o bias.

Assim, o bias ajuda a treinar o modelo mais rápido e com melhor qualidade.(AGGARWAL et al., 2018; SHYNK; BERSHAD, 1991). Esta estrutura pode ser visualizada na Figura 3.

Na fase de treinamento do perceptron, ele aprende esses pesos com base nos dados de

treinamento. São somados todos os valores de entrada, multiplicados pelos respectivos pesos, e o bias. O resultado é avaliado pela função de ativação, através da qual o neurônio é ativado ou não. A saída do perceptron é sempre booleana: se a soma for maior que o limite estabelecido (normalmente zero) o perceptron é ativado e a saída será 1; caso contrário o neurônio não é ativado, ou seja, a saída será −1. Esta saída é definida pela Equação 2 (AGGARWAL et al., 2018).

y =

1, se Pni=1Wixi+b >0;

−1, caso contrário.

(2)

sendoWio peso da entradai,xi o valor da entrada ebobias. O somatório da multiplicação dos pesos pelos valores de entrada mais o bias é chamado de Estado do Perceptron. Um único perceptron é limitado a aprender somente funções que são linearmente separáveis.

3.2.1.2 Learning Rate e a Regra de Aprendizado Delta

O treinamento do perceptron se dá através da aprendizagem supervisionada, ou seja, durante a fase de treinamento o perceptron produz uma saída e a compara com a saída esperada do dado de treinamento. A partir da ocorrência do erro, os pesos são modificados de acordo com a taxa de aprendizado e, sendo o problema linearmente separável, ocorrerá a convergência (MURPHY; GRAY; STEWART, 2017). A taxa de aprendizado é uma constante que determina o quanto os pesos serão modificados. O vetor de pesos são inicializados de maneira randômica. O algoritmo somente irá convergir em direção a um ótimo se os dados de treinamento forem linearmente separáveis e se a taxa de aprendizado for suficientemente pequena. A regra de aprendizado Delta, base do algoritmobackpropagation, se aplica tanto aos casos que são linearmente separáveis ou não. São calculados os erros entre a saída calculada e a saída esperada dos exemplos de treinamento e modificados os pesos de acordo com a Equação 3.

Wi =Wi+ ∆Wi; (3)

com ∆Wi =η(dy)xi (4)

sendo W o vetor de pesos, η a taxa de aprendizado (learning rate), d a saída esperada,y a saída calculada e x o valor da entrada. A modificação dos pesos se dá pela utilização do algoritmo de gradiente descendente que altera os pesos na direção do erro mínimo global.

3.2.1.3 Redes Neurais Feed-Forward e o Backpropagation

Nas redes neuraisFeed-Forward, os neurônios são organizados em camadas e cada neurônio calcula os pesos a serem aplicados em seus inputs. Os neurônios de entrada recebem

Figura 4 – Rede neuralFeed-Forward com uma camada de entrada, uma camada oculta e uma camada de saída.

Fonte: adaptado de Staudemeyer e Morris (2019).

sinais do ambiente em que estão e os neurônios de saída entregam os sinais ao ambiente.

Neurônios que não estão diretamente ligados ao ambiente ou seja, estão entre os neurônios de entrada e saída são chamados de neurônios ocultos (AGGARWAL et al., 2018). Essas redes não possuem ciclos e são totalmente conectadas, ou seja, cada neurônio provê um input para cada neurônio de uma camada posterior, como ilustrado na Figura 4. Os neurônios são ativados de acordo com a função de ativação utilizada, podendo ser a função escada (Equação 2) ou outra função, por exemplo, a função Sigmoid. Esta função transforma um valor de entrada x em um outro dentro do intervalo entre 0 e 1. Ela é descrita pela Equação 5.

y = 1

(1−e−1.s) (5)

com s sendo s =

n

X

i=1

Wixi+b, (6)

sendo Wi o peso, xi o valor da entrada e b o bias. As redes neurais Feed-Forward multicamadas que utilizam a funçãoSigmoidcomo função de ativação conseguem representar funções não lineares (STAUDEMEYER; MORRIS, 2019).

Uma das técnicas de aprendizado das redes neurais é o algoritmo de backpropagation. Essa técnica utiliza o gradiente descendente para atualizar os pesos em redes multicamadas.

Ele utiliza o erro gerado pela rede, iniciando a partir da camada de saída em direção a camada de entrada, buscando com a atualização dos pesos garantir menores taxas de erro, tornando o modelo mais confiável (WERBOS, 1990). Para que seja possível aplicar o algoritmo é necessário que a função de ativação seja diferenciável, de modo que se permita

Figura 5 – Rede Neural Recorrente totalmente conectada

Fonte: adaptado de Aggarwal et al. (2018).

determinar em que direção devemos ajustar os pesos a fim de obtermos um erro menor.

O erro encontrado na camada de saída pode ser visto como um resultado do acúmulo de erros de cada neurônio da rede neural, logo cada nó tem sua participação neste resultado.

Portanto, é necessário localizar qual o neurônio é responsável pela maior parte da perda em cada camada, para que ele seja penalizado dando-lhe um valor de peso menor e, assim, diminuindo a perda total da rede. Para isso, são feitos os cálculos dos Deltas: o peso aplicado entre dois neurônios, multiplicado pelo Delta do neurônio mais a direita é igual ao Delta do neurônio mais a esquerda. É realizada a etapa de cálculo do Delta em cada unidade, propagando de volta a perda na rede neural e descobrindo a perda pela qual cada neurônio é responsável.

3.2.1.4 RNN

Redes Neurais Recorrentes (RNN) são sistemas dinâmicos, ou seja, eles possuem um estado interno em cada etapa de tempo que permitem considerar valores passados dos parâmetros trabalhados. Isso ocorre devido às conexões circulares entre os neurônios e uma opcional conexão de auto-alimentação, conforme apresentado na Figura 5. Essas conexões de retorno habilitam as RNN a propagar dados de eventos anteriores para os passos atuais, dessa forma as RNN constroem uma memória de eventos de séries temporais (WILLIAMS; ZIPSER, 1989).

A Figura 5 pode deixar entender que cada célula RNN está utilizando uma matriz de pesos diferente, porém a matriz de pesos é a mesma, sendo reutilizada durante o processo (MINAR; NAHER, 2018). Somente os dados de entrada e o estado da célula são únicos em cada etapa do processamento. Uma Célula RNN tem como entrada o estado oculto anterior ht−1 e os novos valores de entradaXt, estes são concatenados, processados e um novo estado oculto é produzido, sendo que esse será utilizado como entrada na próxima etapa de tempo, assim como a nova entrada e assim sucessivamente, como pode ser visto na Figura 6.

Matematicamente as RNNs são definidas como a Equação 7 (YU et al., 2019):

Figura 6 – Célula de Rede Neural Recorrente

Fonte: adaptado de Aggarwal et al. (2018).

ht=σ(Wh.ht−1+Wx.xt+b); comyt=ht (7)

sendo xt,ht−1,ht eyt, a entrada, o estado oculto anterior (informação recorrente), o estado oculto da célula e a saída, respectivamente; Wh e Wx os pesos e b é o bias; σ representa a função de ativação.

As RNNs precisam ser treinadas de maneira diferente das redes neurais feed-forward (FFNNs). Isso ocorre porque, para as RNNs, precisamos propagar informações por meio das conexões recorrentes entre cada etapa de tempo. Os algoritmos de aprendizado mais comuns para treinar RNNs em tarefas de aprendizado supervisionado e temporal são, a retropropagação através do tempo (Backpropagation Through Time - BPTT) e o aprendizado recorrente em tempo real (Real-Time Recurrent Learning - RTRL). No BPTT a rede é desdobrada no tempo para construir uma FFNN, em seguida a regra Delta é aplicada para atualizar os pesos, de acordo com o algoritmo de Backpropagation. Porém, os pesos não são atualizados somente considerando a etapa de tempo corrente, mas sim considerando a soma dos deltas de todas as etapas de tempo anteriores. O BPTT ocorre quando aplicamos um algoritmo de retropropagação a uma rede neural recorrente que possui dados de séries temporais como entrada. Este é um algoritmo de aprendizadooffline no sentido de que primeiro coletamos os dados e depois construímos o modelo do sistema.

Figura 7 –Exploding error problem

Fonte: Elaborado pelo autor.

O algoritmo RTRL não requer propagação de erros, pois as informações necessárias para calcular o gradiente são coletadas a medida que a entrada de dados na rede ocorre, em contra partida o algoritmo tem um custo computacional elevado (STAUDEMEYER;

MORRIS, 2019).

3.2.1.5 Vanishing Error Problem

Quando a quantidade de dados a serem manipulados pelas RNN é grande, elas não conseguem conectar as informações relevantes, ou seja, não é possível trabalhar muitas etapas de tempo por conta dos sinais de erro do backpropagation, que tendem a crescer ou diminuir sem critério a cada passo de tempo (YU et al., 2019). Sinais de erro expandidos (exploding problem) levam diretamente a pesos descontroladamente oscilantes, demonstrado na Figura 7, que representa o gráfico de uma função de ativação quadrática (parábola) e sua derivada (reta): começa-se a saltar de forma que não se converge para o ponto necessário. Já no caso do erro que desaparece (vanishing problem), o aprendizado (ajuste dos pesos) leva um tempo inaceitável ou não funciona.

Entende-se então que as Redes Neurais Recorrentes padrão sofrem de memória de curto prazo. Se uma sequência de dados a serem manipulados for longa o suficiente, tais redes terão dificuldade em transportar informações de etapas de tempo anteriores para etapas posteriores, causando assim o esquecimento, ou seja, memória de curto prazo.

3.2.1.6 LSTM

Uma tratativa que aborda o vanishing error problem é um método baseado em gradiente chamado memória curta de longo prazo (Long Short-Term Memory - LSTM). Essa estratégia foi definida especificamente para superar a questão de memória curta enfrentado pelas RNN (HOCHREITER; SCHMIDHUBER, 1997). A LSTM não trata cada ponto da sequência de dados a ser processado independentemente, ao invés disso retém informação útil referente aos dados anteriores para auxiliar no processamento de novos dados. Como resultado, a LSTM é particularmente boa em processamento de sequências mais longas, como texto, fala e séries temporais. A solução usa carrosséis de erro constante (Constant Error Carousel - CEC), que impõem um fluxo de erro constante dentro das células LSTM.

O acesso às células é feito por unidades de portas multiplicativas que aprendem quando conceder acesso (STAUDEMEYER; MORRIS, 2019). Esta preservação do erro promovido pelo CEC é o recurso central da LSTM, permitindo que a memória de curto prazo seja mantida por longos períodos de tempo. Na LSTM também existem outros componentes que influenciam na ativação do CEC e, desta forma, definem o estado da célula LSTM.

Como o fluxo no estado da célula é mantido constante através dos CECs, pode ocorrer o problema do estado da célula crescer linearmente durante a progressão de uma série temporal, por exemplo. Isso levará a célula LSTM a perder sua capacidade de memorização e começar a funcionar como um neurônio de rede RNN comum. Se optarmos por redefinir manualmente o estado da célula no início de cada sequência, o crescimento do estado da célula pode ser limitado, mas isso não é prático para entrada contínua onde não há final distinguível ou a subdivisão é muito complexa e propensa a erros. Para resolver este problema, foi inserido um portão de esquecimento (forget gate) adaptativo que pode aprender a redefinir o estado interno da célula LSTM quando as informações armazenadas não forem mais necessárias. A relação da saída do forget gate com o estado interno da célula é multiplicativa. Existem também o portão de entrada (input gate) que são unidades que controlam os sinais da rede para a célula LSTM, dimensionando-os adequadamente e podendo aprender a proteger o conteúdo armazenado no estado interno da célula de perturbações por sinais irrelevantes. A relação da saída do input gatecom o estado interno da célula é aditiva e produz o novo estado interno da célula. Existem também o portão de saída (output gate), que podem aprender como controlar o acesso ao conteúdo da célula LSTM e proteger outras células de memória de distúrbios originados naquela célula LSTM. A saída do output gate produz o estado oculto da célula. A célula LSTM recebe como entrada o estado da célula anterior, o estado oculto (saída) da célula anterior e os novos dados. Os três portões recebem como entrada uma concatenação entre estado oculto (saída) da célula anterior e os novos dados. A função de ativação do forget gate é a sigmoid, que comprime os valores entre 0 e 1, desta forma permitindo o esquecimento de informação irrelevante quando o resultado é próximo a zero; o input gate aplica à

concatenação das entradas recebidas a sigmoid e a função de ativação tanh (tangente hiperbólica), que comprime os valores entre -1 e 1. Estes dois resultados são multiplicados;

o output gate aplica a função de ativaçãosigmoid; A saída doforget gate é multiplicada pelo estado da célula, em seguida a saída o input gate é somada ao estado da célula e este é o novo estado da célula; Por fim, ao novo estado da célula é aplicada a ativação tanh (esta ativação não modifica o novo estado da célula) e multiplicado pela saída do output gate, este resultado é o novo estado oculto da célula LSTM (STAUDEMEYER; MORRIS, 2019; YU et al., 2019). Estas etapas podem ser visualizadas através da Figura 8, que apresenta uma legenda para as operações ocorridas dentro da célula LSTM e da Figura 9 que demonstra esquematicamente a organização da célula LSTM. Matematicamente a LSTM é definida pelas Equações 8 a 12 (WANG; ZHU; LI, 2019).

it =σ(Wi[ht−1, xt] +bi) (8)

ft=σ(Wf[ht−1, xt] +bf) (9)

ot=σ(Wo[ht−1, xt] +bo) (10)

ct=ft.ct−1+it.tanh(Wc[ht−1, xt] +bc) (11)

ht=ot.tanh(ct) (12)

sendo h, i,f, o e c, respectivamente, o estado oculto, o input gate, o forget gate, o output gate e o estado da célula; W eb, a matriz de pesos e o bias, respectivamente, e; σ e tanh, as funções de ativação sigmoid e tangente hiperbólica, respectivamente.

Uma variação da LSTM é a LSTM Bidirecional, uma extensão em que duas LSTMs são aplicados aos dados de entrada (SIAMI-NAMINI; TAVAKOLI; NAMIN, 2019). Na primeira etapa, um LSTM é aplicado na sequência de entrada (camada direta). Na segunda etapa a forma inversa da sequência de entrada é alimentada no modelo LSTM (camada inversa), ou seja, a LSTM Bidirecional tem um fluxo de informação bidirecional de modo que a sequência de dados de entrada é treinada por duas redes LSTM, uma no sentido direto e outra no sentido inverso. Ambas as redes estão conectadas à mesma camada de saída (MOHAN; GAITONDE, 2018; SIAMI-NAMINI; TAVAKOLI; NAMIN, 2019). Uma comparação da visão geral da LSTM e LSTM Bidirecional pode ser vista na Figura 10.

Figura 8 – Legenda operações célula LSTM

Fonte: Elaborado pelo autor.

Figura 9 – Esquema célula LSTM

Fonte: Adaptado de Staudemeyer e Morris (2019).

3.2.1.7 Hiperparâmetros

Os hiperparâmetros são usados para configurar vários aspectos do algoritmo de aprendizagem e podem ter efeitos variados sobre o modelo construído e seu desempenho (CLAESEN;

MOOR, 2015). Os hiperparâmetros também influenciam na qualidade do modelo resultante, em sua eficiência e no tempo de convergência durante o treinamento do modelo; a seleção de quais hiperparâmetros e como modificá-los não segue uma regra geral, de forma que alguns hiperparâmetros são relevantes para todos os conjuntos de dados, enquanto outros

Figura 10 – Arquiteturas LSTM e BiLSTM

Fonte: Adaptado de Siami-Namini, Tavakoli e Namin (2019).

são importantes apenas para alguns conjuntos de dados. (PROBST; BOULESTEIX;

BISCHL, 2019).

Neste trabalho destacamos os seguintes hiperparâmetros da LSTM:

• Tamanho do lote (Batch size): Os dados são alimentados na LSTM em lotes. O tamanho do lote é decidido pelo usuário e define o número de linhas do conjunto de dados processado pelo modelo antes de atualizar seus pesos. Enquanto um lote está sendo processado, o LSTM mantém seu estado. Caso o volume de dados seja muito grande para serem fornecidos a uma rede neural para fins de treinamento de uma só vez, é possível dividi-los em vários lotes menores e treinar a rede em vários estágios. O tamanho do lote refere-se ao número total de dados de treinamento usados. Ou seja, quando um grande conjunto de dados é dividido em um número menor de partes, cada parte é chamada de lote. Por outro lado, a iteração é o número de lotes necessários para concluir o treinamento de um modelo usando todo o conjunto de dados. Com a utilização do batch size é possível dividir os dados em tamanhos menores e depois treinar o modelo com pedaços menores um por um (ou seja, tamanho do lote e iteração).

Assim, os pesos dos parâmetros das redes neurais são atualizados no final de cada etapa para levar em conta a variação dos dados de treinamento recém adicionados (SIAMI-NAMINI; TAVAKOLI; NAMIN, 2018).

• Taxa de aprendizado (Learning rate): ajusta a extensão das mudanças nos pesos do modelo, determinando o quanto os pesos serão modificados (ABBASIMEHR; PAKI, 2022; GREFF et al., 2016);

• Número de épocas: uma época de treinamento é uma passagem completa por todos

os dados de treinamento (SIAMI-NAMINI; TAVAKOLI; NAMIN, 2018). Um número menor de épocas pode tornar o modelo incapaz de capturar os padrões dos dados de treinamento (ABBASIMEHR; PAKI, 2022);

• Número de neurônios: quantidade de neurônios contidos em uma camada. Um pequeno número de neurônios pode impedir que a LSTM memorize as informações necessárias, já um grande número de neurônios pode levar ao overfitting (ABBASIMEHR; PAKI, 2022);

3.2.1.8 Explorando a LSTM

Conforme apontado no trabalho de Smagulova e James (2019), as redes neurais LSTM podem ser usadas para implementar diversas tarefas como previsão, classificação de padrões, reconhecimento, análise e geração de sequências. Devido à capacidade de processar dados sequenciais, a LSTM é uma ferramenta eficiente em diversos campos, incluindo estatística, linguística, medicina, transporte, ciência da computação e outros, isso é possível pelo fato de a LSTM (e as RNN) possuírem um estado interno em cada etapa de tempo que permite considerar valores passados dos parâmetros trabalhados, ou seja, a presença de memória interna na LSTM permite manter dependências de longo prazo. A LSTM é considerada uma ferramenta eficiente para processamento de vários dados sequenciais e temporais, como fala, vídeo, dados de estoque e outros; foi citado como desvantagem da LSTM sua lentidão devido ao grande paralelismo e natureza sequencial. O trabalho de Greff et al. (2016) explorou diversas variantes da LSTM buscando identificar os componentes essenciais para seu funcionamento. No trabalho foi identificado que nenhuma variação trouxe melhoras significativas nos resultados, entretanto observou-se que o forget gate e a função de ativação do output gate são os componentes mais críticos da célula LSTM. A remoção de qualquer um deles prejudica significativamente o desempenho. Entendeu-se que a função de ativação de saída é necessária para evitar que o estado de célula ilimitado se propague pela rede e desestabilize o aprendizado. Quanto a otimização de hiperparâmetros concluiu-se que a taxa de aprendizado é o hiperparâmetro mais importante, seguido pelo tamanho da rede.

Os componentes existentes no modelo LSTM permitem que o modelo retenha informações importantes do conjunto de dados e descarte informações menos importantes, o que permite que o modelo LSTM lide com dependências de longo prazo, uma vez que as informações podem permanecer em sua memória por muitas etapas (HOCHREITER;

SCHMIDHUBER, 1997). Desta forma sendo capaz de lidar com limitações de técnicas tradicionais de previsão em séries temporais, adaptando-se ao comportamento não linear do processo de operação de um alto-forno (DETTORI et al., 2022; CHIMMULA; ZHANG, 2020). O trabalho de Jiménez et al. (2004) aponta o uso de modelos paramétricos, que tem como objetivo obter uma função com o uso de parâmetros selecionados que pode

aproximar as relações entre as entradas e saídas e, como os modelos baseados em redes neurais são modelos paramétricos, eles têm sido utilizados por conta de várias vantagens:

apresentam boa adaptação a sistemas não lineares, são robustos contra ruídos são fáceis de programar e conseguem se adaptar às mudanças nas condições do sistema. É apontado como uma desvantagem destes modelos a necessidade de um grande número de dados, o que neste trabalho não é uma necessariamente uma restrição. Desta forma a LSTM foi modelo escolhido para ser avaliado neste trabalho sendo utilizadas diversas configurações e feitas comparações com outros modelos de Machine Learning e estatísticos.

Documentos relacionados