我正在使用Keras LSTM的实验数据来对复杂的物理系统进行建模。问题是输出值趋于在某些点的两个点之间急剧变化。所有物理系统必须表现出某些连续/平稳的行为。如何使输出更平滑,是否存在某种层或正则化?
我尝试引入l1-l2正则化,辍学……它们有帮助,但我没有得到好的结果。我要寻找的是一种可以限制值突然变化的层。顺便说一下,我只处理少量数据。我正在使用2个系列进行训练和验证,使用1个进行测试。
网络结构:对于2 LSTM + 1 Dense层或1 LSTM + 1 Dense层,我得到类似的结果。 (在LSTM和Dense之间具有/不具有辍学层,以及一些l2正则化)
时间序列数据表示一些测量值。测量间隔很短,有时会导致重复的值。我也删除了一些重复的行。(我将它们连接在一起,然后针对其中一个输入删除了行。我尝试对多个输入进行处理。但是如您所知,我并未删除所有重复的行用这种方法,这可能是问题的根源吗?)
我使用sklearn.StandardScaler或sklearn.MinMaxScaler来规范化输入数据,两者之间的差别不大。
您可以在测试数据上看到具有l2正则化的样本结果-请注意开始时的前两个峰。图中大约有20,000个点,这些峰出现在3- 5分。在训练集中也有一些跳跃,但是它们更加平滑且分散。是否有某种方法可以使神经网络内的输出变得平滑,而无需添加一些外部滤波器?