De siste årene har dype nevrale nettverk blitt ekstremt populære. Dette nye informatikkfeltet ble skapt rundt konseptet med biologiske nevrale nettverk, og dyp læring har blitt et moteord i dag.
Deep learning forskere og ingeniører prøver å matematisk beskrive forskjellige mønstre i det biologiske nervesystemet. Dype læringssystemer har blitt brukt på forskjellige problemer: datasyn, talegjenkjenning, naturlig språkbehandling, maskinoversettelse og mer. Det er interessant og spennende at dyp læring har overgått menneskelige eksperter på noen oppgaver. I dag skal vi se på dyp læring i finanssektoren.
En av de mest attraktive anvendelsene av dyp læring er i hedgefond. Hedgefond er investeringsfond fra finansielle organisasjoner som skaffer midler fra investorer og forvalter dem. De jobber vanligvis med tidsseriedata og prøver å komme med noen spådommer. Det er en spesiell type dyplæringsarkitektur som er egnet for tidsserieanalyse: Recurrent Neural Networks (RNR) , eller enda mer spesifikt, en spesiell type tilbakevendende nevrale nettverk: kortvarige langt minnenettverk ( LSTM ) . De LSTM de er i stand til å fange de viktigste egenskapene til tidsseriedataene og modellere deres avhengighet. En aksjekursforutsigelsesmodell presenteres som en illustrativ case-studie om hvordan hedgefond kan bruke slike systemer. De rammeverk PyTorch, skrevet i Python, brukes til å trene modellen, designe eksperimenter og tegne resultatene.
Vi begynner med noen grunnleggende om dyp læring før vi går videre til eksempler fra den virkelige verden:
En av de mest utfordrende og spennende oppgavene i finansnæringen er forutsi om aksjekursene vil stige eller falle i fremtiden. I dag er vi klar over at dyplæringsalgoritmer er veldig gode til å løse komplekse oppgaver, så det er verdt å prøve å eksperimentere med dyplæringssystemer for å se om de lykkes med å løse problemet med å forutsi fremtidige priser.
Som et konsept har det kunstige nevrale nettverket eksistert lenge, men maskinvaren var ikke god nok til å tillate raske eksperimenter i dyp læring. Nvidia bidro til å revolusjonere dype læringsnettverk for et tiår siden, da det begynte å tilby veldig raske grafikkbehandlingsenheter (UPG) for generell databehandling Tesla-serien produkter . I stedet for å skyggelegge polygoner i profesjonelt designede spill og applikasjoner, kan svært parallelliserte UPGs også beregne andre data, og i mange tilfeller langt bedre enn CPUer.
Det er veldig få vitenskapelige artikler om bruk av dyp læring i økonomi, men etterspørselen etter dyp læring eksperter fra fintech selskaper er sterk da de åpenbart anerkjenner potensialet. Denne artikkelen vil forklare hvorfor dyp læring i økonomi blir stadig mer populær ved å skissere hvordan økonomiske data brukes til å bygge dyp læringssystemer. En spesiell type tilbakevendende nevrale nettverk - nett LSTM —Det vil også bli presentert. Vi skal skissere hvordan en finansrelatert oppgave kan løses ved hjelp av tilbakevendende nevrale nettverk.
Denne artikkelen presenterer også en illustrativ casestudie om hvordan hedgefond kan bruke slike systemer, presentert gjennom eksperimenter. Vi vil også vurdere hvordan dype læringssystemer kan forbedres, og hvordan hedgefond kan ansette talent for å bygge disse systemene - det vil si hva slags erfaring dyp læring talent trenger å ha.
Før vi kommer til den tekniske siden av problemet, må vi forklare hva som gjør hedgefond unikt. Så hva er et hedgefond?
Et hedgefond er et investeringsfond - en finansiell organisasjon som skaffer midler fra investorer og plasserer dem i kortsiktige og langsiktige investeringer, eller forskjellige finansielle produkter. Det er vanligvis dannet som et aksjeselskap eller et aksjeselskap. Målet med et hedgefond er å maksimere avkastningen. En avkastning er gevinst eller tap på hedgefondets nettoverdi over en bestemt tidsperiode. Det er generelt akseptert at når flere risikoer tas, er det et større potensial for høyere avkastning og tap.
For å oppnå god avkastning stoler hedgefond på forskjellige typer investeringsstrategier, og prøver å tjene penger ved å utnytte markedets ineffektivitet. På grunn av ulike typer investeringsstrategier som ikke er tillatt i vanlige aksjefond, er ikke hedgefond registrert som fond, det vil si at de generelt ikke er under tilsyn av staten som andre fond. De trenger ikke å publisere sine investeringsstrategier og handelsresultater, noe som kan gjøre dem ganske risikable. Noen hedgefond tjener mer penger enn markedsgjennomsnittet, men noen taper penger. Noen av dem gir permanente resultater, mens noen av hedgefondresultatene er variable.
Ved å investere i hedgefond øker investorene fondets nettoverdi. Imidlertid kan ikke alle investere i hedgefond. Hedgefond er ment for et lite antall velstående investorer. Generelt sett må de som ønsker å delta i hedgefond være akkreditert. Det betyr at de må ha en spesiell status når det gjelder finansreguleringslover. Det skilles fra land til land om hvem som kan ha den spesielle statusen. Generelt må en investors nettoverdi være veldig høy, ikke bare enkeltpersoner, men banker og store selskaper kan også operere i hedgefond. Denne akkreditering er utformet for å tillate bare personer med betydelig investeringskunnskap å delta, og beskytter små og uerfarne investorer mot risiko.
Denne artikkelen tar for seg USAs regelverk, siden USA har det mest utviklede finansielle markedet i verden. Så i USA er begrepet 'akkreditert investor' definert i Regel 501 i regel D av United States Securities and Exchange Commission ( SEC ) .
I henhold til denne forskriften kan akkrediterte investorer være:
Hedgefondforvaltere forvalter et slikt fond. En hedgefondforvalter må finne en måte å skape et konkurransefortrinn for å lykkes - det vil si skape en fordel over rivaler og muligheten til å generere større verdi. Det kan være et veldig attraktivt karrierealternativ, da det kan være veldig lønnsomt hvis en person utmerker seg å forvalte fondet.
På den annen side, hvis mange av hedgefondforvalternes beslutninger viser seg å være dårlige, vil de ikke få betalt, og de vil få et dårlig rykte. De beste hedgefondforvalterne utgjør en av de best betalte yrkene i alle bransjer. Hedgefondforvaltere tjener en prosentandel av avkastningen de tjener for investorer i tillegg til forvaltningshonoraret. Denne kompensasjonsformen gjør at hedgefondforvaltere investerer mer aggressivt for høyere avkastning, men på den annen side fører det også til økt risiko for investorer.
Det første hedgefondet dukket opp i 1949, opprettet av tidligere forfatter og sosiolog Alfred Winslow Jones. Det var mens du skrev en artikkel om dagens investeringstrender for Fortune, rundt 1948.
Han prøvde å forvalte pengene og var veldig suksessfull. Han samlet inn penger ved hjelp av investeringsinnovasjonen, som nå er kjent som lang / kort cap. Strategien er fortsatt veldig populær blant hedgefond. Aksjer kan kjøpes (kjøp: lang) eller selges (selges: korte).
Når prisen på en aksje er lav og prisen på en aksje forventes å være høy, er det fornuftig å kjøpe en aksje (lang) og selge den (kort) så snart den når sitt høyeste punkt, og det er akkurat det poeng. fra Alfred Winslow Jones 'innovasjon: å ta lange posisjoner i aksjer som forventes å øke og korte posisjoner i aksjer som forventes å falle.
Økonomiske data tilhører tidsseriedata. En tidsserie er en serie med datapunkter indeksert i tid. Generelt er en tidsserie en sekvens tatt på suksessive og like fordelte tidspunkter - en diskret tidssekvens. Eksempler på tidsserier er tidevannshøyder, antall solflekker og den daglige sluttverdien til Dow Jones Industrial Average. Historiske data i denne sammenhengen er tidsseriedata fra fortiden. Det er en av de viktigste og mest verdifulle delene å spekulere i fremtidige priser. Det er noen datasett offentlig tilgjengelig online, men generelt - disse dataene inneholder ikke mange egenskaper, de er vanligvis 1-dags intervaldata, 1-timers intervaldata eller 1-minutters intervaldata.
Datasett med rikere egenskaper og i mindre tidsintervaller er vanligvis ikke offentlig tilgjengelige og kan være veldig dyre å skaffe. Mindre intervaller betyr flere tidsseriedata i en bestemt periode - det er 365 (eller 366) dager i løpet av et år, så det er maksimalt 365 (eller 366) datapunkter tilgjengelig. Hver dag har 24 timer, så i løpet av et år er det 8.760 (eller 8784) datapunkter tilgjengelig hver time, og hver dag har 86.400 minutter, så i løpet av et år er det 525.600 (eller 527.040) datapunkter per minutt tilgjengelig.
Med mer data er mer informasjon tilgjengelig, og med mer informasjon er det mulig å trekke bedre konklusjoner om hva som vil skje i neste tidsperiode, forutsatt selvfølgelig at dataene består av en karakteristikk som er god nok til å generalisere godt. Aksjekursdata for 2007-2008, på høyden av den globale finanskrisen, er partiske og sannsynligvis ikke relevante for å komme med prisforutsigelser i disse dager. Med et mindre tidsintervall er det lettere å forutsi hva som vil skje videre på grunn av et stort antall datapunkter i et fast intervall. Det er lettere å forutsi hva som vil skje i neste nanosekund hvis vi har alle datapunktene for hver nanosekund i et fast intervall på n
år enn hva som vil skje i aksjemarkedet neste år hvis vi har alle datapunktene n
for hvert år i et fast intervall på n
-år.
Det betyr imidlertid ikke at forutsatt at en rask serie av kortsiktige spådommer er riktig, bør den langsiktige spådommen også være riktig. Hver spådom introduserer en feil, og ved å koble sammen flere spådommer, vil den langsiktige spådommen inneholde en betydelig mengde feil på slutten og være ubrukelig. Nedenfor er et eksempel på en dags intervalldata for Google Shares Clipped Online fra Yahoo Finance.
Det er bare noen få kolonner i datasettet: Dato, Åpent, Høy, Lav og Lukk - henholdsvis prisen som et verdipapir først handler ved en børs, prisen høyere enn sikkerheten oppnådd på en gitt handel dag, den laveste prisen som er nådd på en gitt handelsdag, og den endelige kursen som et verdipapir handles til den dagen.
Det er vanligvis to kolonner til i slike datasett - Tight Close og Volume, men de er ikke relevante her. Justert nær er sluttkursen etter justeringer for gjeldende divisjoner og utbytteutdelinger, mens volum er antall aksjer som handles på markedet i løpet av en spesifisert tidsperiode.
Du kan se at noen av datoene mangler. Dette er dagene da aksjemarkedet er nede, vanligvis i helger og helligdager. For å demonstrere dyplæringsalgoritmen blir de resterende dagene supplert med den tidligere tilgjengelige prisen. For eksempel vil sluttprisene for 2010-01-16, 2010-01-17, 2010-01-18 være 288.126007 fordi det var slik det var 2010-01-15. Det er viktig for algoritmen vår at dataene er uten hull slik at vi ikke forveksler dem. Dyplæringsalgoritmen kan lære herfra når helger og høytider er - for eksempel vil det lære at det etter fem virkedager skal være to dager med faste priser fra forrige virkedag.
Dette er en graf over Googles aksjekursbevegelser siden 2010-01-04. Vær oppmerksom på at bare handelsdager brukes til å plotte diagrammet.
Dyp læring er en del av maskinlæring og er basert på læringsrepresentasjoner av data. Maskinlæring undersøker algoritmer hvis funksjonalitet ikke er programmert, men læres av data. Det er egentlig en tilnærming til kunstig intelligens.
Dyp læring har blitt brukt på en rekke felt - datasyn, talegjenkjenning, naturlig språkbehandling, maskinoversettelse - og i noen av disse oppgavene har det overgått mennesker.
Et dypt nevralt nettverk er i sentrum for dyp læring. Det enkleste og mest grunnleggende eksemplet på et dypt nevralt nettverk er et prediktivt nevralt nettverk. Nedenfor er et bilde av et nevralt nettverk mate frem enkel. Den består av input og output lag og skjulte lag.
De skjulte lagene er alle lag mellom inngangs- og utgangslagene. Vi sier at et nevralt nettverk er dypt hvis det har mer enn ett skjult lag. Hvert lag består av forskjellige antall nevroner. Lagene i dette fremre basale nevrale nettverket kalles lineære lag: Nevronene i det lineære laget multipliserer bare 1-D-verdiene (eller 2-D hvis dataene sendes over hele nettverket i grupper) med riktig vekt, og legger til produkter sammen og gir det endelige resultatet som 1-D eller 2-D-utgang.
Aktiveringsfunksjonen brukes vanligvis i nettverk av mate frem å innføre ikke-lineariteter, slik at nettverket kan modellere mer komplekse ikke-lineære problemer. I nettverk av mate frem dataene flyter fra inngangslaget til utgangslaget uten looping. Forbindelsene mellom nevroner vektes. Vektene må justeres for at nevrale nettverk skal gi riktige utganger for de gitte inngangene. Nettverket av mate frem kartlegger data fra input space til output space. Skjulte lag trekker ut viktige og mer abstrakte funksjoner fra funksjonene i forrige lag.
Den generelle dyplæringsrørledningen er den samme som maskinlæringsrørledningen og består av følgende trinn:
Nevrale nettverksopplæring betyr faktisk å justere vektene mellom par av nevroner ved å minimere tapfunksjonen ved hjelp av en backpropagasjonsalgoritme i kombinasjon med stokastisk gradientnedstigning. Med unntak av vektene som bestemmes gjennom læringsprosessen, krever dyplæringsalgoritmer generelt etablering av hyperparametere, parametere som ikke læres, men som repareres før læring. Hyperparametrene er antall lag, antall lagdelte nevroner, lagtyper, nevrontyper og vektinitialisering.
Det er maskinvarebegrensninger for å sette opp hyperparametere; Det er foreløpig ikke fysisk mulig å etablere en billion nevroner på en enkelt GPU. Det andre problemet for det uttømmende søket etter hyperparametere er den kombinatoriske eksplosjonen; det er ikke mulig å søke gjennom alle mulige kombinasjoner av hyperparametere fordi det vil ta uendelig lang tid. Dette er grunnen til at hyperparametere settes opp tilfeldig eller bruker noen velkjente heuristikker og eksempler som er beskrevet i vitenskapelige artikler - en av hyperparametrene som brukes til analyse av økonomiske data vist senere i denne bloggen er bruken av tilbakevendende nevroner, som forskere og ingeniører. har vist at de fungerer godt med tidsseriedata. Vanligvis er den beste måten å se om hyperparametrene for et gitt problem er bra eller ikke, gjennom eksperimenter. Målet med opplæringen er å gjøre nevrale nettverk i samsvar med opplæringsdataene. Både valideringen av modellen som utføres etter hvert treningstrinn, og testingen av modellen som utføres etter hele treningsprosedyren, blir utført for å se om modellen kan generaliseres godt. Generalisering betyr at nevrale nettverk kan gi gode spådommer på nye, usynlige data.
Det er to viktige begreper knyttet til modellvalg: overmontering Y feiljustering . Hvis et nevralt nettverk er for komplisert med hensyn til dataene det er trent på, hvis det har for mange parametere (for mange lag og / eller for mange lagdelte nevroner), kan nevrale nettverk overdrive dataene. Det kan passe opplæringsdataene godt fordi det har mer enn nok kapasitet til å passe alle dataene, men da er ytelsen på test- og valideringssettene dårlig.
Hvis nevrale nettverk er for enkelt med hensyn til dataene det er trent på, kan nevrale nettverk feiljustere dataene. I så fall fungerer nevrale nettverk dårlig i trenings-, validerings- og testsett fordi dets evne ikke er god nok til å tilpasse seg treningsdataene og generalisere. I bildet nedenfor er disse begrepene forklart grafisk. Den blå linjen representerer det som er modellert av nevrale nettverk. Det første bildet viser situasjonen når det er få nevrale nettverksparametere, ikke nok til å passe treningsdataene og til å generalisere. Det andre bildet viser situasjonen når det optimale antallet parametere eksisterer og nevrale nettverk kan generaliseres godt på usynlige data, og det tredje bildet viser situasjonen når antall parametere i et nevralt nettverk er for stort og nevrale nettverk kan perfekt passe alle dataene i treningssettet, men gjør det dårlig på test- og valideringssettene.
En mer komplisert versjon av et nevralt nettverk er et tilbakevendende nevralt nettverk. I tilbakevendende nevrale nettverk kan data strømme i alle retninger, i motsetning til prediktive nevrale nettverk. De kan lære tidsserieravhengigheter godt. Arkitekturen til et generelt tilbakevendende nevrale nettverk er vist på bildet nedenfor.
Et tilbakevendende nevron er vist på bildet nedenfor. Du trenger X_{t}
, tidspunkt i tid t
, som input og returnerer h_{t}
, skjult tilstand i tid t
, som output. Den skjulte produksjonen forplanter seg tilbake til nevronet. Det tilbakevendende nevronet kan rulles opp, da det er vist på samme bilde fra høyre side. X_{t_0}
er et punkt i tidsperioden t_{0}
, X_{t_1}
i tidsperioden t_{1}
, og X_{t}
i tidsperioden t
. Produkter oppnådd ved hjelp av innganger X_{t_0}
, X_{t_1}
,…, X_{t_n}
i tidsperioder t_{0}
, t_{1}
,…, t_{n}
De kalles også skjulte utganger: henholdsvis h_{t_0}
, h_{t_1}
, ..., h_{t_n}
.
En av de beste tilbakevendende nevrale nettverksarkitekturene er LSTM-arkitekturen. LSTM er vist nedenfor:
LSTM har samme generelle struktur som generelle tilbakevendende nevrale nettverk, men det tilbakevendende nevronet er litt annerledes med en mer kompleks struktur. Du kan se fra bildet over at mange beregninger utføres i en LSTM-celle. LSTM-celler kan sees på som en svart boks i sammenheng med dette innlegget, men for mer nysgjerrige lesere, dette blogg innlegg forklarer beregningene innen LSTM og mye mer.
La oss kalle inngangen til nevrale nettverk for en 'funksjonsvektor.' Det er en dimensjonsvektor n
- hvis elementer er karakteristiske: f_{0}
, f_{1}
, f_{2}
…, f_{n}
. ~~~ vv {X} = [f_ {0}, f_ {1}, f_ {2},…, f_ {n}] ~~~ Nå, la oss forklare hvordan tilbakevendende nevrale nettverk kan brukes på en relatert oppgave med økonomi. Inngangen for det gjentatte nevrale nettverket er [X_{t_0}, X_{t_1}, X_{t_2}, …, X_{t_n}]
. La oss si n = 5
. Vi tok fem Google Close-aksjekurser fra fem påfølgende dager (se tabell med åpne / høy / lav / lukket / opp-data), for eksempel 2010-01-04 og 2010-01-08, f.eks. [[311.35], [309.98], [302.16], [295.13], [299.06]]
. Funksjonsvektoren i dette eksemplet er endimensjonal. Tidssekvensen består av fem slike funksjonsvektorer. Utgangene til det gjentatte nevrale nettverket er skjulte funksjoner [h_{t_0}, h_{t_1}, h_{t_2}, …, h_{t_n}]
. Disse funksjonene er på et mer abstrakt nivå enn inngangsfunksjonene [X_{t_0}, X_{t_1}, X_{t_2}, …, X_{t_n}]
—LSTM må lære de viktige delene av inngangsfunksjonene og projisere dem inn i det skjulte funksjonsområdet. Disse skjulte og abstrakte funksjonene kan forplantes til neste LSTM-celle, som vil gi neste sett med skjulte og mer abstrakte funksjoner som deretter kan spres tilbake til neste LSTM, og så videre. Etter sekvensen av lenket LSTM er den siste komponenten i nevrale nettverk det lineære laget (konstruksjonsdelen av det enkle fremovernettverket forklart i forrige avsnitt) som kartlegger de skjulte funksjonene fra den siste LSTM til punktet i et dimensjonalt rom, og det punktet er sluttresultatet av nettverket - forventet sluttpris i tidsperioden X_{t+1}
. Grunnsannheten i dette eksemplet for X_{t+1}
er 298.61
.
Merk: Det kan også bare være en LSTM - å angi antall LSTM er et hyperparameter, vanligvis funnet empirisk, selv om vi kan bruke noen heuristikker. Hvis dataene ikke er så komplekse, bruker vi en mindre kompleks arkitektur slik at modellen ikke overlapper dataene. Hvis dataene er kompliserte, bruker vi en kompleks modell slik at modellen ikke tilpasser seg dataene.
I opplæringsfasen sammenlignes de forventede sluttprisene med de sanne tomteprisene, og forskjellen mellom de forventede sluttprisene og de sanne jordprisene minimeres ved hjelp av en backpropagation-algoritme og en nedstigningsoptimaliseringsalgoritme. Av gradienten (eller en av dens former) - spesielt, i denne bloggen, brukes den såkalte 'Adam' -versjonen av en optimaliseringsalgoritme for gradientnedstigning) når du endrer vektene i nevrale nettverk.
Etter opplæring og testing trenger brukeren i fremtiden bare å legge inn data til det nevrale nettverket, og den vil returnere forventet pris (og forhåpentligvis en pris veldig nær fremtidens sanne pris). En ting til å nevne her er at vanligvis sendes databaser over nettverket, og trener i testfaser for nettverket for å beregne flere utganger i ett enkelt pass. Nedenfor er et bilde av en arkitektur som brukes i denne bloggen for eksperimenter. Den består av to stablede LSTM-er og et lineært lag.
Prøv å bruke slike enkle algoritmiske handelsstrategier som følger: Hvis algoritmen forutsier at prisen vil øke neste dag, kjøp n
(n = 1
i dette eksemplet) aksjer i et selskap (lang), ellers selger alle aksjer i et selskap (kort). Den opprinnelige verdien av porteføljen (den samlede kontant- og aksjeverdien) er satt til $ 100.000. Hver lange eller korte aksje vil kjøpe aksjer n
av et selskap (Google, i dette eksemplet) eller selger henholdsvis alle aksjene i et selskap. Opprinnelig eier systemet 0 aksjer i et gitt selskap. Husk alltid at dette er et veldig grunnleggende og enkelt eksempel, ikke beregnet for bruk i den virkelige verden, da det vil kreve mye mer FoU-arbeid for å modifisere modellen slik at den fungerer godt i praksis. Her er noen ting forsømt som bør vurderes i virkelige omgivelser; for eksempel er ikke transaksjonsgebyrer innebygd i modellen. Systemet skal være i stand til å fungere på nøyaktig samme tid hver dag, og hver dag, selv i en helg eller på en ferie, skal være en handelsdag.
For testing brukes en backtesting-metode. Backtesting-metoden bruker historiske data for å rekonstruere operasjoner som ville ha skjedd tidligere ved hjelp av reglene definert med strategien som er utviklet. Datasettet er delt i to deler - den første delen er treningssettet (fortid) og den andre delen er testsettet (fremtid). Modellen er trent i et treningssett, og etter trening simulerer vi fremtiden i andre del av datasettet for å se hvordan den trente modellen ville ha oppført seg i fremtiden uten å bli trent i den.
Beregningen for å evaluere handelsstrategien er Sharpe-forholdet (den årlige versjonen, forutsatt at alle dagene i året er handelsdager, og året har 365 dager).: sqrt(365)*mean(returns)/std(returns))
, Hvor avkastningen er definert som p_{t}/p_{t-1} - 1
, og p_{t}
er prisen i tidsperioden t
. Sharpe-forholdet viser forholdet mellom avkastningen og den ekstra risikoen som påløper, så det er hyggelig å ha et større Sharpe-forhold. Generelt er et forhold større enn 1 akseptabelt for investorer, 2 er veldig bra og 3 er utmerket.
Bare den daglige sluttprisen for Googles historiske priser fra Yahoo Finance-datasettet brukes som karakteristikk. Flere funksjoner vil hjelpe, men det er utenfor omfanget av denne bloggen å teste hvilke andre datasettfunksjoner (Åpen, Høy, Lav) som er viktige. Noen andre egenskaper som ikke er inkludert i tabellen kan også være nyttige, for eksempel følelsen av nyhetene i et bestemt øyeblikk eller viktige hendelser på en bestemt dag. Imidlertid er det noen ganger veldig vanskelig å lage datarepresentasjoner som er nyttige for nevrale nettverksinngang og kombinere dem med eksisterende funksjoner. For eksempel er det enkelt å utvide funksjonsvektoren og sette et tall som representerer Trumps nyhetsstemning eller tweet-sentiment (-1
veldig negativt, 0
nøytralt, +1
veldig positivt osv.) For hver gitt tidsperiode, men det er ikke så lett å sette bestemte begivenhetsinnstilte tider (pirater i Suez-kanalen, bombe i et Texas raffineri) i funksjonsvektoren fordi vi for hver spesifikke tid trenger et ekstra element i funksjonsvektoren for å sette 1
hvis hendelsen skjedde eller 0
ellers, noe som vil føre til et uendelig antall varer for alle mulige tider.
For de vanskeligste dataene kunne vi definere noen kategorier og for hvert øyeblikk bestemme hvilken kategori den tilhører. Vi kan også legge til egenskaper ved aksjene i andre selskaper, slik at et system vet sammenhengen mellom prisene på aksjene i forskjellige selskaper. I tillegg er det en type nevrale nettverk som spesialiserer seg på maskinsyn, konvolusjonelle nevrale nettverk, som det ville være interessant å kombinere med gjentatte lag og se hvordan de visuelle egenskapene korrelerer med prisene til noen selskaper. Kanskje vi kan bruke kameramat fra en overfylt togstasjon som en funksjon og koble den matingen til et nevralt nettverk og se om det nevrale nettverket ser er korrelert med aksjekursene til noen selskaper - det kan være skjult kunnskap selv i det banalt og absurd eksempel.
Nedenfor er en graf som viser hvordan gjennomsnittlig treningstap synker over tid, noe som betyr at nevrale nettverk har tilstrekkelig kapasitet til å tilpasse seg treningsdataene. Det er viktig å si at dataene må normaliseres slik at dyplæringsalgoritmen kan konvergere.
Nedenfor er en graf som viser hvordan det gjennomsnittlige testtapet synker over tid, noe som betyr at nevrale nettverk har muligheten til å generalisere på usynlige data.
Algoritmen er grådig; hvis du spådde at prisen vil stige neste dag, kjøper algoritmen umiddelbart aksjen n=1
i et selskap (hvis det er nok kontanter i porteføljen), og hvis ikke, selg alle aksjene i selskapet (hvis du har noen). Investeringsperioden er fast og tar 300 dager. Etter 300 dager selges alle aksjene. Den usete datasimuleringen, etter litt trening, kan sees nedenfor. Den viser hvordan verdien av porteføljen øker over tid ved lange / korte handlinger (eller ikke gjør noe) hver dag.
Sharpes forhold for simuleringen ovenfor er 1,48. Den endelige verdien av porteføljen etter 300 dager er $ 100 263,79. Hvis vi bare kjøpte aksjer den første dagen og solgte dem etter 300 dager, ville porteføljen være verdt $ 99 988,41. Nedenfor er en situasjon der nevrale nettverk ikke er godt trent og taper penger etter en fast periode på 300 dager.
Sharpes forhold er -0,94. Den endelige verdien av porteføljen etter 300 dager er $ 99868,36.
Her er et interessant eksempel: algoritmen ovenfor er grådig og kun forutsier prisen for neste dag, og tar målinger bare basert på den spådommen. Det er mulig å kjede flere spådommer og forutsi prisen i de neste trinnene i fremtiden. For eksempel med en første oppføring på [X_ground_truth_{t0}, X_ground_truth_{t1}, X_ground_truth_{t2}, X_ground_truth_{t3}, X_ground_truth_{t4}]
og den første utgangen som ville være [X_predicted_{t5}]
, kan vi mate nevrale nettverk med den prediksjonen, slik at neste inngang er [X_ground_truth_{t1}, X_ground_truth_{t2}, X_ground_truth_{t3}, X_ground_truth_{t4}, X_predicted_{t5}]
og utgangen er [X_predicted_{t6}]
. Neste oppføring der er [X_ground_truth_{t2}, X_ground_truth_{t3}, X_ground_truth_{t4}, X_predicted_{t5}, X_predicted_{t6}]
resulterer i [X_predicted_{t7}]
, og så videre. Problemet her er at vi introduserer en prediksjonsfeil som øker for hvert nye trinn og til slutt ender opp med et veldig dårlig langsiktig resultat, som vist på bildet nedenfor. Spådommen følger opprinnelig den nedadgående trenden av bakkesannheten og stagnerer og forverres over tid.
En veldig enkel dyplæringsanalyse ble gjort på Googles aksjekurser, men den kan inneholde nesten ethvert sett med økonomiske data, så lenge datamengden er stor nok og av god kvalitet. Dataene må være diskriminerende og må beskrive og representere problemet godt.
Hvis det fungerte og generaliserte godt i omfattende tester, kunne dette systemet tillate hedgefondforvaltere å spekulere i fremtidige priser på selskapets aksjer gjennom dyp læring og å stole på algoritmiske handelsstrategier.
Hedgefondforvaltere kan gi systemet en sum penger for å handle automatisk hver dag. Det ville imidlertid være veldig ille å tillate automatiserte handelsalgoritmer å handle uten tilsyn. Hedgefondforvalteren må ha noen dybdelæringsevner eller ansette noen med de nødvendige ferdighetene for å overvåke systemet og avgjøre når systemet har mistet evnen til å generalisere og handle godt. Hvis systemet skulle miste muligheten for å generalisere, måtte det omskoleres fra bunnen av og testes på nytt (kanskje ved å introdusere mer diskriminerende funksjoner eller ny innsikt - ved å bruke nye data fra fortiden som ikke eksisterte da modellen først ble trent).
Noen ganger er dataene bare ikke gode nok til at dyplæringssystemet kan trene og generalisere godt, og i så fall en erfaren dyplæringsingeniør den skal kunne oppdage og rette opp en slik situasjon. For å bygge et dyplæringssystem trenger du forskere innen hedgefond, maskinlæringseksperter (både forskere og ingeniører), FoU-ingeniører som er kjent med maskinlæring / dyplæring, etc. Uansett hvilken del av en maskinlæringsapplikasjon de er kjent med, det være seg maskinvisjon eller talegjenkjenning, vil erfarne fagfolk kunne bruke sin kompetanse i finanssektoren. I begynnelsen har dyp læring de samme grunnleggende, uavhengig av applikasjon eller bransje, og det skal være enkelt for noen med erfaring å bytte fra ett emne til et annet.
Systemet vi presenterer er veldig grunnleggende, og for å kunne brukes i den virkelige verden, må mer forskning og utvikling gjøres for å øke avkastningen. Mulige forbedringer av systemet kan være i utviklingen av bedre handelsstrategier. Å samle inn mer data for trening, som vanligvis er veldig dyrt, vil hjelpe. Et mindre tidsintervall mellom poeng er bedre. Det kan også være forbedringer i bruken av flere funksjoner (for eksempel nyhetsstemninger eller viktige hendelser som tilsvarer hvert punkt i datasettet, til tross for at det er vanskelig å kode for et nevralt nettverk) og et omfattende søke- og oppdagelsesnett for hyperparameter. RNR-arkitektur.
Det krever også mer datakraft (kraftige GPUer) for å kjøre mange store eksperimenter parallelt og behandle en stor mengde data, forutsatt at en stor mengde data samles inn.
Referanser:
Forfatterens merknad: Jeg vil takke Ivan Čapalija og Matej Paradžik for konstruktive samtaler og råd om dyp læring innen økonomi, som hjalp meg med å skrive denne bloggen.