市场礼仪或雷区中的良好风度 - 页 21

 
grasn писал(а)>>

当我在创作时,我必须看起来像个艺术家!"。但当我在编码时......。:о)))

PS:Serega,在MathCAD中它几乎是单开的,但在C++/FORTRAN中...将是不同的,但在MathCAD中--说句不好听的,不是(对于这个特定的案例)。如果你使用平均数,它的计算速度会更快,如果你使用corr,例如,你的 "快速 "算法会龟缩 :o)。他们是如何做到的,我不知道,但至于 "求和 "运算符--它比循环快得多。如果你没有那样做--那么就放一个新版本。

明白了。

谢谢你提供的信息!

 
Neutron >> :

不要忘记,建议在每次倒计时时都要教这些东西--这并不容易。

现在我明白了!我在数所有的委员会在一堆...

我不打算增加隐藏层的神经元数量。我不明白为什么,它在两个人的情况下运作良好。

如果你不介意的话,我想直接使用ORO,因为我已经有一个两层的网格准备好了,并且正在工作(甚至有 "来自背景 "的刻度),如果感兴趣的话--我可以把代码布置好。

 

到目前为止,我所做的是这样的。



d = 17;

w = 17*3 + 4 = 55;

P = 4*55*55/17 = 712;

------------------------------------------------------------------------


到目前为止,ORO算法是这样算出来的(只针对输出层权重)。

// ----------------------------------------- ЭПОХА ---------------------------------------------------

for(int i = cikl; i > 2; i--)
{
out = OUT(i); // Получаем выход сетки
target = (Close[i]-Close[i+1])/Close[i+1];--------------------// Получаем целевое значение
delta = target - out;-----------------------------------------// Вычитаем выход сетки из целевого значения
pr = th(out);-------------------------------------------------// Вычисляем производную выходного сигнала
pr = 1 - pr*pr;-----------------------------------------------//

for(int n = 0; n < 4; n++)
{
Corr[n] += delta * pr * D2[n];--------------------------------// Вычисляем ошибку для каждого веса и суммируем её за всю эпоху
Norm[n] += Corr[n]*Corr[n];-----------------------------------// Считаем норму вектора коррекций для каждого веса за всю эпоху
}
}
// ------------------------------------- КОНЕЦ ЭПОХИ --------------------------------------------------

// ----------------------------------- КОРРЕКЦИЯ ВЕСОВ ------------------------------------------------

for(i = 0; i < 4; i++)

W2[i] += Corr[i]/MathSqrt(Norm[i]);



这似乎很有效!但仍有一些事情是错误的。在1000多个历时中,所有的权重都变得非常小。

W2 [0] = 0.0876 W2 [1] = 0.0772 W2 [2] = -0.0424 W2 [3] = -0.05

我错过了什么,我现在如何把错误推给输入权重?

 
Prival писал(а)>>

看看这些私人信息。我为写在这里而道歉,但它们往往不能反映信息。

谢尔盖,检查你的私人信息。

对准焦点

我稍后会给你答复。

我正在为NS的输入数据工作,我想到了这个想法。顺便问一下,在计算训练向量长度时,你为什么要将权重数乘以3?我知道你应该有w=17+4,仅此而已!你在培训每个委员会成员,让他们有自己的个人载体...

 
Neutron >> :

...顺便问一下,在计算训练向量长度时,你为什么要将权重数乘以3?我认为你应该有w=17+4,就这样!你要用他/她自己的个人矢量来训练每个委员会成员...

在这种情况下,输入矢量是相同的。每次统计时都要读一遍,然后每个委员会成员通过他们个人的 "点数"(权重)来 "看 "它,并作出判断。

当然,它可以为委员会的每个成员单独阅读,但如果结果是一样的,又有什么意义呢?输入向量是16个连续增量的商数+一个单一输入。

А...我明白了!是的,我曾经有两个不同的输入向量:Kotir根据Fibo系列的dt递增 - 2,3,5,8...和其他由卢克的系列 - 3,4,7,11...而且只有2名委员会成员。那时,每个委员会成员都阅读不同的载体,但现在我把事情简化了,专注于理解ORO。因此,在这种情况下,矢量是1。

会不会因为我只教了第二层而使重量下降这么多?

 

那么,结果仍然是:W=17+4,每个成员都有相同的向量。

Paralocus,这是我的想法。我们不要超前,在MQL中解决一个具有非线性输出的双层非线性Perspectron,并得到一个积极的结果。然后你将转到网络委员会(如果需要)。

你怎么看?

 
Neutron >> :

那么,结果仍然是:W=17+4,每个成员都有相同的向量。

Paralocus,这是我的想法。我们不要超前,在MQL中解决一个具有非线性输出的双层非线性Perspectron,并得到一个积极的结果。然后你将转到网络委员会(如果需要)。

你怎么说?

好的!我的意思是,我们把所有的政委和主席都带出去。有点像 "帮派子弹"......-:)>> 让我们开始吧。

P/S,除了一个--第一个

 

好吧,那我们就走吧!

1.找到最后一个神经元输出端的误差:d2out=X[-1]-OUT2,(我的意思是编号为MQL,这是 "未来 "的计数)。

2.考虑到其输入的非线性,重新计算:d2in=d2out*(1-OUT2^2)

3.同样的误差通过轴突进入第一层的每个神经元的输出端!现在,其输出端的误差为d1out,我们重复程序(2)在其输入端重新计算:d1[1]in=d1out*(1-OUT1[1]^2),以同样的方式对隐藏层的第二个神经元进行计算。

 
权重是通过计算误差修正的,还是还没有?
 

没有。

首先,我们计算每个权重的微观修正:dw=in*din--德尔塔规则--我们用输入信号乘以适用于某个特定输入的误差。然后,我们在训练向量的所有样本上对每个权重进行单独的总结。在训练纪元的迭代中,权重没有被修正。只有微校正和它们的平方被累积(在另一个加法器中)。

P.S. 我纠正了上面帖子中的错误。导数的求法如下。*(1-OUT2^2)。