Ale*_* B. 1 convolution deep-learning conv-neural-network keras tensorflow
我正在研究具有常规矩阵格式的风力涡轮机数据集:[ row:datetime , column:features]
但我想用卷积来捕捉每个特征的进展,就像在 LSTM 中完成的那样。因此,我生成了一个具有以下维度的新数据集:
[datetime, 15 timesteps,128 features] :每个原始日期时间行现在有 15 个寄存器(t-0,t-1,...,t-14)用于每个特征。
我的计划是使用大小为 1x5 的内核和 5 的步长分别对每个特征(通道)的时间步长维度进行卷积。从 128 个特征中获取每个 DateTime(batch)、长度为 5 的 3 个过滤器,输出形状为(无,3,128)。
然后我将最大池化应用于前一个第二维 (3) 结果,以获得“最重要的复杂时间步长”,期望输出大小:(None,1,128)
最后我连接了一个用于二元分类的密集层。
目前的网络架构在 keras 中实现如下:
model.add( Conv1D(padding = 'valid',filters = nfeatures,strides = 5,kernel_size = 5,
activation = 'relu',input_shape = (timesteps,nfeatures)) )
model.add( MaxPooling1D() )
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))
Run Code Online (Sandbox Code Playgroud)
问题是当我检查第一层 (conv1d) 的权重时,权重具有以下维度:[5,128,128] 和偏差 [128]。
预期的权重格式是:[5,1,128] 为什么是 5x128x128?,我只需要每个功能/通道的 5 个权重(内核大小)。
谢谢!
标准卷积滤波器:
为了获得好的结果,神经网络很少完全单独考虑一个特征,相反,它们会促进特征之间的相关性以提取更智能的结果。
这就是为什么标准卷积滤波器形状是:
(width, input_features, output_features)
Run Code Online (Sandbox Code Playgroud)
在这个卷积中,所有输入特征都被认为是创建新的输出特征。
如何完全个性化特征?
警告:这对所有功能使用相同的精确过滤器(您可能需要每个功能一个单独的过滤器,然后查看下一个答案)
您可以对数据重新排序,使特征成为一个主要组,并使每个组只有一个特征和过滤器。
然后可以与TimeDistributed层并行处理这些组。
(width, input_features, output_features)
Run Code Online (Sandbox Code Playgroud)
老实说,您的模型使用标准卷积会更强大,但您可能有特殊原因这样做。
每个功能一个单独的过滤器
这需要更多的工作。我们将需要一个实现 depthwise_conv1d(Keras 不提供)的自定义层,或者我们使用 1 个过滤器创建 128 个单独的 conv1D 层(更容易)。
使用第二种方法(多个 conv 层),我们将需要一个功能性 API 模型来制作并行分支。
model = Sequential()
#reordering data and adding 1 dummy feature per group
model.add(Permute((2,1), input_shape = (timesteps,nfeatures))) #(batch, feat, steps)
model.add(Lambda(lambda x: K.expand_dims(x))) #(batch, feat, steps, 1)
#applying the 1 filter convolution for each group
model.add(TimeDistributed(Conv1D(padding = 'valid',filters = 1,strides = 5,
kernel_size = 5, activation = 'relu')))
model.add( TimeDistributed(MaxPooling1D()) )
#restoring to (batch,features)
model.add(Reshape((nfeatures,)))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1601 次 |
| 最近记录: |