MIT发文:深度视觉的量化表示................

Places2 是一个场景图像数据集,包含 1千万张 图片,400多个不同类型的场景环境,可用于以场景和环境为应用内容的视觉认知任务。

GitHub源代码:https://github.com/CSAILVision/NetDissect

论文地址:http://netdissect.csail.mit.edu/final-network-dissection.pdf

Place205 Model集结地;http://places.csail.mit.edu/downloadCNN.html   ,Place205模型给出了205个场景的分析。

一个在线可视化小工具:http://blog.csdn.net/10km/article/details/52713027

launch editor之后,把网络结构直接copy到editor,shift+enter 可视化。

Caffe Model ZOO:https://github.com/BVLC/caffe/wiki/Model-Zoo#places-cnn-model-from-mit

关于可视化

基于Caffe结构的网络连接可视化,理论上你可以自己写一个.

  • Scene Recognition Demo: Input a picture of a place or scene and see how our Places-CNN predicts it.

  • DrawCNN: a visualization of units’ connection for CNNs.

  • Indoor/Outdoor label: the label of indoor and outdoor for each of the 205 place categories. You could use the labels of the top5 predicted place categories from the Places-CNN to vote if the given image is indoor or outdoor. The indoor and outdoor classification accuracy is more than 95%.

所谓黑箱

ML的传统方法被称为“白盒方法”,而神经网络被称为“黑箱”。

关于黑箱的一个解释:题主的『可解释性』不是指泛化性等理论保证,也不是复杂模型的理论解释。而是指『判别过程是否可以转化成具备逻辑关系的规则』。更新回答如下:

1. 如果想把决策结果解释成规则,那么建议使用基于决策树的机器学习模型/算法(包括原始的各种决策树、一些利用了ensemble的决策树模型,比如random forest等),这样得到的结果可以理解成依据特征做的一系列选择,也许就满足了你们产品经理的喜好。但是,实际中如果决策树得到的规则太多的话,其实也不是有很好的『解释性』。

2. 关于题主提到的『选择权重大的特征作为白盒规则,得到的效果一定好吗?』,实用中很可能会有不错的效果,这大概可以看做是最原始的特征选择方法,也有可能大大降低准确度。

3. 你为啥这么在乎产品经理的感受?是白盒还是黑盒真的有这么重要?毕竟最后的你『选择用户』是你的模型和算法策略决定的,不是产品经理手工决定的。实际场景中,产品经理关心的很可能是用户画像这些方面,而非你的决策过程。

=====原答案======
这要看题主要的可解释性是指什么?

所谓黑箱

相对于CNN和众多DNN方法,ML的传统方法被称为“白盒方法”,这种由来已久的观点是从数学模型可验证可优化性的角度来分析的。在众多ML方法中,布尔决策树方法是唯一的白盒方法,即给出了语法又给出了语义阐述,并等价于专家规则。
        一系列线性和非线性方法之所以被称为是“白盒方法”,是因为其方程的明确形式化。不管是贝叶斯方法、还是线性判别、以至于各种非线性模型或者生成式模型,都可以明确地归结为函数形式,这意味着ML模型是可显示优化的,即结果是可进行定理论证的。我们看着结果到最优化的方向迭代,便以为我们明了了真实的意义;我们掌握了语法,便以为解释了语义。
        众多NN方法难以从神经元模型汇总,抽取出一个形式化的函数,因此也不能针对函数进行优化,给出最优解或者最优方向的证明,可行的一个方法即是随机初始加通过反向传播调参反复迭代。CNN的特别之处在于卷积核的存在,卷积过程是一个反向模板匹配的过程,而这个模板,是可以看见的。在CNN网络中,每一层都是可以看见的。CONV层效果占比越多的网络,可视化表达能力越强。
         可表示性:ResNet > VGG >GoogLeNet > AlexNet
        借用一张图:
       
     
      

关于深度 可视化的解释

       高层和中层语义可视化,此回答作了一个(地址):小小的翻译...
     CVPR'17 Oral论文Network Dissection: Quantifying Interpretability of Deep Visual Representations(论文:https://arxiv.org/pdf/1704.05796.pdf, 主页:http://netdissect.csail.mit.edu/

神经网络的可解释性一直是我比较关注的问题。从ICLR'15那篇Object Detectors emerge from Deep Scene CNNs (现在的深度学习的模型越来越大,有个结论是说,大脑的激活是非常稀疏的,对模型参数有什么好的办法压缩吗? - 知乎), 到CVPR'16的CNN Discriminative Localization and Saliency,再到最新的这篇Network Dissection,算是我PhD阶段较完整地探索了这个问题。我自己是非常喜欢这篇network dissection:)。

了解我研究工作的朋友都知道,我很少提fancy的模型和跟踪潮流topic,我更感兴趣的是分析问题和现象本身,能用越普适的方法越好。这篇CVPR'17工作是想更好量化分析不同卷积神经网络内部神经元的语义特征 (Network Interpretability and Network Explainability)。尝试回答一些有意思的问题:神经网络是不是只是个black box?神经网络内部到底学习了些什么东西?为什么需要这么深度的网络?等等。之前我ICLR'15论文是用人力来标定了AlexNet的每层网络内神经元的语义性,这篇论文我们提出了一个叫Network Dissection的方法,可以自动化地标定任意给定的网络内部的带有语义的神经元。

Network Dissection大致做法如下图所示,我们准备了一个带有不同语义概念的图片数据库,里面每张图都有pixel-wise的标定(颜色,纹理,场景,物体部分,物体等),然后我们把每个神经元在图像上的激活响应当做对这些概念进行语义分割(Semantic segmentation),然后看每个神经元对哪个语义概念分割得最好,那么这个神经元就是在检测这个语义概念。

卷积为二维反向模板匹配,因此给语义可视化直观感受。

Network Dissection项目网页上(http://netdissect.csail.mit.edu),有对不同网络的详细可视化(参见Network Dissection Results),感兴趣的同学可以看看。数据库和代码已经release(CSAILVision/NetDissect)。到时候在CVPR'17的Tutorial上 (Deep Learning for Objects and Scenes),我也会把Network Interpretability作为一个专题来报告, stay tuned:)

总结来说,Network Interpretability & Explainability将是AI里非常重要的研究问题。去年美国政府的军费研究机构DARPA就有个重要的立项Explainable Artificial Intelligence。随着AI模型在生活中的广泛应用,性能提升的同时,人们也更关注AI模型自身的安全性和可解释性。如果连我们自己都无法理解AI模型是如何运作以及内部到底学习到了什么,还会放心AI模型在医疗,国防等一些性命攸关的方向应用么。最近MIT Tech Review上最近有篇文章,也分析了这个问题:The Dark Secret at the heart of AI(There’s a big problem with AI: even its creators can’t explain how it works)。

结论:

Place205主要使用AlexNet和VGG-Net用于场景分类,在网络结构上没有大的改进,暂时只是使用了专门的数据集对这个专门的模型进行了特定的优化。论文对语义化的实验数据也是对长久以来CNN模式识别的一个通用总结。

参考:

主页:http://netdissect.csail.mit.edu/

代码:https://github.com/CSAILVision/NetDissect

论文:https://arxiv.org/pdf/1704.05796.pdf

白盒-CNN纹理深度可视化: 使用MIT Place 场景预训练模型的更多相关文章

  1. NLP与深度学习(五)BERT预训练模型

    1. BERT简介 Transformer架构的出现,是NLP界的一个重要的里程碑.它激发了很多基于此架构的模型,其中一个非常重要的模型就是BERT. BERT的全称是Bidirectional En ...

  2. JAVA中容器设计的进化史:从白盒到黑盒,再到跻身为设计模式之一的迭代器

    大家好,又见面了. 在我们的项目编码中,不可避免的会用到一些容器类,我们可以直接使用List.Map.Set.Array等类型.当然,为了体现业务层面的含义,我们也会根据实际需要自行封装一些专门的Be ...

  3. 移动測试技术保护源码!解码全球首款移动端白盒測试工具ThreadingTest (文章转自己主动点科技)

    作者 智晓锋 - 2014/07/14 自从斯诺登曝光美监听丑闻事件之后,我国政府就将信息安全问题上升到了国家安全的高度.基于此.国内的一家创业公司推出了智能型Android真机白盒測试以及开发辅助类 ...

  4. GTest Google的一种白盒单元测试框架 开源项目

    GTest为google开源的白盒单元测试跨平台测试框架,含丰富的断言.类型参数化测试.死亡测试.以及其他的测试选项设置.文件保存等,以下将对该项目C++的实现进行简要的分析,作为学习记录备份. 基本 ...

  5. JAVA语言搭建白盒静态代码、黑盒网站插件式自动化安全审计平台

    近期打算做一个插件化的白盒静态代码安全审计自动化平台和黑盒网站安全审计自动化平台.现在开源或半开源做黑盒网站安全扫描的平台,大多是基于python脚本,安全人员贡献python脚本插件增强平台功能.对 ...

  6. 浅析白盒审计中的字符编码及SQL注入

    尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如g ...

  7. JAVA白盒安全测试需要关注的API

    JAVA白盒安全测试需要关注的APIhttp://blog.csdn.net/testing_is_believing/article/details/19502167

  8. 亿能测试白盒安全测试模板V1.0发布

    亿能测试白盒安全测试模板V1.0发布http://automationqa.com/forum.php?mod=viewthread&tid=2911&fromuid=21

  9. SafeNet推出行业首款白盒password软件保护解决方式

    数据保护领域的全球率先企业SafeNet公司日前宣布,推出行业首款採用白盒安全技术的的软件保护方案.SafeNet 圣天诺 软件授权与保护解决方式如今纳入了新的功能,可在"白盒" ...

随机推荐

  1. jq超简单的流式布局,代码简单,容易修改

    1.看看效果吧! 2.html代码index.html <!DOCTYPE html> <html lang="en"> <head> < ...

  2. 交换机tagged与untagged的关系深入探讨

    端口接收数据时: 如果端口是tagged方式,当数据包本身不包含VLAN的话,输入的数据包就加上该缺省vlan:如果数据包本身已经包含了VLAN,那么就不再添加. 如果是untagged方式,输入的数 ...

  3. 飞思卡尔 imx6 GC0308 摄像头驱动配置调试过程

    GC0308摄像头驱动程序使用的是linux v4l2协议,通过i2c信号进行控制.GC0308摄像头.对上电时序要求非常严格,一定要依据datasheet初始化摄像头. 本驱动使用的3.10内核,所 ...

  4. HDU 2461 线段树扫描线

    给出N个矩形,M次询问 每次询问给出R个.问这R个矩形围成的面积 经典扫面线求面积并,对每次询问的R个点离散化一下 #include "stdio.h" #include &quo ...

  5. Struts2之类型转换器的使用

    一.学习案例:通过在输入页面(input.jsp)用同一个输入框同一时候输入username和password,通过类型转换器在输出页面(output.jsp)分别输出username和passwor ...

  6. codeforces 949B A Leapfrog in the Array

    B. A Leapfrog in the Array time limit per test 2 seconds memory limit per test 512 megabytes input s ...

  7. Spark SQL中 RDD 转换到 DataFrame

    1.people.txtsoyo8, 35小周, 30小华, 19soyo,882./** * Created by soyo on 17-10-10. * 利用反射机制推断RDD模式 */impor ...

  8. 如何为你的Go应用创建轻量级Docker镜像?

    介绍 多什么? 简单来讲,多阶段. 多阶段允许在创建Dockerfile时使用多个from,它非常有用,因为它使我们能够使用所有必需的工具构建应用程序.举个例子,首先我们使用Golang的基础镜像,然 ...

  9. The Preliminary Contest for ICPC China Nanchang National Invitational I.Max answer单调栈

    题面 题意:一个5e5的数组,定义一个区间的值为 这个区间的和*这个区间的最小值,注意数组值有负数有正数,求所有区间中最大的值 题解:如果全是正数,那就是原题 POJ2796 单调栈做一下就ok 我们 ...

  10. github fork项目更改后与原作者同步更新

    1.进入你的GitHub发起Pull request 2.选择compare across forks 3.反向操作.base fork改为自己的,head fork改为原作者的 4.点击 creat ...