Sommario

SCRIVIMI SU TELEGRAM

Per informazioni, suggerimenti, collaborazioni...

Se è la prima volta che atterri su DataTrading, BENVENUTO!

Lascia che mi presenti. Sono Gianluca, ingegnere, trekker e appassionato di coding, finanza e trading. Leggi la mia storia.

Ho creato DataTrading per aiutare le altre persone ad utilizzare nuovi approcci e nuovi strumenti, ed applicarli correttamente al mondo del trading.

DataTrading vuole essere un punto di ritrovo per scambiare esperienze, opinioni ed idee.

TUTORIAL

Nell’articolo precedente di questa serie abbiamo descritto un approccio deep learning con la libreria Theano di Python tramite un esempio di regressione logistica. Con questo articolo vogliamo fornire una descrizione più approfondita dei concetti fondamentali del deep learning.

Al giorno d’oggi è quasi impossibile lavorare in qualsiasi campo ad alto contenuto tecnologico senza conoscere gli ultimi progressi nel campo del deep learning. La finanza quantitativa non è da meno. Molti degli speech presente nelle recenti conferenze sulla finanza quantitativa come QuantCon di Quantopian e AI & Data Science – Capital Markets di Newsweek si concentrano principalmente sul deep learning come prossima frontiera nel trading quantitativo.

Sfortunatamente il deep learning ha la reputazione di essere difficile, sempre in rapida evoluzione e impenetrabile senza un dottorato di ricerca in neuroscienze computazionali. Questo in effetti potrebbe essere stato  vero cinque anni fa, ma i recenti progressi delle librerie open source e la grande disponibilità di hardware ad elevato parallelismo permettono anche a coloro che sono dotati solo di una conoscenza di base della programmazione di usare tecniche avanzate di deep learning.

Questa serie di articoli sul deep learning vuole fornire una guida ai trader che sono completamente neofiti di questa tecnica. Vuole portare un assoluto principiante di deep learning a poter svolgere autonomamente la propria ricerca di deep learning per scopi di trading quantitativo.

In questo articolo forniamo un’introduzione al deep learning. Descriviamo i concetti di rappresentazione e di apprendimento gerarchico delle feature. Successivamente prendiamo in considerazione l’applicazione del deep learning nel trading quantitativo e se otteniamo qualche vantaggio.

Introduzione al Deep Learning:

Il deep learning è un sottoinsieme del più ampio campo del machine leaning (Murphy, 2012 [1]), che a sua volta è un’area di ricerca interdisciplinare di matematica, statistica, informatica e neuroscienza. Negli ultimi cinque anni il deep learning è uscito dal dominio accademico per diventare la tecnica di apprendimento automatico dominante in uso in molti settori ad alta tecnologia.

 

Il deep learning ha trovato applicazioni in tutto lo spettro dell’Intelligenza Artificiale (AI), comprese le auto a guida autonoma (Nvidia, 2017 [2]), la robotica (Levine et al, 2016  [3]), la sintesi vocale (van den Oord et al, 2016 [4]), il riconoscimento vocale (Yu e Deng, 2014 [5]), traduzione linguistica (Cho et al, 2014 [6]), trasferimento dello stile dell’immagine (Gatys et al, 2016 [7]), generazione automatica di contenuti (Goodfellow et al, 2014 [8]) nonché prestazioni di livello mondiale che battono l’uomo ai giochi da tavolo e ai videogiochi dall’Atari 2600 (Mnih et al, 2015 [9]) all’antico gioco del Go (Silver et al, 2016 [10]).

trading-machine-learning-deep-learning-neural-style-transfer

Sebbene le applicazioni di cui sopra abbiano avuto un’ampio risalto nella stampa popolare, molte delle tecniche hanno trovato usi in contesti industriali più tradizionali. Ciò include il rilevamento delle anomalie (Zhai, 2016 [18]) e l’ottimizzazione dei sistemi di controllo (Gao, 2014 [19]).

Il tasso di progresso nell’deep learning è stato esplosivo. La comunità estremamente aperta unisce il mondo accademico, l’industria e la finanza, fornendo ampi dataset del mondo reale su cui addestrare una serie sempre crescente di nuovi modelli.

Un format di pubblicazione libera che utilizza prevalentemente il server di prestampa arXiv ha permesso una rapida diffusione dei risultati. Le librerie open source come CaffeTorchTheanoTensorflow e Keras hanno  molto diminuito le complessità di implementazione di nuove architetture. Inoltre si ha un’ampia riproducibilità grazie l’implementazioni di modelli su repository open source come Github.

 

trading-machine-learning-deep-learning-geforce-gtx-1080ti

I recenti progressi nelle architetture di elaborazione parallela hanno consentito a laboratori accademici e d industriali di svolgere ricerche su hardware di base come le unità di elaborazione grafica (GPU) a livello consumer, su workstation locali economiche o tramite nodi di calcolo paralleli basati su cloud-on-demand.

La confluenza di queste  ricerche ha portato a risultati incredibilmente impressionanti, insieme a un enorme clamore popolare che circonda il deep learning.

Che cos’è il Deep Learning?

 

Rappresentazioni

La motivazione per le tecniche di deep learning inizia con una discussione sul campo più ampio del machine learning. Il machine learning può essere considerato un meccanismo per mappare le rappresentazioni dei dati sui risultati (Goodfellow et al, 2016 [11]).

Nel trading quantitativo questo si manifesta spesso come “indicatori” artigianali sui dati dei prezzi finanziari al fine di prevedere il prezzo dell’asset per il giorno successivo.

La performance di questi modelli di trading dipende fortemente dalla qualità di questi indicatori o feature, ovvero dalle rappresentazioni dei prezzi sottostanti.

Questo può essere semplicemente visto utilizzando le stesse informazioni sui prezzi ritardati grezzi come feature. Per alcuni asset molto liquidi i prezzi sottostanti non si correlano bene con i risultati predittivi, a causa del basso rapporto segnale/rumore nella maggior parte dei dati storici sui prezzi degli asset. Questo significa che è necessaria una specifica creazione manuale delle feature per estrarre utili segnali predittivi. In sostanza, è la scelta della rappresentazione delle  feature che è importante.

Quindi il compito fondamentale del ricercatore di quant trading è capire quali feature un segnale predittivo utile. Non solo questo compito richiede molto tempo, ma richiede anche una manutenzione costante a causa della presenza del “decadimento alfa”, dove i segnali predittivi vengono arbitrariamente eliminati con passare del tempo.

Una possibile soluzione a questo problema è utilizzare tecniche di machine learning non solo per apprendere le mappature tra i predittori e le risposte, una volta che i predittori sono stati realizzati a mano, ma anche per effettivamente apprendere i predittori stessi. In altre parole, affinché i modelli di apprendimento automatico utilizzino i dati per apprendere la migliore rappresentazione che produce un segnale predittivo.

In alcuni campi questo può produrre prestazioni di gran lunga superiori alle feature create dall’uomo. Inoltre, libera una parte sostanziale del tempo di ricerca, poiché queste feature non devono essere trovate in modo manuale.

Feature gerarchiche

È qui che entra in gioco il deep learning. “Risolve” il problema della creazione delle feature introducendo una gerarchia nelle rappresentazioni delle feature. Imparando concetti semplici e quindi basandosi su questi concetti per formare esempi più complessi, è possibile produrre insiemi altamente predittivi di rappresentazioni di feature che superano di gran lunga quelli sviluppati dagli esseri umani.

Come esempio dal campo della visione artificiale, una rete neurale convoluzionale utilizzerà molti livelli nascosti per acquisire pixel di input dell’immagine, formare bordi da questi pixel, formare angoli/contorni da questi bordi e quindi riconoscere oggetti da schemi di angoli e bordi.

trading-machine-learning-deep-learning-alex-net-kernels

L’intuizione chiave è che le informazioni sui pixel nella sua rappresentazione grezza non sono ben correlate con gli oggetti nell’immagine. È solo utilizzando un insieme gerarchico di trasformazioni di feature non lineari in una rete “deep” che il segnale predittivo diventa estremamente forte.

Questo approccio è basato sulle modalità di funzionamento del cervello umano. Nel corso della vita umana vengono apprese idee semplici, che vengono utilizzate per formare gerarchie di idee più complesse. Il deep learning applica questo approccio nell’ambito del machine learning.

Tuttavia, il deep learning non è un’idea nuova. Si tratta effettivamente di un “rebranding” del noto campo delle Reti Neurali Artificiali. I progressi nella potenza di calcolo, nell’ingegneria del software e nei dataset disponibili hanno fatto sì che le vecchie reti neurali “superficiali” abbiano lasciato il posto a reti neurali “profonde” di varie architetture, spesso con molti “strati nascosti”.

Perché ora?

Gli algoritmi alla base delle reti neurali profonde, tra cui la backpropagation e la discesa stocastica del gradiente, esistono da molto tempo. Allora perché il deep learning ha appena iniziato a mostrare promesse significative?

Principalmente perché solo ora è possibile fornire a questi algoritmi le risorse di cui hanno bisogno per produrre risultati così impressionanti.

trading-machine-learning-deep-learning-alexnet-architecture

Tali risorse includono un’abbondanza di dati di addestramento estremamente ben etichettati e la disponibilità di hardware economico ad elevato parallelismo, per il quale è semplice scrivere software.

L’incredibile crescita di Internet ha, conseguentemente, prodotto vaste tipologie di serie temporali registrate, testo, immagini, audio e video, molti dei quali sono etichettati. L’avvento della Graphics Processing Unit (GPU) ha permesso che tali dataset possono essere elaborati in un lasso di tempo ragionevole.

trading-machine-learning-qs-deep-learning-nvidia-tesla-p100

La combinazione di questi ampi dataset con hardware altamente parallelizzabile ha consentito ai moderni modelli di deep learning di superare di gran lunga le prestazioni umane in molte attività di classificazione, spesso con un intervento umano minimo.

Deep learning per il trading quantitativo

Sebbene il deep learning sia un campo di ricerca relativamente nuovo, sta già mostrando notevoli promesse nel campo della finanza. Alcune interessanti  ricerche sono state pubblicate negli ultimi due anni:

  • Le direzioni dei futures sulle materie prime e sul forex sono state previste da reti neurali profonde (Dixon et al, 2016 [14])
  • L’effetto momentum nelle azioni è stato analizzato per prevedere rendimenti mensili/giornalieri sia più alti che più bassi rispetto alla mediana in (Takeuchi e Lee, 2013 [15]) e (Batres-Estrada, 2015 [16]).
  • Le tecniche di elaborazione del linguaggio naturale basate sul deep learning sono state applicate per prevedere il dissesto delle società finanziarie (Rönnqvist e Sarlin, 2016 [17]) e per prevedere i rendimenti azionari tedeschi sulla base delle notizie (Fehrer e Feuerriegel, 2015 [22]).

In un articolo precedente abbiamo menzionato come le reti neurali profonde per il riconoscimento delle immagini venivano utilizzate per rilevare i serbatoi statici di stoccaggio  del petrolio per stimare le forniture mondiali di petrolio greggio.

In definitiva, gran parte del successo del deep learning supervisionato deriva dall’estrazione automatica delle feature. Tuttavia, per essere efficace, richiede una significativa quantità di dati di addestramento, con  ragionevoli rapporti segnale-rumore.

Quindi la sfida nella finanza quantistica è cercare di ottenere grandi quantità di dati finanziari di “addestramento” che contengano segnali utili. Negli articoli successivi descriviamo ampiamente questi punti saranno trattati.

Prossimi passi

Negli articoli successivi  descrivamo le più comuni architetture di deep learning, tra cui il percettrone multistrato (MLP), la rete neurale convoluzionale (CNN) e la rete neurale ricorrente (RNN).

Introduciamo e installiamo due librerie di deep learning basate su Python, ovvero Tensorflow e Keras. Implementiamo in Keras le architetture di cui sopra per dimostrarne la facilità d’uso. Inoltre delineiamo i prerequisiti matematici di base per la ricerca sul deep learning.

Successivamente presentiamo una guida alla creazione di un “PC di deep learning”, che fornisce istruzioni dettagliate su come costruire da zero un economico PC di deep learning per il trading algoritmico.

Infine, negli articoli successivi dedichiamo molto tempo all’applicazione di modelli di deep learning a problemi di finanza quantitativa.

Nota bibliografica

Un testo di riferimento estremamente dettagliato sul campo del machine learning a livello accademico di base è (Murphy, 2012 [1]).

Un recente testo molto dettagliato sul deep learning, che presuppone una formazione universitaria in informatica, matematica o fisica è (Goodfellow, 2016 [11]). Copre tutte le architetture più note come il perceptron multistrato, la rete neurale convoluzionale e le reti neurali ricorrenti, oltre a fornire capitoli sulle ultime vie di ricerca.

Un recente documento di ricerca sulla natura dei “tre giganti” del deep learning (LeCun et al, 2015 [12]) fornisce una panoramica di alto livello dello stato dell’arte. Per coloro che sono interessati alla ricerca sul deep learning vale la pena iniziare lo studio della letteratura accademica.

Un’introduzione più delicata al deep learning è fornita dalla presentazione di diapositive di (Beam, 2017 [13]).

Riferimenti

Torna su