前言
神经网络作为目前较为流行的一种机器学习模型,在很多领域都发挥着非常重要的作用,个人觉得神经网络也非常重要,无论是你工作还是科研。在工作中可以利用tensorflow等工具快速的搭建一个神经网络模型是一项很必要的技能,在科研中学会使用神经网络模型,熟悉A+B=C的写作套路,会让你写文章贼快。尤其神经网络,其实大部分文章都是这几种常见的网络结构,例如CNN,GNN, GCN, LSTM, RNN等。所以说学会神经网络模型真的是超级无敌重要。
LSTM经验
大家知道LSTM神经网络是处理时间序列的机器学习模型,而且要比RNN要优秀,但是在使用LSTM时要注意什么呢?接下来我就给大家介绍以下自己踩过的坑,因为我主要用的是tensorflow,所以我主要讲的是tensorflow的经验,当然也有一些基础的,供大家参考:
(1)在大家决定用LSTM做预测时,一定要注意数据集和自己的用用场景,当你的数据集里面时间间隔不连续而且数据差别太大的时候,LSTM网络的效果可能不是很好,大家可以看一下下面的数据
第三列和第四列代表经纬度,当你像预测这些经纬度的时候,用这个数据集就不太好,你设置的步长在稍微大一点(有的同学可能认为,步长越长,数据越多,精度越高)但是数据差别大的时候,就会造成数据质量太差。下面这个数据集的预测效果就会不错,大家可以自行对比一下:
(2)也就是要适当选取步长,也就是LSTM网络层中的input_shape参数的值
(3) 由于LSTM处理的数据时时间序列,所以不建议大家在划分数据集的时候直接采用python自带的包,因为训练LSTM的时候要保证数据时间的连续性,比如有100个数据,你可以把前90个做训练集,后10个做测试,但是你不能把中间90个做训练,前面5个和后面5个做测试。
结语
目前,本人遇到的坑就这三个,在大家实际应用的时候一定要根据应用场景和数据考虑考虑自己到底该用什么模型。