Compartilhar via


Aprendizado profundo com a previsão do AutoML

Este artigo se concentra nos métodos de aprendizado profundo para previsão de séries temporais no AutoML. Instruções e exemplos de modelos de previsão de treinamento em AutoML podem ser encontrados em nosso artigo configurar o AutoML para previsão de série temporal.

O aprendizado profundo tem vários casos de uso em campos que vão desde a modelagem de linguagem até o enovelamento de proteínas, entre muitos outros. A previsão de séries temporais também se beneficia dos recentes avanços na tecnologia de aprendizado profundo. Por exemplo, os modelos de DNN (rede neural profunda) aparecem com destaque nos modelos de melhor desempenho da quarta e quinta iterações da competição de previsão de alto nível da Makridakis.

Neste artigo, descrevemos a estrutura e a operação do modelo TCNForecaster no AutoML para ajudar você a aplicar melhor o modelo ao seu cenário.

Introdução ao TCNForecaster

O TCNForecaster é uma TCN (rede convolucional temporal) que conta com uma arquitetura de DNN projetada para dados de séries temporais. O modelo usa dados históricos para uma quantidade de destino, além de recursos relacionados, a fim de fazer previsões probabilísticas do destino até um horizonte de previsão especificado. A seguinte imagem mostra os principais componentes da arquitetura do TCNForecaster:

Diagrama mostrando os principais componentes do TCNForecaster do AutoML.

O TCNForecaster conta com os seguintes componentes principais:

  • Uma camada de pré-mistura que combina a série temporal de entrada e os dados do recurso em uma matriz de canais de sinal processada pela pilha convolucional.
  • Uma pilha de camadas de convolução dilatada que processa a matriz de canais sequencialmente. Nesse caso, cada camada na pilha processa a saída da camada anterior para produzir uma nova matriz de canais. Cada canal na saída contém uma combinação de sinais filtrados por convolução dos canais de entrada.
  • Uma coleção de unidades de cabeçalho de previsão que unem os sinais de saída das camadas de convolução e geram previsões da quantidade de destino com base nessa representação latente. Cada unidade de cabeçalho produz previsões até o horizonte para um quantil da distribuição de previsão.

Convolução causal dilatada

A operação central de uma TCN é uma convolução causal dilatada ao longo da dimensão temporal de um sinal de entrada. Intuitivamente, a convolução combina valores de pontos de tempo próximos na entrada. As proporções na combinação são o kernel, ou os pesos, da convolução e a separação entre os pontos na mistura é a dilação. O sinal de saída é gerado com base na entrada deslizando o kernel no tempo ao longo da entrada e acumulando a combinação em cada posição. Uma convolução causal é aquela em que o kernel apenas combina valores de entrada no passado em relação a cada ponto de saída, evitando que a saída leve em consideração o futuro.

O empilhamento de convoluções dilatadas dá à TCN a capacidade de modelar correlações por longas durações em sinais de entrada com relativamente poucos pesos de kernel. Por exemplo, a seguinte imagem mostra três camadas empilhadas com um kernel de dois pesos em cada e fatores de dilatação exponencialmente crescentes:

Diagrama mostrando camadas de convolução dilatadas e empilhadas.

As linhas tracejadas mostram caminhos através da rede que terminam na saída um por vez $t$. Esses caminhos cobrem os últimos oito pontos na entrada, ilustrando que cada ponto de saída é uma função dos oito pontos mais recentes na entrada. A duração do histórico, ou "o quanto olhar para trás", usada por uma rede convolucional para fazer previsões é chamada de campo receptivo e é totalmente determinada pela arquitetura da TCN.

Arquitetura do TCNForecaster

O núcleo da arquitetura do TCNForecaster é a pilha de camadas convolucionais entre a pré-mistura e os cabeçalhos de previsão. A pilha é dividida logicamente em unidades repetidas chamadas blocos que, por sua vez, são compostas de células residuais. Uma célula residual aplica convoluções causais em uma dilatação definida com normalização e ativação não linear. É importante ressaltar que cada célula residual adiciona a própria saída à entrada usando a chamada “conexão residual”. Essas conexões demonstraram benefícios para o treinamento de DNN, talvez porque oferecem a facilidade de um fluxo de informações mais eficiente pela rede. A seguinte imagem mostra a arquitetura das camadas convolucionais para uma rede de exemplo com dois blocos e três células residuais em cada um deles:

Diagrama mostrando a estrutura de blocos e células para as camadas convolucionais do TCNForecaster.

O número de blocos e células, além do número de canais de sinal em cada camada, controlam o tamanho da rede. Os parâmetros da arquitetura do TCNForecaster estão resumidos na seguinte tabela:

Parâmetro Descrição
$n_{b}$ Número de blocos na rede (também chamado de profundidade)
$n_{c}$ Número de células em cada bloco
$n_{\text{ch}}$ Número de canais nas camadas ocultas

O campo receptivo depende dos parâmetros de profundidade e é obtido pela fórmula,

$t_{\text{rf}} = 4n_{b}\left(2^{n_{c}} - 1\right) + 1.$

É possível obter uma definição mais precisa da arquitetura do TCNForecaster em termos de fórmulas. Considere $X$ uma matriz de entrada em que cada linha contém valores de recursos dos dados de entrada. É possível dividir $X$ em matrizes de recursos numéricos e categóricos, $X_{\text{num}}$ e $X_{\text{cat}}$. Em seguida, o TCNForecaster é obtido pelas fórmulas,

Equações que descrevem as operações do TCNForecaster.

Em que $W_{e}$ é uma matriz de incorporação para os recursos categóricos, $n_{l} = n_{b}n_{c}$ é o número total de células residuais, $H_{k }$ denotam saídas da camada oculta e $f_{q}$ são saídas de previsão para determinados quantis da distribuição de previsão. Para facilitar o entendimento, as dimensões dessas variáveis estão indicadas na seguinte tabela:

Variável Descrição Dimensões
$X$ Matriz de entrada $n_{\text{input}} \times t_{\text{rf}}$
$H_{i}$ Saída de camada oculta para $i=0,1,\ldots,n_{l}$ $n_{\text{ch}} \times t_{\text{rf}}$
$f_{q}$ Saída de previsão para o quantil $q$ $h$

Na tabela, $n_{\text{input}} = n_{\text{features}} + 1$, o número de variáveis de preditor/recurso mais a quantidade de destino. Os cabeçalhos de previsão geram todas as previsões até o horizonte máximo, $h$, em uma única passagem, portanto, o TCNForecaster é um previsor direto.

TCNForecaster no AutoML

O TCNForecaster é um modelo opcional no AutoML. Para saber como usá-lo, confira Habilitar o aprendizado profundo.

Nesta seção, é descrito como o AutoML cria modelos do TCNForecaster com seus dados, incluindo explicações sobre pré-processamento de dados, treinamento e pesquisa de modelos.

Etapas de pré-processamento de dados

O AutoML executa várias etapas de pré-processamento em seus dados para se preparar para o treinamento do modelo. A seguinte tabela descreve essas etapas na ordem em que são executadas:

Etapa Descrição
Preenchimento de dados ausentes Impute valores ausentes e lacunas de observação e, opcionalmente, complete ou remova séries temporais curtas
Criar recursos de calendário Melhore os dados de entrada com recursos derivados do calendário, como dia da semana e, opcionalmente, feriados, para uma região ou país específico.
Codificar dados categóricos Cadeias de codificação de rótulos e outros tipos categóricos, o que inclui todas as colunas de ID de série temporal.
Transformação de destino Opcionalmente, aplique a função de logaritmo natural ao destino de acordo com os resultados de certos testes estatísticos.
Normalização Normalize através do escore padrão todos os dados numéricos. A normalização é executada por recurso e por grupo de série temporal, conforme definido pelas colunas de ID de série temporal.

Essas etapas estão incluídas nos pipelines de transformação do AutoML, portanto, são aplicadas automaticamente no momento da inferência, quando necessário. Em alguns casos, a operação inversa a uma etapa é incluída no pipeline de inferência. Por exemplo, se o AutoML aplicou uma transformação $\log$ ao destino durante o treinamento, as previsões brutas são exponenciadas no pipeline de inferência.

Treinamento

O TCNForecaster segue as melhores práticas de treinamento de DNN comuns a outras aplicações em imagens e linguagem. O AutoML divide os dados de treinamento pré-processados em exemplos que são embaralhados e combinados em lotes. A rede processa os lotes sequencialmente, usando retropropagação e descida de gradiente estocástico para otimizar os pesos da rede em relação a uma função de perda. O treinamento pode exigir muitas passagens pelos dados de treinamento completos e cada passagem é chamada de época.

A seguinte tabela lista e descreve as configurações e os parâmetros de entrada para o treinamento do TCNForecaster:

Entrada do treinamento Descrição Valor
Dados de validação Uma parte dos dados que é mantida fora do treinamento para orientar a otimização da rede e mitigar o excesso de ajuste. Fornecido pelo usuário ou criado automaticamente com base nos dados de treinamento, caso não seja fornecido.
Métrica principal Métrica calculada com base nas previsões de valor mediano nos dados de validação no final de cada época de treinamento. Essa métrica é usada com relação à parada antecipada e à seleção de modelo. Escolhido pelo usuário; raiz do erro quadrático médio normalizado ou erro médio absoluto normalizado.
Épocas de treinamento Número máximo de épocas a serem executadas para a otimização do peso da rede. 100; a lógica automatizada de parada antecipada pode encerrar o treinamento em um número menor de épocas.
Paciência de parada antecipada Número de épocas para aguardar a melhoria da métrica primária antes do encerramento do treinamento. 20
Função de perda A função de objetivo para a otimização do peso da rede. Perda de quantil média nas previsões de 10º, 25º, 50º, 75º e 90º percentis.
Tamanho do lote Número de exemplos em um lote. Cada exemplo tem dimensões $n_{\text{input}} \times t_{\text{rf}}$ para entrada e $h$ para saída. Determinado automaticamente com base no número total de exemplos nos dados de treinamento, com valor máximo de 1024.
Dimensões de inserção Dimensões dos espaços de inserção para recursos categóricos. Definido automaticamente como a quarta raiz do número de valores distintos em cada recurso, arredondado para o inteiro mais próximo. Os limites são aplicados em um valor mínimo de 3 e máximo de 100.
Arquitetura de rede* Parâmetros que controlam o tamanho e a forma da rede: profundidade, número de células e número de canais. Determinado pela pesquisa de modelo.
Pesos de rede Parâmetros que controlam combinações de sinais, inserções categóricas, pesos de kernel de convolução e mapeamentos para valores de previsão. Inicializado aleatoriamente e otimizado em relação à função de perda.
Taxa de aprendizagem* Controla o quanto os pesos da rede podem ser ajustados em cada iteração de gradiente descendente e é reduzido dinamicamente perto da convergência. Determinado pela pesquisa de modelo.
Taxa de remoção* Controla o grau de regularização de remoção aplicado aos pesos da rede. Determinado pela pesquisa de modelo.

As entradas marcadas com um asterisco (*) são determinadas por uma pesquisa de hiperparâmetro descrita na próxima seção.

O AutoML usa métodos de pesquisa de modelo para encontrar valores para os seguintes hiperparâmetros:

  • Profundidade da rede ou o número de blocos convolucionais,
  • Número de células por bloco,
  • Número de canais em cada camada oculta,
  • Taxa de remoção para regularização da rede,
  • Taxa de aprendizado.

Os valores ideais para esses parâmetros podem variar significativamente, dependendo do cenário do problema e dos dados de treinamento, portanto, o AutoML treina vários modelos diferentes dentro do espaço de valores de hiperparâmetros e escolhe o melhor de acordo com a pontuação da métrica primária nos dados de validação.

A pesquisa de modelo tem duas fases:

  1. O AutoML realiza uma pesquisa em 12 modelos "de referência". Os modelos de referência são estáticos e escolhidos para abranger razoavelmente o espaço de hiperparâmetros.
  2. O AutoML continua pesquisando no espaço de hiperparâmetros usando uma pesquisa aleatória.

A pesquisa termina quando os critérios de parada são atendidos. Os critérios de parada dependem da configuração do trabalho de treinamento de previsão, mas alguns exemplos incluem limites de tempo, limites no número de testes de pesquisa a serem executados e lógica de parada antecipada quando a métrica de validação não está melhorando.

Próximas etapas