Automatic Wind Power Forecasting as a Service
Abstract
Tidsserieprognosering er et høyst relevant og verdifullt verktøy for et bredt spekter av virksomhetsanvendelser og domener. Som følger av omfattende tekniske utfordringer og nødvendig ekspertise for å optimalisere moderne prognoseringsteknikker, er det derimot mange virksomheter som mangler nødvendig intern kompetanse for å oppnå gode resultater. I dette prosjektet undersøker og eksperimentelt utvikler vi en automatisk skalerende maskinlæring-basert prognoseringstjeneste for vindkraft prognosering. Systemet bruker modelleringsmetoder skreddersydd for vindkraft prognosering, for å konkurrere med mer generelle AutoML tjenester, som tilbyr en liknende verdi til endebrukeren.
En modell-basert transfer learning strategi bestående av fortrening, testing, beskjæring og raffinering, er brukt med Gradient Tree Boosting for å utnytte data fra andre vindparker. Bruken av Transfer Learning forbedrer prognoseringsnøyaktighet og gir verdifulle prognoser selv for lite tilgjengelig data. Vi tester også flere strategier for utnyttelse av en mengde med tilgjengelige kildevindparker, og vi tester to strategier for vekting av kildevindparker basert på likhet og overført nøyaktighet.
Selve systemet implementeres med fokus på skalerbarhet og modifiserbarhet, med den spesifikke hensikt å planlegge for framtidige utfordringer. For å oppnå disse kvalitetene, er vårt primærfokus på systemets helhetlige arkitektur, og spesielt hvordan et programvaresystem kan bli designet for å støtte maskinlæringsprosesser. Vi benytter konsepter som mikrotjenester, cloud computing, automasjon og teknisk gjeld reduksjon.
Gjennom praktiske- og analysebaserte eksperimenter demonstrer vi at det er mulig å lage et system som automatiserer bruken av vindkraftprognosering, selv for vindparker med lite tilgjengelig data. Vi viser at bruken av transfer learning med gradient tree boosting gir konsistente forbedringer i prognoseringsnøyaktighet over et bredt spekter av prognoseringshorisonter og mål treningsdatasett størrelser. Spesielt for små tilgjengelige datamengder, gir transfer learning signifikante forbedringer. De testede vektgenereringsstrategiene lykkes ikke i å gi bemerkelsesverdige forbedringer til modellytelse sammenliknet med like vekter. Vi gjennomfører også eksperimenter for å demonstrere at systemet kan skalere for å støtte trening av flere modeller, og kan imøtekomme økende brukerbelastning. Disse eksperimentene viser at systemet kan imøtekomme minst 500 samtidige brukere, og at treningstid ikke blir betraktelig påvirket av hvorvidt systemet trener 10 eller 20 prosjekter. Til slutt, basert på en analyse av våre modifiserbarhetskrav, demonstrerer vi også at systemet bør være enkelt å modifisere for å imøtekomme fremtidige krav. Time series forecasting is a highly relevant and valuable tool for a wide range of businesses applications and domains. However, due to the vast technical challenges and required expertise to optimize modern forecasting techniques, many businesses lack the in-house competence required to achieve good results. In this project, we investigate and experimentally develop an automatically scaling, machine learning based forecasting service for wind power forecasting. The system uses modelling techniques tailored for wind power forecasting, in order to compete with more general AutoML services, which provides a similar value to end users.
A model-based transfer learning strategy of pre-training, testing, pruning and refining is used with gradient tree boosting to leverage data from other wind farms. The use of transfer learning improve forecasting accuracy and provide valuable predictions even for wind farms with little available data. We also test several strategies for utilizing the multitude of source wind farms available, and we test two strategies for weighting source wind farms based on similarity and transfer performance.
The system itself is implemented with a focus on scalability and modifiability, with the specific purpose of planning for future challenges. To achieve these qualities our primary focus is on the overall system architecture, and in particular how a software system could be designed to support machine learning processes. We utilize concepts such as microservices, cloud computing, automation and technical debt reduction.
Through practical and analysis based experiments we demonstrate that it is possible to create a system that automates the use of wind power forecasting, even for wind farms with little available data. We show that the use of transfer learning with gradient tree boosting gives consistent improvements in forecasting performance across a wide range of forecasting horizons and target training data availability. Particularly for small available data quantities, transfer learning provides significant improvements. The tested weight generation strategies fails to provide substantial improvements to model performance compared to equal weights. We also perform experiments to demonstrate that the system can scale to support training of multiple models and accommodate increased user load. These experiments show that the system can accommodate at least 500 concurrent users, and that the training time is not vastly affected by whether the system trains 10 or 20 project. Finally, based on an analysis of our modifiability requirements, we also demonstrate that the system should be easy to modify to accommodate future requirements.