神经计算 - 在没有反向传播的情况下训练MLP

时间:2013-03-21 13:01:06

标签: matlab neural-network

我是神经计算的新手,可以理解反向传播的概念。我的问题是,你能训练没有反向传播的MLP以适应功能吗?说,我需要适合正弦函数。如何在不使用反向传播来分配权重的情况下进行此操作?

4 个答案:

答案 0 :(得分:2)

can you train an MLP without back-propagation to fit a function?

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

示例包括

答案 1 :(得分:0)

我不相信它们是在没有反向传播的情况下训练MLP的常用方法(wikipedia),它只是应用于权重的直接梯度方法。有些修改例如使用例如动量术语,或在不同点训练。

但是,还有许多其他机器学习算法,它们使用不同的成本函数或体系结构,例如Particle Swarm OptimisationEvolutionary optimisation

答案 2 :(得分:0)

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

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

正如您所说,并且@Atilla_Ozgur适当地回答,您可以使用其他算法来处理它。例如,您可以创建一组神经网络,并尝试使用一种遗传算法,使用诸如变异和再现等操作来选择最佳网络。

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

答案 3 :(得分:0)

有一个最好的选择来训练神经网络,它的粒子群优化,因为pso提供了全局最佳价值&与其他算法相比,它的空间复杂度最佳。有很多研究论文,你可以搜索和将其与BP算法进行比较。