CNN中权重梯度的意义

时间:2016-07-01 02:11:41

标签: conv-neural-network

我使用MatConvNet开发了CNN,并能够可视化第一层的权重。它看起来与此处显示的非常相似(也附在下面,因为我不够具体)http://cs.stanford.edu/people/karpathy/convnetjs/demo/cifar10.html

我的问题是,体重渐变是什么?我不确定那些是什么,我无法生成那些......

enter image description here

1 个答案:

答案 0 :(得分:0)

NN中的权重

在神经网络中,一系列表示为矩阵的线性函数应用于特征(通常在它们之间具有非线性关节)。这些功能由决策中的值决定,称为权重。

您可以可视化正常神经网络的权重,但它通常意味着略微不同于可视化cnn的卷积层。这些图层旨在学习空间上的特征计算。

当您想象权重时,您正在寻找模式。一个漂亮的平滑过滤器可能意味着权重得到很好的学习并且特别是在寻找某些东西"。嘈杂的体重可视化可能意味着您已经过度使用网络,过度使用网络,需要更多正规化或其他恶意的(a decent source for these claims)

this decent review of weight visualizations开始,我们可以看到模式从将权重视为图像开始出现:

enter image description here

体重渐变

"可视化渐变"意味着采用渐变矩阵并像处理图像[1]一样对待,就像你采用权重矩阵并将其视为之前的图像一样。

渐变只是一种衍生物; for images, it's usually computed as a finite difference - 大致简化,X渐变减去一行中彼此相邻的像素,Y渐变减去列中彼此相邻的像素。

对于提取边缘的过滤器的常见示例,我们可能会在特定方向上看到强烈的渐变。通过可视化渐变(采用有限差分矩阵并将其视为图像),您可以更直接地了解滤波器如何在输入上运行。有很多尖端技术(egeg)用于解释这些结果,但是弹出图像很容易!

类似的技术涉及在向前传递输入之后可视化激活。在这种情况下,您要查看权重如何更改输入;通过可视化权重,您可以查看您希望他们如何更改输入。

不要过度思考 - 权重是有趣的,因为它们让我们看到函数的行为方式,权重的渐变只是另一个有助于解释内容的特征。继续这个功能没有什么神圣之处:这里有来自clustering features的一些很酷的the google paper(t-SNE)来看空间可分性。

enter image description here

[1]如果引入权重分享but not that much

,可能会更复杂