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

Update 7.md

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