gpt4 book ai didi

math - 在德类实现反向传播时的奇怪行为

转载 作者:行者123 更新时间:2023-11-30 09:23:29 28 4
gpt4 key购买 nike

目前我正在尝试实现深度信念网络。但我遇到了一个非常奇怪的问题。我的源代码可以在这里找到:https://github.com/mistree/GoDeep/blob/master/GoDeep/

我首先使用 CD 实现了 RBM,它运行得非常好(通过使用 Golang 的并发特性,它的速度相当快)。然后我开始实现一个带有反向传播的正常​​前馈网络,然后奇怪的事情发生了。看起来很不稳定。当我使用异或门测试运行它时,它有时会失败,只有当我将隐藏层节点设置为 10 或更多时,它才不会失败。下面是我的计算方法

第1步:计算所有带有偏差的激活

第2步:计算输出误差

第3步:将错误反向传播到每个节点

第4步:计算每个节点动量的增量权重和偏差

在第 1 步到第 4 步中,我进行了完整的批处理操作并总结了这些增量权重和偏差

第 5 步:应用平均增量权重和偏差

我按照这里的教程 http://ufldl.stanford.edu/wiki/index.php/Backpropagation_Algorithm

通常,如果我给它更多的隐藏层节点,它就会起作用。我的测试代码在这里https://github.com/mistree/GoDeep/blob/master/Test.go

所以我认为它应该可行并开始通过结合 RBM 和普通神经网络来实现 DBN。然而结果就变得非常糟糕。它甚至无法在 1000 次迭代中学习异或门。有时会完全出错。我尝试用它进行调试,所以在 DBN 的 PreTrain 之后我进行了重建。大多数时候,重建看起来不错,但当 preTrain 结果完美时,反向传播甚至会失败。

我真的不知道反向传播出了什么问题。我一定是误解了算法或者在实现中犯了一些大错误。

如果可能的话,请运行测试代码,您会发现它有多么奇怪。它本身的代码非常可读。任何提示都会有很大帮助。提前致谢

最佳答案

我记得 Hinton 说过你不能在 XOR 上训练 RBM,这是关于向量空间的一些事情,不允许两层网络工作。更深的网络具有较少的线性特性,使其能够工作。

关于math - 在德类实现反向传播时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23265656/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com