"新神经 "是MetaTrader 5平台的一个开源神经网络引擎项目。 - 页 40

 

这些是西格玛攻角系数的函数。

//+------------------------------------------------------------------+
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我将解释这是为什么而写的。

任务:我们需要通过神经元输出本身来调节斜角,输出范围为[0;1]或[-1;1]。

让我们考虑带有[0;1]的变体。在从0到0.5的部分,我们需要减少攻角,这导致了输出温度的下降,在从0.5到1的部分,相反,角度应该增加,但最主要的是平稳性和没有过渡性。

你需要一个在特定中点有拐点的双曲线。你可以只用一个输出来控制攻角,或者把几个输出作为算术平均值来处理,否则你将锁定在攻角发射阈值函数的方向。

HZZ 如果使用给定的输入,那么就不需要line0()line1() ,但是ytrans1() 需要转移到输入范围[0;1]。

 
TheXpert

顺便说一下。

我们需要一个sigmoid函数。

要求--函数及其导数的正常形式(不难计算)和反函数及其导数的正常形式。

这些都是上面的sigmoid函数的倒数。

//+------------------------------------------------------------------+
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.));
  }
//+------------------------------------------------------------------+

但第二个需要检查,否则你可能会遇到#IND

ZZY我没有检查过,所有的东西都必须检查,以避免遇到#IND。

ZZZY对不起,忘记了正方形,已纠正。

 
Urain
所有4个函数都必须对所有的X进行定义
 
Urain

这是上述sigmoid函数的倒数。

但第二个需要检查,否则你可能得到#IND


在该函数中插入类似这样的内容。

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

把类似这样的东西放在函数中。

可以调用线性激活器,没有必要混淆混乱的公式,因为它是。

ZS 39页,最后两个函数line0()和line1()。

ZZY在第39页增加了另一个函数,检查Mline()是否有多余的-#IND #IND

 
愚蠢。
 
TheXpert


?

 

为什么,我喜欢。

我想这个名字已经不是问题了吧?

 
TheXpert

为什么,我喜欢。

我想这个名字是不可能的?

))

在发展的过程中,事情会像往常一样发生一百次变化。

 

一切看起来都很酷,但有些东西要么是错误的,要么是不必要的,要么是缺失的......。

而且不清楚为什么,因为仔细一看,根本就没有什么可以弥补的。

你的头像上有你的头吗?

或者你需要睡一觉。我现在就去做。而明天我就要去钓梭鱼了。