2

主要问题

我无法理解特定层的权重图。我使用了 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
4

1 回答 1

2

通常,当您可视化权重时,您要检查两件事:

  • That they are smooth and cover a wide range of values, i.e. it's not a bunch of 1's and 0's. That would mean the non-linearity is being saturated.
  • That they have some kind of structure. Normally you tend to see oriented edges although this is more difficult to see when you have small filters like 3x3.

That being said, your weights do not appear to be saturated, but they indeed seem to be too random. During training, did the network converge correctly? I am also surprised at how big your filters are (30x30). Not sure what you are trying to accomplish with that.

于 2017-01-12T06:21:22.207 回答