间接训练前馈神经网络

时间:2013-11-24 18:35:54

标签: python algorithm neural-network pybrain

我遇到了这个问题:

我必须构建一个必须近似未知函数f:R^2 -> R^2的FFNN。我拥有的用于检查网络的数据是一维R向量。我知道函数g:R^2->R会将网络的输出映射到我的数据空间。所以我会使用神经网络作为数据偏差的过滤器。但我面临两个问题:

首先,我如何以这种方式训练我的网络?

其次,我正在考虑添加一个额外的隐藏图层来映射R^2->R并让网络自己找到正确的地图,然后移除额外的图层。这个算法是否正确?也就是说,输出是否与我想要的相同?

1 个答案:

答案 0 :(得分:1)

您对附加图层的想法很好,但问题是,您必须修复此图层中的权重。因此在实践中,您必须计算R ^ 2-> R映射的偏导数,该映射可用作在训练期间通过网络传播的错误。不幸的是,这可能导致众所周知的“消失梯度问题”,这阻碍了NN的发展多年。

简而言之 - 您可以手动计算偏导数,并在R中给出预期输出,只需将计算出的“反向传播”误差提供给网络,寻找R ^ 2-> R ^ 2映射或正如您所说 - 创建额外的图层,并正常训练它,但你必须使上部权重恒定(这将需要在实现中进行一些更改)。