提高神经网络准确性的技巧?

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

我正在开发一个浅层神经网络,可用于读取云计算环境的输入配置并确定其是否节能。我已将正在使用的数据集中的测量值转换为分位数值,以便我的网络更容易读取。然而,运行后我仍然获得 55% 的准确率和大约 0.68 的损失函数。我是构建神经网络的新手,所以我确信我可以采取一些措施来提高准确性。

我尝试了很多不同的方法,看看是否能得到55%以上的值,但都无济于事。我尝试添加更多层、调整像素值、将变量从原始连续值转换为分位数值,但没有任何方法可以使其超过 55%。我不确定数据集是否是这个数字不会超过这个数字的原因,但任何建议都会有帮助,谢谢!

神经网络设计

python tensorflow neural-network
1个回答
0
投票

我理解,无论你如何尝试,当你的模型没有改进时,这是多么令人沮丧。但不用担心——这是使用神经网络时的常见挑战。让我给你一些简单实用的技巧来帮助你。

  1. 从数据开始 • 尝试使用原始值:将数据转换为分位数可能隐藏了一些重要信息。使用原始连续值测试模型,看看它是否有所改进。 • 检查类别不平衡:确保“高效”和“低效”类别平衡。如果不是,该模型可能会偏向于更大的类别。要解决此问题,您可以从较小的类别中复制样本(过采样)或使用 SMOTE 等技术来创建合成数据。

  2. 对模型进行一些小改动 • 尝试不同的激活函数:ReLU 很常见,但有时 tanh 可以更好地工作,具体取决于问题。 • 降低丢失率:您的丢失率(0.5) 可能太高,删除了太多信息。尝试将其降低到 0.2 或 0.3。 • 调整学习率:0.001 是一个很好的起点,但它可能不是最佳的。测试更小或更大的值,例如 0.0001 或 0.01,看看模型是否有所改进。

  3. 训练模型更长时间

训练 20 个 epoch 可能还不够。尝试将其增加到 50 甚至 100 epoch。只要留意过度拟合——如果你的模型在训练数据上表现很好,但在测试数据上表现不佳,那么它可能是在记忆而不是在学习。 另外,尝试使用较小的批量大小(例如 32),以帮助模型拾取数据中更精细的模式。

  1. 超越准确性

准确性并不总是最好的衡量标准,尤其是当你的类别不平衡时。尝试查看准确率、召回率和 F1 分数。这些指标可以让您更清楚地了解模型的实际性能。

  1. 如果没有效果

如果模型仍然没有改进,问题可能出在数据本身。有时,特征(变量)与目标(能源效率)没有足够强的关系。在这种情况下: • 创建新特征:组合或转换现有变量以揭示隐藏的关系。 • 尝试更简单的模型:使用逻辑回归或决策树来查看问题是否出在神经网络或数据集上。

快速总结: 1. 用原始连续值进行测试。 2. 降低 dropout 率并尝试另一个激活函数,例如 tanh。 3. 将 epoch 数量增加到 50 或更多。 4. 使用 F1 分数等指标,而不仅仅是准确性。 5. 如果所有其他方法都失败,请专注于数据 - 创建新功能或尝试更简单的模型。

我希望这可以帮助您前进!如果您需要更详细的建议或希望我审查您的工作,请随时与我们联系。你已经得到了这个!

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