Machine learning 如何确定神经网络中的权重?

Machine learning 如何确定神经网络中的权重?,machine-learning,neural-network,Machine Learning,Neural Network,如果我有一个三层神经网络,如果我有3个输入样本及其相应的预期输出值,我如何确定沿所有边的权重值?反向传播传统上用于此。就我个人而言,我用Levenberg-Marquardt算法得到了更快更好的结果 您可能还想测试一种进化算法(例如,遗传算法、粒子群优化算法(易于实现!))。它们不太容易陷入局部最优,因为它们不基于梯度。估计人工神经网络(ANN)的权重只不过是一个参数优化问题。通常,需要一个非线性优化器来完成工作。在此过程中优化的大多数成本函数是那些惩罚网络输出和期望输出之间不匹配的函数 反向传

如果我有一个三层神经网络,如果我有3个输入样本及其相应的预期输出值,我如何确定沿所有边的权重值?

反向传播传统上用于此。就我个人而言,我用Levenberg-Marquardt算法得到了更快更好的结果


您可能还想测试一种进化算法(例如,遗传算法、粒子群优化算法(易于实现!))。它们不太容易陷入局部最优,因为它们不基于梯度。

估计人工神经网络(ANN)的权重只不过是一个参数优化问题。通常,需要一个非线性优化器来完成工作。在此过程中优化的大多数成本函数是那些惩罚网络输出和期望输出之间不匹配的函数

反向传播法是一种优雅的基于梯度的优化方法,因为它可以估计隐层神经元输出的误差。因此,可以使用误差梯度更新隐藏层中的权重

为了处理基于梯度的方法中的局部极小值问题,通常使用多起点方法,这实际上相当于从一组不同的初始猜测重复估计过程

请注意,当种群失去多样性时,遗传算法等进化方法也会遭受过早收敛的影响

还要注意网络对训练数据的影响。对于看不见的数据,您将无法获得良好的泛化,这毕竟是预测学习的函数近似点


抛开所有这些不谈,令人不安的是,训练样本的数量太少,无法产生关于您试图近似的函数的大量信息。粗略地说,如果ANN有大量自由参数,那么训练数据必须提供足够的信息,以便对参数进行有意义的估计。3个样本对于任何实际函数近似任务来说都太低。

使用反向传播。你也可以将其打包成一个成本函数,这样你就可以使用线性优化器来找到好的权重。你应该使用反向传播方法来计算梯度。然后您可以使用Levenberg-Marquardt来调整权重。无导数算法通常比较慢。谢谢。回答得很好。你能告诉我有关数据拟合过度的情况吗?一旦使用梯度下降法找到参数,我如何知道它们是否都与数据拟合过度?您必须保留一些数据(比如10%)以用于测试目的。估计参数后,在此测试数据集上测试经过训练的网络。如果测试中出现较大的错误,您肯定会遇到过度装配的情况。