未验证 提交 d198d936 编写于 作者: B binbinmeng 提交者: GitHub

Update 7.md

上级 f0a6a2c6
......@@ -12,8 +12,8 @@
## 7.1 学习的特征
  卷积神经网络从原始图像像素中学习抽象特征和概念。[特征可视化][1]就是通过可视化学习到特征的最大化激活值来实现。[网络结构分解][2]就是按照人类的概念将神经网络单元(例如,通道)贴上标签。<br>
深度神经网络最大的优势之一是在隐藏层中学习高级特征,这减少了对特性工程的需求。假设您希望使用支持向量机构建一个图像分类器。原始图像像素矩阵并不是训练SVM的最佳输入,因此您需要根据颜色、频域、边缘检测器等创建新的特征。使用卷积神经网络,将原始图像(像素)输入网络,然后将图像变换多次。首先,图像要经过许多卷积层,在这些卷积层中,网络学习新的和越来越复杂的特征。然后将变换后的图像信息通过全连接层进行分类或预测。<br>
<center>![add image](https://github.com/binbinmeng/interpretable-ml-book-zh/raw/master/images/cnn-features.png)
图7.1:训练在ImageNet数据上的卷积神经网络(InceptionV1)获得的特征。这些特征从低卷积层的简单特征(左)到高卷积层的抽象特征(右)。图像来自于 Olah, et al. 2017 (CC-BY 4.0)https://distill.pub/2017/feature-visualization/appendix/.</center>
![](https://github.com/binbinmeng/interpretable-ml-book-zh/blob/master/images/cnn-features.png)
图7.1:训练在ImageNet数据上的卷积神经网络(InceptionV1)获得的特征。这些特征从低卷积层的简单特征(左)到高卷积层的抽象特征(右)。图像来自于 Olah, et al. 2017 (CC-BY 4.0)https://distill.pub/2017/feature-visualization/appendix/.
- 第一个卷积层学习边缘和简单纹理等特征。<br>
- 之后的卷积层学习了更复杂的纹理和模式等特征。<br>
......@@ -25,8 +25,9 @@
  将学习到的特征明晰化的方法称为特征可视化。神经网络中一个单元的特征可视化是通过寻找最大限度地激活该单元的输入来实现的。<br>
   “Units“是指单个神经元、通道(也称为特征图)、整个层或分类中的最终类别概率(或在做softmax操作前相应的神经元,更推荐这个定义)。单个神经元是网络的基础单元,因此我们可以通过为每个神经元创建特征可视化来获得最多的信息。但有一个问题:神经网络通常包含数百万个神经元。观察每个神经元的特征需要很长时间。通道(有时称为激活图)作为神经网络单元是特性可视化的良好选择。更进一步,我们可以可视化整个卷积层。层作为一个神经网络单元用于谷歌的DeepDream,它不断地将一个层的可视化特性添加到原始图像中,从而得到一个梦幻一样的输入。<br>
<center>![avatar](https://github.com/binbinmeng/interpretable-ml-book-zh/raw/master/images/units.jpg)
图7.2:可以对不同的神经网络单元进行特性可视化。A)卷积神经元,B)卷积通道,C)卷积层,D)神经元,E)隐层,F)类概率神经元(或在做softmax操作前相应的神经元)</center>
![](https://github.com/binbinmeng/interpretable-ml-book-zh/raw/master/images/units.jpg)
图7.2:可以对不同的神经网络单元进行特性可视化。A)卷积神经元,B)卷积通道,C)卷积层,D)神经元,E)隐层,F)类概率神经元(或在做softmax操作前相应的神经元)
#### 7.1.1.1通过优化方法实现特征可视化
  在数学上,特征可视化是一个优化问题。我们假设神经网络的权值是固定的,这意味着网络是经过训练的。我们正在寻找一种能使一个神经网络单元单元(这里是单个神经元)的(平均)激活最大化的新图像<br>
$$ img^* = arg\,\max_{img}h_{nxyz}(img) $$
......@@ -35,14 +36,14 @@ $$ img^* = arg\,\max_{img}h_{nxyz}(img) $$
$$ img^* = arg\,\max_{img}\sum_{x,y}h_{nxyz}(img) $$
在这个公式中,z通道中所有神经元的权重相等。或者,你也可以最大化随机方向,这意味着神经元会被不同的参数相乘,包括负方向。通过这种方式,我们研究了神经元是如何在通道内相互作用的。您也可以最小化激活(对应于最大化负方向),而不是最大化激活。有趣的是,当你将负方向最大化时,你会得到相同神经网络单元非常不同的特征:<br>
<center>![avatar](https://github.com/binbinmeng/interpretable-ml-book-zh/tree/master/images/a484.png)
图7.3:先启V1神经元484在混合4d前激活的阳性(左)和阴性(右)。当神经细胞被轮子最大限度地激活时,某些似乎有眼睛的东西却产生了负的激活。代码: https://colab.research.google.com/github/tensorflow/lucid/blob/master/notebooks/feature-visualization/negative_neurons.ipynb</center>
![](https://github.com/binbinmeng/interpretable-ml-book-zh/tree/master/images/a484.png)
图7.3:先启V1神经元484在混合4d前激活的阳性(左)和阴性(右)。当神经细胞被轮子最大限度地激活时,某些似乎有眼睛的东西却产生了负的激活。代码: https://colab.research.google.com/github/tensorflow/lucid/blob/master/notebooks/feature-visualization/negative_neurons.ipynb
  我们可以用不同的方法来解决这个优化问题。首先,我们为什么要生成新图像?我们可以简单地在我们训练图像上搜索并选择那些激活值最大的。这是一种有效的方法,但使用训练数据存在这样的问题:图像上的元素可能相互关联,我们无法明白神经网络真正在寻找什么。如果图像某一特定的病出现高的激活值的通道出现了一只狗和一个网球,我们不知道神经网络是在看狗,看网球,还是两者都看。<br>
另一种方法是从随机噪声中开始生成新图像。为了获得有意义的可视化效果,通常对图像有一些限制,例如只允许进行小的修改。为了减少特征可视化中的噪声,您可以在优化步骤之前对图像进行抖动、旋转或缩放处理。其他正则化选项包括频率惩罚(例如减少相邻像素的方差)或利用先验知识生成图像,例如使用$生成对抗网络(GANs)^{66}$或$去噪自动编码器^{67}$。
<center>![avatar](https://github.com/binbinmeng/interpretable-ml-book-zh/tree/master/images/activation-optim.png)
![](https://github.com/binbinmeng/interpretable-ml-book-zh/tree/master/images/activation-optim.png)
图7.4:从随机图像到最大化激活值的迭代优化。Olah等人2017 (CC-BY 4.0)https://distill.pub/2017/feature-visualization/.
如果您想更深入地研究特性可视化,请查看 distill.pub 的在线文章,特别是Olah等人的$可视化文章^{68}$,我使用了其中的许多图像,还讨论了$利用可解释性构建块(blocks)^{69}$。</center>
如果您想更深入地研究特性可视化,请查看 distill.pub 的在线文章,特别是Olah等人的$可视化文章^{68}$,我使用了其中的许多图像,还讨论了$利用可解释性构建块(blocks)^{69}$。
#### 7.1.1.2与对抗性样本的联系
  特征可视化和对抗性样本之间存在联系:这两种技术都最大化了神经网络单元的激活。对于[对抗性样本][3],我们寻找对抗性类的神经元的最大激活量。一个不同之处在于我们开始时的图像:对于对抗性的样本,我们希望为其生成对抗性的图像。对于特征可视化,根据方法不同,它可以是随机噪声等。<br>
#### 7.1.1.3文本和表格数据
......@@ -60,8 +61,9 @@ $$ img^* = arg\,\max_{img}\sum_{x,y}h_{nxyz}(img) $$
   2. 对这些图像测量CNN通道激活值。
   3. 量化激活值和被标记概念一致性。
  下图显示了如何将图像前向传播到一个通道并与标被记的概念进行匹配。
<center>![avatar](https://github.com/binbinmeng/interpretable-ml-book-zh/tree/master/images/dissection-network.png)
图7.5:对于给定的输入图像和经过训练的网络(固定权值),我们将图像向前传播到目标层,提升激活度以匹配原始图像的大小,并将最大激活度与ground truth像素分割进行比较。数据来源于Bau & Zhou等人(2017)。</center>
![](https://github.com/binbinmeng/interpretable-ml-book-zh/tree/master/images/dissection-network.png)
图7.5:对于给定的输入图像和经过训练的网络(固定权值),我们将图像向前传播到目标层,提升激活度以匹配原始图像的大小,并将最大激活度与ground truth像素分割进行比较。数据来源于Bau & Zhou等人(2017)。
##### **步骤1:Broden数据集**
  第一个困难但至关重要的步骤是数据收集。网络分解需要使用不同抽象级别(从颜色到街景)概念的像素级标记图像。Bau&Zhou等人将一些数据集与像素级概念相结合。他们称这个新的数据集为“Broden”,意思是“广泛和密集标记的数据”。Broden数据集的分割大多是像素级的,对于某些数据集,整幅图像是有标记的。Broden包含6万张图片,超过1000个不同抽象层次的视觉概念:468个场景,585个物体,234个部件,32种材料,47种纹理和11种颜色。下图显示了来自Broden数据集的示例图像。
<center>![](https://github.com/binbinmeng/interpretable-ml-book-zh/tree/master/images/broden.png)
......@@ -84,12 +86,12 @@ $$ img^* = arg\,\max_{img}\sum_{x,y}h_{nxyz}(img) $$
  $$ IoU_{k,c} =\frac{\sum{|M_k(x)\bigcap{L_c(x)}|}}{\sum{|M_k(x)\bigcup{L_c(x)}|}}$$
  其中|.|是集合基数,对齐方式可以理解为比较两个区域之间并交集合操作.$IOU_{k,c}$可以解释为神经网络单元k检测概念c的精度。当$IOU_{k,c}>0.04$,我们将神经网络单元k称为概念c的检测器,此阈值由Bau&Zhou等人在论文中的选择
  下图说明了单个图像的激活掩码和概念掩码的交集和结合:
<center>![](https://github.com/binbinmeng/interpretable-ml-book-zh/tree/master/images/dissection-dog-exemplary.jpg)
图7.7:通过比较human ground truth标注和top activated pixels,计算出Union (IoU)上的交集。</center>
![](https://github.com/binbinmeng/interpretable-ml-book-zh/tree/master/images/dissection-dog-exemplary.jpg)
图7.7:通过比较human ground truth标注和top activated pixels,计算出Union (IoU)上的交集。
  下图显示了一个检测狗的神经网络单元:
<center>![](https://github.com/binbinmeng/interpretable-ml-book-zh/tree/master/images/dissection-dogs.jpeg)
图7.8:inception_4e通道750的激活掩码,该掩码检测带有IoU = 0.203. 图最初来自Bau&Zhou等(2017)。</center>
![](https://github.com/binbinmeng/interpretable-ml-book-zh/tree/master/images/dissection-dogs.jpeg)
图7.8:inception_4e通道750的激活掩码,该掩码检测带有IoU = 0.203. 图最初来自Bau&Zhou等(2017)。
#### 7.1.2.2实验
  网络分解的作者从头开始在不同的数据集(ImageNet,Places205,Places365)上训练了不同的网络架构(AlexNet,VGG,GoogleNet,ResNet)。
ImageNet包含来自1000个专注于对象的类的160万张图像。Places205和Places365包含来自205/365个不同场景的240万/ 160万张图像。 他们还对AlexNet进行了自我监督训练任务的培训,例如预测视频帧对图像进行排序或着色。 对于其中许多不同的设置,他们计算了独特的概念检测器作为可解释性的度量。 这是一些发现:
......@@ -103,7 +105,7 @@ ImageNet包含来自1000个专注于对象的类的160万张图像。Places205
- 对于Places356,学习最多的独特概念检测器,其次是Places205和ImageNet。
- 独特概念检测器的数量随训练迭代次数的增加而增加。
<center>![](https://github.com/binbinmeng/interpretable-ml-book-zh/tree/master/images/arch-compare.png)</center>
![](https://github.com/binbinmeng/interpretable-ml-book-zh/tree/master/images/arch-compare.png)
图7.9:在Places365上训练的ResNet具有最多数量的唯一检测器。 具有随机权重的AlexNet具有最少数量的唯一检测器,并用作基线。 图最初来自Bau&Zhou等。 al(2017)。
......@@ -113,7 +115,7 @@ ImageNet包含来自1000个专注于对象的类的160万张图像。Places205
成为一个瀑布探测器。这发生在一个最初的模型训练的分类
对象,然后调整对场景进行分类。
- 在一个实验中,作者预测通道旋转到一个新的基础。这样做是对ImageNet VGG网络训练。并不意味着“旋转”图像旋转。“旋转”意味着我们从conv5 256个频道层和计算新256个频道的线性组合原渠道。在这个过程中,渠道得到纠缠。旋转减少可解释性,即。,这个数字通道与概念的减少。旋转是为了保持模型的性能是一样的。第一个结论:cnn是轴的可解释性相关的。这意味着渠道的随机组合不太可能检测到独特的概念。第二个结论:可解释性歧视无关权力。通道可以用正交变换而改变有识别力的权力是相同的,但解释能力降低。
<center>![](https://github.com/binbinmeng/interpretable-ml-book-zh/tree/master/images/rotation-dissect.png)</center>
![](https://github.com/binbinmeng/interpretable-ml-book-zh/tree/master/images/rotation-dissect.png)
图7.10:独特的概念探测器的数量减少256渠道AlexNet conv5   ImageNet(训练)正逐渐改变了基础使用一个随机正交变换。图来自鲍起静
作者也用网络分解生成对抗网络(GANs)。你可以找到网络分解GANs的[项目网站][7]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册