Matlab 神经计算-无反向传播的MLP训练

Matlab 神经计算-无反向传播的MLP训练,matlab,neural-network,Matlab,Neural Network,我是神经计算新手,能够理解反向传播的概念。我的问题是,你能在没有反向传播的情况下训练一个MLP来适应一个函数吗?我需要拟合一个正弦函数。如果不使用反向传播来分配权重,我如何才能做到这一点?我不认为这是一种不使用反向传播来训练MLP的常用方法(),它只是一种应用于权重的直接梯度方法。有一些修改,例如使用动量项,或在不同点进行训练 然而,还有许多其他的机器学习算法,它们使用不同的代价函数或体系结构,例如和 对。反向传播是一种寻找神经元权值的优化算法。您可以使用任意数量的不同算法来找到这些权重,从而训

我是神经计算新手,能够理解反向传播的概念。我的问题是,你能在没有反向传播的情况下训练一个MLP来适应一个函数吗?我需要拟合一个正弦函数。如果不使用反向传播来分配权重,我如何才能做到这一点?

我不认为这是一种不使用反向传播来训练MLP的常用方法(),它只是一种应用于权重的直接梯度方法。有一些修改,例如使用动量项,或在不同点进行训练

然而,还有许多其他的机器学习算法,它们使用不同的代价函数或体系结构,例如和

对。反向传播是一种寻找神经元权值的优化算法。您可以使用任意数量的不同算法来找到这些权重,从而训练您的神经网络

例子包括


使用反向传播训练神经网络的想法特别有趣,因为它允许您更新中间权重,而无需这些权重的直接输出。所以这是一个有用的想法!大多数情况下,人们将反向传播算法与梯度下降算法相结合。然而,梯度下降算法有时很慢,但你可以用另一种“聪明”的算法(如levenberg-marquardt或扩展卡尔曼滤波器)代替梯度下降算法(只使用误差导数的信息)。。。。有很多。在这些情况下,您仍然使用反向传播算法加上另一个优化算法

有时,神经网络的收敛性问题不是由于优化算法的质量差,而是由于初始化“起始权值”。有大量的文献可以帮助你们“巧妙地”初始化神经网络的权值

正如您所问,@Atilla_Ozgur恰当地回答的那样,您可以使用其他算法来处理这个问题。例如,您可以创建一组神经网络,并尝试使用一种遗传算法,通过变异和复制等操作选择最佳网络


让我告诉你一件事。sin函数是一个特别有趣的例子,有时需要一段时间才能收敛。然而,它可以通过组合反向传播+梯度下降进行训练。很久以前我就这么做了。你必须确保隐藏层中有足够的神经元(如果你在[0,2pi]区间内训练神经网络,通常需要有5个具有激活函数tanh的神经元)

训练神经网络有一个最好的选择,那就是粒子群优化,因为粒子群优化算法给出了全局最优值&与其他算法相比,它的空间复杂度最好。有许多研究论文,您可以搜索并将其与BP算法进行比较。

这是您要问的一般优化问题。有许多方法可以优化神经网络结构以适应给定的函数。在深入研究人工神经网络之前,我建议你先读一本优化方面的书。backprop有不同的定义:(1)计算MLP的梯度,(2)计算MLP+梯度下降优化的梯度。非常感谢大家。随着我对它的进一步研究,它现在变得有意义了。欢迎来到堆栈溢出!你能提供这些论文的链接,或者更多的信息,比如一个例子吗?
can you train an MLP without back-propagation to fit a function?