"New Neural" è un progetto di motore di rete neurale Open Source per la piattaforma MetaTrader 5. - pagina 40

 

Queste sono funzioni per i coefficienti dell'angolo di attacco sigmoidale:

//+------------------------------------------------------------------+
double ytrans0(double y=0.5)// [0;0.5;1] --> [0;1;500.5] гипербола с перегибом в 0.5
  {
   double x=line0(y);
   return(x>0.5005?0.5005/(1.001-x):x*2.);
  }
//+------------------------------------------------------------------+
double ytrans1(double y=0.)// [-1;0;1] --> [0;1;500.5] сдвинутая гипербола с перегибом в 0.0
  {
   double x=(line1(y)+1.)/2.;
   return(x>0.5005?0.5005/(1.001-x):x*2.);
  }
//+------------------------------------------------------------------+

SZZ Vi spiego per cosa è stato scritto:

compito: abbiamo bisogno di regolare l'angolo di attacco del sigmoide dalle uscite dei neuroni stessi, uscite entro [0;1] o [-1;1].

Consideriamo la variante con [0;1]. Nel tratto da 0 a 0,5 dobbiamo diminuire l'angolo di attacco, che porta a una diminuzione della temperatura di uscita, nel tratto da 0,5 a 1, al contrario, l'angolo dovrebbe aumentare, ma la cosa principale è la scorrevolezza e senza transizioni.

Avete bisogno di un'iperbole con un'inflessione in un dato punto medio. Potete usare una sola uscita per controllare l'angolo d'attacco, o gestire diverse uscite come media aritmetica, altrimenti vi bloccherete nella direzione dell'angolo d'attacco emettendo la funzione di soglia.

HZZ Se vengono utilizzati gli ingressi dati, allora line0() e line1() non sono necessari, ma poi ytrans1() ha bisogno di spostarsi nell'intervallo di ingresso [0;1].

 
TheXpert:

A proposito.

Abbiamo bisogno di una funzione di tipo sigmoide.

I requisiti - una forma normale della funzione e della sua derivata (non troppo difficile da calcolare) e una forma normale della funzione inversa e della sua derivata.

Questi sono l'inverso della funzione sigmoide di cui sopra.

//+------------------------------------------------------------------+
double Invsigma0(double c)//  вход [0;1] обратные
  {
   return(-log((1.-c)/c));
  }
//+------------------------------------------------------------------+
double Invsigma1(double c)//  вход [-1;1]
  {
   return(-log((1.-c)/(1.+c)));
  }
//+------------------------------------------------------------------+
double Dsigma0(double c)//  вход [0;1] производные
  {//exp(-c)/(1+exp(-c))^2
   double e=exp(-c);
   double c2=1.+e;
   return(e/(c2*c2));
  }
//+------------------------------------------------------------------+
double Dsigma1(double c)//  вход [-1;1]
  {// (2*E^-c)/(1+E^-c)^2 
   double e=exp(-c);
   double c2=1.+e;
   return(2.*e/(c2*c2));
  }
//+------------------------------------------------------------------+
double DInvsigma0(double c)// вход [0;1] производные обратной сигмы
  {
   return(1./(c-c*c));
  }
//+------------------------------------------------------------------+
double DInvsigma1(double c)// вход [-1;1]
  {
   return(-2./(c*c-1.));
  }
//+------------------------------------------------------------------+

ma il secondo ha bisogno di un controllo, altrimenti si potrebbe incorrere in #IND

ZZY non ho controllato, tutto deve essere controllato per non incorrere in #IND

ZZZY scusa, ho dimenticato la piazza, corretto.

 
Urain:
Tutte le 4 funzioni devono essere definite per tutti gli X
 
Urain:

Questo è l'inverso della funzione sigmoide di cui sopra.

ma il secondo ha bisogno di un controllo, o si potrebbe ottenere #IND


Inserite qualcosa come questo nella funzione:

if(x>0.9999999)
x=1.0;
if(x<-0.9999999)
x=-1.0;
 
joo:

Inserite qualcosa come questo nella funzione:

Si possono chiamare attivatori lineari, non c'è bisogno di confondere formule confuse così com'è.

Pagina ZS 39, ultime due funzioni line0() e line1().

ZZY ha aggiunto un'altra funzione a pagina 39 per controllare Mline() per eccesso -#IND #IND #IND

 
Stupido.
 
TheXpert:


?

 

Perché? Mi piace.

Immagino che il nome non sia più un problema?

 
TheXpert:

Perché? Mi piace.

Immagino che il nome sia fuori questione?

))

Nel processo di sviluppo, le cose cambieranno cento volte, come sempre.

 

Tutto sembra bello, ma qualcosa è sbagliato, o inutile, o mancante...

E non si capisce perché, visto che a ben guardare non c'è proprio nulla da recuperare.

Hai la testa sul tuo avatar?

O hai bisogno di dormire. Cosa che farò ora. E domani vado a pesca di lucci.

Motivazione: