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

标签 machine-learning neural-network

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

最佳答案

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

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

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

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

另请注意 overfitting网络到训练数据。您将无法对未见过的数据进行良好的概括,这毕竟是预测学习的函数逼近的要点。

除此之外,令人不安的是训练样本的数量太少,无法产生有关您尝试近似的函数的大量信息。宽松地说,如果人工神经网络有大量自由参数,那么训练数据必须提供足够的信息,以便对参数进行有意义的估计。对于任何实际的函数逼近任务来说,3 个样本都太少了。

关于machine-learning - 如何确定神经网络中的权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12353067/

相关文章:

machine-learning - 下面的场景使用什么样的分类器?

python - 如何让keras+theano使用>1个核心

algorithm - 神经网络 - 反向传播

java - 使用 Encog 的神经网络分类器

python - GridSearchCV 不工作?

machine-learning - 用于向量到字符序列转换的 LSTM

python - 为什么交叉验证的性能比测试差?

python - 简单的非面向对象神经网络的成本 "jumping"

python - pytorch对图片进行编码和解码

python - 如何在 GPU 上有效并行化 AlphaZero?