4

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

4

2 回答 2

5

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

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

为了处理基于梯度的方法中的局部最小值问题,通常的做法是使用多开始方法,这基本上相当于从一堆不同的初始猜测中重复估计过程。

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

还要注意网络对训练数据的过度拟合。您将无法对看不见的数据进行良好的泛化,这毕竟是预测学习的函数逼近

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

于 2012-09-12T14:44:26.053 回答
4

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

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

于 2012-09-10T15:18:51.530 回答