在Keras中使用卷积层上的压降

在Keras中使用卷积层上的压降,keras,conv-neural-network,dropout,Keras,Conv Neural Network,Dropout,我已经实现了一个卷积神经网络,对一维输入信号进行批量归一化。我的模型有一个相当好的精度约80%。以下是我的图层顺序:(Conv1D,Batch,ReLU,MaxPooling)重复6次,Conv1D,Batch,ReLU,Dense,Softmax 我看过几篇文章说我不应该在卷积层上使用dropout,但我应该使用批处理规范化,所以我想用dropout层替换所有批处理规范化层来试验我的模型,看看dropout是否真的会让我的性能变差 我的新模型具有以下结构:(Conv1D,Dropout,ReL

我已经实现了一个卷积神经网络,对一维输入信号进行批量归一化。我的模型有一个相当好的精度约80%。以下是我的图层顺序:(Conv1D,Batch,ReLU,MaxPooling)重复6次,Conv1D,Batch,ReLU,Dense,Softmax

我看过几篇文章说我不应该在卷积层上使用dropout,但我应该使用批处理规范化,所以我想用dropout层替换所有批处理规范化层来试验我的模型,看看dropout是否真的会让我的性能变差

我的新模型具有以下结构:(Conv1D,Dropout,ReLU,MaxPooling)重复6次,Conv1D,Dropout,ReLU,Dense,Softmax。我曾尝试过0.1、0.2、0.3、0.4、0.5的辍学率。我的新模型的性能只有约25%,比我的原始模型差得多,甚至比预测主导阶级(约40%)还要差


我想知道性能上的巨大差异是否实际上是用退出代替批处理规范化的结果。或者是我对应该如何使用dropout的误解。

要了解如何使用批处理规范和dropout,您应该首先了解这些层的功能:

  • 批次标准化使用批次中计算的平均值和方差缩放和移动图层输出,以便下一个图层的输入对内部协变量移动更为稳健
  • Dropout随机删除其输入的元素,教导以下层不要依赖特定的功能或元素,而是使用所有可用的信息。这加强了网络的通用性,是减少过度拟合的一种手段
您所做的是将规范化层替换为向信息流添加额外噪声的层,这当然会导致准确度的大幅降低

我给您的建议是使用批处理规范,就像在第一次设置中一样,如果您想尝试退出,请在激活功能应用于前一层后添加它。通常,脱落用于调整非常容易过度拟合的致密层。试试这个:

  • 6 x(Conv1D、批处理、ReLU、最大池)
  • 1个(Conv1D,批量,ReLU)
  • 辍学,密集,Softmax