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

 

Ok, penso di aver capito qual è il mio errore. Ho effettivamente capito che la lunghezza del vettore di addestramento è uguale al numero di pesi! Perché accumulo le correzioni confrontando l'uscita di un neurone con ogni campione del vettore di addestramento, mentre ho bisogno di confrontarlo solo con n+1° campione. Sto scrivendo un nuovo codice.

Ecco perché i grafici sono così anomali.

 

Ecco, date un'occhiata:


Il blu è il campione di allenamento, il rosso è il campione di prova. I valori della tangente sono nell'angolo in alto a sinistra dell'immagine.

Stranamente, ho dovuto rimuovere del tutto l'inizializzazione iniziale delle scale. Solo allora i risultati sono diventati ripetibili. Ci sono ancora alcune domande, ma ora ho finito... -:)

Allego l'annuncio. Mi dispiace, non ci sono ancora commenti, ma è fatto molto semplicemente, senza un mucchio di funzioni diverse - tutto in una procedura, tranne tangenti e mnc.

File:
neyrona.rar  132 kb
 

Mi sembra che tu abbia una logica molto complicata di numerazione del vettore luuch...

Forse l'errore è una banale confusione di indici, o state azzerando i pesi solo una volta durante l'intera procedura di set statistico(W[i]<-0):

Notate che il vostro vettore D, che è l'input del NS, non viene ricalcolato con l'insieme delle statistiche (indice i). Forse mi sbaglio, perché non lo conosco bene. Era più facile per me inserire una numerazione consecutiva nel tuo codice, ed è quello che ho ottenuto:

Ora, la tua ragazza percepisce la randomizzazione iniziale dei pesi e impara adeguatamente (entrambe le linee passano per l'origine). Il rosso è il campione di allenamento, il blu è l'esame. Un file con la versione modificata è allegato qui sotto.

File:
modif.zip  16 kb
 

Fare conoscenza...

Dimmi, Sergey, perché il tuo neurone di uscita a due strati (e lo dici dall'inizio) non ha una funzione di attivazione? E poi come cambierebbe il derivato? Cioè era (per th) (1-OUT^2)

e diventa (1-OUT) ?

P.S. Grazie per il vostro aiuto

 

Aha! Finalmente ho capito come funziona questa cosa. I singoli ingressi non sono necessari solo per il periodo di apprendimento, e poi vengono usati come tutti gli altri - per i dati?

Non avevo nemmeno pensato a una cosa del genere! Inoltre, gli input sono tutti semplici, senza ipertangenti. È perché BP è una funzione regolare, o solo per amore dell'esempio?

E un'altra domanda: se la ragazza è leggermente poco allenata - beh datele solo 5-7 epoche - allora le tangenti di entrambe le mnc saranno maggiori dell'unità, questo non indica che la ragazza sta guardando nel futuro (non sto parlando del seno)?

 

Si può dimostrare rigorosamente (citando i lavori dei matematici) che per un NS a singolo strato, l'attivazione dell'uscita con una funzione non lineare non aggiunge alla sua potenza di calcolo rispetto all'uscita lineare. Pertanto, un singolo neurone con FA non lineare non ha senso.

Per il bilayer NS l'attivazione del neurone di uscita non aggiunge potenza computazionale (questa architettura ha già la massima o uguale potenza computazionale di tutte le architetture possibili - 3, 4, ecc.), quindi l'attivazione del neurone di uscita per ipertangente è ragionevole se l'uscita è ulteriormente interpretata come una probabilità di previsione accurata.

Nel caso dell'uscita lineare, la derivata non è (1-OUT) ma semplicemente 1 - è la derivata della funzione lineare y(x)=1*x.

Per quanto riguarda i singoli ingressi, sono ovviamente utilizzati sia durante l'addestramento che durante il funzionamento. Ben fatto per averlo individuato! Mi è sfuggito questo bug. Il modo corretto di rappresentare un neurone è questo:

W[0] è un peso che è sempre alimentato con 1. Nel caso di un singolo neurone, l'effetto dell'uso di un offset non è molto evidente. Anche se non è difficile simulare una situazione in cui avrebbe un ruolo importante nell'accelerare il processo di apprendimento anche in questo caso.

если девушку слегка недообучить - ну дать её всего 5-7 эпох - то тангенсы обеих мнк будут больше единицы, не говорит ли это о том, что девушка заглядывает в будущее(я не об синусе)?

No, indica solo una piccola quantità di materiale statistico e uno scarso apprendimento. Giudicate voi stessi: non potete conoscere qualcosa meglio di come è in realtà. Questo caso limite corrisponde a tg()=1 e può essere solo maggiore di 1 a causa della variazione statistica dei dati.

 
Neutron >> :

...citare le opere dei matematici


-:) Spero che vi rendiate conto di quanto sia inutile... almeno nel mio caso.

Mi farò un altro giro su questo neurone. Ho bisogno di sistemare tutto nella mia testa, e voglio rompere il codice in blocchi semplici, e domani cercherò di aggiungere un altro strato alla mia ragazza. Ma ho una domanda un po' sciocca: quando si riscrive il codice da Matkad a MQL, come si controlla ciò che è stato fatto? Non puoi riscriverlo direttamente - Matcad è un ambiente diverso e la sua logica di programma non è la stessa di MQL.

 

È qui che diventa difficile!

Per esempio, faccio uscire la tangente della pendenza (in caso di ingressi validi) come un integrale caratteristico delle prestazioni NS o la percentuale di segni indovinati correttamente (in caso di quelli binari) e la confronto con quelli in Matcad. Tuttavia, fino a questo punto, è necessario peripisce NS-ka da MCL standard, è quando il conteggio dello zero è ultimo e più in profondità (in Matkadeck viceversa). Inoltre, è necessario controllare la correttezza di NS sul processo viner, che è quando BP è ottenuto dall'integrazione di una variabile casuale. Qui la vostra ragazza dovrebbe ottenere una "D" di ferro agli esami, e vi dirà che non sta barando, cioè la tangente dell'angolo di pendenza deve tendere a zero con il numero di esperimenti che tende all'infinito come 1/n.

Questo è il generatore di una serie di Wiener:

 

È sul vinaire:


 

Mi prendo un momento: non è rimasto nulla del mio ultimo grafico, dove stavo andando a cercare la causa del "miracolo" - iFractals mi ha spudoratamente imbrogliato di nuovo. Non appena ho scritto i miei iFractal, tutto si è chiarito, cioè il miracolo è scomparso :)

Buona fortuna, colleghi