Stol ikke blindt på Machine Learning (ML)

Det er let at komme i gang med Machine Learning (ML), men det er en kæmpe udfordring at komme frem til et resultat, der er brugbart, og som kan bruges fremadrettet. Jeg har gennem mit arbejde beskæftiget mig intensivt med ML, og jeg er kommet frem til den noget mærkelige konklusion, at ML er så god til at finde mønstre, at man ofte ikke kan stole på resultatet – i hvert fald ikke blindt.

Mit primære arbejde med ML over de sidste år såvel som min uddannelse har været relateret til den finansielle verden. Jeg refererer derfor til denne kontekst i det efterfølgende.

Aktieanbefalinger, FX anbefalinger og analyser bærer ofte præg af samme udfordringer, som jeg er stødt ind i med ML. Når man hører eksperter udtale sig om, hvorfor en given aktie er faldet, kan eksperterne via deres viden hurtigt give x forskellige faktorer, der har haft betydning. Men når man spørger selv samme eksperter om at komme med en vurdering af den nærmeste fremtid baseret på helt samme analysemetoder, er resultatet yderst tvivlsomt.
FXStreetgiver de største eksperter i verden inden for forex trading deres vurdering af den kommende uge. Det er fx Citi, Barclays, Goldman Sachs, UOB, Wells Fargo mv. Ved at følge deres ugentlige Forecast Poll er disse eksperter over en periode på 3 måneder ikke engang tæt på at gætte 50% korrekt. Faktisk er de nede på 27%. Ingen af de "store stjerner" er markant bedre end gennemsnittet, og ingen er tæt på 50%.

Bevares, markedet har været svært de sidste 3 måneder, men resultatet giver et kraftigt fingerpeg om, at vi måske ikke burde udtale os med så stor skråsikkerhed om markedet, idet analyserne ikke kan anvendes fremadrettet. Med andre ord burde vi også betvivle vores bagudrettede analyser.

ML virker lidt på samme måde. Den vil lige som eksperterne hurtigt kunne finde de årsagssammenhænge med højst sandsynlighed og med gode ML-værktøjer, kan man hurtigt fremstille en model, der matcher eksperterne. Problemet er blot, at hvis man benytter samme ML model, til at forudsige den kommende uge, vil ML formentligt ikke gøre det bedre end ovennævnte eksperter.

En delkonklusion kunne være, at vi altid kan finde korrelationer, men vi kan ikke identificere den ”ægte” kausalitet med sikkerhed. For hvis vi fandt de rigtige årsager, ville vi også kunne forudsige virkningerne og dermed retningen af markedet.

Eksempel på hvorfor det går galt med ML

For at illustrere begrænsningerne i ML tog jeg en tur på McDonalds. Her ville jeg prøve at finde et mønster mellem farve af trøje på gæsterne, et møntkast og den sidste minutters retning på EUR vs USD. Jeg delte trøjerne ind i forskellige farvekategorier, så fx alle nuancer af blå blev kategoriseret som "blå".

Når en person kom ind ad døren, registrerede jeg fx blå i første kolonne. Næste kolonne kastede jeg mønten og registrerede enten 0 eller 1. Det samme gjorde jeg i tredje kolonne i forhold til retningen på EUR vs USD inden for det sidste minut. Et faldende forhold i kursen gav værdien 0, og et stigende forhold fik værdien 1.

Jeg foretog målinger af 200 personer, og baseret på datagrundlaget herfra lavede jeg 2 forskellige ML modeller. Den ene skulle kunne forudsige farven af trøjen for den næste kunde der kom ind i McDonalds, og den anden skulle kunne forudsige ud fra trøjens farve om EUR vs USD ville falde eller stige det kommende minut.

Ikke overraskende kunne jeg efterfølgende med stor præcision forudsige den kommende persons farvevalg af trøje, ved blot at kaste en mønt og kigge på udviklingen i EUR vs USD.

Hvorfor er dette ikke overraskende?

Det skyldes, at næsten alle havde sorte bluser på denne dag. Så ML modellen satsede mere eller mindre hver gang på, at trøjen ville være sort. Foretager man tilsvarende en analyse af EUR vs USD i en periode, hvor markedet primært er faldende, så vil ML modellen højst sandsynligt hver gang satse på fald. Mønsteret er korrekt. Der opnås den højeste succesrate ud fra den trænede datamængde ved at satse på fald.

I dette eksempel er det indlysende klart, at ML-modellen ikke er forkert på den, men at modellen ikke kan bruges fremadrettet. Problemet er blot, at hvis vi sad og ventede på 10.000 gæster på McDonalds, så vil ML-modellen med garanti stadigvæk kunne finde et mønster. Vi kan som sagt altid finde korrelationer.
Derfor stol aldrig blindt på ML resultatet, og blot fordi ML har en nøjagtighed på 80-90% er det ikke ensbetydende med, at de identificerede korrelationer også giver en høj fremadrettet kausalitet.

Løsningen er en model til at validere ML

Indtil for nyligt, blev jeg ved med at støde ind i ovenstående udfordringer med ML. Men så prøvede jeg at udvikle en kassemodel, med den tese, at ML ikke nødvendigvis altid kan finde et validt mønster. Såfremt et mønster skal være validt, skal mønsteret én til flere gange i fortiden have været identisk. Det er altså ikke nok, blot at finde et mønster, men dette mønster skal kunne passe ned i en eller flere af de forrige kasser/mønster. Ud af dette har jeg udviklet en Pre Validation Curve. Pre Validation Curve kan også sammenlignes med en trend kurve. Når trenden er stigende virker ML, mens ML'en ikke virker, når trenden er faldende.

Ved ikke blot at kigge på en høj ML score og dermed mere fokusere på Pre Validation Curve, har jeg forbedret succesraten et sted mellem 7-18 procentpoint.

Det kan sammenlignes med, at trading eksperterne undlod at komme med en ugentlig Forecast Poll, men blot kom med én poll, når de med garanti havde set noget lignende før. Denne tilgang ville sandsynligvis også kunne øge eksperternes succesrate betydeligt. Problemet er blot, at de er ”presset” til at komme med en forudsigelse hver dag på diverse aktier og valutamarkeder.

Pre Validation Curve brugt til Forex

Jeg har gennem de sidste 4 år arbejdet med EA (Expert Advisor), som betyder automatisering af trading strategier. Det interessante med dette område er, hvor ofte verden ændrer sig, samt hvor kompleks den er. Der er nærmest et uendeligt antal af faktorer, såvel fundamental som teknisk, der kan påvirke, hvorledes en valuta styrkes eller svækkes. Tekniske værktøjer er der mange af, og når man sætter dem sammen individuelt, kommer der rigtige mange forskellige vinkler ud af det. Det tilsvarende gør sig gældende med fundamental analyse.

Grunden til, at jeg nævner denne kompleksitet skyldes, at Machine Learning virkelig kommer på en prøve her. For hvilke faktorer skal man oplære ML i, nu hvor der næsten er uendelige mange faktorer at tage af. Det har i hvert fald været mine første store overvejelser i forhold til ML.

Jeg har kørt adskillige tusinde forskellige simuleringer igennem med forskellige parameter og faktorer for at nå frem til den konklusion, at jeg kiggede i den forkerte retning. For som tidligere nævnt, så finder ML altid et mønster.

En fremtidig prediction baseret på en ML-models succesrate/kvalitet har næsten ingen korrelation i forhold til fremtidig succesrate. Mønstre kommer og mønstre går. Det kan være det ene mønster i dag og et andet i morgen, men det ser ud til inden for finansverden, at markedets bevæger sig i bølger eller i trends. Disse ”pattern” bølger kan der skabes en kurve over, og det er her, at jeg har udviklet min model, som jeg kalder Pre Validation Curve. Med Pre Validation Curve bliver en given succesrate forbedret med mange procentpoint.

Jeg har testet Pre Validation Curve på mange forskellige markeder, trading strategier og i vidt forskellige tidsperioder. Selv ud fra flere hundrede forskellige scenarier har Pre Validation Curve altid, uden undtagelse, forbedret den endelige succesrate.
Pre Validation Curve har været, og er for mig en rigtig god model til at få det optimale ud af Machine Learning. Jeg har efterhånden ikke den store tillid til ML i sig selv, da den ikke kan stå selvstændigt i et så omskiftelig markedet som Forex. Men når jeg sætter mine ML-modeller sammen med en robust Pre Validation Curve, så stoler jeg ”næsten” blindt på resultatet, da jeg med sikkerhed ved, at de sammen vil komme ud med en langt bedre vurdering, end jeg nogensinde selv kan komme frem til.

Kom i gang med Machine Learning

Hvorvidt man benytter sin egen ML algoritme, eller en fra Amazon, Google, Microsoft eller IBM, vil man altid have ovennævnte udfordring. Derfor har jeg brugt mine ressourcer 100% på at forstå eksisterende modellers begrænsninger og muligheder. Mit valg er faldet på AWS fra Amazon, som også verdens største på området. AWS kan tilgås med mere eller mindre alle programmeringssprog, så man kan fortsætte med det sprog man er bedst til.

Jeg har ikke sammenlignet priserne direkte, men med Amazon generelle tilgang til pris, er jeg ikke i tvivl om, at de er ganske konkurrencedygtige. De har en meget lille afregning per ML-model, samt afregning for hver ML real-time prediction. AWS tilbyder 90 forskellige services i mere eller mindre alle dele af verden, som inkluderer computing, storage, networking, database, analytics, application services, deployment, management, mobile, developer tools, and tools for Internet of Things. Så umiddelbart ingen begrænsninger.

AWS har også nogle gode visuelle løsninger, så man hurtigt kan få et indblik i mulighederne, men hvis man skal arbejde seriøst med ML, bliver man nødt til at tilgå med API, hvor de har en meget omfattende SDK (Software Development Kit). API'et er fleksibelt, og der er mange ting, man kan gøre via API, som ikke er muligt med den visuelle løsning. Endelig, så forstår man først ML-modellens muligheder, når man har automatiseret hele ML-processen 100% ud fra Amazons API.

Jeg har ovenfor gjort rede for nogle mine egne erfaringer med Machine Learning. Fra AiProSoft stiller vi gerne vores ekspertise til rådighed. Kontakt os gerne, hvis du ønsker en vurdering af, hvorledes Machine Learning kan hjælpe din forretning til at få en konkurrencemæssig fordel. Please contact us if you want an assessment of how Machine Learning can help your business to get a competitive edge.

0 Comments

Leave a comment

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

da_DKDansk
en_USEnglish da_DKDansk