Dela via


Djupinlärning med AutoML-prognos

Den här artikeln fokuserar på djupinlärningsmetoderna för tidsserieprognoser i AutoML. Anvisningar och exempel på modeller för träningsprognoser i AutoML finns i Konfigurera AutoML för prognostisering av tidsserier.

Djupinlärning har många användningsfall inom allt från språkmodellering till proteindelegering, bland många andra. Prognostisering av tidsserier drar också nytta av de senaste framstegen inom djupinlärningsteknik. Till exempel har DNN-modeller (Deep Neural Network) en framträdande roll i de högpresterande modellerna från den fjärde och femte iterationen av den högprofilerade Makridakis-prognostävlingen.

I den här artikeln beskriver vi strukturen och driften av TCNForecaster-modellen i AutoML för att hjälpa dig att tillämpa modellen på ditt scenario på bästa sätt.

Introduktion till TCNForecaster

TCNForecaster är ett tidsmässigt convolutional nätverk, eller TCN, som har en DNN-arkitektur utformad för tidsseriedata. Modellen använder historiska data för en målkvantitet, tillsammans med relaterade funktioner, för att göra probabilistiska prognoser för målet upp till en angiven prognoshorisont. Följande bild visar huvudkomponenterna i TCNForecaster-arkitekturen:

Diagram som visar huvudkomponenter i AutoML:s TCNForecaster.

TCNForecaster har följande huvudkomponenter:

  • Ett förblandat lager som blandar indatatidsserier och funktionsdata till en matris med signalkanaler som convolutional stack bearbetar.
  • En stack med dilaterade skikt för konvolution som bearbetar kanalmatrisen sekventiellt. Varje lager i stacken bearbetar utdata från föregående lager för att skapa en ny kanalmatris. Varje kanal i den här utdatan innehåller en blandning av faltningsfiltrerade signaler från indatakanalerna.
  • En samling prognoshuvudenheter som samlar utdatasignalerna från skikten för sammandragning och genererar prognoser för målkvantiteten från denna latenta representation. Varje huvudenhet producerar prognoser fram till horisonten för en kvantil av förutsägelsefördelningen.

Dilaterad kausal konvolution

Den centrala driften av ett TCN är ett dilaterat orsakssamband längs tidsdimensionen för en indatasignal. Intuitivt blandar convolution värden från närliggande tidpunkter i indata. Proportionerna i blandningen är kärnan, eller vikterna, av fördelningen medan separationen mellan punkter i blandningen är dilatationen. Utdatasignalen genereras från indata genom att kerneln skjuts i tid längs indata och ackumulerar blandningen vid varje position. Ett orsakssamband är ett där kerneln endast blandar indatavärden i det förflutna i förhållande till varje utdatapunkt, vilket hindrar utdata från att "titta" in i framtiden.

Stapling av dilated convolutions ger TCN möjlighet att modellera korrelationer över långa varaktigheter i indatasignaler med relativt få kernelvikter. Följande bild visar till exempel tre staplade lager med en kernel med två vikter i varje lager och exponentiellt ökande dilationsfaktorer:

Diagram som visar staplade, dilaterade skikt för decentralisering.

De streckade linjerna visar sökvägar genom nätverket som slutar på utdata i taget $t$. Dessa sökvägar täcker de sista åtta punkterna i indata, vilket illustrerar att varje utdatapunkt är en funktion av de åtta mest relativt senaste punkterna i indata. Längden på historiken, eller "tillbakablicken", som ett convolutional-nätverk använder för att göra förutsägelser kallas det mottagliga fältet och bestäms helt av TCN-arkitekturen.

TCNForecaster-arkitektur

Kärnan i TCNForecaster-arkitekturen är stacken med konvolutionella lager mellan premixen och prognoshuvudena. Stacken är logiskt uppdelad i upprepade enheter som kallas block som i sin tur består av residualceller. En residualcell tillämpar kausala faltningar vid en fast diilation tillsammans med normalisering och icke-linjär aktivering. Viktigt är att varje residualcell lägger till sina utdata till sina indata med hjälp av en residualanslutning. Dessa anslutningar gynnar DNN-utbildning, kanske för att de underlättar ett effektivare informationsflöde via nätverket. Följande bild visar arkitekturen för de convolutional lagren för ett exempelnätverk med två block och tre residualceller i varje block:

Diagram som visar block- och cellstruktur för TCNForecaster convolutional-lager.

Antalet block och celler, tillsammans med antalet signalkanaler i varje lager, styr nätverkets storlek. Arkitekturparametrarna för TCNForecaster sammanfattas i följande tabell:

Parameter Beskrivning
$n_{b}$ Antal block i nätverket. kallas även djup
$n_{c}$ Antal celler i varje block
$n_{\text{ch}}$ Antal kanaler i de dolda lagren

Det mottagliga fältet beror på djupparametrarna och ges av formeln,

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

Vi kan ge en mer exakt definition av TCNForecaster-arkitekturen när det gäller formler. Låt $X$ vara en indatamatris där varje rad innehåller funktionsvärden från indata. Vi kan dela upp $X$ i numeriska och kategoriska funktionsmatriser, $X_{\text{num}}$ och $X_{\text{cat}}$. Sedan ges TCNForecaster av formler,

Ekvationer som beskriver TCNForecaster-åtgärder.

Om $W_{e}$ är en inbäddningsmatris för de kategoriska funktionerna är $n_{l} = n_{b}n_{c}$ det totala antalet residualceller, $H_{k}$ anger dolda lagerutdata och $f_{q}$ är prognosutdata för angivna kvantantiles för förutsägelsefördelningen. För att underlätta förståelsen finns dimensionerna för dessa variabler i följande tabell:

Olika Beskrivning Dimensioner
$X$ Indatamatris $n_{\text{input}} \times t_{\text{rf}}$
$H_{i}$ Dolda lagerutdata för $i=0,1,\ldots,n_{l}$ $n_{\text{ch}} \times t_{\text{rf}}$
$f_{q}$ Prognosutdata för kvantil $q$ $h$

I tabellen $n_{\text{input}} = n_{\text{features}} + 1$, antalet förutsägelse-/funktionsvariabler plus målkvantiteten. Prognoshuvudena genererar alla prognoser upp till maximal horisont, $h$, i ett enda pass, så TCNForecaster är en direkt prognosmakare.

TCNForecaster i AutoML

TCNForecaster är en valfri modell i AutoML. Information om hur du använder den finns i aktivera djupinlärning.

I det här avsnittet beskriver vi hur AutoML skapar TCNForecaster-modeller med dina data, inklusive förklaringar av dataförbearbetning, träning och modellsökning.

Förbearbetningssteg för data

AutoML kör flera förbearbetningssteg på dina data för att förbereda för modellträning. I följande tabell beskrivs de här stegen i den ordning de utförs:

Steg Beskrivning
Fylla saknade data Impute saknade värden och observationsluckor och valfritt pad eller släpp korta tidsserier
Skapa kalenderfunktioner Utöka indata med funktioner som härleds från kalendern , till exempel veckodag och, om du vill, helgdagar för ett visst land eller en viss region.
Koda kategoriska data Etikettkoda strängar och andra kategoriska typer, det här steget innehåller alla tidsserie-ID-kolumner.
Måltransformering Du kan också använda funktionen naturlig logaritm för målet beroende på resultatet av vissa statistiska tester.
Normalisering Z-poäng normalisera alla numeriska data. Normalisering utförs per funktion och per tidsseriegrupp, enligt definitionen i kolumnerna för tidsserie-ID.

AutoML innehåller de här stegen i dess transformeringspipelines, så att de tillämpas automatiskt när det behövs vid inferens. I vissa fall innehåller slutsatsdragningspipelinen inverteringsåtgärden till ett steg. Om AutoML till exempel tillämpar en $\log$-transformering på målet under träningen exponenterar slutsatsdragningspipelinen de råa prognoserna.

Utbildning

TCNForecaster följer metodtips för DNN-utbildning som är gemensamma för andra program i bilder och språk. AutoML delar upp förbearbetade träningsdata i exempel som blandas och kombineras i batchar. Nätverket bearbetar batcharna sekventiellt med hjälp av bakåtspridning och stochastic gradient descent för att optimera nätverksvikterna med avseende på en förlustfunktion. Träning kan kräva många pass genom fullständiga träningsdata. varje pass kallas för en epok.

I följande tabell visas och beskrivs indatainställningar och parametrar för TCNForecaster-träning:

Träningsindata Beskrivning Värde
Valideringsdata En del av data som systemet undantar från träningsprocessen för att vägleda nätverksoptimering och minska överanpassning. Tillhandahålls av användaren eller skapas automatiskt från träningsdata om de inte tillhandahålls.
Primärt mått Mått som beräknas från medianvärdesprognoser på valideringsdata i slutet av varje träningsepooch. används för tidig stoppning och modellval. Väljs av användaren; normaliserat rot medelvärde kvadratfel eller normaliserat genomsnittligt absolut fel.
Utbildningsepoker Maximalt antal epoker som ska köras för nätverksviktsoptimering. 100; automatiserad logik för tidigt stopp kan avsluta träningsprocessen vid ett mindre antal epoker.
Tidigt stopp tålamod Antal epoker som väntar på primär måttförbättring innan träningen stoppas. 20
Förlustfunktion Målfunktionen för nätverksviktoptimering. Kvantilförlusten var i genomsnitt över 10:e, 25:e, 50:e, 75:e och 90:e percentilens prognoser.
Batchstorlek Antal exempel i en batch. Varje exempel har dimensioner $n_{\text{input}} \times t_{\text{rf}}$ för indata och $h$ för utdata. Bestäms automatiskt av det totala antalet exempel i träningsdata. maximalt värde på 1 024.
Inbäddningsdimensioner Dimensioner för inbäddningsutrymmen för kategoriska funktioner. Ange automatiskt till den fjärde roten av antalet distinkta värden i varje funktion, avrundat upp till närmaste heltal. Tröskelvärden tillämpas med ett minimivärde på 3 och ett maximalt värde på 100.
Nätverksarkitektur* Parametrar som styr nätverkets storlek och form: djup, antal celler och antal kanaler. Bestäms av modellsökning.
Nätverksvikter Parametrar som styr signalblandningar, kategoriska inbäddningar, konvolution av kernelvikter och mappningar till prognosvärden. Slumpmässigt initierad och sedan optimerad med avseende på förlustfunktionen.
Inlärningsfrekvens* Styr hur mycket nätverksvikterna kan justeras i varje iteration av gradient descent. dynamiskt reducerad nära konvergens. Bestäms av modellsökning.
Avhoppsförhållande* Styr graden av regularisering av avhopp som tillämpas på nätverksvikterna. Bestäms av modellsökning.

Indata som har markerats med en asterisk (*) bestäms av en hyperparametersökning som beskrivs i nästa avsnitt.

AutoML använder metoder för modellsökning för att hitta värden för följande hyperparametrar:

  • Nätverksdjup, eller antalet konvolutional block,
  • Antal celler per block,
  • Antal kanaler i varje dolt lager,
  • Avhoppsförhållande för nätverks regularisering,
  • Inlärningsfrekvens.

Optimala värden för dessa parametrar kan variera avsevärt beroende på problemscenariot och träningsdata. AutoML tränar flera olika modeller inom hyperparametervärdenas utrymme och väljer den bästa enligt den primära måttpoängen för valideringsdata.

Modellsökningen har två faser:

  1. AutoML utför en sökning över 12 "landmärkesmodeller". Landmärkesmodellerna är statiska och väljs för att rimligen sträcka sig över hyperparameterutrymmet.
  2. AutoML fortsätter att söka igenom hyperparameterutrymmet med hjälp av en slumpmässig sökning.

Sökningen avslutas när stoppvillkoren uppfylls. Villkoret för att stoppa beror på konfigurationen av prognosträningsjobbet. Några exempel är tidsgränser, gränser för antalet sökförsök som ska utföras och tidig stopplogik när valideringsmåttet inte förbättras.

Nästa steg