L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 162

 
SanSanych Fomenko:

Grazie, l'ho letto.

Penso che l'autore sia troppo ottimista.

Il problema del sovrallenamento non è risolvibile in linea di principio.

...

In teoria è risolvibile dal punto di vista della determinatezza universale di Laplace, per esempio, se tutti i fattori necessari sono noti in anticipo e l'accesso alle informazioni è disponibile. Ma in pratica questa "decidibilità" ha un sacco di problemi (non tutti i fattori sono noti e non tutti sono disponibili, e quelli che sono disponibili, sono spesso rumorosi).

SanSanych Fomenko:


...

Per mia convinzione, se i predittori di ingresso non sono prima ripuliti da quelli di rumore, cioè "irrilevanti" per la variabile obiettivo, allora il metodo di "coarsening" non funziona e non funzionano nemmeno altri metodi che usano il concetto di "importanza" dei predittori.

Che secondo la tua convinzione, e in base alla conferma delle mie esperienze con jPrediction, sembra essere esattamente quello che dovrebbe essere?

Ma la tragedia è che non tutte le esperienze confermano l'affermazione di cui sopra. Tutto dipende da che tipo di metodi di apprendimento automatico vengono utilizzati.

Per esempio, Viktor Tsaregorodtsev ha condotto una ricerca sulle reti neurali con BackPropagation e sulla base dei risultati è arrivato a conclusioni opposte nel suo articolo"Reduction of neural network size does not lead to increased generalization ability", e cito:

"Questo contraddice l'opinione che l'eliminazione delle caratteristiche rumorose, non informative e dei neuroni ridondanti sia obbligatoria e utile nella pratica".

In altre parole, si scopre che è assolutamente inutile trarre conclusioni generali per tutti i metodi di apprendimento automatico senza eccezione (per fare un approccio unico). Per alcuni metodi, tali "conclusioni" saranno corrette, mentre per altri potrebbero rivelarsi deliberatamente errate.

 
Yury Reshetov:

Aumentando la complessità dei modelli in jPrediction intendiamo aumentare gradualmente il numero di predittori. Perché in jPrediction il numero di neuroni nello strato nascosto è 2^(2*n+1), dove n è il numero di predittori. Quindi con l'aumento del numero di predittori la complessità del modello (numero di neuroni nello strato nascosto) aumenta.


Se ci sono 100 predittori, allora con la tua formula il numero di neuroni in uno strato nascosto sarà quasi uguale al numero di atomi nell'universo (ho paura anche solo di pensare a 200 predittori). Sembra che tu abbia risorse divine - computazionali e di tempo.



 
Andrey Dik:

CC ha appena dato un esempio molto spiacevole continuando a persistere nella sua ignoranza...

Cosa intende per "altre forze"? Le stesse forze agiscono sulla palla e sulla lanugine - la forza di gravità (peso) e la forza del flusso del vento distribuita su metà dell'area del corpo.

...

Andrew, ti ricordo che questo thread riguarda l'apprendimento automatico, non problemi di fisica.

Per favore, siate così gentili da non flammare su argomenti distratti, che non sono graditi in questo thread.

Se sei così ansioso di vantarti della tua conoscenza della fisica, inizia un thread separato dedicato ad essa.

Soprattutto perché stai cercando di sfidare la metafora con una faccia intelligente, mettendoti in una posizione deliberatamente stupida.

 
Yury Reshetov:

Andrew, ti ricordo che questo thread riguarda l'apprendimento automatico, non problemi di fisica.

Per favore, siate così gentili da non flammare su argomenti distratti, che non sono graditi in questo thread.

Se vuoi vantarti della tua conoscenza della fisica, inizia un thread separato sulla fisica.

Tanto più quando si cerca di fare una faccia intelligente per sfidare una metafora, mettendosi in una posizione volutamente stupida.

Beh, se pensate che le metafore basate su esempi sbagliati abbiano un valore, non mi intrometto oltre.

Mi dispiace. E tu CC mi scusi.

 
sibirqk:

Se ci sono 100 predittori, secondo la vostra formula il numero di neuroni in uno strato nascosto sarà da qualche parte vicino al numero di atomi dell'universo (non oso nemmeno pensare a 200 predittori). Sembra che tu abbia risorse divine - computazionali e di tempo.

Non mi interessa se ci sono 10.000 predittori. Non è certo che tutti siano informativi. Cioè, jPrediction troverà alcuni dei più informativi tra loro, complicando gradualmente i modelli. Si fermerà non appena la generalizzabilità comincerà a diminuire.

Non si tratta di risorse divine. Un normale personal computer è sufficiente.

 
Andrey Dik:

Ok, se pensate che le metafore basate su esempi sbagliati abbiano un valore, allora non mi intrometterò d'ora in poi.

Mi dispiace. E tu CC mi scusi.

Le metafore non hanno altro valore che quello retorico, indipendentemente dal loro successo retorico. E prendersela con loro è un mauvais ton.

Scuse accettate, naturalmente.

 
Yury Reshetov:
Le metafore non hanno altro valore che quello retorico, indipendentemente dal loro successo retorico. E prendersela con loro è un mauvais ton.

Se una cosa detta non ha valore, si tratta di bolabolismo. Non credo che CC intendesse fare bola-bola-bola-bola, è solo il modo in cui l'ha fatto.

E le metafore si usano quando si vuole trasmettere un'idea in un linguaggio accessibile per mezzo della comparazione. Quindi un esempio va bene per un politico, e altri esempi sono comprensibili per un fisico nucleare, così il politico e il fisico nucleare si capiscono, usano paragoni, metafore. Quindi le metafore hanno uno scopo preciso: facilitare la comprensione degli interlocutori.

Non importa, lascia perdere.

 
Andrey Dik:

Se una cosa detta non ha valore, si tratta di bolabolismo. Non credo che CC volesse fare bola-bola-bola, è andata così per lui.

Non ha fatto altro che dare una brutta metafora. E allora? Al muro per metterlo per questo?

Siamo tutti umani e tutti facciamo degli errori a volte.

Un'altra cosa è che c'è così tanto flub a causa di questo, che riduce eccessivamente il valore informativo dell'argomento. E questo non è abbastanza.

 
Yury Reshetov:

In teoria, è risolvibile in termini di determinismo universale di Laplace, per esempio, se tutti i fattori necessari sono noti e c'è accesso informativo ad essi. Ma in pratica tale "decidibilità" ha un sacco di problemi (non tutti i fattori sono noti e non tutti sono disponibili, e quelli che sono disponibili, sono spesso rumorosi).

Questo secondo la tua convinzione, e in base alla conferma dei miei esperimenti con jPrediction, sembra essere esattamente il modo in cui dovrebbe essere?

Ma il problema è che non tutte le esperienze confermano l'affermazione di cui sopra. Tutto dipende dal tipo di metodi di apprendimento automatico utilizzati.

Per esempio, Victor Tsaregorodtsev ha fatto alcune ricerche sulle reti neurali con BackPropagation, e i risultati sono arrivati a conclusioni opposte nel suo articolo"Reduction of neural network size does not lead to higher generalization ability", e cito:

"Questo contraddice l'opinione che l'eliminazione delle caratteristiche rumorose, non informative e dei neuroni ridondanti sia obbligatoria e utile nella pratica".

In altre parole, si scopre che è assolutamente inutile trarre conclusioni generali per tutti i metodi di apprendimento automatico senza eccezione (per fare un approccio unico). Per alcuni metodi tali "conclusioni" saranno corrette, mentre per altri potrebbero essere deliberatamente sbagliate.

Se guardate le prime pubblicazioni dell'autore degli algoritmi randomforest, l'autore in tutta serietà sosteneva che l'rf non è affatto incline al sovrallenamento e dava un sacco di esempi. Il pacchetto randomforest stesso è costruito in modo da escludere anche il minimo sospetto di sovrallenamento.

Allo stesso tempo l'algoritmo più sovrallenato è randomforest. Mi sono bruciato personalmente.

Credo solo alle cifre ottenute con la seguente metodologia.

Prendiamo due file che si susseguono nel tempo.

Dividiamo il primo file in modo casuale in tre parti: insegnamento, test e validazione.

  • Noi insegniamo sulla parte di addestramento, che a sua volta è usata per insegnare l'algoritmo, e sulla parte di valutazione - il campione AOB - è chiamato out-of-sample. Abbiamo l'errore di apprendimento. Otteniamo una fetta per ALE tramite algoritmi di validazione incrociata, cioè è sempre diversa.
  • Controlliamo il modello addestrato sulla parte di test e di validazione del primo file.
  • otteniamo l'errore di applicazione del modello precedentemente addestrato. I tre errori dovrebbero essere vicini.

Passate al secondo file, che è indietro nel tempo rispetto al primo.

Applica il modello addestrato a questo secondo file. L'errore risultante NON dovrebbe essere molto diverso dai 3 errori.

QUESTO RISULTA IN QUATTRO VALORI DI ERRORE CHE NON SONO MOLTO DIVERSI L'UNO DALL'ALTRO.

Per me questa è l'unica prova della mancanza di sovrallenamento. E se otteniamo anche un errore vicino a questi quattro nel tester, possiamo scambiare.

Questo è tutto ciò in cui credo.

Un numero schiacciante di pubblicazioni sull'apprendimento automatico non è testato su nessun secondo file analogo. La ragione è banale. Gli algoritmi NON sono applicati su serie temporali. E si scopre che una divisione casuale del file numero uno è abbastanza sufficiente. E questo è effettivamente il caso del riconoscimento della scrittura, per esempio.

 

Per quanto riguarda le mie metafore e analogie.

Mi sono laureato in matematica applicata. E i miei insegnanti credevano che io, come tutti i miei compagni di classe, fossi capace di padroneggiare qualsiasi strumento matematico. E i miei insegnanti vedevano il problema principale del nostro futuro lavoro come la soluzione del problema dell'applicabilità di un particolare strumento a un particolare problema pratico. Questo è quello che ho fatto per tutta la mia vita, ma padroneggiare qualsiasi strumento .... In R ce ne sono centinaia o migliaia, e allora?

Tutto questo trolling al mio indirizzo...

Contraddire il troll è solo alimentarlo.

Naturalmente, vorrei poter ripulire il thread, è stato un grande thread.