神经网络 - 页 3

 
joo >> :

最小化/最大化目标函数E(w1,w2)的意义在于找到一个全局极值。如果有一百万个这样的全球极值,对我们来说,哪一个NN属于哪个极值又有什么区别呢?

如果它被卡在某个局部的最小/最大点上,情况会更糟糕。但这不再是NN的问题了。这是一个优化算法的问题。


gpwr所描述的--不可能。


我同意,如果所有的局部最小值在深度上是相同的,因此是全局性的,那么网络最终进入哪一个就没有区别。但对于有噪声序列的简化版网络,在曲面E(w1,w2)的顶点也存在局部最小值。因此,需要通过遗传优化或梯度下降,用几种不同的初始值来最终达到谷底。我的例子是为了说明平行神经网络数学,它导致了大量的局部最小值和复杂(漫长)的学习过程。这个学习过程通常包括几个步骤,使用不同的优化技术:全局(遗传算法、差分进化、粒子群优化、蚁群优化)和局部(梯度下降、共轭梯度、Levenberg-Marquardt、BFGS),并且需要很长的时间。

神经网络数学的基础是科尔莫戈罗夫定理:任何n个变量的连续函数x[1]...x[n],都可以表示为2n+1个单位段的连续和单调映射的叠加之和。


任何连续函数也可以表示为一个无限的泰勒级数。


幂级数是泰勒级数的一个简化版本。



将一个未知的函数表示为一个幂级数,在数学上比神经网络更简单。我将在下面解释。

让我们取一个一阶的幂级数。


(1) y = f(x[1]...x[n]) = a[0] + sum(a[i] *x[i], i=1...n)


这是线性函数以外的东西。如果y,x[1],...,x[n]是同一序列的项,那么我们有一个线性自回归(AR)模型。单层神经网络也由相同的模型(1)来描述。

现在让我们拿一个二阶幂级数。


(2) y = f(x[1].x[n]) = a[0] + sum(a[i]*x[i], i=1..n) + sum(b[i,j]*x[i]*x[j], i=1..n,j=1..n)


等等。基于幂级数的模型的未知参数是系数a[i],b[i,j],...,它们是每个输入x[i]的函数f(x[1]...x[n])的偏导数。模型的输出是这些系数的线性函数,而输出是x[1]...x[n]的非线性函数。寻找模型系数a[i],b[i,j],...,是通过最小化误差平方之和来完成的,就像在训练神经网络的情况下。


E(a[i],b[i,j],...) = sum( (t[k]-y[k])^2, k=1...p)


但在神经网络的情况下,我们得到的是非线性最小二乘法,而在幂级数的情况下,我们得到的是线性最小二乘法,解决这个问题很简单:我们找到每个系数a[i],b[i,j],...的导数E(a[i],b[i,j]),并将它们等效为零。我们得到一个带有未知数a[i],b[i,j],...的线性对称方程组,用Cholesky方法进行求解。

与科尔莫戈罗夫方法(神经网络)相比,幂级数方法的优势在于。

1.训练模型要容易得多,也快得多:只有一次迭代。通过结合不同的优化方法,在1000-100000次迭代中训练神经网络。

2.学习幂级数的结果是毫不含糊的,即只有一个既是局部又是全局的最小值。神经网络的一致训练会导致不同的局部最小值,从而导致不同的权重值和同一过程(时间序列)的不同模型。

下面是幂级数y = a*x + b*x^2的表面E(a,b),有 "噪声 "训练数据t[k] = cos(x[k]) + rnd。


请注意,与神经网络相比,这里只有一个最小值。

基于幂级数的非线性模型的缺点是其系数数量随着幂级数的增加而快速增长。假设n是输入的数量(x[1].x[n])。系数nc的数量是由公式决定的。

顺序=1, nc=n+1

顺序=2,nc=(n+1)*(n+2)/2

顺序=3,nc=(n+1)*(n+2)*(n+3)/6

顺序=4,nc=(n+1)*(n+2)*(n+3)*(n+4)/24

...

例如,一个有12个输入的三阶过程模型有455个系数。他们的检索率仍然高于具有较少权重的神经网络的检索率。问题不在于减缓幂级数的学习速度,而在于找到足够数量的训练集x[1...n][k],t[k],它必须超过模型的系数数以避免退化。在实践中,二阶或三阶的幂级数可以得到满意的结果。

 
gpwr >> :

我仍然是网格的新手,所以我不能说得很权威。

但我认为论坛上所有的网格爱好者都想做一个线性求解器(线性方程组)。

然后为了在解决方案中引入不可预测性,他们通过输入与输出的循环来使其适应。


我通过反思和尝试理解别人的做法,得出了和你一样的结论。

但这样解决,你就无法回答问题。

而这些新到的数据在系统中没有根基--这些是买入或卖出。

因为没有定义该模型的函数。


试着把格子教给油漆区。

你想训练TE,以便当输入这个区域的坐标时,网格产生1,而当来自未画的区域的坐标为0。

每个神经元的输出应该有一个分类器,该分类器应该根据训练情况采取一种状态。

如果d大于d或小于d则为真(d分别是一个阈值)。(如果我错了,请不要对我进行太严厉的批评)。

 
gpwr >> :

在彻底研究了神经网络并使用各种学习算法,从梯度下降到遗传学,我得出的结论是,神经网络的数学装置并不完美。

你不一定要在你的手中有一个理想。这一切都与一个问题产生了共鸣:为了提高市场进入的可靠性,人们可以跳过多大比例的运动。理想情况下,人们希望能100%地采取 "之 "字形;-)。在实践中,对许多人来说,在每条边上至少拿下50%是一个圣杯。

从现有的信息来看,网格确实有效。模糊性问题通过选择配置、网格大小和其初始化得到解决。原则上,局部最小值的问题也是可以解决的--通过退火法或相同的遗传方法(我们不是在那里选择接受 "坏基因 "的概率吗,这相当于跳出了局部谷底?)另外,我们还必须记住,有一些网的委员会在做工作,而不是只有一个。而从更广泛的角度来看,不是一切都局限于教师辅助学习的全绑定反向传播网格吗?为什么不试着把报价和信号放到输入矢量中,然后把它反馈给科霍宁,比如说?

 
gpwr писал(а)>>

你有一个能产生稳定利润的网络吗?

你认为 "稳定的利润 "意味着什么?

 
marketeer >> :

你不一定要有一个完美的在手。这一切都呼应了这样一个问题:为了提高市场进入的可信度,人们可以跳过多大比例的运动。理想情况下,人们希望能100%地采取 "之 "字形;-)。在实践中,对许多人来说,在每条边上至少采取50%的做法是一种圣杯。

从现有的信息来看,这些网确实在发挥作用。有歧义的问题通过选择配置、网格大小和其初始化来解决。原则上,局部最小值的问题也是可以解决的--通过退火法或相同的遗传方法(我们不是在那里选择接受 "坏基因 "的概率吗,这相当于跳出了局部谷底?)此外,我们还必须记住,有一些网的委员会在做工作,而不是只有一个。而从更广泛的角度来看,不是所有的东西都局限于教师辅助学习的全绑定反向传播网格吗?为什么不试着把报价和信号放到输入矢量中,然后把它反馈给科霍宁,比如说?


你误解了我推理的本质。我不是在谈论 "学习不足 "的网络和交易结果之间的相关性。到处都写着,网络应该被训练到被测样本的误差停止减少。我同意这一点,也不想争论这个问题。我的推理的实质是说明平行网络结构如何导致其优化的困难,以及基于幂级数的非线性模型如何能够实现与神经网络相同的目标,但其数学装置要简单得多,而且学习过程快,导致结果独特。

至于网络委员会,我有一个看法:这都是没用的。这里有一个问题要问相信网络委员会的人。假设一个网络在60%的时间里给出正确的信号。另一个网络在60%的时间里给出了正确的信号。现在让我们把这两个网络结合起来,同时计算出两个网络所收到的正确信号。也就是说,如果两个网络都表示 "买入 "或 "卖出",就会给出相应的 "买入 "或 "卖出 "信号。如果一个网络表示 "买入",而另一个表示 "卖出",则不发出信号。这些信号正确的概率是多少?

你可以用不同的方式来表述同一个问题。以一次科学家会议为例,每个人都从生物学的角度对 "火星上是否有生命?"这个问题进行投票。60%的投票者正确回答了这个问题(顺便说一下,我不知道答案:)拿其他科学家的会议来说,他们对同样的问题进行投票,但从天文学的角度来看,只有60%的人是正确的。然后把两个会议(生物学家和天文学家)合二为一,问同一个问题。如果你说通过某种奇迹,答案的正确率上升到60%以上,那么你需要研究一下统计数据。

 
gpwr писал(а)>>

你误解了我推理的本质。我没有谈及 "未经训练的 "网络与交易结果之间的关系。到处都写着,网络必须被训练到被测样本的误差不再减少。我同意这一点,也不想争论这个问题。我的推理的实质是说明平行网络结构如何导致其优化的困难,以及基于幂级数的非线性模型如何能够实现与神经网络相同的目标,但其数学装置要简单得多,而且学习过程快,导致结果独特。

至于网络委员会,我有一个看法:这都是没用的。这里有一个问题要问相信网络委员会的人。假设一个网络在60%的时间里给出正确的信号。另一个网络在60%的时间里给出了正确的信号。现在让我们把这两个网络结合起来,同时计算出两个网络所收到的正确信号。也就是说,如果两个网络都表示 "买入 "或 "卖出",就会给出相应的 "买入 "或 "卖出 "信号。如果一个网络表示 "买入",而另一个表示 "卖出",则不发出信号。这些信号正确的概率是多少?

我们可以用另一种方式来表述同一个问题。以一次科学家会议为例,每个人都从生物学的角度对 "火星上是否有生命?"这个问题进行投票。60%的投票者正确回答了这个问题(顺便说一下,我不知道答案:)拿其他科学家的会议来说,他们对同一个问题进行投票,但是从天文学的角度来看,只有60%的人是正确的。然后把两个会议(生物学家和天文学家)合二为一,问同一个问题。如果你说通过某种奇迹,答案的正确率上升到60%以上,那么你需要学习统计学。

这不是一个很好的例子...

构建算法组合(委员会)的方法有很多。你建议Voting,从我的经验来看,我可以说远不是最好的方式,简单的加权往往更好。

自相关(FunkOsh[i]||FunkOsh[i+1])通常显着>0.8。而基本算法的误差函数的相关度趋于1。委员会建设认为,基础算法相互补偿,有必要在误差函数之间没有相关性的任何好。

我们也不要忘记AdaBoost--它确实有效,但它也有自己的缺陷。

 
gpwr >> :

你可能已经忘记了,事实上这个论坛上的大多数神经病作家都忘记了,从留下的评论来看,没有老师的学习。为什么,如果你在交易中使用NN,你必须要教NN一些东西?我们不能充分地教自己如何交易。你说的网络委员会,是指每个NN都是独立训练的吗?还有,为什么它们的信号是彼此分开的?在构建NNs,甚至更多的NNs委员会时,唯一正确的解决方案是 "没有老师的学习"。大脑有几个部分,有十几个分支。它们中的每一个都执行不同的功能,处理它们外部的信息。而这个 "委员会 "的主人做出一个决定。这怎么可能呢?这是有可能的,因为网络委员会的功能必须是相互联系的--作为一个综合体,否则任何东西都不会起作用,会有一个 "人格分裂"。

 
StatBars >> :

只是比我早一点 :)

 
gpwr >> :

关于网络委员会,我有一个看法:这都是没用的。这里有一个问题要问相信网络委员会的人。假设一个网络在60%的时间里给出了正确的信号。另一个网络在60%的时间里给出了正确的信号。现在让我们把这两个网络结合起来,同时计算出两个网络所收到的正确信号。也就是说,如果两个网络都表示 "买入 "或 "卖出",就会给出相应的 "买入 "或 "卖出 "信号。如果一个网络表示 "买入",而另一个表示 "卖出",则不发出信号。这些信号正确的概率是多少?

我们可以用另一种方式来表述同一个问题。以一次科学家会议为例,每个人都从生物学的角度对 "火星上是否有生命?"这个问题进行投票。60%的投票者正确回答了这个问题(顺便说一下,我不知道答案:)拿其他科学家的会议来说,他们对同一个问题进行投票,但是从天文学的角度来看,只有60%的人是正确的。然后把两个会议(生物学家和天文学家)合二为一,问同一个问题。如果你说通过某种奇迹,答案的正确率上升到60%以上,那么你需要研究一下统计数据。

正确信号的概率(0.6*0.6)/(0.6*0.6+0.4*0.4)=69.23%,这是在理论上)。

从概率到平均值的例子是不正确的。

统计学是数学的另一个有趣部分 :)

 
gpwr писал(а)>> 到处都写着,网络必须训练到被测样本的误差停止减少。

实际上比这要复杂得多。当你在被测样本上将其训练到最小误差时,你很可能得到一个过度训练的网络......。

原因: