我的NN模型的权重变化不大的原因是什么?

问题描述 投票:0回答:1

我正在训练神经网络模型,我的模型很好地符合训练数据。培训损失稳定下降。一切正常。 但是,当我输出模型的权重时,我发现自从随机初始化后它没有太大变化(我没有使用任何预训练的权重。所有权重都默认在PyTorch中初始化)。权重的所有维度仅改变了约1%,而训练数据的准确率从50%上升到90%。有什么可以解释这种现象?重量的尺寸是否太高,我需要减小模型的尺寸?或者还有其他可能的解释吗? 我知道这是一个相当广泛的问题,但我认为在这里以数学方式展示我的模型并对其进行分析是不切实际的。所以我只想知道这个问题的一般/常见原因是什么。

python machine-learning neural-network torch
1个回答
4
投票

问题中几乎总有许多局部最优点,因此在高维特征空间中不能特别说明的一点是模型参数适合的最佳点。这里一个重要的一点是,对于您的模型计算的每组权重,要找到一个最佳点,由于实际值权重,该最优点有无限的权重集,权重相互之间的比例是唯一重要的是,因为你试图最小化成本,而不是找到每个样本损失0的唯一权重集。每次训练时,您可能会根据初始重量得到不同的结果。当权重变化非常接近,彼此几乎相同的比例时,这意味着你的特征是高度相关的(即多余的),并且因为你只是通过一点点的权重变化来获得非常高的准确度,我唯一能想到的就是你的数据集类彼此相距甚远。尝试一次删除一个功能,训练并查看结果如果准确性良好继续移除另一个,直到您希望到达3或2维空间,您可以绘制数据并可视化它以查看数据点的分布情况从中得出一些意义。

编辑:更好的方法是使用PCA减少维数而不是逐个删除

© www.soinside.com 2019 - 2024. All rights reserved.