我是神经计算的新手,可以理解反向传播的概念。我的问题是,你能在没有反向传播的情况下训练 MLP 来拟合函数吗?说,我需要拟合一个正弦函数。在不使用反向传播分配权重的情况下如何做到这一点?
4 回答
有一个训练神经网络的最佳选择,它是粒子群优化,因为 pso 提供全局最佳值,并且与其他算法相比,它的空间复杂度最好。有很多研究论文,你可以搜索并与BP算法进行比较。
使用反向传播训练神经网络的想法特别有趣,因为它允许您更新中间权重,而无需这些权重的直接输出。所以这是一个有用的想法!大多数时候,人们将反向传播算法与梯度下降算法结合起来。但是,梯度下降算法有时很慢,但您可以用另一种“聪明”算法(例如 levenberg-marquardt 或扩展卡尔曼滤波器)替换梯度下降算法(仅使用误差导数的信息)......有其中很多。在这些情况下,您仍在使用反向传播算法和另一种优化算法。
有时,神经网络的收敛问题不是由于优化算法质量不好,而是由于初始化,“起始权重”。有大量文献可以帮助您如何“巧妙地”初始化神经网络的权重。
正如您所问的并且@Atilla_Ozgur 得到了适当的回答,您可以使用其他算法来处理这个问题。例如,您可以创建一组神经网络,并尝试使用一种遗传算法通过变异和复制等操作来选择最佳网络。
让我告诉你一些事情。sin 函数是一个特别有趣的例子,有时它需要一段时间才能收敛。然而,它可以通过组合反向传播+梯度下降来训练。我很久以前做过这个。您必须确保隐藏层中有足够的神经元(如果您在 [0,2pi] 区间内训练 NN,通常需要 5 个具有激活函数 tanh 的神经元)。