Rete neurale - pagina 3

 
joo >> :

Lo scopo di minimizzare/massimizzare la funzione obiettivo E(w1,w2) è di trovare un estremo globale. E se ci sono un milione di questi estremi globali, che differenza fa per noi in quale NN cade!

È peggio se si blocca in uno dei minimi/massimi locali. Ma non è più un problema di NN. È un problema dell'algoritmo di ottimizzazione.


Descritto da gpwr - in nessun modo.


Sono d'accordo che se tutti i minimi locali sono identici in profondità e quindi globali, non fa differenza in quale la rete finisce. Ma per la versione semplificata della rete con serie rumorose, i minimi locali esistono anche sui vertici della superficie E(w1,w2). Quindi l'ottimizzazione genetica o la discesa del gradiente con diverse varianti di valori iniziali è necessaria per finire a valle. Il mio esempio aveva lo scopo di illustrare la matematica delle reti neurali parallele che porta a un gran numero di minimi locali e a un complicato (lungo) processo di apprendimento. Questo processo di apprendimento consiste spesso in diversi passi utilizzando diverse tecniche di ottimizzazione: globale (algoritmo genetico, evoluzione differenziale, ottimizzazione dello sciame di particelle, ottimizzazione della colonia di formiche) e locale (discesa del gradiente, gradiente coniugato, Levenberg-Marquardt, BFGS), e richiede molto tempo.

La base della matematica delle reti neurali è il teorema di Kolmogorov: qualsiasi funzione continua di n variabili x[1]...x[n], può essere rappresentata come una somma di 2n+1 sovrapposizioni di mappature continue e monotone di segmenti di unità:


Qualsiasi funzione continua può anche essere rappresentata come una serie infinita di Taylor:


Una serie di potenza è una versione semplificata di una serie di Taylor:



Rappresentare una funzione sconosciuta come una serie di potenza è matematicamente più semplice di una rete neurale. Lo spiegherò di seguito.

Prendiamo una serie di potenza del primo ordine:


(1) y = f(x[1]...x[n]) = a[0] + somma(a[i]*x[i], i=1...n)


Questo è qualcosa di diverso da una funzione lineare. Se y, x[1],...,x[n] sono termini della stessa serie, allora abbiamo un modello autoregressivo lineare (AR). Anche la rete neurale a singolo strato è descritta dallo stesso modello (1).

Ora prendiamo una serie di potenza del secondo ordine:


(2) y = f(x[1]..x[n]) = a[0] + somma(a[i]*x[i], i=1..n) + somma(b[i,j]*x[i]*x[j], i=1..n,j=1..n)


e così via. I parametri incogniti del modello basato su una serie di potenza sono i coefficienti a[i],b[i,j],..., che sono derivate parziali della funzione f(x[1]..x[n]) per ogni ingresso x[i]. L'uscita del modello è una funzione lineare di questi coefficienti mentre l'uscita è una funzione non lineare di x[1]...x[n]. La ricerca dei coefficienti del modello a[i],b[i,j],..., è fatta tramite la minimizzazione della somma dei quadrati degli errori come nel caso dell'addestramento della rete neurale:


E(a[i],b[i,j],...) = somma( (t[k]-y[k])^2, k=1...p)


Ma nel caso della rete neurale, otteniamo un metodo dei minimi quadrati non lineare, e nel caso di una serie di potenza otteniamo un metodo dei minimi quadrati lineare, che si risolve abbastanza semplicemente: troviamo le derivate E(a[i],b[i,j],...) per ogni coefficiente a[i],b[i,j],... e le equipariamo a zero. Otteniamo un sistema lineare simmetrico di equazioni con incognite a[i],b[i,j],..., che viene risolto con il metodo Cholesky.

I vantaggi del metodo delle serie di potenza rispetto al metodo Kolmogorov (rete neurale) sono:

1. È molto più facile e veloce addestrare il modello: una sola iterazione. Le reti neurali sono addestrate in 1000-100000 iterazioni combinando diversi metodi di ottimizzazione.

2. Il risultato dell'apprendimento di una serie di potenza è univoco, cioè un solo minimo che è sia locale che globale. L'addestramento coerente di una rete neurale porta a diversi minimi locali e quindi a diversi valori dei pesi e a diversi modelli dello stesso processo (serie temporale)

Qui sotto è la superficie E(a,b) per la serie di potenza y = a*x + b*x^2 con dati di allenamento "rumorosi" t[k] = cos(x[k]) + rnd:


Notate che, a differenza della rete neurale, qui c'è solo un minimo.

Lo svantaggio del modello non lineare basato sulla serie di potenza è la rapida crescita del numero dei suoi coefficienti con l'aumento dell'ordine della serie di potenza. Supponiamo che n sia il numero di ingressi (x[1]..x[n]). Il numero di coefficienti nc è determinato da formule:

ordine = 1, nc = n+1

ordine = 2, nc = (n+1)*(n+2)/2

ordine = 3, nc = (n+1)*(n+2)*(n+3)/6

ordine = 4, nc = (n+1)*(n+2)*(n+3)*(n+4)/24

...

Per esempio, un modello di processo di 3° ordine con 12 ingressi ha 455 coefficienti. Il loro tasso di recupero è ancora superiore a quello della rete neurale con meno pesi. Il problema non consiste nel rallentare la velocità di apprendimento della serie di potenza ma nel trovare un numero sufficiente di insiemi di allenamento x[1...n][k],t[k] che deve superare il numero di coefficienti del modello per evitare la degenerazione. In pratica, le serie di potenza del 2° o 3° ordine danno risultati soddisfacenti.

 
gpwr >> :

Sono ancora nuovo alle maglie, quindi non posso parlare in modo autorevole,

ma credo che tutti gli appassionati di mesh sul forum stiano cercando di fare un solutore lineare (un sistema di equazioni lineari),

e poi, per introdurre l'imprevedibilità nella soluzione, la fanno combaciare mettendo in loop l'input con l'output.


Sono arrivato alla tua stessa conclusione riflettendo e cercando di capire cosa fanno gli altri.

Ma risolvendolo in questo modo non risponderai alla domanda:

E questi dati appena arrivati non hanno radici nel sistema - questi sono BUY o SELL.

Perché non c'è una funzione che definisce il modello.


cercare di insegnare la griglia all'area dipinta.

Volete addestrare TE in modo che quando vengono immesse le coordinate da quest'area, la griglia genera 1, e quando le coordinate da un'area non dipinta sono 0.

L'uscita di ogni neurone dovrebbe avere un classificatore che dovrebbe prendere uno stato a seconda della formazione:

Se d è maggiore di d o vero se minore di d (d è una soglia, rispettivamente). (Se mi sbaglio, non giudicatemi troppo duramente).

 
gpwr >> :

Dopo aver studiato a fondo le reti neurali e aver usato vari algoritmi di apprendimento, dalla discesa del gradiente alla genetica, sono giunto alla conclusione che l'apparato matematico delle reti neurali non è perfetto.

Non è necessario avere un ideale tra le mani. Tutto questo risuona con la questione di quale percentuale di movimento ci si può permettere di saltare per migliorare l'affidabilità dell'ingresso sul mercato. Idealmente si vorrebbe prendere il 100%, proprio sullo zigzag ;-). In pratica sarebbe un graal per molte persone prendere almeno il 50% su ogni bordo.

A giudicare dalle informazioni disponibili, le griglie funzionano. I problemi di ambiguità sono risolti scegliendo la configurazione, la dimensione della maglia e la sua inizializzazione. In linea di principio, anche il problema dei minimi locali è risolto - tramite annealing o lo stesso metodo genetico (non scegliamo la probabilità di accettare "geni cattivi" lì, il che equivale a saltare fuori dalla valle locale?) Inoltre dobbiamo anche ricordare che ci sono comitati di reti che fanno il lavoro, non uno solo. E guardando in modo più ampio, non è tutto limitato a una griglia di backpropagation full-bound con apprendimento assistito dall'insegnante? Perché non provare a mettere citazioni e segnali nel vettore di ingresso e darlo in pasto a Kohonen, per esempio?

 
gpwr писал(а) >>

Hai una rete che genera profitti stabili?

Cosa pensate che significhi "profitti stabili"?

 
marketeer >> :

Non è necessario averne uno perfetto in mano. Tutto questo riecheggia la questione di quale percentuale di movimento ci si può permettere di saltare per migliorare la credibilità dell'ingresso sul mercato. Idealmente si vorrebbe prendere il 100%, proprio sullo zigzag ;-). In pratica sarebbe un graal per molti prendere almeno il 50% su ogni bordo.

A giudicare dalle informazioni disponibili, le reti funzionano. I problemi di ambiguità sono risolti scegliendo la configurazione, la dimensione della griglia e la sua inizializzazione. In linea di principio, anche il problema dei minimi locali è risolto - tramite annealing o lo stesso metodo genetico (non scegliamo la probabilità di accettare "geni cattivi" lì, il che equivale a saltare fuori dalla valle locale?) Inoltre dobbiamo anche ricordare che ci sono comitati di reti che fanno il lavoro, non uno solo. E guardando più in generale, non è tutto limitato a una griglia di backpropagation full-bound con apprendimento assistito dall'insegnante? Perché non provare a mettere le citazioni e i segnali nel vettore di ingresso e darlo in pasto a Kohonen, per esempio?


Lei ha frainteso l'essenza del mio ragionamento. Non stavo parlando della correlazione tra una rete "poco appresa" e i risultati del trading. È scritto ovunque che la rete deve essere addestrata fino a quando l'errore sul campione in esame non smette di diminuire. Sono d'accordo con questo e non voglio discuterne. L'essenza del mio ragionamento era di mostrare come una struttura di rete parallela porta a difficoltà nella sua ottimizzazione e come un modello non lineare basato su una serie di potenza è in grado di raggiungere lo stesso obiettivo di una rete neurale, ma con un apparato matematico molto più semplice e un processo di apprendimento veloce che porta a un risultato unico.

Per quanto riguarda il comitato delle reti, ho un'opinione: è tutto inutile. Ecco una domanda per chi crede nei comitati di rete. Supponiamo che una rete dia segnali giusti il 60% delle volte. Un'altra rete dà i segnali giusti il 60% delle volte. Ora combiniamo queste due reti e calcoliamo i segnali corretti ricevuti da entrambe le reti simultaneamente. Cioè, se entrambe le reti indicano "comprare" o "vendere", verrà dato il corrispondente segnale di "comprare" o "vendere". Se una rete indica "comprare" e l'altra "vendere", non viene dato alcun segnale. Qual è la probabilità che questi segnali siano corretti?

Si potrebbe formulare la stessa domanda in modo diverso. Prendete una riunione di scienziati in cui tutti votano sulla domanda "se c'è vita su Marte?" da un punto di vista biologico. Il 60% dei votanti risponde correttamente alla domanda (a proposito non conosco la risposta :) Prendete l'incontro di altri scienziati che votano la stessa domanda, ma dal punto di vista astronomico, e solo il 60% di loro ha ragione. Allora combinate due incontri (biologi e astronomi) in uno solo e fate la stessa domanda. Se dite che per miracolo la correttezza della risposta supera il 60%, allora dovete studiare le statistiche.

 
gpwr писал(а) >>

Lei ha frainteso l'essenza del mio ragionamento. Non ho parlato della relazione tra una rete "non addestrata" e i risultati del trading. È scritto ovunque che la rete deve essere addestrata fino a quando l'errore nel campione in esame cessa di diminuire. Sono d'accordo con questo e non voglio discuterne. L'essenza del mio ragionamento era di mostrare come una struttura di rete parallela porta a difficoltà nella sua ottimizzazione e come un modello non lineare basato su una serie di potenza è in grado di raggiungere lo stesso obiettivo di una rete neurale, ma con un apparato matematico molto più semplice e un processo di apprendimento veloce che porta a un risultato unico.

Per quanto riguarda il comitato delle reti, ho un'opinione: è tutto inutile. Ecco una domanda per chi crede nei comitati di rete. Supponiamo che una rete dia segnali giusti il 60% delle volte. Un'altra rete dà i segnali giusti il 60% delle volte. Ora combiniamo queste due reti e calcoliamo i segnali corretti ricevuti da entrambe le reti simultaneamente. Cioè, se entrambe le reti indicano "comprare" o "vendere", verrà dato il corrispondente segnale di "comprare" o "vendere". Se una rete indica "comprare" e l'altra "vendere", non viene dato alcun segnale. Quali sono le probabilità che questi segnali siano corretti?

Possiamo formulare la stessa domanda in un altro modo. Prendete una riunione di scienziati in cui tutti votano sulla domanda "se c'è vita su Marte?" da un punto di vista biologico. Il 60% dei votanti risponde correttamente alla domanda (a proposito, non conosco la risposta :) Prendete la riunione degli altri scienziati che votano la stessa domanda ma dal punto di vista astronomico e solo il 60% di loro ha ragione. Allora combinate due incontri (biologi e astronomi) in uno solo e fate la stessa domanda. Se dite che per qualche miracolo la correttezza della risposta supera il 60%, allora dovete studiare statistica.

Questo non è un buon esempio...

Ci sono molti modi di costruire composizioni algoritmiche (comitati). Lei suggerisce di votare, dalla mia esperienza posso dire che tutt'altro che il modo migliore, una semplice ponderazione è spesso migliore.

L'autocorrelazione (FunkOsh[i]||FunkOsh[i+1]) è solitamente significativa > 0,8. E la correlazione delle funzioni di errore degli algoritmi di base tende a 1. I comitati costruiscono credono che gli algoritmi di base si compensino a vicenda, è necessario che non ci sia stata alcuna correlazione tra le funzioni di errore per qualsiasi bene.

E non dimentichiamoci di AdaBoost - funziona davvero, ma ha le sue insidie.

 
gpwr >> :

Lei ha probabilmente dimenticato, come del resto la maggior parte dei neuro scrittori di questo forum, a giudicare dai commenti lasciati, di imparare senza un insegnante. Perché, se usate la NN nel trading, dovete insegnare qualcosa alla NN? Non possiamo insegnare adeguatamente a noi stessi come fare trading. Parlando del comitato di reti, intende dire che ogni NN è addestrata in modo indipendente? E perché danno segnali separatamente l'uno dall'altro? Quando si costruiscono NN, e ancora di più un comitato di NN, l'unica soluzione corretta è "imparare senza insegnante". Il cervello ha diverse parti e più di una dozzina di sotto-rami. Ognuno di loro svolge una funzione diversa, elaborando informazioni esterne a loro. E il proprietario di questo "comitato" prende una decisione. Come è possibile? È possibile perché il comitato di reti deve funzionare in connessione tra loro - come un complesso, altrimenti non funzionerà nulla, ci sarà una "personalità scissa".

 
StatBars >> :

solo un po' più avanti di me :)

 
gpwr >> :

Sul comitato di rete, ho un'opinione: è tutto inutile. Ecco una domanda per chi crede nei comitati di rete. Diciamo che una rete dà i segnali giusti il 60% delle volte. Un'altra rete dà i segnali giusti il 60% delle volte. Ora combiniamo queste due reti e calcoliamo i segnali corretti ricevuti da entrambe le reti simultaneamente. Cioè, se entrambe le reti indicano "comprare" o "vendere", verrà dato il corrispondente segnale di "comprare" o "vendere". Se una rete indica "comprare" e l'altra "vendere", non viene dato alcun segnale. Quali sono le probabilità che questi segnali siano corretti?

Possiamo formulare la stessa domanda in un altro modo. Prendete una riunione di scienziati in cui tutti votano sulla domanda "se c'è vita su Marte?" da un punto di vista biologico. Il 60% dei votanti risponde correttamente alla domanda (a proposito non conosco la risposta :) Prendete la riunione degli altri scienziati che votano la stessa domanda ma dal punto di vista astronomico e solo il 60% di loro ha ragione. Allora combinate due incontri (biologi e astronomi) in uno solo e fate la stessa domanda. Se dite che per qualche miracolo la correttezza della risposta supera il 60%, allora dovete studiare le statistiche.

probabilità di segnale corretto (0,6*0,6)/(0,6*0,6+0,4*0,4)=69,23%, questo in teoria)

l'esempio di una collezione di scienziati non è corretto. dalla probabilità alla media.

La statistica è un'altra parte divertente della matematica :)

 
gpwr писал(а) >> È scritto ovunque che la rete deve essere addestrata fino a quando l'errore nel campione in esame smette di diminuire.

In realtà è molto più complicato di così. Quando lo si addestra a un errore minimo sul campione in esame, è probabile che si ottenga una rete sovra-addestrata......