使输出更稀疏

时间:2018-05-10 19:19:51

标签: tensorflow keras deep-learning

我为预测模型训练了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'))

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您认为较小的峰值是由过度拟合训练数据引起的,您可以尝试添加Dropout图层而不是activity regularizer。例如:

model.add(Dropout(0.2, input_shape=(300,)))