📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Neural Networks for Quant Finance

Roman Paolucci51:05

Transcription

[zene] Ha a kvantitatív kutatás vagy a kvantitatív kereskedés területén szeretnél részt venni, képesnek kell lenned a saját modelljeid felépítésére. Ebben a videóban azt szeretném bemutatni neked egy általános keretrendszert ezeknek a statisztikai tanulási modelleknek a felépítésére. Beszélni fogunk arról, hogyan tanulnak ezek a modellek az adatokból, pontosan mit tanulnak. Majd megvitatunk egy nagyon specifikus típusú tanulási modellt, ez a neurális hálózat, amely sok bonyolult architektúra alapja a modellek számára, amelyeket ma naponta használunk, a telefonunk arcfelismeréssel történő feloldásától kezdve a nyelvi modellezésig, mint például a ChatGPT és a transzformer architektúra. Ezt követően a kvantitatív pénzügyekben alkalmazott példákat fogjuk megvizsgálni, és megnézzük, hogyan tudunk betanítani egy neurális hálózatot opciók árazására.

Ahogy ebben a videóban látni fogjuk, az általunk ezen a területen felépített modellek szükségszerűen tévesek. Ez annak a függvénye, hogy mit tanulnak az adatokból. Ez azt jelenti, hogy soha nem fogunk tudni 100%-os pontosságú modellt felépíteni. Ezt csak egyszer láttam, és egy osztályozási problémán betanított modell volt.

Hogy hozzáférsz-e egy Jupyter notebookhoz egy új Quank Guild videóval. És tudjuk, hogy ez mindig igaz. Ez a Jupyter notebook az alábbi leírásban lesz linkelve. Felteszem a Quant Guild könyvtárába a GitHubon is, ahol megtalálod az összes Jupyter Notebookomat és a hozzá tartozó YouTube videókat, valamint az összes forráskódot a Quant építményeimhez.

Ennek a Jupyter notebooknak a tetején néhány kapcsolódó Quant videót fogsz találni, amelyek valószínűséget és statisztikát alkalmaznak a pénzügyekre és a kereskedésre. Ez az idősor-elemzés ötlete, kiskereskedelmi versus intézményi kereskedés, kereskedés versus befektetés, az elvárt érték felhalmozásának ötlete egy sor kereskedésen keresztül a P&L generálásához, kvantitatív versus diszkrecionális kereskedés, és természetesen három kereskedési mítosz lerombolása, amelyeket ezek a kereskedési guruk szeretnek terjeszteni. Ha nem vagy ismerős ezekkel az ötletekkel, erősen ajánlom, hogy először nézd meg ezeket a videókat, mielőtt egy ilyenhez hasonlóhoz fognál.

Továbbá, ezeknek a videóknak az elkészítése bizonyosan sok erőfeszítést igényel. Tehát, ha szeretnél segíteni a csatorna támogatásában, hogy továbbra is készíthessek ilyen jellegű videókat, kérlek, lájkold, kommenteld, iratkozz fel, oszd meg. Ez rengeteget segít nekem. Mindig nagyra értékelem.

És ha szeretnéd elsajátítani a kvantitatív készségeidet, nézd meg a quantankgild.com oldalt. Talán üzleti, közgazdasági, számítástechnikai háttérrel rendelkezel, és nem vagy biztos benne, hol kezdj a Quan utazásodon. Talán törekvő kvant vagy, vagy dolgozó szakember, aki szeretné élesíteni a kvantitatív készségeit. Bármelyik esetben a Quant Guild neked való. Több mint 90 Quant leckénk van matematikából, valószínűségből, pénzügyekből, egy adaptív gyakorló motorunk, amely a készségszintedhez igazodik, így egyre nehezebb témákra haladhatsz gamifikált rang alapú fejlődéssel, interjúkérdések teljes kidolgozott megoldásokkal, kereskedési játékok, kurzusok A-tól Z-ig kódolásból, matematikából, valószínűségből, statisztikából, és még több úton van. És mindez benne foglaltatik a Quankon Guild tagságban, és azonnal elkezdheted ingyen. Tehát, ha szeretnél segíteni a csatorna támogatásában és elsajátítani a kvantitatív készségeidet, nézd meg a quonkild.com oldalt.

Felesleges udvariaskodás nélkül, kezdjük azzal, hogy megvitatjuk ezt az általános keretrendszer ötletét ezekhez a statisztikai tanulási modellekhez. És sok modell közül lehet választani. Választhatunk lineáris logisztikai regressziót, random forest-ot, support vector machine-t, neurális hálózatokat, a lista folytatódik. De fontos megérteni, hogy függetlenül attól, hogy melyik modellt választod, ugyanazzal a problémával foglalkozol ebben a kvantitatív adat tudományi térben. Mindössze annyit próbálsz megtenni, hogy kiválasztasz egy optimális paraméterkészletet a kiválasztott modellhez, hogy a lehető legjobb előrejelzést produkáld. És később elmondom, miért nem szeretem az "előrejelzés" kifejezést, de egyelőre használom. Lényegében a keretrendszer a következő. Van valamilyen modell M, és ezt bármilyennek választhatod. A célod az, hogy valamilyen előrejelzést produkálj a rendelkezésre álló adatok X-re. Oké. Nos, nem kombinálhatjuk csak az M modellt a rendelkezésre álló X adatokkal. Szükségünk van valamilyen módra is, hogy tájékoztassuk ezt a modellt, hogy képes legyen jó előrejelzést produkálni. És ezt paraméterek kiválasztásával tesszük. Tehát lényegében minden m modell rendelkezni fog valamilyen paraméterkészlettel, amit thetanak fogok nevezni. Bármit választhatunk thetára. És amikor kombináljuk a rendelkezésre álló X adatokat a kiválasztott thetával, valamilyen előrejelzést kapunk, amit általában Y kalap jelöl. Oké, ez az általános keretrendszer a statisztikai tanulási modellekhez. Bármelyiküket gépi tanulási modelleknek nevezhetjük. A neurális hálózatok, ahogy később látni fogjuk, a gépi tanulási modellek egy specifikus típusa, amely lehetővé teszi a mélytanulást vagy a mesterséges intelligenciát. De ezt később látni fogjuk ebben a videóban.

Most, hogy megértettük ezt az általános keretrendszert, alkalmazzuk egy egyszerű problémára, mielőtt továbblépnénk a fejlettebb témákra. Ebben a példában mindössze annyit próbálok megtenni, hogy felépítek egy modellt, amely képes megjósolni egy adott egyén maximális futball dobási távolságát. Van oka annak, hogy itt nem használok részvényárakat vagy részvényhozamokat. Nem alkalmazunk statisztikai tanulási modelleket közvetlenül az árfolyam- vagy hozamsorozatokra. És ezt később látni fogjuk. Egyelőre koncentráljunk erre az általános keretrendszerre.

Tehát választok egy modellt. Bármilyen modellt választhatok. M-nek fogom hívni. Az a modell M rendelkezni fog egy paraméterkészlettel. Thetanak fogom hívni. És mit fogunk tenni, megfigyeljük a játékosok statisztikáit, mielőtt eldobnák a labdát. Talán olyan dolgokat nézünk, mint a magasságuk, súlyuk, maximális fekvenyomásuk, életkoruk. Bármilyen jellemzőt választhatunk, mielőtt ez az esemény bekövetkezik. Ez azelőtt van, hogy ténylegesen eldobnák a futballt. És ez most adathalmazként néz ki, amiből tanulhatunk. Lényegében megtanulhatjuk a paramétereket a prediktív modellünkhöz.

Tehát egy diagramban lényegében X a játékos statisztikái. Y a megfigyelt távolság. És ami történni fog, az az, hogy sok emberrel eldobatjuk ezt a futballt, amilyen messzire csak tudnak. Feljegyezzük a statisztikáikat, mielőtt eldobnák. Majd feljegyezzük a megfigyelt távolságot. Párosítjuk őket. Ez a játékos statisztikái a megfigyelt távolsággal. És mit fogunk tenni, paramétereket fogunk tanulni az adatokból, ez a theta kalap itt, hogy a lehető legjobb előrejelzést produkáljuk erre a távolságra a játékos statisztikái alapján.

Tartsd szem előtt, hogy nem választottam ki explicit módon egy modellt. Nem mondtam, hogy az M lineáris regresszió. Nem mondtam, hogy random forest, neurális hálózat. Ez bármilyen statisztikai tanulási modellre vonatkozik. Ezért gondolom, hogy nagyon fontos megérteni az általános keretrendszert, hogy bármilyen kiválasztott modellre alkalmazhasd, és ez eseti alapon fog történni. De mindenesetre, most hogy megértettük az általános keretrendszert, van egy adathalmazunk, igaz? Itt vannak a játékos statisztikáink. És emlékezz, ez egy jellemzőkészlet, amit választottam. Hozzáadhatnám, hogy hány felhúzást tudnak egy perc alatt. Hozzáadhatnék bármilyen jellemzőt, amit csak akarok, hogy segítsen megjósolni a maximális futball dobási távolságukat. De mindenesetre, van ez az adathalmazom.

Most, hogyan tanulok belőle? Van a modellem. Tudom, hogy annak a modellnek van valamilyen paraméterkészlete, a theta, és bármit választhatok erre a paraméterkészletre. Hogyan választhatom ki a lehető legjobb thetát, hogy a lehető legjobb előrejelzéseket kapjam a megfigyelt távolságokra a játékos statisztikái alapján? Nos, a gépek lényegében azáltal tanulnak, hogy minimalizálják a távolságot vagy a hibát az előrejelzéseik és a megfigyelt értékek között. Ezt tipikusan veszteségfüggvényként reprezentálhatjuk. Ebben az esetben a négyzetes hiba átlagát nézem. És mindössze annyit figyelsz itt, amennyi az összes tényleges távolság, amit megfigyelünk, mínusz a modellünk által megjósolt távolságok négyzete. Ennyi. Ez egy távolságmérő. És amit itt észreveszel, az a modellünk előrejelzései, amelyeket valamilyen thetával kapunk. De bármit választhatunk erre a thetára. Tehát mit jelent ez? Mi az egyetlen dolog, amit ebben a hiba függvényben beállíthatunk? Nos, beállíthatjuk a modell paramétereit. Nem változtathatjuk meg az adatokat. Nem változtathatom meg, milyen messzire dobott valaki egy futballt. De kiválaszthatom, hogy milyen modellt és milyen paramétereket szeretnék.

Tehát ez egy minimalizálási problémává válik. Igazán azt próbálom megtenni, hogy minimalizáljam ezt a hibát bármelyik kiválasztott modellre a theta paraméterkészlet alapján. És igazán azt keresem, ami ez a theta csillag. A célom az, hogy megtaláljam azt a argumentum thetát, amely minimalizálja a négyzetes hiba átlagát. Ez a távolság a modellünk előrejelzései és a tényleges megfigyelt értékek között. Mert emlékezz, mi az Y kalap? Nos, az Y kalap csak a modellünk előrejelzése. Ez az, amiről beszéltünk, amikor bemutattuk ezt az általános keretrendszert.

Tehát ez egy optimalizálási problémává válik. Hibát próbálunk minimalizálni. Ez minden egyes statisztikai tanulási modellre vonatkozik. Pontosabban, ezt felügyelt tanulási modellnek hívják. De most eltérünk ettől a fogalomtól. A kvantitatív adat tudományi térben a minimalizálási problémák megoldásának aktusa edzésnek, modellillesztésnek vagy modellkalibrációnak ismert. És ezt lényegében kétféle minimalizálási problémaként vizualizálhatjuk. Vannak konvex problémáink és nem konvex problémáink.

Ha a konvex problémát nézzük, akkor valójában nagyon könnyű megoldani. Ha minimalizálni próbáljuk, akkor igazán csak csúszásként tekinthetünk rá. Ha bárhol elindulok a függvényen, végül lecsúszok a globális minimumig. És tartsd szem előtt, hogy ez a globális minimum a modellünk paraméterei, amelyek minimalizálják a hibát. Ez a legkisebb lehetséges hiba a kiválasztott modellünk számára. És ez az, amit keresünk. Ezt a theta csillagot keressük.

A valóságban nem konvex problémákkal foglalkozunk. Nem konvex problémákkal foglalkozunk. És itt fogod látni, ha elindulunk valahol ezen a függvényen és lecsúszunk, elakadhatunk az úgynevezett helyi extrémumban vagy helyi minimumban, és nem tudunk visszakapaszkodni. Így működnek ezek az optimalizálási algoritmusok. Lényegében lépkednek a függvényen valamilyen dimenzióban, és lecsúsznak, hogy csökkentsék az összhibát. De itt elakadhatsz, mert mi történik, amikor egészen idáig leérsz? Nos, ha bármelyik irányba elindulsz, a hiba növekedni kezd. Lehet, hogy azt mondod: "Nos, Roman, látjuk ezt, igaz? Miért nem választjuk csak ezt a paraméterkészletet? Válasszuk csak ezt." Ez egy absztrakció. Soha nem határoztam meg egy modellt, és soha nem határoztam meg a theta paraméterkészlet dimenzióját. Ez érvényes két dimenzióban, háromban, és így tovább. Ez az ötlet a konvex vagy nem konvex függvényről és a minimalizálási problémáról, amellyel foglalkozunk. De fontos megérteni, hogy nem tudjuk vizualizálni a függvényeket, és csak kiválasztani a paraméterkészletet, ami itt van. Ez hasznos megérteni, miért, mert elakadhatunk ezekben a helyi extrémumokban, és mivel nem tudjuk vizualizálni a függvényt, nem tudjuk csak kiválasztani a paraméterkészletet, amely a legkisebb hibát adja. Tehát okosnak kell lennünk abban, hogyan oldjuk meg ezeket a minimalizálási problémákat. Sok technika létezik, amit használhatunk. Van sztochasztikus gradiens leszállás, minden változata, és így tovább. Ha van érdeklődés ebben a témában, különösen a nem konvex optimalizálásban, ez nagyon speciális, az egyik kedvenc témám. Nagyon boldog lennék, ha videót készítenék a különböző optimalizálási rendszerekről. Csak szólj hozzá az alábbi kommentekben. De a lényeg, amit itt meg kell érteni, az, hogy a minimalizálás lényegében modellképzés, modellillesztés, modellkalibrálás. És kétféle problémával foglalkozunk. Vannak konvex és nem konvex optimalizálási problémáink.

Nos, a konvex ideális, igaz? Lényegében csak lecsúszhatunk a függvényen bármilyen dimenzióban. Ha konvex, akkor csak lecsúszunk a minimumig. De a valóságban nem ezekkel foglalkozunk. Ezekkel foglalkozunk. És ez egy sokkal nehezebb probléma megoldani. Ez a globális minimum megtalálása. Ez a theta paraméterkészlet. Emlékezz, erre törekszünk itt. A paraméterkészlet theta a kiválasztott modellünkhöz, amely minimalizálni fogja a hibát az összes megfigyelt adat felett.

Most, hogy jó megértésünk van a modellképzés, illesztés, kalibrálás folyamatáról, fontos kérdést kell feltennünk. Szeretnénk, ha ezen a globális minimumon lennénk? És a válasz nem mindig igen. Itt van egy nagyszerű animáció, amely ezt illusztrálja. Ugyanazt a mintát az adatokból, ezek a kék szórás pontok itt, és három különböző modellem van. Van egy alulillesztett modellem, egy túlzottan illesztett modellem és egy robusztus modellem. Amit tenni fogok, az az, hogy új adatpontokat fogok bevezetni. Ez azt jelenti, hogy ezeket a modelleket fogom használni egy előrejelzés létrehozására, és lényegében versenyeztetni fogom őket. Meg fogom nézni, melyik modell produkálja átlagosan a legjobb előrejelzéseket. És látni fogod itt, ezek a sárga pontok az új megfigyelt adatpontok. A piros vonalak a modell által megjósolt érték és a tényleges megfigyelt érték közötti távolságot jelölik. És amit meg szeretnék figyelni, az az, hogy a robusztus modellnek van a legkisebb hibája a túlzottan illesztett és az alulillesztett modellhez képest. Ez nem véletlen. Ez a lényeg, amikor modellt képzelünk. Amikor thetát keresünk, mindig túlzottan illeszthetjük a modellt a megfigyelt adatokhoz. Ez nem jelenti azt, hogy jól fog teljesíteni új vagy nem látott adatokon. A célunk egy olyan modell felépítése, amely jól általánosít, nem csak egy adott adatmintán működik.

Tehát amikor ezt a túlzottan illesztett modellt nézzük itt, a thetát választottam, amely lehet, hogy ezen a globális minimumon van. De amikor új adatokat vezetünk be, az "out-of-sample" pontosság, ahogy mi hívjuk. Amikor új adatmintákat figyelünk meg, és megnézzük a pontosságot, az "out-of-sample" pontosság a látott alulillesztett vagy robusztus modellhez képest is szörnyű, majdnem háromszor magasabb. Ha az alulillesztett modellt nézzük, viszonylag jobban teljesít. Ez nem feltétlenül mindig így van, de természetesen a robusztus modellt keressük, azt, amelyik megtanulja az általános trendeket a korábban látott adatokból, hogy tájékozott előrejelzéseket tegyen a jövőre nézve. És ez pontosan az, amit itt látunk ebben az animációban. Látod, ahogy új pontokat figyelünk meg, a robusztus modell átlagosan mindig a legjobb előrejelzést produkálja. És ez az, amit keresünk, amikor modelleket képzelünk. Olyan thetát keresünk, amely nem csak illeszkedik a megfigyelt adatokhoz. Nos, azt akarjuk, hogy általánosítson, amikor új adatokat figyelünk meg. Amikor új játékos statisztikákat figyelünk meg, a lehető legjobb előrejelzést akarjuk produkálni. Nem csak a korábban látottak alapján, hanem ezt az információt felhasználva az általánosításhoz. Nos, ez az, amit itt látunk ebben az animációban.

Tehát hogyan építsünk robusztus modellt? Nos, elkerülhetjük a modellek túlzott és alulillesztését, ha képzési, érvényesítési és tesztelési felosztást hozunk létre a megfigyelt adatokhoz. Lényegében, mondjuk megfigyelek 1000 embert, akik eldobnak egy futballt. Fel fogom darabolni, és az adatok 60%-át fogom használni a modell képzésére, 20%-át fogom érvényesíteni, és 20%-át fogom félretenni tesztelésre "out-of-sample". Ez azt jelenti, hogy lesz egy teljes adatrészem, amit soha nem mutatok meg a modellnek, hogy teszteljem a modellel, és láthatom, hogyan teljesítene új adatokon. És így tudjuk elkerülni a modellünk túlzott illesztését.

Tehát amikor ezt a minimalizálási problémát megoldjuk, hibák sorozatát fogjuk kapni a kiválasztott paraméterkészlet alapján. És amit tenni fogunk, az az, hogy nem csak a képzési halmaz hibáját fogjuk nézni. Tehát láthatod itt, hogy van képzési veszteségem egy sor lépésen keresztül, és van érvényesítési veszteségem egy sor lépésen keresztül. Ezek két különböző adatminta. Csak a képzési halmazzal tájékoztatom a thetát paraméterkészletemet ebben a minimalizálási problémában. És ez azt jelenti, hogy tovább képzelhetem, és akár túl is képzelhetem és túlzottan is illeszthetem. De mi fog történni az érvényesítési modellel, az érvényesítési pontossággal, amint elkezdem túlzottan illeszteni a képzési adathalmazhoz? Nos, a hiba növekedni fog. És ez pontosan az, amit itt látsz. Láthatod, hogy mind az érvényesítési, mind a képzési hibák csökkenni fognak. De végül a képzési hiba tovább csökken, és az érvényesítési hiba növekedni kezd. Amit igazán szeretnék tenni, az az, hogy itt állítsam le a képzést, és használjam azt a thetát paraméterkészletet a modellemhez. Majd használhatom azt a modellt és paraméterkészletet a teszt adatokon, és megnézhetem, hogyan néz ki az "out-of-sample" teljesítményem. Ha úgy néz ki, mint a képzési és érvényesítési halmaz, akkor van egy nagyon szép és robusztus modellem. A lehető legjobb előrejelzéseket produkálom, amit csak tudok, figyelembe véve a megfigyelt adathalmazt, és ez mindig a célod.

Oké, tehát sok mindent áttekintettünk itt. Megértjük, hogy bármilyen modellt választhatunk. A célunk az, hogy megtaláljuk a paramétereket ahhoz a modellhez, hogy jó előrejelzést produkáljunk. Nem akarunk alulillesztett. Nem akarunk túlzottan illesztett modellt. Robusztus modellt akarunk. Feldaraboljuk az adatainkat képzési, érvényesítési, tesztelési halmazokra, hogy ezt elérjük. Amikor megoldjuk azt a minimalizálási problémát, végül megállunk, és használjuk azt a paraméterkészletet, és ez adja a robusztus modellünket.

De mit is tanul valójában a modellünk? Hogyan értelmezzük azokat az előrejelzéseket? Mit tanulnak ezek a modellek? Nos, nézzünk meg egy nagyon egyszerű példát, hogy megértsük, mi történik. Van ez az ötletem a kockadobásról. Mindannyian tudjuk, hogy a kockadobás véletlenszerű. Nem tudom ténylegesen megjósolni a véletlen változó kimenetelét. Oké. Nos, ha ez egy véletlen változó, akkor kiszámíthatunk statisztikákat és valószínűségeket. Oké. Nos, mi az átlagos értéke egy kockadobásnak? Az 3,5 lesz. Ha itt alkalmazzuk az elvárás definícióját, láthatod, hogy mit kapunk? Három és felet. Rendben. Nos, használjunk egy gépi tanulási megközelítést, hogy megpróbáljuk megjósolni egy kockadobás kimenetelét. Dobni fogok, ahogy a játékos statisztikáival tettem a fenti futball dobási példában. 10 000 kockát fogok dobni, és fel fogom jegyezni az összes kimenetelt. És amit tenni fogok, az az, hogy választok egy M modellt, és megpróbálom megtanulni a thetát paraméterkészletet a minimalizálási probléma megoldásával, hogy megjósoljam egy kocka kimenetelét.

Tehát amit itt figyelsz, az az, hogy minden lépésben képzelem a modellem. Mi történik a hibával? Csökken, igaz? Ez a képzési, illesztési, kalibrálási folyamat. Végül megkapom a megjósolt értékemet. Ebben az esetben a kiválasztott modellem egy neurális hálózat volt. És az érték, amit megjósolt, mi volt? 3,5. Mi az elméleti elvárás, amit fentebb kiszámoltunk? 3,5. És ez nem véletlen. A neurális hálózatok, a modellek ebben a kapacitásban valamilyen elvárási formát tanulnak. Ez az, amit a videó elején mondtam. Ezért nem szeretem az "előrejelzés" kifejezést. Nem produkálsz előrejelzést. Lényegében csak egy elvárást produkálsz, és az elvárás szükségszerűen téves. Minimalizálja a hibát. Nem produkál előrejelzést, mintha kristálygömböd lenne.

Valójában, hadd tegyek fel egy kérdést. Egy kocka egyáltalán landolhat 3,5-en? Nem. Az előrejelzés mindig téves lesz. De ez az az érték, amely minimalizálja a négyzetes hiba átlagát. Tehát ebben a térben, amikor ezeket a statisztikai tanulási modelleket implementálod, értsd meg, hogy egy elvárási függvényt tanulsz. Nincs olyan, hogy előrejelzés. Szükségszerűen téves. Az, hogy mennyire téves ez a statisztikai tanulási modell, túl sok tényezőtől függ ahhoz, hogy itt megvitassuk. De nézheted csak a robusztusság szempontjából. Ha egy túlzottan illesztett vagy alulillesztett modellt használsz, az előrejelzéseid önkényesen rosszabbak lesznek, mint ha valamilyen robusztus modell lenne. Ezért nem szeretem az "előrejelzés" kifejezést. Mindent ebben a térben valamilyen elvárásként kell gondolnod. És ha csak egy kockadobást nézel példaként, rájössz, miért nem tudsz ténylegesen semmit megjósolni. Minimalizálod a hibát. Az az érték, amely minimalizálja a hibát egy kockadobásnál, nem egy lehetséges kimenetel egy kockadobásnál. Tehát ez egy nagyon fontos ötlet megérteni, különösen a modellek értelmezésekor.

Most már világosnak kell lennie, miért nem fog ez működni részvényárakon vagy részvényhozamokon, különösen tekintettel arra, hogy mennyit beszélek ezen a csatornán a véletlenszerűség és a bizonytalanság között. Ezen a ponton látnunk kell, pontosan miért nem működnek ezek a modellek részvényárakon vagy hozamokon. Van valamilyen statisztikai tanulási modellünk, M. Szeretnénk kiválasztani egy thetát paraméterkészletet ehhez a modellhez, hogy a lehető legjobb előrejelzéseket fejlesszük ki. Túlzottan illeszthetjük, alulilleszthetjük, de ha a megfelelő módon feldaraboljuk az adatainkat, és abbahagyjuk a modell kalibrálását, illesztését vagy képzését, amikor az érvényesítési hibánk növekedni kezd, akkor egy kellően robusztus modellünk lesz a nem megfigyelt adatokhoz. Oké, de mit is tanul az a modell? Nos, láttuk, hogy lényegében valamilyen elvárási függvényt tanul, mint ebben a kockadobási példában. Valaha is meg fog változni egy kockadobás elvárása? A válasz nem. De megváltozik-e egy részvényár vagy az adott részvény hozamainak elvárása? Abszolút. És ha megpróbálod ezeket a statisztikai tanulási modelleket közvetlenül az árfolyam- vagy hozamsorozatokra alkalmazni, akkor valami ilyesmit fogsz megfigyelni. Látni fogod, hogy rendben, talán illesztem a modellem, és láthatod a kék részvényárfolyam-utat itt. Látod a zöld modellt, és "in-sample", rendben, elég jól teljesít. Viszonylag robusztus módon illesztettem. És ez a függőleges vonal nem látott adatokat jelöl. Ez a piros, szaggatott vonal az én modell előrejelzésem. Hogyan teljesít? Nos, szörnyen. És ez azért van, mert az az adat, amelyen a modellem képzett, nem tükrözi azt az eloszlást, amelyre az adatokból megfigyelem, amikor a modellt gyakorlatban alkalmazom. Mi ennek az oka?

Ha megnézzük ezt az animációt, meg fogom mutatni, ez a részvényhozamok eloszlása az idő múlásával. Ez a kockadobások eloszlása az idő múlásával. Oké. Nos, egyértelműen a kockadobás eloszlása nem változik. De a nem megfigyelhető adatgeneráló eloszlás, amely a részvényhozamokat irányítja, ez a részvényárfolyam-út itt, ez mindig változik. Látens folyamatok hajtják. Nem tudjuk közvetlenül megfigyelni. Csak ezt az empirikus eloszlást tudjuk megfigyelni. Ezért olyan fontos megérteni ezt az általános keretrendszert, mert mindegy, melyik modellt választjuk. Nem arról van szó, hogy jobb modellt választunk. Nem is arról, hogy jobb paramétereket választunk. Meg kell értened, hogy az adatgeneráló eloszlás idővel változik. És ha az eloszlás idővel változik, akkor mi is változik? Minden valószínűség és statisztika.

Mit tanul valójában a modellünk? Valamilyen statisztikát tanul. Ez pontosan az, amit ebben a példában láttunk. Ezért nem alkalmazhatjuk naivan ezeket a tanulási modelleket az árfolyam- vagy hozamsorozatokra. Az adatok súlyos nem-állandóságot mutatnak. Mindig valami ilyesmit fogunk kapni. Így nem implementálják ezeket a statisztikai tanulási modelleket a gyakorlatban. Ezt később meg fogjuk vitatni. De nem alkalmazzuk őket közvetlenül árakra vagy hozamokra. Ez egy nagyon fontos ötlet megérteni, és a súlyos nem-állandósággal kapcsolatos, amit valójában megfigyelünk az adatokban. Ha az adatok ésszerűen stabilak lennének, akkor igen, a modellek sokat tanulnának, és nagyszerűen teljesítenének. De ez nem így van. És ez vonatkozik bármilyen mögöttes adatgeneráló eloszlásra, amely ezt a súlyos instabilitást, ezt a súlyos nem-állandóságot mutatja.

Most, hogy ismerjük ezt az általános keretrendszert a statisztikai tanulási modellekhez, megvitathatjuk a neurális hálózatokat, és a tényleges belső működésük nem is annyira fontos. Ha megérted az általános keretrendszert, tudjuk, hogy egy M modellt választunk. Ebben az esetben ez egy neurális hálózat. Most van egy paraméterkészletünk, amit ki kell választani. Oké, képzünk, illesztünk, kalibrálunk. Nem akarjuk túlzottan illeszteni, alulilleszteni. Robusztus modellt akarunk. És akkor képesek leszünk előrejelzéseket produkálni. És ez nem csak a neurális hálózatokra igaz, hanem bármilyen modellre, amit ebben a kapacitásban választunk.

Mindenesetre, beszéljük meg, hogyan jut el egy neurális hálózat azokhoz a végső előrejelzési értékekhez. Lényegében minden neurális hálózat egy óriási összetett függvény. És amit teszünk, az az, hogy sok súly mátrixot és bias mátrixot választunk. És csak összeragasztjuk őket mátrix szorzatokkal, és belekeverünk valamilyen aktivációs függvényt. Tehát amit teszünk, az az, hogy vesszük az eredeti jellemzőkészletet. Gondolhatsz akár a játékos statisztikáira a fenti futball dobási példából. És amit tenni fogunk, az az, hogy vesszük ezt az adathalmazt, és megszorozzuk ezt a súly mátrixszal. Majd hozzáadunk egy bias mátrixot. Majd alkalmazunk egy aktivációs függvényt elemként minden elemre a mátrixban. Majd megismételjük újra és újra, és végül megkapjuk a kimenetünket.

Most ez csak egy függvény. A szorzatok mátrix szorzatok. Valami ilyesmi néznek ki. De igazán csak egy függvény. Kiválasztunk egy thetát. Ebben az esetben a theta egy sor súly és bias mátrix, és mindet összeragasztjuk úgy, hogy kimeneti vektorokat kapjunk. Tehát mindössze annyit mondok, hogy adj nekem egy bemeneti halmazt, átdugom ezen a függvényen, és kapsz egy kimeneti halmazt. Ez minden, amit egy neurális hálózat ebben a konkrét architektúrában. Egy előre táplált neurális hálózattal foglalkozunk. Ebben a vizualizációban csak egy úgynevezett rejtett réteg van. És ha több mint egy rejtett rétegünk van, ahogy ebben az összetett függvény példában látjuk, akkor egy mélytanulási modellel foglalkozunk. Ez minden, amit a mélytanulás jelent, ez egy óriási összetett függvény egy statisztikai tanulási modellhez. És a thetánk lényegében az összes súly és bias mátrixot képviseli.

A célunk akkor mi? Az, hogy megtanuljuk a lehető legjobb thetát. A legjobb súly és bias mátrixokat ehhez a megfigyelt adathalmazhoz, hogy a lehető legjobb előrejelzést produkáljuk.

Most van valami különleges a neurális hálózatokban. Tudjuk, hogy ezek a statisztikai tanulási modellek lényegében az elvárási függvényt próbálják megtanulni, legyen az feltétlen vagy feltételes. Feltétlen a kockadobási példa esetében. Feltételes a maximális futball dobási távolság esetében. Igaz? Feltételezem az életkort, maximális fekvenyomást, súlyt, magasságot. A fogás itt az, hogy nem minden statisztikai modell lesz képes megtanulni ezt az elvárási függvényt. Például, itt látod, hogy van ez a görbület? Egy lineáris modell nem tudja ezt rögzíteni. De egy neurális hálózat, függetlenül az elvárási függvény alakjától, mindig képes lesz ezt rögzíteni. És ez az univerzális approximációs tételnek köszönhető. Lényegében a neurális hálózatok univerzális függvény approximátorok. Bármilyen folytonos függvényt képesek közelíteni tetszőleges pontossággal kompakt halmazokon. És ez az, amit univerzális függvény approximátornak jelent.

Van egy nagyszerű animációm, amely pontosan illusztrálja, mit jelent ez. Itt van egy adathalmazom, és a narancssárga, szaggatott vonal az elvárást jelöli, amit meg akarok tanulni. Nem tudom analitikusan, mi ez, igaz? Mi az az elvárási függvény a maximális futball dobási távolságra? Nem tudom. Megpróbálom megtanulni, mi ez a statisztikai modellem segítségével. És egy neurális hálózat lényegében kalibrálni, illeszteni vagy képezni fogja a megfigyelt adatokon. És valami ilyesmit fog produkálni. És ahogy látod, illeszkedik ehhez az elvárási függvényhez. És tudjuk, hogy képes erre az univerzális approximációs tételnek köszönhetően. Más szóval, egy lineáris regresszió, például egy legjobb illeszkedő vonal, nem tudta ezt megtenni. Nem tudta kalibrálni, illeszteni vagy képezni ezt az igazi függvényt. De egy neurális hálózat igen.

Ez most összeilleszti a puzzle minden darabját. Pontosan tudjuk, hogyan tanulnak ezek a statisztikai modellek. Tudjuk, mit tanulnak, és most már tudjuk, hogy némelyik képes, némelyik pedig nem képes megtanulni a kívánt függvényt, és ezért olyan erősek a neurális hálózatok. Mindig képesek bármilyen alakú folytonos függvényt megtanulni.

Ezen a ponton valami ilyesmit kellene mondanunk: ez nagyszerű, de nem használunk statisztikai tanulási modelleket véletlen változókon. Tudjuk azokat a dinamikákat. Tudjuk, milyen statisztikák kapcsolódnak hozzájuk. Nem kell közelítenünk az elvárási függvényt egy érmefeldobáshoz vagy egy kockadobáshoz. És azt mondod, hogy nem használhatjuk olyan dolgokon, mint a részvényhozamok, vagy bármi, ami bizonytalan. Bármi, ahol az alapvető adatgeneráló eloszlás idővel változik. De hát nem ez minden? Nem ez egy bizonytalan rendszer alapvető ötlete? Az, hogy nincs konvergencia a statisztikákban, valószínűségekben, eloszlásokban. Ez nagyrészt helyes.

És ez elvezet minket a megoldott vagy majdnem megoldott problémák és a megoldatlan problémák fogalmához. Lényegében azt mondom itt, hogy a nem-állandóság erőszakossága határozza meg, hogy mennyire produktívak ezek a statisztikai tanulási modellek a tényleges előrejelzések produkálásában. Mit értek ezen? Két diagramom van itt. Bal oldalon az arcfelismerő modell latens tere, jobb oldalon pedig én próbálom megjósolni a részvényárfolyam-utat. Bal oldalon. Amit itt figyelsz, az a modell hiperplánja. Ez elválasztja a sikeres osztályokat. Ez minden bizonnyal az az arc, amelyet osztályozni próbálsz, a sikertelen osztályoktól. Ez biztosan nem az az arc, amelyet osztályozni próbálunk. Mit veszel észre? Van egy világos elválasztó határ. Más szóval, a modellnek van kapacitása annyira magabiztosnak lenni, hogy biztonságos legyen az Apple pénztárcádhoz, jelszavaidhoz, és így tovább. Soha nincs olyan idő, amikor aggódnod kellene egy hamis pozitív vagy hamis negatív miatt. Persze, lehet, hogy ezeket a hamis negatívokat kapod, igaz, mindig. Megpróbálod feloldani a telefonodat, és ó, be kell ütni a jelszót, igaz? De nem igazán törődik ezekkel a hamis negatívokkal. Csak próbáld újra. Olyan statisztikailag biztos, amennyire csak lehetséges. És más szóval, soha nem aggódsz, hogy ez a bizonyosság ebbe a határba sodródik, és fordítva. Soha nem kell igazán aggódnod a hamis pozitív miatt. És ez nem azt jelenti, hogy az alapvető adatgeneráló eloszlás nem változik, igaz? Az arcod idővel változik. Talán amikor szakállat növesztesz, az arcazonosító nem működik olyan jól. Talán hozzá kell adnod, és újra be kell szkennelned az arcodat, igaz? Az alapvető adatgeneráló eloszlás ott változik, de a stabilitás még mindig ott van. Nem változik olyan erőszakosan, mint a részvényár, a részvényhozamok eloszlása.

És ez egy nagyon fontos ötlet megérteni. Bármely statisztikai tanulási modell hatékonysága csak annyira lesz jó, mint az alapvető adatgeneráló eloszlás stabilitása. Ha az alapvető adatgeneráló eloszlás stabil, akkor van egy nagyon ésszerű elvárási függvényed, amit közelíteni kell, és ez nem fog idővel változni. De ha erőszakosan instabil, és súlyos nem-állandóságot mutat, ahogy itt megfigyeljük, akkor mindig egy mozgó célpontra fogod illeszteni a modelledet. És ez az ötlet a megoldott vagy majdnem megoldott probléma versus egy megoldatlan probléma. Igaz? Soha nem aggódsz, hogy az arcazonosítód nem fog működni, igaz? Be fogsz jutni a telefonodba, igaz? De a modelled nem feltétlenül fog ésszerű elvárást produkálni a részvényárakra. És ez alapvetően a különbség itt: igen, ugyanazzal a bizonytalan rendszerrel foglalkozunk. Igaz? Semmi sem konvergál. Valószínűségek, statisztikák, eloszlások nem konvergálnak. De sokkal több stabilitás van az arcfelismerés terén, mint a részvényárfolyam-út térben.

Most térjünk át a kvantitatív pénzügyekben alkalmazott példákra. És sok alkalmazása van ezeknek a statisztikai tanulási modelleknek. Gépi tanulási modellek, neurális hálózatok, mélytanulási modellek, mesterséges intelligencia, amit csak akarsz nevezni. De ebben a videóban csak egy problémakört fedtünk le. Beszéltünk az úgynevezett felügyelt tanulási problémáról. És ez az, ahol van valamilyen adathalmazunk. Megfigyelünk valamilyen célt, mint például azok a futball dobási távolságok, és megpróbáljuk illeszteni a modellt, vagy kalibrálni, képezni, a hiba minimalizálásával, igaz? És azt akarjuk, hogy a modell robusztus legyen. Azt akarjuk találni, lényegében azt az elvárási függvényt. De vannak más típusú gépi tanulási módszerek is. Vannak felügyelet nélküli és megerősítéses tanulásunk. Ha érdekelnek videók ezekről a témákról, kérlek, szólj hozzá az alábbi leírásban. Nagyon szeretnék videókat készíteni ezekről a különböző típusú gépi tanulási algoritmusokról. Talán beszélhetünk lineáris és nemlineáris dimenziócsökkentésről a felügyelet nélküli tanulásban. Beszélhetünk megerősítéses tanulásról, talán optimális delta fedezéshez. Mindenesetre, ha van érdeklődés, kérlek, szólj.

De ebben az esetben, hogyan alkalmazhatjuk, amit már megtanultunk, a kvantitatív pénzügyekre? Nos, használhatjuk kvant kereskedési jelgenerálásra. És a jövőben készíteni fogok egy videót arról, amit mesterséges intelligenciának fogok nevezni a kvant kereskedéshez, hogy megmutassam, pontosan hogyan implementálják ezeket a modelleket ezen a területen. Ismétlem, nem közvetlenül az árfolyamon vagy a hozamsorozaton. Tehát használhatjuk kvant kereskedéshez. Használhatjuk az opciók árazási funkcionálisok hatékony közelítésére is. Hamarosan megmutatom, hogyan tudunk betanítani egy neurális hálózatot az opciók árazásának megtanulására. Ez különösen hasznos olyan modellekhez, amelyeknek nincs analitikus megoldása, ami szinte mindegyikre igaz. És ez hasznos a hatékony kalibráláshoz és az egzotikus árak extrapolálásához.

Használhatjuk a neurális hálózatokhoz kapcsolódó különböző architektúrákat is, mint például a variációs autoenkóderek, GAN-ok kísérleti portfólió kockázati mérőszámokhoz. Sok munka folyik ezen a területen az irodalomban, sok nagyon érdekes irányzat az új érték a kockázat mérőszámokhoz és így tovább. De itt meg fogjuk vizsgálni ezt az ötletet, hogy egy neurális hálózat megtanulja a Black-Scholes árazási funkcionálist, a Black-Scholes modellt. És igazán, mi is az a Black-Scholes modell? Igen, a Black-Scholes argumentum keretében van a folytonos idejű delta hedgingünk, a kockázatmentességi semlegességgel dolgozunk, igaz? Ez egy portfólió replikációs érv, és ez az, ami előállítja a parciális differenciálegyenletet, amelyet megoldhatunk, hogy megkapjuk a modellt itt, de ez egyenértékű a kockázatmentes diszkontált elvárással is. És ha elvárással foglalkozunk, mit jelent ez? A neurális hálózatunk egy univerzális függvény approximátor. Képes közelíteni ezt a függvényt? Ó, biztosan képes.

Tehát generálunk egy csomó paramétert ehhez a Black-Scholes modellhez. Majd előállítjuk a Black-Scholes árat. Lényegében ez ugyanaz, mint mi? Megfigyelni a játékos statisztikáit és rögzíteni a távolságot. Igaz? A statisztikák helyett modellparaméterekkel rendelkezünk. A távolság helyett opcióárral rendelkezünk. És most mit fogok tenni, betanítok egy neurális hálózatot, hogy megtanulja ezt a Black-Scholes modellt itt. És betanítom ezt a neurális hálózatot itt. És amit alább látsz, az egy diagram az analitikus Black-Scholes megoldásról, ami itt van, és az árazási funkcionális neurális hálózati közelítése, és csak néhány epókon keresztül képzettem, és nagyon gyorsan konvergálni kezd.

Most miért hasznos ez? Ebben a konkrét esetben nem hasznos. De ha nem lenne lehetőségem előállítani ezt az analitikus funkcionálist itt, akkor rengeteg időt takarítana meg, ha offline képzem ezt a neurális hálózatot. Ez bekerül az egzotikus árak extrapolálásának ötletébe ezekkel az árazási funkcionálisokkal, amelyeket neurális hálózatok közelítettek meg. Ez az egyik kedvenc témám. Itt kezdhetsz el lényegében volatilitást tanulni a durva modellcsaládhoz. Mindezek a különböző nem-Markovian modellek, mindazok a modellek, amelyeknek nincs analitikus megoldása. Ha van érdeklődés ebben a témában, nagyon szeretnék több videót készíteni róla. De ez lényegében az alapja az egzotikumok extrapolálásának ezekben a fejlettebb, bonyolultabb keretrendszerekben. Nincs meg ez az egyenlet része, ha a Black-Scholes-on túl működünk. Tehát ha képesek vagyunk árakat szimulálni, és megtanítani egy neurális hálózatot erre az elvárásra, akkor az a neurális hálózat nagyon gyorsan képes lesz árakat produkálni, és ez alapvetően az irodalom ezen ága. Tehát szólj hozzá az alábbi kommentekben, ha szeretnéd látni ezt a témát. Nagyon szeretnék többet beszélni róla. Nagyon szeretnék többet beszélni a nem-Markovian modellekről, a frakcionális Brown-mozgásról, a Volterra-folyamatról, és így tovább. De de mindenképpen szólj. Ez minden bizonnyal egy speciális téma, de természetesen az egyik kedvenc témám.

Túl hosszú, nem olvastam. Itt van az összefoglaló. Az adatok az olaj a 21. században. A modelleknek adatokra van szükségük, hogy bármit is megtanuljanak. És legyen szó statisztikai tanulási modellről, paraméteres modellről, nem tudsz megúszni az adatok használata nélkül a paramétereid tájékoztatásához. Minden modell úgy tanul, hogy minimalizálja az eltérést valamilyen előrejelzés és valamilyen megfigyelt célpont között. Pontosabban, ezek felügyelt tanulási modellek. Mindig túlzottan vagy alulilleszthetjük ezeket a modelleket. Képzési, érvényesítési és tesztelési felosztásokat használunk annak biztosítására, hogy modellünk robusztus módon tanuljon, miközben szimulálhatjuk az "out-of-sample" teljesítményt nem látott tesztadatokon is.

Modelljeink hatékonysága csak a tér stabilitásától függ. Emlékezz, lényegében csak valamilyen elvárást produkálunk. És ha az eloszlás, amely a mintavételezett értékeinket előállítja, erőszakosan változik az idő múlásával, az elvárás nem lesz jó előrejelzés. A tér stabilitása határozza meg, hogy modelljeink mennyire hatékonyak az előrejelzések produkálásában. A neurális hálózatok nagyon népszerű statisztikai tanulási modellek ezeknek az elvárási függvényeknek a megtanulására, mert univerzális függvény approximátorok. Nincs olyan sima, folytonos alak, amit ne tudnának modellezni.

Mindenesetre, ezek a neurális hálózatok csak függvények. Csak óriási összetett függvények, ahol a paraméterkészlet mátrixok sorozata, súly mátrixok. És keresünk valamilyen optimális készletet ezekből a mátrixokból a képzési folyamaton keresztül, hogy a lehető legjobb előrejelzéseket produkáljuk.

Most ezek a neurális hálózatok számos más modell alapját képezik. Ez lehet valamilyen képfelismerés, valamilyen szöveggenerálás. Használhatunk konvolúciós hálózatokat, transzformer modelleket. A lista folytatódik. Ezek sokkal fejlettebb architektúra alapjai, amelyeket minden nap használunk. Nem csak az arcazonosítótól a spam szűrésig, hanem természetesen a LLM-ekkel, mint például a ChatGPT.

A kvantitatív pénzügyekben ezeket a modelleket különféle regressziós és osztályozási feladatokhoz implementáljuk. A fenti példában a Black-Scholes árazási funkcionális közelítését vizsgáltuk egy neurális hálózat segítségével. És tudjuk, hogy ebben az esetben nem különösebben hasznos, mert van analitikus megoldásunk. De bonyolultabb modellekhez, összetettebb dinamikával, ez rendkívül hatékony kalibrálást tesz lehetővé. És ez csak egy felhasználási eset. Ezeket a modelleket használjuk kísérleti portfólió kockázati mérőszámoknál, érték a kockázat mérőszámoknál generatív modellek, generatív kiterjesztések a neurális hálózatokhoz használatával, és még kvant kereskedési jelfejlesztéshez is használjuk őket. És ez egy későbbi videó lesz. Ha ez valami, amit szeretnél látni, kérlek, szólj hozzá az alábbi kommentekben.

Néhány jövőbeli téma, technikai videó és egyéb megbeszélés, amire számíthatsz. Szeretnék alternatív struktúrákat megvitatni, ez a neurális hálózat alapötletének kiterjesztése, variációs autoenkóderek, GAN-ok, CNN-ek, transzformerek. Szeretnék foglalkozni a mesterséges intelligencia használatával a kvant kereskedésben, árazási funkcionálisok közelítésével nem-Markovian vagy durva volatilitási modellekhez.

Szeretnék visszatérni talán az iPad elővételéhez, megvitatva talán a fejlett archív láncok ötletét, valamit, amit egy sztochasztikus folyamatokról szóló órán látnál. Szeretnék egy mélyrehatóan foglalkozni a frakcionális Brown-mozgással, a Volterra-folyamattal, és beszélni arról, hogyan tudjuk diszkretizálni ezeket a hosszú távú memóriát mutató folyamatokat. Úgy gondolom, hogy ez minden bizonnyal a kedvenc témám a kvantitatív pénzügyek tanulmányozásában.

Szeretnék levezetni a Black-Scholes egyenletet, a PTE analitikus numerikus megoldásait, és majd kiterjeszteni ezt a delta semleges kereskedési rendszer ötletére, amely már régóta napirenden van. Szintén a nem-állandóság kontextusában, ahogy ebben a videóban láttuk, meg kell birkóznunk a Kalman-szűrővel, és majd esetleg beépíteni azt egy élő modellbe rezsim dinamikával. Mivel már beszéltünk Markov-láncokról, rejtett Markov-modellekről, szeretnék talán beszélni binomiális fákkal, kockázatmentes intézkedésekkel, megerősítéses tanulással a delta fedezéshez.

Nos, sok igazán izgalmas technikai megbeszélés, és nagy érdeklődésem van mindezek iránt. Tehát, nos, ez minden bizonnyal sokat segít nekem, ha szólok az alábbi kommentekben, hogy mit szeretnél látni legközelebb.

És ez lesz a vége ennek a videónak a neurális hálózatokról a kvant pénzügyekben. Remélem, élvezted. Remélem, tanultál valamit. Ez a videó minden bizonnyal sok erőfeszítést igényelt az elkészítése. Tehát, ha élvezted, és szeretnél többet látni hasonlókat a jövőben, kérlek, lájkold, kommenteld, iratkozz fel, oszd meg. Ismétlem, ez rengeteget segít nekem. Mindig nagyra értékelem.

Nézd meg a quankill.com oldalt, ha szeretnéd elsajátítani a kvantitatív készségeidet. Hagyok egy linket a Discordunkhoz az alábbi leírásban, ha szeretnél kapcsolódni hozzám és más kvantokhoz a Quan Guild közösségben.

Ezen kívül, nagyon köszönöm a figyelmet, és a következő videóban találkozunk.