Galateo del mercato o buone maniere in un campo minato - pagina 28

 
YDzh писал(а) >>

Rete neurale, 13 ingressi, nessun livello nascosto. Addestramento dell'algoritmo genetico

Fantastico, YDzh!

I miei risultati sono molto più modesti. Devi metterlo su un demo e vedere dove la rete si interrompe.

paralocus ha scritto >>.

Neutron, sembra che tu avessi ragione sui 25 conteggi di prontezza... -:)

Qualcosa nella mia rete non sta imparando. Dopo 100 epoche i pesi sono praticamente gli stessi con cui la rete è stata inizializzata.

In una nota correlata, un'altra domanda stupida:

Il vettore di apprendimento è lo stesso in ogni epoca o no?

Comunque, si scopre che il rapporto tra la correzione accumulata e la correzione al quadrato accumulata tende a zero molto rapidamente. Ecco perché già dopo la decima iterazione l'apprendimento si ferma praticamente.

Probabilmente c'è un errore nel codice. Ho bisogno di cercarlo. Per questo motivo ho fatto la prima corsa della griglia in Matcadet, è conveniente per tracciare tutte le dinamiche di apprendimento a qualsiasi livello di dettaglio ed è molto più facile compilare le statistiche. Per confrontare i risultati dell'apprendimento, ottengo statistiche indipendenti da 100 esperimenti (su insegnabilità e predizione) e confronto solo le medie di stato.

Per quanto riguarda il vettore di addestramento, è ovviamente diverso per ogni epoca. Ma è diverso in un modo speciale - lo stesso, ma spostato a sinistra ogni volta di un passo, e l'elemento zero prende il posto di un nuovo dato, ecc.

P.S. Sto studiando la ripartizione BP ora con un passo uniforme, quindi si scopre che da un'epoca all'altra è meglio randomizzare tutti i pesi e riqualificare completamente la maglia, piuttosto che conservare la conoscenza acquisita. Forse questa è una peculiarità dei dati di input utilizzati. Voglio sottolineare, paralocus, quanto sia importante autocontrollare tutto in combattimento - i pesi crescono lentamente? - Basta mettere un coefficiente costante = 10 davanti alla somma calcolata e assicurarsi che non vada male!

 
Neutron >> :

Ci deve essere un errore nel codice. Dobbiamo cercarlo. Uso prima Matcadet per questa griglia, è comodo per tracciare tutte le dinamiche di apprendimento con qualsiasi dettaglio, ed è molto più facile compilare statistiche. Per confrontare i risultati dell'apprendimento, ottengo statistiche indipendenti da 100 esperimenti (su insegnabilità e predizione) e confronto solo le medie di stato.

Per quanto riguarda il vettore di addestramento, è ovviamente diverso per ogni epoca. Ma differisce in un modo speciale - è lo stesso vettore, ma spostato a sinistra di un passo, e l'elemento zero è sostituito da un nuovo dato, ecc.

Ho scavato il codice da ieri. Mi sembra di aver pulito tutto, ricontrollato, riscritto parte di esso per semplificarlo. Ora tutto scrive e legge esattamente come dovrebbe.

Ma devo azzerare il vettore di correzione dopo ogni epoca? Credo che questa sia la ragione. Capisco lo spostamento del vettore di un passo avanti - lo sto facendo.

 

Beh, certo che sì!

Tutti i contatori sono azzerati all'inizio del nuovo allenamento (epoca).

 

Mathcad è difficile da imparare?

Anche se mi spaventa, penso che dovrò affrontarlo...

 
Neutron >> :

Voglio sottolineare, paralocus, quanto sia importante controllare tutto da soli in battaglia - i pesi sono lenti a crescere? - Quindi metti un coefficiente costante = 10 davanti alla somma che ottieni e assicurati che non si rompano!

La necessità dell'autocontrollo è evidente per me, anche se la crescita dei pesi in questa implementazione non è stata ancora osservata. Su dove mettere 10 - non hanno ancora capito.

Tra l'altro, se si suonano i pesi all'inizio di ogni epoca, ciò equivale a usare una sola epoca. È molto simile alla verità, poiché l'incremento del vettore di errore diventa trascurabilmente piccolo per N epoche, e non abbiamo risorse extra di un personal computer.

 
Neutron писал(а) >>

Forte, YDzh!

I miei risultati sono molto più modesti. Devi metterlo su un demo e vedere dove la rete si interrompe.

Ho un problema banale con esso - non ho un computer che è sempre acceso... Dovrei cercare di usare timeframes più brevi, altrimenti l'analisi degli errori richiederà mezzo anno :)

 
paralocus писал(а) >>

Mathcad è difficile da imparare?

...

il linguaggio di programmazione più semplice, alcune persone non lo considerano nemmeno un linguaggio. Il più delle volte si vede una formula scritta in un libro e la si scrive in Matcad.

l'unica cosa che dovete ricordare è che matcad è un linguaggio a matrice. Anche un numero primo in matcad è una matrice. L'unica cosa da ricordare è che anche un numero primo è una matrice.

 
Prival >> :

è il linguaggio di programmazione più semplice, alcune persone non lo considerano nemmeno un linguaggio. Il più delle volte si vede una formula scritta in un libro e la si scrive in Matcad.

L'unica cosa che dovete ricordare è che matcad è un linguaggio matriciale. Anche un numero primo in matcad è una matrice. Lo considero (matcad) l'apice dell'evoluzione dei linguaggi di programmazione.

Grazie Prival!

>>: Felice di vederti! -:)

 
paralocus писал(а) >>

Il vettore di apprendimento è lo stesso in ogni epoca o no?

Ho sbagliato a rispondere alla tua domanda nel post precedente - mi riferivo alla previsione di una nuova epoca, non a una nuova epoca. Nell'addestramento su un nuovo rimbalzo abbiamo solo un vettore di addestramento e un centinaio di epoche di addestramento con la correzione dei pesi NS in ogni epoca!

Viene ricevuto un nuovo conto alla rovescia - il vettore di addestramento cambia e noi eseguiamo di nuovo cento epoche di addestramento su di esso, e così via.

Mi dispiace. Mi sto già confondendo.

paralocus ha scritto >>.

Matcad è difficile da padroneggiare?

Anche se ne sono terrorizzato, ma credo che dovrò trovare un modo per farlo...

No, è facile. Procuratevi un 2001i Pro.

 
paralocus писал(а) >>

Grazie Prival!

È bello vederti! -:)

Sì, leggo sempre con molta attenzione questo thread. Ma non ne capisco molto a causa dei termini. Sinapsi, epoche ...ecc.

Ci vuole tempo per capire, è meglio farlo con un insegnante (sarà più veloce). Ma finora non sono in grado di farlo. Sto preparando i dati per la verifica dell'idea, penso che la sua idea di controllare attraverso l'Assemblea Nazionale. Poi verrà il momento di capire cosa e come programmare in esso. Per ora so solo (credo di sapere) con quali dati dovrebbe essere alimentato e su cosa dovrebbe essere addestrato.

Sto lavorando con Matkad 14 e ha alcune caratteristiche più utili di 2001i.