白盒-CNN纹理深度可视化: 使用MIT Place 场景预训练模型
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 场景预训练模型的更多相关文章
- NLP与深度学习(五)BERT预训练模型
1. BERT简介 Transformer架构的出现,是NLP界的一个重要的里程碑.它激发了很多基于此架构的模型,其中一个非常重要的模型就是BERT. BERT的全称是Bidirectional En ...
- JAVA中容器设计的进化史:从白盒到黑盒,再到跻身为设计模式之一的迭代器
大家好,又见面了. 在我们的项目编码中,不可避免的会用到一些容器类,我们可以直接使用List.Map.Set.Array等类型.当然,为了体现业务层面的含义,我们也会根据实际需要自行封装一些专门的Be ...
- 移动測试技术保护源码!解码全球首款移动端白盒測试工具ThreadingTest (文章转自己主动点科技)
作者 智晓锋 - 2014/07/14 自从斯诺登曝光美监听丑闻事件之后,我国政府就将信息安全问题上升到了国家安全的高度.基于此.国内的一家创业公司推出了智能型Android真机白盒測试以及开发辅助类 ...
- GTest Google的一种白盒单元测试框架 开源项目
GTest为google开源的白盒单元测试跨平台测试框架,含丰富的断言.类型参数化测试.死亡测试.以及其他的测试选项设置.文件保存等,以下将对该项目C++的实现进行简要的分析,作为学习记录备份. 基本 ...
- JAVA语言搭建白盒静态代码、黑盒网站插件式自动化安全审计平台
近期打算做一个插件化的白盒静态代码安全审计自动化平台和黑盒网站安全审计自动化平台.现在开源或半开源做黑盒网站安全扫描的平台,大多是基于python脚本,安全人员贡献python脚本插件增强平台功能.对 ...
- 浅析白盒审计中的字符编码及SQL注入
尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如g ...
- JAVA白盒安全测试需要关注的API
JAVA白盒安全测试需要关注的APIhttp://blog.csdn.net/testing_is_believing/article/details/19502167
- 亿能测试白盒安全测试模板V1.0发布
亿能测试白盒安全测试模板V1.0发布http://automationqa.com/forum.php?mod=viewthread&tid=2911&fromuid=21
- SafeNet推出行业首款白盒password软件保护解决方式
数据保护领域的全球率先企业SafeNet公司日前宣布,推出行业首款採用白盒安全技术的的软件保护方案.SafeNet 圣天诺 软件授权与保护解决方式如今纳入了新的功能,可在"白盒" ...
随机推荐
- Java使用JNA调用DLL库
Java调用DLL方法有三种,JNI.JNA.JNative, 本文为JNA JNA为使用jna.jar包,下载地址:http://www.java2s.com/Code/Jar/j/Download ...
- MyBatis3-代码生成工具的使用
以下内容引用自http://www.yihaomen.com/article/java/331.htm: MyBatis应用程序,需要大量的配置文件,对于一个成百上千的数据库表来说,完全手工配置,这是 ...
- css3的高级而有用且很少人知道的属性和样式
1.-webkit-mask 概属性可以给一个元素添加蒙层,蒙层可以是一个渐变或者半透明的png图片,这张png图片的 alpha 为 0 的位置会不显示元素这部分,alpha 为 1 的位置会显示元 ...
- Weblogic补丁升级操作手冊
1.查看Weblogic版本号 方法一 [weblogic@Weblogic201 ~]$ cd /home/weblogic/Oracle/Middleware/wlserver_10.3/serv ...
- Linux Rsync实现文件同步备份(转载)
原文地址:Linux Rsync实现文件同步备份作者:夷北 转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [ ...
- 猫猫学iOS 之CoreLocation反地理编码小Demo输入经纬度得到城市
猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:效果 输入经纬度,能够得到相应的地名 二:思路 跟地里编码差 ...
- [LeetCode] 035. Search Insert Position (Medium) (C++)
索引:[LeetCode] Leetcode 题解索引 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 035. Sea ...
- vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结
vue—你必须知道的 目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...
- LeetCode 709. To Lower Case (转换成小写字母)
题目标签:String 题目让我们把大写字母转换成小写,只要遇到的是大写字母,把它 + 32 变成 小写就可以了. Java Solution: Runtime beats 100.00% 完成日期: ...
- ES 2016+
ES2016(ES7)新增: Array.prototype.includes Exponentiation Operator 求冥运算 ES2017 (ES8)新增: ECMAScript® 201 ...