主要问题
我无法理解特定层的权重图。我使用了 no-learn 的方法:plot_conv_weights(layer, figsize=(6, 6))
我使用千层面作为我的神经网络库。
情节很好,但我不知道我应该如何解释它。
神经网络结构
我使用的结构:
InputLayer 1x31x31
Conv2DLayer 20x3x3
Conv2DLayer 20x3x3
Conv2DLayer 20x3x3
MaxPool2DLayer 2x2
Conv2DLayer 40x3x3
Conv2DLayer 40x3x3
Conv2DLayer 40x3x3
MaxPool2DLayer 40x2x2
DropoutLayer
DenseLayer 96
DropoutLayer 96
DenseLayer 32
DropoutLayer 32
DenseLayer 1 as sigmoid
以下是前 3 层的权重:
** 关于图片 **
所以对我来说,它们看起来很随意,我无法解释它们!
但是,在 Cs231 上,它表示以下内容:
转换/FC 过滤器。第二个常见的策略是可视化权重。这些通常在直接查看原始像素数据的第一个 CONV 层上最容易解释,但也可以在网络中更深地显示过滤器权重。权重对于可视化很有用,因为训练有素的网络通常会显示漂亮且平滑的过滤器,而没有任何噪声模式。嘈杂的模式可能是网络训练时间不够长的一个指标,或者可能是一个非常低的正则化强度,可能导致过度拟合 http://cs231n.github.io/understanding-cnn/
那为什么我的是随机的?
该结构经过训练并在其任务中表现良好。
参考
http://cs231n.github.io/understanding-cnn/
https://github.com/dnouri/nolearn/blob/master/nolearn/lasagne/visualize.py