您是否需要根据使用的体系结构手动编码反向传播?

问题描述 投票:0回答:2

我是ML的新手,所以,如果问题没有道理或琐碎,请原谅我。但是我想知道每次开发网络时是否都必须手动进行反向传播。似乎算法会有所不同,具体取决于您拥有多少层。例如,如果您有1个隐藏层,则链接规则将很快。但是,如果您有10个,它将更长一些,对吧?

有没有一种方法可以概括这一点,以便您的后置支撑算法可以用于具有任意数量隐藏层的神经网络?

谢谢!

machine-learning backpropagation
2个回答
1
投票

没有完美的规则可以为您提供隐藏层中确切数量的神经元,以使神经网络发挥最佳性能。有很多可用的拇指规则,如Misha Kakkar提到的规则之一,但是它可能无法解决您的问题。如果您已经回顾了研究人员先前在不同领域中有关ANN应用的工作,其中他们使用反向传播神经网络,则您可能会大致了解到ANN的架构能提供最佳性能。您可以根据此信息进一步发展您的网络。

backpropagation中,隐藏单元的数量比找到隐藏层要困难得多。两层神经网络可以很好地近似任何非线性函数。因此,请尝试使用两层和多个隐藏单元。


0
投票

还有另外一条经验法则可帮助解决有监督的学习问题。如果将神经元的数量保持在下面,通常可以防止过度拟合:

enter image description here

Ni =输入神经元的数量。

否=输出神经元的数量。

Ns =训练数据集中的样本数。

α=通常为2-10的任意比例因子。

Others recommendalpha设置为5到10之间的值,但我发现2的值通常可以工作而不会过度拟合。您可以将alpha视为每个神经元的有效分支因子或非零权重数。辍学层将使“有效”分支因子从网络的实际平均分支因子下降。

正如此excellent NN Design text所解释的,您希望将模型中的自由参数的数量(其程度或非零权重的数量)限制为数据自由度的一小部分。数据中的自由度是样本数*每个样本中的自由度(维度)或Ns∗(Ni+No)(假设它们都是独立的)。因此,α是一种指示您希望模型的通用性或防止过度拟合的方法。

对于自动化程序,您将从2的alpha开始(训练数据的自由度是模型的两倍),并且如果训练数据集的误差(损失)小得多,则工作到10。比您的测试数据集要多。

© www.soinside.com 2019 - 2024. All rights reserved.