【问题标题】:Convolutional Neural Network - Visualizing weights卷积神经网络 - 可视化权重
【发布时间】:2017-05-20 16:38:22
【问题描述】:

主要问题

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

** 关于图片 **

所以对我来说,它们看起来很随意,我无法解释它们!

但是,在 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

【问题讨论】:

    标签: theano conv-neural-network lasagne nolearn


    【解决方案1】:

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

    • 它们是平滑的并且涵盖了广泛的值,即它不是一堆 1 和 0。这意味着非线性正在饱和。
    • 他们有某种结构。通常情况下,您往往会看到定向边缘,但当您使用 3x3 等小型过滤器时,这会更难看到。

    话虽如此,您的权重似乎并没有饱和,但它们确实似乎太随机了。 在训练期间,网络是否正确收敛? 我也对你的过滤器有多大(30x30)感到惊讶。不知道你想用它来完成什么。

    【讨论】:

    • 实际上过滤器是 3x3,我在帖子上有尺寸。
    猜你喜欢
    • 2019-01-08
    • 2020-11-01
    • 2019-04-10
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    相关资源
    最近更新 更多