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

 
FION >> :

Nel tuo codice - if(NormalizeDouble(SquarHid[i,j],4) != 0.0), il confronto non funziona.

Grazie, ma non c'è nemmeno un errore di "divisione per zero" nel mio codice.

 
Neutron >> :

Ciao, Sergei!

Ma Grasn ha detto che la 14esima versione è corrotta e il motore è morto e ha errori nei diaframmi. La cosa principale è che non puoi usarlo per la prima volta nella tua vita. Il kit di distribuzione Matkad costa 100 rubli.

Non è esattamente "graffiante". Quello che stavo dicendo è che nel 14 il motore è più economico e tutto si riduce alla vecchia discussione, quale motore è migliore Waterloo Maple vs SciFace Software. In realtà, alcuni sono migliori e alcuni sono peggiori - bisogna vedere di cosa si ha bisogno. Ecco un esempio, c'è un problema così classico sul movimento di 3 pianeti. In certe condizioni iniziali un pianeta cattura la traiettoria dell'altro.


Ecco la soluzione in 13 Mathcadet (catture)


Ecco la soluzione in 14 matcadet (al diavolo).



Ma la versione 14 ha molti vantaggi, molti. Probabilmente dovrò passare ad esso, perché il 13 si blocca in Vista. Ma il 13 ha già abbastanza bug, quindi cosa dire delle vecchie versioni.

 

Ciao, Sergei!

Sono delle belle domande quelle che hai sollevato. Sono bellissimi. Forse si tratta di precisione per il metodo numerico. Ottieni una precisione maggiore e le soluzioni convergeranno...

 
Neutron, se inserisco questo fattore di regolazione (1 - J/N), devo usarlo per tutti i pesi, o posso usarlo per i pesi dello strato nascosto, per esempio, e non usarlo per i pesi del neurone di uscita? Al momento lo uso solo per i pesi dei livelli nascosti. I pesi si sono più o meno stabilizzati +/-50. Uso il numero di epoche come N.
 
Neutron писал(а) >>

Ciao, Sergei!

Sono delle belle domande quelle che hai sollevato. Sono bellissimi. Forse si tratta di precisione per il metodo numerico. Se si imposta la precisione più alta e le soluzioni convergono...

No, non si tratta di precisione.

 
paralocus писал(а) >>
Neutron, se inserisco questo fattore di regolazione (1 - J/N), devo usarlo per tutte le scale, o posso usarlo per le scale dello strato nascosto per esempio, e non usarlo per le scale del neurone di uscita? Al momento lo uso solo per i pesi dei livelli nascosti. I pesi si sono più o meno stabilizzati +/-50. Uso il numero di epoche come N.

Provate di qua e di là. Lo applico a tutte le mie bilance senza eccezione. Ma questo è dovuto al mio amore per la semplicità in tutte le cose, il desiderio di uniformità. Forse funzionerà per te. N è il numero di epoche.

 

Una cosa mi confonde:

La correzione in questo sistema avviene di continuo, che ne abbiate bisogno o no. Questo è tanto più stagnante per una griglia di ingresso binaria.

Cioè, se il segno è indovinato correttamente, ma c'è una differenza tra l'ampiezza all'uscita della griglia e il segnale di prova, la correzione avviene comunque. Ma è davvero necessario?

Dopo tutto, la griglia, in questo caso, non si sbaglia...

 
Neutron >> :

... Ma, ha a che fare con il mio amore per la semplificazione in tutte le cose, lo stemma di sameness....

Non un ramo, ma una master class! Grazie per un sacco di cose utili! Non faccio ORO, ma le raccomandazioni di allenamento funzionano benissimo anche su PNN. Grazie ancora: grazie Neutron!

 

Grazie, Rsi, per le tue gentili parole. Sempre felice di condividere la conoscenza!

paralocus писал(а) >>

Una cosa mi confonde:

La correzione in questo sistema avviene di continuo, che ne abbiate bisogno o no. Tanto più stagnante per una rete con ingresso binario.

Cioè, se il segno è indovinato correttamente, ma c'è una differenza tra l'ampiezza all'uscita della griglia e il segnale di prova, la correzione avviene comunque. Ma è davvero necessario?

Dopo tutto, la griglia, in questo caso, non si sbaglia...

Ho lo stesso comportamento.

Ed è corretto, perché la griglia affina costantemente la precisione della previsione non solo il segno...

 

Ciao Neurton! Comunque, ancora nessuna fortuna con il doppio strato.

Ho scritto un perceptron a singolo strato con ORO e l'ho eseguito tutto il giorno ieri. Si comporta in modo strano. Impara e non impara, ed è catastroficamente dipendente dal numero di epoche.

Quindi i miei risultati sono i seguenti: 8 epoche - la griglia non impara, 12 epoche - la griglia impara, 13 epoche - la griglia non impara.

In breve, i risultati si vantano che non posso ancora.

In ogni caso, descriverò il mio algoritmo, che ho implementato. Vediamo se mi è sfuggito qualcosa.


1. Il perceptron ha D ingressi binari, uno dei quali è una costante +1.

2. Il BP usato è incrementi sequenziali di cotier su un certo numero di Open.

3. Tutti i pesi sono inizializzati con piccoli valori casuali dall'intervallo +/-1 prima di iniziare.

4. La lunghezza del vettore di allenamento è calcolata come P = 4 * D*D/D = 4*D.

5. Il vettore di addestramento è alimentato all'ingresso della griglia e l'errore della griglia è calcolato come Qs = Test - OUT, dove Test è il valore di BP a n+1, cioè il prossimo, readout, OUT è l'uscita della griglia a n readout.

6. Per ottenere il valore dell'errore agli ingressi Qs, l'errore della griglia Qs viene moltiplicato per la derivata della funzione di compressione (1 - OUT+OUT): Q = Qs *(1 - OUT*OUT).

7. Il vettore di correzione per ogni peso che entra in un neurone COR[i] += Q*D[i] è calcolato e accumulato durante l'epoca.

8. SQR[i] += COR[i]*COR[i] è calcolato separatamente e accumulato durante l'intera epoca per ogni peso, incluso nel neurone.

9. Alla fine di un'epoca, per ogni peso viene calcolata la correzione personale e aggiunta a quel peso W[i] += COR[i]/SQR[i]


Ho provato a usare un coefficiente di (1 - j/N), così come a randomizzare i pesi i cui valori assoluti sono cresciuti oltre 20. La randomizzazione aiuta meglio.

P.S ha corretto un errore nel testo