【发布时间】:2016-12-29 18:12:08
【问题描述】:
在设计用于提取 DNA 基序的卷积神经网络的背景下,为什么要堆叠卷积层而没有最大池化函数?
这是该架构出现的上下文。
self.model = Sequential()
assert len(num_filters) == len(conv_width)
for i, (nb_filter, nb_col) in enumerate(zip(num_filters, conv_width)):
conv_height = 4 if i == 0 else 1
self.model.add(Convolution2D(
nb_filter=nb_filter, nb_row=conv_height,
nb_col=nb_col, activation='linear',
init='he_normal', input_shape=self.input_shape,
W_regularizer=l1(L1), b_regularizer=l1(L1)))
self.model.add(Activation('relu'))
self.model.add(Dropout(dropout))
self.model.add(MaxPooling2D(pool_size=(1, pool_width)))
【问题讨论】:
-
如果您没有任何激活函数,则网络是多个线性函数的堆栈,因此是线性函数。这个网络不会很强大,因为它只能表示线性函数。为什么这样做,我不确定。
-
有一层激活层,然后是一层最大池化,但都在卷积层之后。我的问题是为什么卷积层一个接一个地出现,而不是被激活层或池化层分开。 @PankajDaga
-
在没有看到 soem 上下文或同伴的情况下不确定。通过这些层的信号只会被线性变换。
Why正在完成这只是我的猜测,没有更多细节。 -
请提供此类架构来源的链接。
标签: machine-learning deep-learning convolution conv-neural-network