python - TensorFlow 随机森林与深度学习

标签 python machine-learning tensorflow neural-network random-forest

我正在使用 TensorFlow 训练模型,该模型有 4 个输入的 1 个输出。问题是回归。

我发现,当我使用 RandomForest 训练模型时,它很快收敛,并且在测试数据上运行良好。但是当我使用简单的神经网络来解决同样的问题时,损失(随机平方误差)不收敛。它陷入了一个特定的值。

我尝试增加/减少隐藏层的数量,增加/减少学习率。我还尝试了多个优化器,并尝试在标准化和非标准化数据上训练模型。

我是这个领域的新手,但到目前为止我读过的文献强烈主张神经网络应该比随机森林在边际上和绝对上更好。

在这种情况下模型不收敛的原因可能是什么?

最佳答案

如果您的模型不收敛,则意味着优化器陷入了损失函数的局部最小值
我不知道您正在使用什么优化器,但请尝试稍微增加动量甚至学习率
另一种经常使用的策略是学习率衰减,它每隔几个时期将学习率降低一个因子。这还可以帮助您在训练阶段早期不陷入局部最小值,同时在训练结束时实现最大准确度。

否则,您可以尝试选择一个自适应优化器(adam、adagrad、adadelta 等)来为您处理超参数选择。

This是一篇非常好的文章,比较了不同的优化技术。

深度神经网络需要大量数据才能充分运行。确保您拥有大量训练数据,否则您的模型将过度拟合

关于python - TensorFlow 随机森林与深度学习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44939210/

相关文章:

docker - 在撰写文件中配置了GPU的Docker服务; Keras无法识别GPU

python - 带有 Python 库的小波图

python - 按顺序编写命令(Linux)

python - NLP 通用英语到行动

python - tensorflow shuffle_batch和feed_dict错误

python - 如何找到非卷积模型tensorflow python的概率

python - Tensorflow混合两个多元分布

python - 将图像中的所有白色像素转换为黑色像素

python - 如何使用其他字典的值累积更新字典?

python - 时间序列传感器数据的多元回归