![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Qual è la sorpresa?
Beh, prima di tutto, ho scoperto subito un errore persistente).
In secondo luogo, ho pensato che rimuovendo gli input, avrei abbassato l'informatività degli input in modo che l'efficacia del NS nel suo complesso sarebbe stata ridotta. Alcuni input si deteriorano molto, altri poco. E forse troverò tali input, che non influiscono affatto, e li rimuoverò per semplificare la rete. Certo, ho trovato degli ingressi "vuoti", ho trovato degli ingressi senza i quali il NS è incompetente, ma ho anche trovato degli ingressi, togliendo i quali aumento il risultato del NS nel suo insieme. Questo è una sorpresa per me, o la formazione è cattiva, o gli input sono troppo contraddittori e semplicemente dannosi.
Tutto sommato, cibo per la mente per qualche giorno.
Beh, prima di tutto ho scoperto immediatamente un errore di vecchia data)
In secondo luogo, ho pensato che rimuovendo gli input, avrei abbassato l'informatività degli input in modo che l'efficacia del NS nel suo complesso sarebbe stata ridotta. Alcuni input si deteriorano molto, altri poco. E forse troverò tali input, che non influiscono affatto, e li rimuoverò per semplificare la rete. Certo, ho trovato degli ingressi "vuoti", ho trovato degli ingressi senza i quali il NS è incompetente, ma ho anche trovato degli ingressi, togliendo i quali aumento il risultato del NS nel suo insieme. Questo è una sorpresa per me, o la formazione è cattiva, o gli input sono troppo contraddittori e semplicemente dannosi.
Così ho avuto cibo per pensare per diversi giorni.
potrebbe risultare che nel prossimo allenamento (su un campione diverso) saranno necessari...
Non proprio venerdì, ma ...
C'è un NS, qualsiasi NS, c'è un input A={A1, A2, .... A20}. Allenare il NS e ottenere un risultato soddisfacente. Come valutare praticamente il contributo di ogni elemento dell'input A1, A2, ... A20 a questo risultato?
Le opzioni che mi vengono in mente sono:
1) Somma e calcola in qualche modo tutti i pesi con cui l'elemento passa attraverso la rete. Non mi è molto chiaro come farlo, dovrei immergermi nel funzionamento della rete e calcolare in qualche modo alcuni coefficienti, ecc.
2) Provate ad "azzerare" in qualche modo, o per esempio ad invertire un elemento del vettore di input e vedere come influisce sul risultato finale. Per il momento mi sono deciso a farlo.
Ma prima di realizzare questa seconda variante ho deciso di chiedere un consiglio. Chi può aver pensato a questo argomento più a lungo di me? Forse qualcuno può consigliare un libro-articolo?
Il grado di influenza di ogni input è praticamente impossibile da valutare . Ci sono tutti i tipi di formule matematiche, e un software specializzato può calcolare automaticamente il grado di influenza. Ma tutti questi calcoli sono solo un valore approssimativo, che non dice molto, perché può avere un grande margine di errore.
Sì, sono generalmente consapevole di questo, sarebbe più logico analizzare gli ingressi nella stessa statistica, ma è associato a grandi costi di lavoro di trasferire lì in principio un sistema di lavoro. Capisco anche tutta l'ambiguità dell'interpretazione di questi esperimenti. Ma c'è un beneficio e questo è sicuro.
Potrebbe risultare che nel prossimo allenamento (su un campione diverso) saranno necessari...
Suppongo di sì, ma c'è un NS, è addestrato, funziona, quindi può fare a meno degli input scartati e ha senso scartarli per semplificare la rete, migliorare la sua generalizzabilità e migliorare la qualità dell'apprendimento a un costo inferiore.
Un metodo comune ed efficace è quello di analizzare i pesi NS dopo l'allenamento. I pesi sono inizializzati in modo che i loro valori non siano significativamente diversi da zero, per esempio, media 0, deviazione standard 0,1. Dopo l'addestramento, i pesi relativi agli input insignificanti saranno modulo vicino a zero, mentre i pesi relativi agli input significativi saranno molto diversi da zero. Testato - funziona su dati sintetici.
Beh, questa è fondamentalmente la prima cosa che mi è venuta in mente, ma non riuscivo a pensare a come implementare tale analisi nel mio sistema in modo più semplice. Ecco perché ho seguito il metodo inverso.
Ora immaginate la situazione. Avete trovato 2 ingressi che non lasciano scaricare l'uscita netta. Si aggiunge un terzo ingresso che migliora notevolmente il funzionamento della rete. Che cosa conclude? Che questo input ha un forte impatto sull'output netto. Infatti, la terza entrata produrrà qualche perturbazione a breve termine solo una o due volte durante l'intero periodo di trading. Ma è questa perturbazione che sarà decisiva. Anche se il fatto stesso del disturbo sarà insignificante. Così come la rimozione di una delle prime due voci non vi darà un risultato soddisfacente. L'altro è dirigere il lavoro nella seguente direzione.
Quando si addestra una rete, si cercano i minimi locali della funzione. Per essere più precisi, cerchiamo il minimo globale di un errore ma ci spostiamo dal minimo locale a quello globale.
Incontro spesso una situazione in cui un minimo locale di una funzione mostra risultati ideali nel futuro.
Il compito è semplice: selezionare tali ingressi alla rete (non dovremo cambiarli in seguito) che permetterebbero alla rete di avere minimi locali durante l'addestramento, che li guadagneranno in futuro.
Diciamo che durante l'allenamento si hanno in media circa 10-20 minimi locali, e almeno uno di essi è corretto. Ma è meglio scegliere il maggior numero possibile di minimi locali redditizi......
Come ti piace questo problema????? Questo è più simile alla realtà....
Notate cosa ha scritto Leonid, e ha dannatamente ragione. Trovare l'influenza degli input sull'output della rete è un compito impossibile. Sì, è possibile vagliare quelli inutili, sono d'accordo, ma è praticamente impossibile determinare l'influenza di questo o quell'input sull'output.
Ora immaginate la situazione. Avete trovato 2 ingressi che non lasciano scaricare l'uscita netta. Si aggiunge un terzo ingresso che migliora notevolmente il funzionamento della rete. Che cosa conclude? Che questo input ha un forte impatto sull'output netto. Infatti, la terza entrata produrrà qualche perturbazione a breve termine solo una o due volte durante l'intero periodo di trading. Ma è questa perturbazione che sarà decisiva. Anche se il fatto stesso del disturbo sarà insignificante. Così come la rimozione di una delle prime due voci non vi darà un risultato soddisfacente. L'altra cosa è dirigere il lavoro in questa direzione.
Ora immaginate la situazione. Avete trovato 2 ingressi che non permettono alla rete di andare avanti. Aggiungete un terzo input che vi aiuta molto. Che conclusione ne trae? Che questo input ha un forte impatto sull'output netto. Infatti, la terza entrata produrrà qualche perturbazione a breve termine solo una o due volte durante l'intero periodo di trading. Ma è questa perturbazione che sarà decisiva. Anche se il fatto stesso del disturbo sarà insignificante. Come se si rimuovesse una delle prime due voci, non si otterrebbe un risultato soddisfacente. L'altra cosa è dirigere il lavoro in questa direzione.
È chiaro che gli input sono interconnessi e l'interpretazione dei risultati di tali esperimenti è l'aspetto più importante. Escludo le voci non solo una per una, ma anche le loro diverse combinazioni da 1 a 5 (penso che estenderò questa gamma alla metà di tutte le voci), analogamente alla tua aggiunta di una voce in più e guardare i cambiamenti nella risposta di NS, sia in fase di formazione che in avanti.
Quando si addestra una rete, si cercano i minimi locali della funzione. Per essere più precisi, cerchiamo il minimo globale di un errore ma ci spostiamo dal minimo locale a quello globale.
Non di rado o addirittura spesso incontro questi casi in cui un minimo locale di una funzione mostra risultati ideali nel futuro.
Il compito è semplice: trovare tali input alla rete (non dovremo cambiarli in seguito) che permetterebbero alla rete durante l'addestramento di avere minimi locali che guadagnano risultati in futuro.
Diciamo che durante l'allenamento si hanno in media circa 10-20 minimi locali, e almeno uno di essi è corretto. Ma è meglio scegliere il maggior numero possibile di minimi locali redditizi......
Come ti piace questo problema????? Questo è più simile alla realtà....
Le realtà sono diverse per tutti) In particolare non sto cercando il minimo errore, sto cercando il massimo profitto, il minimo drawdown, un PF soddisfacente, ecc. In altre parole ho dei massimi locali, ma non cambia la loro essenza. Il mio problema è risolto poco o male, ma per molto tempo...