拥有大量输入的神经网络会导致我的网络出现如下问题
神经网络陷入困境,前馈计算总是给出1.0的输出,因为输出和太大,而在进行反向传播时,梯度和太高,导致学习速度太快。
神经网络在所有层中使用tanh作为主动函数。经过深思熟虑,我想出了以下解决方案:
或
我对自己提出的解决方案感到不舒服。
解决方案1并不能完全解决问题。梯度或输出和变高的可能性仍然存在。解决方案2似乎解决了这个问题,但我担心它完全改变了网络行为,可能不再解决一些问题。
在这种情况下,你会给我什么建议,记住减少神经元数量不是一个选择?
提前感谢!
影响输出反向传播的一般因素包括早期选举的权重和偏差、隐藏单元的数量、练习模式的数量和长迭代。作为另一种选择初始权重和偏差的方法,可以使用几种算法,其中之一是算法Nguyen widrow。您可以使用它来初始化权重和偏差,我已经尝试过了,并给出了很好的结果。
我正在尝试实现一个简单的神经网络。我知道已经有很多可用的库,这不是重点。 我的网络只有3层:一个输入层一个隐藏层一个输出层 输出层有8个神经元,每个神经元代表不同的类。 我知道如何实现feedfoward算法,但我真的很难实现反向传播算法。 这是我到目前为止得出的结论: 我尝试使用Iris数据集进行测试:https://en.wikipedia.org/wiki/Iris_flower_data_
我很难构建好的神经网络教学算法,因为有一些人工操作。第一件事:我的目标是教nn-xor函数,我使用sigmoid作为激活函数和简单的梯度下降。前馈很容易,但backprop在某种程度上令人困惑——大多数算法描述中常见的步骤有:1。计算输出层上的错误。2、将此错误传播到有关权重3的隐藏层。更新突触上的权重 所以我的问题:1。偏差也应该更新吗?如果是,如何更新?目前我随机选择偏差[0.5;1]?2.在
我正在从头开始编写一个backprop神经网络迷你库,我需要一些帮助来编写有意义的自动测试。到目前为止,我已经进行了自动化测试,以验证backprop算法是否正确计算了权重和偏差梯度,但没有测试训练本身是否有效。 到目前为止,我使用的代码可以执行以下操作: 定义一个具有任意层数和每层神经元数的神经网络 鉴于所有这些,我可以编写什么样的自动化测试来确保训练算法被正确实施。我应该尝试近似什么函数(si
我正在尝试用RELU实现神经网络。 输入层- 以上是我的神经网络结构。我对这个relu的反向传播感到困惑。对于RELU的导数,如果x 有人能解释一下我的神经网络架构的反向传播“一步一步”吗?
考虑具有以下架构的卷积神经网络: Standford的深度学习教程使用以下等式来实现这一点: 然而,在使用这个等式时,我面临以下问题: 我做错了什么?有人能解释一下如何通过卷积层传播错误吗? 简单的MATLAB示例将受到高度赞赏。
我们首先回顾DNN的反向传播算法。在DNN中,我们是首先计算出输出层的$$deltaL:deltaL = frac{partial J(W,b)}{partial zL} = frac{partial J(W,b)}{partial aL}odot sigma{'}(zL)$$ 利用数学归纳法,用$$delta{l+1}$$的值一步步的向前求出第l层的$$deltal$$,表达式为:$$delta