socialgekon.com
  • Glavni
  • Inovacije
  • Inženirski Management
  • Urejanje
  • Drugo
Back-End

Uvod v poglobljeno učenje trgovanja s hedge skladi

V zadnjih letih so globoke nevronske mreže postale izjemno priljubljene. To nastajajoče področje računalništva je nastalo okoli koncepta bioloških nevronskih mrež, globoko učenje pa je danes postalo modna beseda.

Znanstveniki in inženirji globokega učenja poskušajo matematično opisati različne vzorce v biološkem živčnem sistemu. Sistemi globokega učenja so bili uporabljeni za različne težave: računalniški vid, prepoznavanje govora, obdelava naravnega jezika, strojno prevajanje in še več. Zanimivo in razburljivo je, da je globoko učenje pri nekaterih nalogah prekašalo človeške strokovnjake. Danes si bomo ogledali globoko učenje v finančnem sektorju.

Ena najprivlačnejših aplikacij globokega učenja je v hedge skladih. Hedge skladi so investicijski skladi finančnih organizacij, ki zbirajo sredstva od vlagateljev in jih upravljajo. Običajno delajo s podatki o časovnih vrstah in poskušajo narediti nekaj napovedi. Obstaja posebna vrsta arhitekture globokega učenja, ki je primerna za analizo časovnih vrst: Ponavljajoča se nevronska omrežja (RNR) ali še natančneje posebna vrsta ponavljajočih se nevronskih mrež: kratkoročna omrežja z dolgim ​​pomnilnikom ( LSTM ) . The LSTM znajo zajeti najpomembnejše značilnosti podatkov časovnih vrst in modelirati njihove odvisnosti. Model napovedovanja tečajev delnic je predstavljen kot ilustrativna študija primera, kako lahko hedge skladi uporabljajo take sisteme. The okvir PyTorch, napisan v Pythonu, se uporablja za urjenje modela, oblikovanje poskusov in risanje rezultatov.



Začeli bomo z nekaterimi osnovami globokega učenja, preden bomo prešli na resnične primere:

  • Uvedite globoko učenje kot abstraktni koncept.
  • Vnesite RNR - ali natančneje, LSTM —In kako jih lahko uporabimo za modeliranje podatkov časovnih vrst.
  • Bralce seznanite s primernimi finančnimi podatki za poglobljeno učenje.
  • Pokažite, kako pravi hedge sklad uporablja globoko učenje za napovedovanje cen delnic.
  • Na koncu ponuja tudi dejanska priporočila za nove in obstoječe hedge sklade o tem, kako globoko učenje uporabiti / izkoristiti za povečanje njihove uspešnosti.

Predstavitev primera globokega učenja

Eno najbolj zahtevnih in vznemirljivih nalog v finančni industriji je napovedujejo, ali bodo cene delnic naraščale ali padale v prihodnosti. Danes se zavedamo, da algoritmi globokega učenja zelo dobro rešujejo zapletene naloge, zato je vredno poskusiti s sistemi globokega učenja, da bi ugotovili, ali lahko uspešno rešijo problem napovedovanja prihodnjih cen.

Kot koncept umetna nevronska mreža obstaja že dolgo, vendar strojna oprema ni bila dovolj dobra, da bi omogočala hitre eksperimente v globokem učenju. Nvidia je pred desetletjem pomagala do revolucije v mrežah globokega učenja, saj je začela ponujati zelo hitre enote za obdelavo grafike (UPG) za računalništvo za splošne namene. Izdelki serije Tesla . Namesto senčenja poligonov v profesionalno zasnovanih igrah in aplikacijah lahko zelo paralelizirani UPG izračunajo tudi druge podatke in v mnogih primerih precej boljše od CPU-jev.

Obstajajo zelo nekaj znanstvenih člankov o uporabi poglobljenega učenja v financah, vendar je povpraševanje po strokovnjakih za poglobljeno učenje iz fintech podjetij močno, saj očitno prepoznajo njegov potencial. Ta članek vam bo pomagal razložiti, zakaj je poglobljeno učenje v financah vse bolj priljubljeno, in sicer z opisom uporabe finančnih podatkov pri gradnji sistemov za poglobljeno učenje. Posebna vrsta ponavljajočih se nevronskih mrež - mreža LSTM —Predstavljen bo tudi. Opisali bomo, kako je mogoče nalogo, povezano s financami, rešiti z uporabo ponavljajočih se nevronskih mrež.

V tem članku je predstavljena tudi ilustrativna študija primera, kako lahko hedge skladi uporabljajo take sisteme, predstavljena s poskusi. Upoštevali bomo tudi, kako je mogoče izboljšati sisteme za poglobljeno učenje in kako lahko hedge skladi najemajo talente za izgradnjo teh sistemov - torej kakšne izkušnje morajo imeti talenti za globoko učenje.

Kaj naredi sklade žive meje drugačne

Preden pridemo do tehnične strani problema, moramo razložiti, kaj naredi hedge sklade edinstvene. Kaj je torej hedge sklad?

Hedge sklad je investicijski sklad - finančna organizacija, ki zbira sredstva vlagateljev in jih umešča v kratkoročne in dolgoročne naložbe ali različne finančne produkte. Običajno je ustanovljena kot komanditna družba ali družba z omejeno odgovornostjo. Cilj hedge sklada je maksimirati donos. Donos je dobiček ali izguba čiste vrednosti hedge skladov v določenem časovnem obdobju. Splošno sprejeto je, da je ob večjem tveganju večja možnost večjih donosov in izgub.

Za doseganje dobrih donosov se hedge skladi zanašajo na različne vrste naložbenih strategij in skušajo zaslužiti z izkoriščanjem neučinkovitosti na trgu. Zaradi različnih vrst naložbenih strategij, ki niso dovoljene v navadnih vzajemnih skladih, hedge skladi niso registrirani kot skladi, to pomeni, da jih država na splošno ne nadzoruje kot drugi skladi. Ni jim treba objaviti svojih naložbenih strategij in rezultatov trgovanja, zaradi česar so lahko precej tvegani. Nekateri hedge skladi zaslužijo več denarja, kot je povprečje na trgu, nekateri pa izgubijo denar. Nekateri zagotavljajo trajne rezultate, medtem ko so nekateri rezultati hedge skladov spremenljivi.

Z vlaganjem v hedge sklade vlagatelji povečajo neto vrednost sklada. Vendar vsi ne morejo vlagati v hedge sklade. Hedge skladi so namenjeni majhnemu številu bogatih vlagateljev. Na splošno morajo biti akreditirani tisti, ki želijo sodelovati v hedge skladih. To pomeni, da morajo imeti poseben status glede zakonov o finančni ureditvi. Od države do države se razlikuje, kdo ima lahko ta poseben status. Na splošno mora biti neto vrednost vlagatelja zelo visoka, v hedge skladih lahko poslujejo tudi ne samo posamezniki, temveč tudi banke in velike korporacije. Ta akreditacija je zasnovana tako, da lahko sodelujejo samo ljudje s pomembnim investicijskim znanjem, ki majhne in neizkušene vlagatelje varuje pred tveganji.

Ta članek obravnava regulativni okvir ZDA, saj imajo ZDA najbolj razvit finančni trg na svetu. Torej je v ZDA izraz 'pooblaščeni vlagatelj' opredeljen v Pravilo 501 Uredbe D ameriške komisije za vrednostne papirje in borzo ( SEC ) .

V skladu s to uredbo so lahko pooblaščeni vlagatelji:

  • Banke
  • Zasebna podjetja za razvoj podjetij
  • Organizacije
  • Direktorji, izvršni direktorji in splošni partnerji izdajateljev vrednostnih papirjev, ponujenih ali prodanih
  • Posamezniki, katerih vrednost lastniškega kapitala ali skupnega lastniškega kapitala z zakoncem te osebe presega 1.000.000 USD
  • Posamezniki, ki so imeli posamezni dohodek v obeh zadnjih letih več kot 200.000 USD ali skupni dohodek z zakoncem te osebe v vsakem od teh let presega 300.000 USD in upravičeno pričakujejo, da bodo letos dosegli enako raven dohodka
  • Skladi z bilančno vsoto, večjo od 5.000.000 USD
  • Subjekti, v katerih so vsi delničarji akreditirani vlagatelji

Upravitelji hedge skladov upravljajo tak sklad. Upravitelj hedge skladov mora najti način, kako ustvariti konkurenčno prednost, da bo uspešen - torej ustvariti prednost pred tekmeci in sposobnost ustvarjanja večje vrednosti. To je lahko zelo privlačna poklicna možnost, saj je lahko zelo donosno, če posameznik odlikuje upravljanje sklada.

Po drugi strani pa, če se veliko odločitev upraviteljev hedge skladov izkaže za slabe, ne bodo plačani in si bodo prislužili negativen ugled. Najboljši upravljavci hedge skladov so eden najbolje plačanih poklicev v vseh panogah. Upravitelji hedge skladov poleg provizije za upravljanje zaslužijo odstotek donosa, ki ga zaslužijo za vlagatelje. Zaradi te oblike odškodnin upravljavci hedge skladov vlagajo bolj agresivno za večje donose, po drugi strani pa povečuje tveganje za vlagatelje.

Kratka zgodovina hedge skladov

Prvi hedge sklad se je pojavil leta 1949, ustanovil ga je nekdanji pisatelj in sociolog Alfred Winslow Jones. Bilo je to med pisanjem članka o trenutnih investicijskih trendih za Fortune, približno leta 1948.

Poskušal je upravljati denar in bil zelo uspešen. Denar je zbiral z investicijsko inovacijo, ki je danes splošno znana kot dolga / kratka kapica. Strategija je pri hedge skladih še vedno zelo priljubljena. Delnice je mogoče kupiti (kupiti: dolge) ali prodati (prodati: kratke).

Ko je cena delnice nizka in je pričakovati, da bo cena delnice visoka, je smiselno kupiti delnico (dolgo) in jo prodati (kratko) takoj, ko doseže najvišjo točko, in ravno to je točka od inovacije Alfreda Winslowa Jonesa: zavzemanje dolgih pozicij v delnicah, za katere se pričakuje, da se bodo podražile, in kratkih pozicij v delnicah, ki naj bi upadale.

Finančni podatki in nabori podatkov

Finančni podatki spadajo med podatke o časovnih vrstah. Časovna vrsta je niz časovnih indeksiranih točk. Na splošno je časovna vrsta zaporedje, posneto v zaporednih in enako razmaknjenih časovnih točkah - zaporedje podatkov v diskretnem času. Primeri časovnih vrst so višine morskih plim in osek, število sončnih peg in dnevna vrednost zapiranja industrijskega povprečja Dow Jones. Zgodovinski podatki v tem kontekstu so podatki o časovnih vrstah iz preteklosti. To je eden najpomembnejših in najdragocenejših delov za špekulacije o prihodnjih cenah. Obstaja nekaj naborov podatkov, ki so javno dostopni v spletu, vendar na splošno - ti podatki ne vsebujejo veliko značilnosti, običajno so to podatki za enodnevni interval, podatki za enourni interval ali podatki o intervalih z enim minutom.

Nabori podatkov z bogatejšimi značilnostmi in v manjših časovnih intervalih na splošno niso javno dostopni in jih je lahko zelo drago pridobiti. Manjši intervali pomenijo več podatkov o časovnih vrstah v določenem obdobju - v letu je 365 (ali 366) dni, zato je na voljo največ 365 (ali 366) podatkovnih točk. Vsak dan ima 24 ur, zato je v enem letu na voljo 8.760 (ali 8.784) urnih podatkovnih točk, vsak dan pa 86.400 minut, tako da je v enem letu na voljo 525.600 (ali 527.040) podatkovnih točk na minuto.

Z več podatki je na voljo več informacij, z več informacijami pa je mogoče sprejeti boljše zaključke o tem, kaj se bo zgodilo v naslednjem časovnem obdobju, seveda ob predpostavki, da so podatki dovolj dobri, da jih lahko posplošimo. Podatki o cenah delnic za obdobje 2007–2008, na vrhuncu svetovne finančne krize, so pristranski in verjetno danes niso pomembni za napovedovanje tečajev. Z manjšim časovnim intervalom je zaradi velikega števila podatkovnih točk v določenem intervalu lažje napovedati, kaj se bo zgodilo naprej. Lažje je napovedati, kaj se bo zgodilo v naslednji nanosekundi, če imamo vse podatkovne točke za vsako nanosekundo v določenem intervalu n let, kot se bo zgodilo na borzi naslednje leto, če imamo vse podatkovne točke n za vsako leto v določenem intervalu n -let.

Vendar to ne pomeni, da bi morala biti dolgoročna napoved pravilna tudi ob predpostavki, da je hitra serija kratkoročnih napovedi pravilna. Vsaka napoved privede do napake in dolgoročno napovedovanje bo na koncu s povezovanjem več napovedi na koncu vsebovalo veliko količino napak in bo neuporabno. Spodaj je primer podatkov o enodnevnih intervalih za Googlove delnice, ki jih je Yahoo Finance preusmeril v splet.

Časovna vrsta finančnih podatkov o Googlovih delnicah za algoritmično trgovanje

V naboru podatkov je le nekaj stolpcev: Datum, Odprto, Visoko, Nizko in Zapri - cena, po kateri vrednostni papir prvič trguje ob odprtju borze, cena višja od vrednostne papirje, dosežene na določenem trgovanju dan, najnižja cena, dosežena na določen dan trgovanja, in končna cena, po kateri se vrednostni papir trguje na ta dan.

V takih naborih podatkov sta običajno še dva stolpca - Prilagojeno zapiranje in Obseg, vendar tukaj nista pomembna. Prilagojeno zapiranje je končna cena po prilagoditvah veljavnih delitev in razdelitve dividend, medtem ko je obseg število delnic, s katerimi se trguje v določenem časovnem obdobju.

Vidite, da nekateri datumi manjkajo. To so dnevi, ko borza propada, običajno ob vikendih in praznikih. Za namene predstavitve algoritma poglobljenega učenja so preostali dnevi dopolnjeni s predhodno razpoložljivo ceno. Na primer, zaključne cene za 16. 1. 2010, 17. 1. 2010, 18. 1. 2010 bodo 288.126007, ker je bilo tako 15. januarja 2010. Za naš algoritem je pomembno, da so podatki brez vrzeli, da jih ne bomo zamenjali. Algoritem poglobljenega učenja se lahko od tu uči, ko so vikendi in prazniki - na primer, izvedel bo, da morata biti po petih delovnih dneh dva dneva s fiksnimi cenami od zadnjega delovnega dne.

Vizualna predstavitev gibanja tečajev Googla v določenem časovnem obdobju

To je graf gibanja Googlovih tečajev delnic od 4. januarja 2010. Upoštevajte, da se za načrtovanje grafikona uporabljajo samo trgovalni dnevi.

Kaj je poglobljeno učenje?

Poglobljeno učenje je del strojnega učenja in temelji na učnih predstavitvah podatkov. Strojno učenje preučuje algoritme, katerih funkcionalnost ni programirana, ampak se jih nauči iz podatkov. V bistvu gre za pristop k umetni inteligenci.

Poglobljeno učenje je bilo uporabljeno na različnih področjih - računalniški vid, prepoznavanje govora, obdelava naravnega jezika, strojno prevajanje - in pri nekaterih od teh nalog je prekašalo ljudi.

Globoka nevronska mreža je v središču globokega učenja. Najenostavnejši in najosnovnejši primer globoke nevronske mreže je napovedna nevronska mreža. Spodaj je slika nevronske mreže naprej preprosto. Sestavljen je iz vhodne in izhodne plasti ter skritih plasti.

Diagram preproste * neformalne * nevronske mreže z vhodnimi in izhodnimi ter učnimi plastmi, predstavljenimi kot vozlišča

Skrite plasti so vse plasti med vhodno in izhodno plastjo. Pravimo, da je nevronska mreža globoka, če ima več skritih plasti. Vsaka plast je sestavljena iz različnega števila nevronov. Plasti v tej naprej osnovni nevronski mreži se imenujejo linearne plasti: nevroni v linearni plasti le pomnožijo 1-D vrednosti (ali 2-D, če se podatki pošljejo po omrežju v serijah) z ustrezno težo in dodajo izdelkov skupaj in daje končni rezultat kot 1-D ali 2-D izhod.

Aktivacijska funkcija se običajno uporablja v omrežjih naprej uvesti nelinearnosti, tako da lahko mreža modelira bolj zapletene nelinearne probleme. V omrežjih naprej , podatki tečejo od vhodne plasti do izhodne plasti brez zanke. Povezave med nevroni so tehtane. Uteži je treba prilagoditi, da nevronska mreža vrne pravilne izhode za dane vhode. Omrežje naprej preslika podatke iz vhodnega prostora v izhodni prostor. Skrite plasti iz značilnosti prejšnje plasti izvlečejo pomembne in bolj abstraktne lastnosti.

Splošni cevovod za globoko učenje je enak cevovodu za strojno učenje in je sestavljen iz naslednjih korakov:

  1. Zbiranje podatkov. Podatki so ločeni v tri dele: podatki o usposabljanju, podatki o validaciji in podatki o preskusih.
  2. Usposabljanje DNN z uporabo podatkov o vadbi v številnih 'obdobjih' (vsaka je sestavljena iz več ponovitev) in preverjanje veljavnosti po vsaki epohi z uporabo podatkov o preverjanju.
  3. Testiranje modela (primerek nevronske mreže s fiksnimi parametri) po zaporedju vadb in validacij.

Vadba nevronske mreže dejansko pomeni prilagajanje uteži med pari nevronov z zmanjšanjem funkcije izgube z uporabo algoritma povratnega širjenja v kombinaciji s stohastičnim gradientnim spustom. Z izjemo uteži, ki se določijo skozi učni proces, algoritmi globokega učenja praviloma zahtevajo postavitev hiperparametrov, parametrov, ki se ne naučijo, vendar jih pred učenjem popravijo. Hiperparametri so število slojev, število večplastnih nevronov, tipi slojev, tipi nevronov in inicializacija teže.

Za nastavitev hiperparametrov obstajajo strojne omejitve; Trenutno na enem GPU fizično ni mogoče vzpostaviti bilijona nevronov. Drugi problem izčrpnega iskanja hiperparametrov je kombinatorna eksplozija; ni mogoče iskati po vseh možnih kombinacijah hiperparametrov, ker bi to trajalo neskončno dolgo. Zato se hiperparametri postavljajo naključno ali uporabljajo nekatere znane hevristike in primere, opisane v znanstvenih člankih - eden od hiperparametrov, uporabljenih za analizo finančnih podatkov, ki je prikazan kasneje v tem blogu, je uporaba ponavljajočih se nevronov, kot so znanstveniki in inženirji so pokazali, da dobro delujejo s podatki o časovnih vrstah. Običajno je najboljši način, da ugotovimo, ali so hiperparametri za določeno težavo dobri ali ne, s pomočjo poskusov. Cilj usposabljanja je uskladiti nevronske mreže s podatki o usposabljanju. Tako validacija modela, ki se izvede po vsakem koraku vadbe, kot tudi testiranje modela, ki se izvede po celotnem postopku vadbe, se izvede, da se ugotovi, ali je mogoče model dobro posplošiti. Generalizacija pomeni, da lahko nevronska mreža dobro napoveduje nevidne nove podatke.

Z izbiro modela sta povezana dva pomembna izraza: prekomerno opremljanje Y. neprilagojenost . Če je nevronska mreža preveč zapletena glede na podatke, na katerih je usposobljena, če ima preveč parametrov (preveč slojev in / ali preveč slojevitih nevronov), lahko nevronska mreža podatke preveč opremi. Podatke o vadbi lahko dobro prilega, ker ima več kot dovolj zmogljivosti, da se prilega vsem podatkom, potem pa je uspešnost na preizkusnih in validacijskih sklopih slaba.

Če je nevronska mreža preveč enostavna glede na podatke, na katerih je usposobljena, lahko nevronska mreža napačno poravna podatke. V tem primeru se nevronska mreža pri treningih, validaciji in preizkusnih naborih slabo obnese, ker njena sposobnost ni dovolj dobra, da bi se prilagodila podatkom o vadbi in posplošila. Na spodnji sliki so ti izrazi razloženi grafično. Modra črta predstavlja tisto, kar modelira nevronska mreža. Prva slika prikazuje situacijo, ko je malo parametrov nevronske mreže, ki niso dovolj, da bi ustrezali vadbenim podatkom in posploševali. Druga slika prikazuje situacijo, ko obstaja optimalno število parametrov in je nevronsko mrežo mogoče dobro posplošiti na nevidnih podatkih, tretja slika pa situacijo, ko je število parametrov nevronske mreže preveliko in nevronska mreža lahko popolnoma prilegajo vse podatke v vadbenem kompletu, vendar v testnih in validacijskih nizih delujejo slabo.

Grafični prikaz neusklajenosti, optimalnega in prekomernega scenarija

Ponavljajoče se nevronske mreže

Bolj zapletena različica nevronske mreže je ponavljajoča se nevronska mreža. V ponavljajočih se nevronskih omrežjih lahko podatki tečejo v katero koli smer, za razliko od napovednih nevronskih mrež. Dobro se lahko naučijo odvisnosti časovnih vrst. Arhitektura splošnega ponavljajočega se nevronskega omrežja je prikazana na spodnji sliki.

grafični prikaz splošne rnr arhitekture

Na spodnji sliki je prikazan ponavljajoči se nevron. Kot vhod potrebujete X_{t}, čas v času t, in vrne h_{t}, skrito stanje v času t, kot izhod. Skriti izhod se širi nazaj do nevrona. Ponavljajoči se nevron je mogoče odviti, kot je prikazan na isti sliki z desne strani. X_{t_0} je točka v časovnem obdobju t_{0}, X_{t_1} v časovnem obdobju t_{1} in X_{t} v časovnem obdobju t. Izdelki, pridobljeni z vhodnimi podatki X_{t_0}, X_{t_1},…, X_{t_n} v časovnih obdobjih t_{0}, t_{1},…, t_{n} Imenujejo se tudi skriti izhodi: h_{t_0}, h_{t_1},…, h_{t_n}

vizualna ilustracija v / v strukture ponavljajočega se nevrona

Ena najboljših ponavljajočih se arhitektur nevronskih mrež je arhitektura LSTM. LSTM je prikazan spodaj:

Vizualizacija arhitekture lstm

LSTM imajo enako splošno strukturo kot splošne ponavljajoče se nevronske mreže, vendar je ponavljajoči se nevron nekoliko drugačen z bolj zapleteno strukturo. Na zgornji sliki lahko vidite, da se v celici LSTM izvaja veliko izračunov. Celice LSTM lahko v tem prispevku vidimo kot črno polje, za bolj radovedne bralce pa to objava v spletnem dnevniku pojasnjuje izračune znotraj LSTM in še veliko več.

Poimenujmo vhod v nevronsko mrežo »vektor lastnosti«. Je dimenzijski vektor n - katerega elementi so značilnosti: f_{0}, f_{1}, f_{2} …, f_{n}. ~~~ vv {X} = [f_ {0}, f_ {1}, f_ {2},…, f_ {n}] ~~~ Zdaj pa razložimo, kako je mogoče ponavljajoče se nevronske mreže uporabiti za povezano nalogo s financami. Vhod za ponavljajočo se nevronsko mrežo je [X_{t_0}, X_{t_1}, X_{t_2}, …, X_{t_n}]. Recimo n = 5. Iz petih zaporednih dni smo vzeli pet cen delnic Google Close (glejte tabelo s podatki o odprtih / visokih / nizkih / zaprtih / upih), recimo med 4. januarjem 2010 in 08.01.2010, npr. [[311.35], [309.98], [302.16], [295.13], [299.06]] V tem primeru je vektor lastnosti enodimenzionalen. Časovno zaporedje je sestavljeno iz petih takih vektorjev značilnosti. Izhodi ponavljajoče se nevronske mreže so skrite funkcije [h_{t_0}, h_{t_1}, h_{t_2}, …, h_{t_n}]. Te funkcije so na bolj abstraktni ravni kot vhodne funkcije [X_{t_0}, X_{t_1}, X_{t_2}, …, X_{t_n}] —LSTM se mora naučiti pomembnih delov vhodnih lastnosti in jih projicirati v skriti prostor lastnosti. Te skrite in abstraktne funkcije je mogoče razširiti v naslednjo celico LSTM, ki bo zagotovila naslednji nabor skritih in bolj abstraktnih funkcij, ki jih je mogoče nato razširiti nazaj na naslednji LSTM itd. Po zaporedju verižnih LSTM je končna komponenta nevronske mreže linearna plast (konstrukcijski del preprostega naprednega omrežja, pojasnjenega v prejšnjem poglavju), ki preslika skrite značilnosti iz zadnjega LSTM v točko v dimenzijskem prostoru, in ta točka je končni rezultat omrežja - pričakovana cena zapiranja v časovnem obdobju X_{t+1} Resnica terena v tem primeru za X_{t+1} je 298.61.

Opomba: Lahko je tudi samo en LSTM - nastavitev števila LSTM je hiperpameter, ki ga običajno najdemo empirično, čeprav lahko uporabimo nekaj hevristik. Če podatki niso tako zapleteni, uporabimo manj zapleteno arhitekturo, da model ne prekriva podatkov. Če so podatki zapleteni, uporabimo zapleten model, tako da model ne ustreza podatkom.

V fazi usposabljanja se napovedane zaključne cene primerjajo z dejanskimi cenami zemljišč, razlika med napovedanimi zaključnimi cenami in dejanskimi cenami zemljišč pa se zmanjša z uporabo algoritma povratnega širjenja in algoritma za optimizacijo spusta nagiba (ali enega od njegove oblike - posebej v tem blogu se pri spreminjanju uteži nevronske mreže uporablja tako imenovana 'Adam' različica algoritma za optimizacijo gradientnega spuščanja).

Po treningu in testiranju mora uporabnik v prihodnje podatke vnašati le v nevronsko mrežo in ta bo vrnila pričakovano ceno (in upajmo, da je cena zelo blizu dejanski ceni prihodnosti). Tu je treba omeniti še to, da se pošiljke podatkov običajno pošiljajo po omrežju in se v testnih fazah usposabljajo za omrežje za izračun več izhodov v enem prehodu. Spodaj je slika arhitekture, ki se v tem blogu uporablja za poskuse. Sestavljen je iz dveh zloženih LSTM in linearne plasti.

vizualna predstavitev zgoraj opisane arhitekture

Poskusi algoritmov hege sklada

Poskusite uporabiti tako preproste algoritemske strategije trgovanja, kot sledi: če algoritem predvideva, da se bo cena naslednji dan zvišala, kupite n (n = 1 v tem primeru) delnice podjetja (dolge), sicer prodajo vse delnice podjetja (kratke). Začetna vrednost portfelja (skupna vrednost denarja in delnic) znaša 100.000 USD. Vsaka dolga ali kratka delnica bo kupila delnice n podjetja (v tem primeru Google) ali prodati vse delnice podjetja. Sprva je sistem lastnik 0 delnic določenega podjetja. Vedno si zapomnite, da je to zelo osnovni in preprost primer, ki ni namenjen uporabi v resničnem svetu, saj bi bilo treba veliko več raziskovalno-razvojnega dela, da bi model spremenili, da bi v praksi dobro deloval. Tu je nekaj zapostavljenih stvari, ki bi jih bilo treba upoštevati v resničnem okolju; na primer, provizije za transakcije niso vgrajene v model. Sistem naj bi lahko obratoval vsak dan popolnoma ob istem času, vsak dan, tudi ob koncu tedna ali praznikih, pa naj bi bil trgovalni dan.

Za testiranje se uporablja metoda povratnega testiranja. Metoda backtesting uporablja pretekle podatke za rekonstrukcijo operacij, ki bi se zgodile v preteklosti, s pravili, opredeljenimi s strategijo, ki je bila razvita. Podatkovni niz je razdeljen na dva dela - prvi del je sklop vadbe (preteklost), drugi del pa sklop preizkusov (prihodnost). Model je usposobljen v vadbenem kompletu, po treningu pa v drugem delu podatkovnega niza simuliramo prihodnost, da vidimo, kako bi se izurjeni model obnašal v prihodnosti, ne da bi bil v njem usposobljen.

Metrika za oceno strategije trgovanja je razmerje Sharpe (njegova letna različica, ob predpostavki, da so vsi dnevi v letu dnevi trgovanja, leto pa 365 dni): sqrt(365)*mean(returns)/std(returns)), kjer je donos opredeljen kot p_{t}/p_{t-1} - 1 in p_{t} je cena v časovnem obdobju t. Razmerje Sharpe prikazuje razmerje med donosi in dodatnim tveganjem, zato je lepo imeti večje razmerje Sharpe. Na splošno je razmerje, večje od 1, sprejemljivo za vlagatelje, 2 je zelo dobro in 3 odlično.

Kot značilnost se uporablja samo dnevna cena zapiranja zgodovinskih cen Googla iz nabora podatkov Yahoo Finance. Več funkcij bo pomagalo, toda preseganje obsega tega spletnega dnevnika je preizkusiti, katere druge funkcije nabora podatkov (odprta, visoka, nizka) so pomembne. Nekatere druge značilnosti, ki niso vključene v tabelo, bi lahko bile koristne, na primer razpoloženje novic v določeni minuti ali pomembni dogodki na določen dan. Vendar je včasih zelo težko narediti predstavitve podatkov, ki so koristne za vnos nevronske mreže, in jih združiti z obstoječimi funkcijami. Na primer, enostavno je razširiti vektor značilnosti in postaviti številko, ki predstavlja Trumpovo razpoloženje novic ali čivkanje (-1 zelo negativno, 0 nevtralno, +1 zelo pozitivno itd.) Za v določenem časovnem obdobju, vendar ni tako enostavno določiti določenih časov dogodkov (pirati v Sueškem prekopu, bomba v rafineriji v Teksasu) v vektor funkcije, ker bomo za vsak določen čas potrebovali dodaten element v vektor lastnosti, ki naj bo 1 če se je dogodek zgodil ali 0 v nasprotnem primeru bo prišlo do neskončnega števila predmetov za vse možne čase.

Za najtežje podatke bi lahko opredelili nekatere kategorije in za vsak trenutek določili, kateri kategoriji pripada. Dodali bi lahko tudi značilnosti delnic drugih podjetij, tako da sistem pozna korelacijo med cenami delnic različnih podjetij. Poleg tega obstaja vrsta nevronske mreže, specializirane za strojni vid, konvolucijske nevronske mreže, ki bi jo bilo zanimivo kombinirati s ponavljajočimi se plastmi in videti, kako so vizualne značilnosti povezane s cenami nekaterih podjetij. Mogoče bi lahko uporabili vir kamere s prenatrpane železniške postaje kot funkcijo in ga povezali z nevronsko mrežo in ugotovili, ali je to, kar vidi nevronska mreža, povezano s cenami delnic nekaterih podjetij - tudi v tem bi lahko bilo nekaj skritega znanja banalen in absurden primer.

Spodaj je graf, ki prikazuje, kako se povprečna izguba vadbe s časom zmanjšuje, kar pomeni, da ima nevronska mreža dovolj zmogljivosti, da se prilagodi podatkom o vadbi. Pomembno je reči, da je treba podatke normalizirati, da se algoritem globokega učenja lahko zbliža.

Grafikon trgovanja z globokim učenjem, ki prikazuje povprečno izgubo skozi čas

Spodaj je graf, ki prikazuje, kako se povprečna izguba na testu sčasoma zmanjšuje, kar pomeni, da ima nevronska mreža možnost posploševanja na nevidnih podatkih.

Graf trgovanja z globokim učenjem, ki prikazuje povprečno testno izgubo skozi čas

Algoritem je požrešen; če ste predvideli, da se bo cena zvišala naslednji dan, algoritem takoj kupi delež n=1 podjetja (če je v portfelju dovolj denarja), in če ne, prodajte vse delnice podjetja (če jih imate). Obdobje naložbe je fiksno in traja 300 dni. Po 300 dneh so vse delnice prodane. Simulacijo nevidnih podatkov po nekaj treningih si lahko ogledate spodaj. Prikazuje, kako se vrednost portfelja s časom vsak dan povečuje s kratkimi / dolgimi dejanji (ali nič).

Deep Learning finance diagram, ki prikazuje simulacijo nevidnih podatkov

Sharpejevo razmerje za zgornjo simulacijo je 1,48. Končna vrednost portfelja po 300 dneh je 100.263,79 USD. Če bi delnice kupili šele prvi dan in jih prodali po 300 dneh, bi bil portfelj vreden 99.988,41 USD. Spodaj je situacija, ko nevronska mreža ni dobro usposobljena in izgubi denar po določenem obdobju 300 dni.

Poslovni rezultati nevronske mreže

Sharpeovo razmerje je -0,94. Končna vrednost portfelja po 300 dneh je 99.868,36 USD.

Tukaj je zanimiv primer: zgornji algoritem je požrešen in napove samo ceno za naslednji dan, pri čemer meritve temeljijo le na tej napovedi. V naslednjih korakih v prihodnosti je mogoče povezati več napovedi in napovedati ceno. Na primer s prvim vnosom [X_ground_truth_{t0}, X_ground_truth_{t1}, X_ground_truth_{t2}, X_ground_truth_{t3}, X_ground_truth_{t4}] in prvi izhod, ki bi bil [X_predicted_{t5}], lahko s to napovedjo napajamo nevronsko mrežo, tako da je naslednji vhod [X_ground_truth_{t1}, X_ground_truth_{t2}, X_ground_truth_{t3}, X_ground_truth_{t4}, X_predicted_{t5}] in izhod je [X_predicted_{t6}]. Naslednji vnos je [X_ground_truth_{t2}, X_ground_truth_{t3}, X_ground_truth_{t4}, X_predicted_{t5}, X_predicted_{t6}] kar ima za posledico [X_predicted_{t7}] itd. Težava tukaj je v tem, da uvajamo napako napovedovanja, ki se z vsakim novim korakom povečuje in na koncu konča z zelo slabim dolgoročnim rezultatom, kot je prikazano na spodnji sliki. Napovedovanje sprva sledi trendu pada temeljne resnice, nato pa s časom stagnira in se poslabša.

Graf prikazuje kumulativno napoved, ki je v nasprotju s temeljno resnico skupnih vrednot

Za Googlove cene delnic je bila narejena zelo preprosta analiza poglobljenega učenja, ki pa lahko vključuje skoraj vse finančne podatke, če je količina podatkov dovolj velika in kakovostna. Podatki morajo biti diskriminatorni ter morajo dobro opisovati in predstavljati težavo.

V zaključku

Če bi obširno testiranje dobro delovalo in posplošilo, bi lahko sistem upravljavcem hedge skladov omogočil, da z globokim učenjem in zanašanjem na algoritemske strategije trgovanja špekulirajo o prihodnjih cenah delnic podjetja.

Upravitelji hedge skladov bi lahko sistemu dodelili znesek denarja za samodejno trgovanje vsak dan. Vendar bi bilo zelo slabo, če bi avtomatiziranim algoritmom trgovanja dovolili trgovanje brez nadzora. Upravitelj hedge skladov mora imeti nekaj veščin za poglobljeno učenje ali zaposliti nekoga s potrebnimi veščinami za spremljanje sistema in ugotavljanje, kdaj sistem izgubi sposobnost posploševanja in dobre trgovine. Če bi sistem izgubil sposobnost posploševanja, bi ga bilo treba iz nič izpopolniti in ponovno preizkusiti (morda z uvedbo bolj diskriminatornih lastnosti ali novih spoznanj - z uporabo novih podatkov iz preteklosti, ki niso obstajali, ko je bil model prvič usposobljen).

Včasih podatki preprosto niso dovolj dobri, da bi sistem globokega učenja dobro treniral in posploševal, in v tem primeru a izkušeni inženir globokega učenja taka situacija bi morala biti sposobna zaznati in odpraviti. Če želite zgraditi sistem trgovanja z globokim učenjem, potrebujete znanstvenike za podatke o hedge skladih, strokovnjake za strojno učenje (tako znanstvenike kot inženirje), inženirje R&R, ki poznajo strojno učenje / globoko učenje itd. Ne glede na to, kateri del aplikacije za strojno učenje poznajo, naj bo to strojni vid ali prepoznavanje govora, bodo prekaljeni strokovnjaki lahko uporabili svoje znanje v finančnem sektorju. V osnovi ima globoko učenje enake osnove, ne glede na aplikacijo ali panogo, zato bi moral biti nekdo z izkušnjami enostaven za prehod z ene teme na drugo.

Sistem, ki ga predstavljamo, je zelo osnovni in za uporabo v resničnem svetu je treba narediti več raziskav in razvoja za povečanje donosa. Možne izboljšave sistema bi lahko bile pri razvoju boljših trgovinskih strategij. Pomagalo bo zbrati več podatkov za usposabljanje, ki je običajno zelo drago. Manjši časovni interval med točkami je boljši. Lahko se pojavijo tudi izboljšave pri uporabi več funkcij (na primer občutki novic ali pomembni dogodki, ki ustrezajo vsaki točki v naboru podatkov, čeprav jih je težko kodirati za nevronsko mrežo) in obsežna mreža za iskanje in odkrivanje hiperparametrov. Arhitektura RNR .

Prav tako je potrebno več računalniške moči (zmogljivi grafični procesorji) za vzporedno izvajanje številnih velikih eksperimentov in obdelavo velike količine podatkov, pod pogojem, da se zbere velika količina podatkov.

Reference:

  • https://www.datacamp.com/community/tutorials/finance-python-trading
  • http://colah.github.io/posts/2015-08-Understanding-LSTMs/
  • https://en.wikipedia.org
  • https://www.investopedia.com/
  • https://finance.yahoo.com/
  • http://pytorch.org/

Opomba avtorja: Zahvaljujem se Ivanu Čapaliji in Mateju Paradžiku za konstruktivne pogovore in nasvete o poglobljenem učenju v financah, ki so mi pomagali pri pisanju tega bloga.

ApeeScape prinaša tri najboljše odstotke razvijalcev po vsem svetu za pomoč podjetjem pri reševanju pomanjkanja elitnih tehničnih talentov

Drugo

ApeeScape prinaša tri najboljše odstotke razvijalcev po vsem svetu za pomoč podjetjem pri reševanju pomanjkanja elitnih tehničnih talentov
Electron: enostavne namizne aplikacije na več platformah

Electron: enostavne namizne aplikacije na več platformah

Tehnologija

Priljubljene Objave
Kako postati Instagram influencer kot fotograf
Kako postati Instagram influencer kot fotograf
Nepopolna harmonija: pregled SoundCloud in Spotify
Nepopolna harmonija: pregled SoundCloud in Spotify
Kako uporabiti diagonale, horizonte in vodilne črte za popestritev vaše fotografije iPhone
Kako uporabiti diagonale, horizonte in vodilne črte za popestritev vaše fotografije iPhone
Talent ni blago
Talent ni blago
5 Nepogrešljive lastnosti voditeljev projektov
5 Nepogrešljive lastnosti voditeljev projektov
 
Kako priti do najboljše biografije na Instagramu
Kako priti do najboljše biografije na Instagramu
Uvod v Kotlin: Programiranje za ljudi za Android
Uvod v Kotlin: Programiranje za ljudi za Android
Strategija oblikovanja - vodnik po taktičnem razmišljanju v oblikovanju
Strategija oblikovanja - vodnik po taktičnem razmišljanju v oblikovanju
Kako ustvariti učinkovit okvir za oblikovanje (vključuje brezplačen okvir za uporabniški vmesnik skic)
Kako ustvariti učinkovit okvir za oblikovanje (vključuje brezplačen okvir za uporabniški vmesnik skic)
Direktor upravljanja projektov in izdelkov
Direktor upravljanja projektov in izdelkov
Kategorije
Donosnost In UčinkovitostRise Of RemoteProces In OrodjaIzdelki In EkipeInženirski ManagementSpletno MestoMobilniOrodja In VajeNamigi In OrodjaAgile Talent

© 2023 | Vse Pravice Pridržane

socialgekon.com