Neural network 四参数函数逼近的神经网络
我有一个函数如下所示:Neural network 四参数函数逼近的神经网络,neural-network,backpropagation,Neural Network,Backpropagation,我有一个函数如下所示: y = a^(2b) + c^(2d) 我想通过使用反向传播训练神经网络来近似这个函数。变量a、b、c和d的范围目前对我来说是不确定的,因此首先我假设它们都在范围[0,1]内。然后我通过假设变量的均匀分布来生成一个训练集。在找到适当数量的隐藏节点和层以及反向传播的学习率和动量的良好值之后,我可以使用此范围在测试集上获得较低的平均误差。但是,一旦我将变量的范围更改为[-1,1]之类的值,错误就会增加很多 我需要改变神经网络的结构(见下面的coment)和反向传播的参数,这
y = a^(2b) + c^(2d)
我想通过使用反向传播训练神经网络来近似这个函数。变量a
、b
、c
和d
的范围目前对我来说是不确定的,因此首先我假设它们都在范围[0,1]内。然后我通过假设变量的均匀分布来生成一个训练集。在找到适当数量的隐藏节点和层以及反向传播的学习率和动量的良好值之后,我可以使用此范围在测试集上获得较低的平均误差。但是,一旦我将变量的范围更改为[-1,1]之类的值,错误就会增加很多
我需要改变神经网络的结构(见下面的coment)和反向传播的参数,这是否正常取决于我提供给网络的变量范围?或者这可能与隐藏层中具有sigmoid激活功能的节点有关
注意:当变量的范围不是[0,1]时,我将其规格化为该范围,这样它将与sigmoid函数一起工作。还请注意,函数可能不是回答问题所必需的
y
,但提供了一些上下文。输出层中的节点也是sigmoid吗?因为如果是这样的话,它们将永远无法复制您的输入函数:对于b
和d
的负值,y
接近无穷大,因为a
和c
接近零
只是随便说说你可以尝试的一些可能的事情,我绝对不是专家,所以对所有这些建议持保留态度:
- 改变你对“平均误差”的定义?你可以尝试使用 类似于“中位数平方根误差”,允许偶尔出现较大误差
- 将变量范围更改为[-1,-epsilon]并集[epsilon,1]中的
a,c,对于某些
,使函数有界epsilon>0
- 将输出节点更改为使用无界激活函数。。。例如,您可以让输出节点具有激活函数
,但这可能是作弊;)李>y=a^(2b)+c^(2d)