卷积神经网络 - 可视化权重
Convolutional Neural Network - Visualizing weights
主要问题
我无法理解特定层的权重图。
我使用了 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 Filters. The second common strategy is to visualize the
weights. These are usually most interpretable on the first CONV layer
which is looking directly at the raw pixel data, but it is possible to
also show the filter weights deeper in the network. The weights are
useful to visualize because well-trained networks usually display nice
and smooth filters without any noisy patterns. Noisy patterns can be
an indicator of a network that hasn’t been trained for long enough, or
possibly a very low regularization strength that may have led to
overfitting
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。这意味着 non-linearity 正在饱和。
- 它们具有某种结构。通常你倾向于看到定向边缘,尽管当你有像 3x3 这样的小过滤器时这更难看到。
话虽这么说,你的权重似乎并没有饱和,但它们确实看起来太随机了。
在训练期间,网络是否正确收敛?
我也对您的过滤器有多大 (30x30) 感到惊讶。不确定你想用它完成什么。
主要问题
我无法理解特定层的权重图。
我使用了 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 Filters. The second common strategy is to visualize the weights. These are usually most interpretable on the first CONV layer which is looking directly at the raw pixel data, but it is possible to also show the filter weights deeper in the network. The weights are useful to visualize because well-trained networks usually display nice and smooth filters without any noisy patterns. Noisy patterns can be an indicator of a network that hasn’t been trained for long enough, or possibly a very low regularization strength that may have led to overfitting 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。这意味着 non-linearity 正在饱和。
- 它们具有某种结构。通常你倾向于看到定向边缘,尽管当你有像 3x3 这样的小过滤器时这更难看到。
话虽这么说,你的权重似乎并没有饱和,但它们确实看起来太随机了。 在训练期间,网络是否正确收敛? 我也对您的过滤器有多大 (30x30) 感到惊讶。不确定你想用它完成什么。