卷积神经网络 - 可视化权重

时间:2017-01-06 00:02:07

标签: theano conv-neural-network lasagne nolearn

主要问题

我无法理解特定图层权重的图。 我使用了no-learn中的方法:plot_conv_weights(layer, figsize=(6, 6))

我使用 lasagne 作为我的神经网络库。

情节很好,但我不知道我应该如何解释它。

神经网络结构

我正在使用的结构:

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个图层的权重:

"Image one "

"Image two "

"Image Three "

**关于图像**

所以对我来说,他们看起来是随机的,我无法解释它们!

然而,在Cs231上,它说如下:

  

Conv / 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

1 个答案:

答案 0 :(得分:2)

通常,当您想要检查权重时,您需要检查两件事:

  • 它们很流畅并涵盖了广泛的价值观,即它不是一堆1和0。这意味着非线性正在饱和。
  • 他们有某种结构。通常情况下,您会看到有针对性的边缘,但是当您使用像3x3这样的小型过滤器时,这会更难以看到。

话虽这么说,你的体重似乎并不饱和,但它们似乎确实太随机了。 在培训期间,网络是否正确收敛? 我也很惊讶你的过滤器有多大(30x30)。不知道你想用它做什么。