作者回复: 嗯,神经网络存在着解释性比较差这个问题。这也是公认的,它就是一个黑盒子,解决了问题,但是很难说清如何解决的。而全局最低点,在整个网络中非常难找,因为网络的拟合空间远远比那张图显示处理的复杂的多得多,而且多维空间是根本展示不出来的。Andrew Ng在它的斯坦福机器学习课里面说:找到一个不错的局部最低点就挺好的了。因此不必纠结于全局最低点。😝😝 也因此,“迁移学习”的概念在神经网络这儿有很多的应用,也就是,使用大量的已经调好了的,参数都定下来了的大型神经网络来解决工业级别的问题。 比如: 牛津 VGG 模型(http://www.robots.ox.ac.uk/~vgg/research/very_deep/) 谷歌 inception 模型(https://github.com/tensorflow/models/tree/master/inception) 微软 ResNet 模型(https://github.com/KaimingHe/deep-residual-networks) 谷歌 Word2vec 模型(https://code.google.com/archive/p/word2vec/) 然后,我们直接就在这些大型网络模型的基础上,进行很少的微调即可。这种预训练好了的大型网络的迁移,在Keras中也很容易实现的。(可以参考《Python深度学习》一书) 我们这里,就只是简单的介绍有这些参数可调,也就只是这样,那么进一步利用深度网络解决大型问题。那就需要用到这些预训练好了的网络。 当然,也有神经网络自动调参的方法,可以搜索AutoML(自动化机器学习)的一些文章。这些,都需要时间和精力进一步研究。
作者回复: 哎呀,实在不敢与大神比较🤯。我希望能够从纯实践的角度提供一点点思路。
作者回复: 你好,试一试反复运行,调整轮次,调整网络层数,加入一些Dropout层,之后,还都有这个问题吗?在我调试的过程中,并没有发现明显的滞后现象。可以试着调一下网络结构。 不过,在这里,我这个例子其实重点不是为了展示预测有多准,这个数据集信息量也很小。我觉得预测未来的数字其实是很难做到的,更多的是去理解RNN网络的应用场景,初步掌握神经网络的训练、调参过程。