我使用gridsearchcv来确定mlpclassifier中哪些超参数可以提高我的神经网络的准确性。我发现层数和节点数确实会产生影响,但我正在尝试找出其他哪些配置可以影响准确性(实际上是F1分数)。但根据我的经验,像“激活函数”、“学习率”、“求解器”这样的参数似乎并没有真正改变什么。我需要研究哪些其他超参数可以影响神经网络预测的准确性。
有人对除了层数/节点数之外的其他参数有哪些建议/想法吗,这些参数可以影响我的神经网络预测的准确性?
回答:
这完全取决于你的数据集。神经网络并不是可以学习一切的魔法工具,而且与传统的机器学习模型相比,它们需要更多的数据。对于MLP来说,通过添加大量层使模型变得极其复杂从来都不是一个好主意,因为这会使模型变得更加复杂、运行速度变慢,并且可能导致过拟合。学习率是一个重要因素,因为它用于寻找模型的最佳解决方案。模型会犯错并从中学习,而学习的速度由学习率控制。如果学习率太小,你的模型将需要很长时间才能达到最佳状态,但如果学习率过高,模型可能会跳过最佳状态。激活函数的选择再次取决于用例和数据,但对于较简单的数据库,激活函数不会产生巨大的差异。
在传统的深度学习模型中,神经网络由多个层组成,这些层不一定都是密集的。在MLP中,所有层都是密集的,即前馈型。要改进你的模型,你可以尝试结合密集层和其他类型的层,如CNN、RNN、LSTM、GRU等。使用哪种层完全取决于你的数据集。如果你使用的是非常简单的数据库用于学校项目,那么可以尝试传统的机器学习方法,如随机森林,因为你可能会得到更好的结果。
如果你想坚持使用神经网络,可以阅读关于其他类型的层、丢弃法、正则化、池化等内容。