我为预测模型训练了MLP类型的神经网络。预测值如下所示。是否可以让预测值变得更稀疏。我希望那些对应于小峰(涂有黄色)的点被强制使用更小的值。换句话说,我希望这个预测序列具有较少数量的峰。我可以添加一个阈值来完成类似的工作。但我更愿意让模特自动学习它。我尝试了L1类型的活动正规化器。但它并没有多大帮助。
model= Sequential()
model.add(Conv1D(60,32, strides=1, activation='relu',padding='causal',input_shape=(64,1)))
model.add(Conv1D(80,10, strides=1, activation='relu',padding='causal'))
#model.add(Conv1D(100,5, strides=1, activation='relu',padding='causal'))
model.add(MaxPooling1D(2))
model.add(Dense(300,activity_regularizer=regularizers.l1(0.01),activation='relu'))
model.add(Flatten())
model.add(Dense(1,activation='linear'))
答案 0 :(得分:0)
如果您认为较小的峰值是由过度拟合训练数据引起的,您可以尝试添加Dropout
图层而不是activity regularizer
。例如:
model.add(Dropout(0.2, input_shape=(300,)))