use*_*774 3 artificial-intelligence machine-learning neural-network
我写了一个简单的复发神经网络(7个神经元,每个神经元最初连接到所有神经元)并使用遗传算法训练它来学习"复杂"的非线性函数,如1 /(1 + x ^ 2).作为训练集,我使用了[-5,5]范围内的20个值(我试图使用超过20个,但结果没有显着改变).
网络可以很好地学习这个范围,并且当给出该范围内的其他点的示例时,它可以预测函数的值.但是,它无法正确推断并预测范围[-5,5]之外的函数值.这是什么原因,我该怎么做才能提高其外推能力?
谢谢!
lej*_*lot 14
神经网络不是外推法(无论是否经常发生),这完全超出了他们的能力范围.它们用于在提供的数据上拟合函数,它们完全可以在填充了训练点的子空间之外构建模型.因此,在非常严格的意义上,人们应该将它们视为插值方法.
为了清楚起见,神经网络应该能够推广训练样本所跨越的子空间内的函数,但不能在它之外
神经网络仅在与训练样本的一致性方面进行训练,而外推则完全不同."H.Lohninger:Teach/Me Data Analysis,Springer-Verlag,Berlin-New York-Tokyo,1999.ISBN 3-540-14743-8"中的简单示例显示了NN在这种情况下的行为
所有这些网络都与训练数据一致,但可以在此子空间之外执行任何操作.
您应该重新考虑您的问题的表述,如果它可以表示为回归或分类问题,那么您可以使用NN,否则您应该考虑一些完全不同的方法.
唯一能够以某种方式"纠正"训练集之外发生的事情的方法是:
结合上述两个步骤可以帮助构建在某种程度上"推断"的模型,但是如前所述,这不是神经网络的目的.
归档时间: |
|
查看次数: |
6051 次 |
最近记录: |