如何读一篇论文

本周对causal bootstrapping这篇论文再次梳理。客观的说,在此之前我对本文涉及到的知识点并不了解,有点类似于大家接触到新课题的状态。我能确定的是,这可能是一种新的知识发现或推理方法。 为此,我做了如下准备: 第一,复习bootstrapping. 虽然bootstrapping这个东西在以前看过,知道他是random forest的基础,而且其中融合了蒙特卡洛采样这样的思想,但没有深入思考过。这次,通过资料仔细思考了为什么bootstrapping会有用。 从本质上考虑,bootstrapping不就是缩小世界的模型吗?在原始抽样中,我们是从现实世界抽样得到数据样本,然后用数据样本去做训练,对不对?但原始世界到底是什么样?没人知道。抽样的结果是否满足采样定理?有些领域是知道的,但大多数领域还不知道。这也是为什么现在的机器学习总喜欢用大样本的原因。因为大样本意味着尽可能多的在原始世界中进行采样,这样有可能增大采集样本对原始世界的描述能力。但同时,有人对big data这个词给出了这样一个解释:在大量样本中抽取极少的信息。换句话说,big data意味着信息含量低。这说明什么?说明我们都到的样本很多都是重复的和没有用的。但究竟该怎么抽?目前还不知道。 不去考虑真实世界的问题,回到已经有的数据集上吧。假设这个就是一个完整的真实世界。如何去模拟这样一个认为的世界呢?还是抽样。在交叉验证中,我们是随机抽去了世界的80%(5倍交叉)、90%(10倍交叉)等等,形成模型,然后去测试。但bootstrapping认为,这么抽取是有问题的。万一你采样的样本都特别典型或不典型呢?当然,在交叉验证中可以用方差描述,但方差是评估的,不是避免的。bootstrapping实际上是给出了一种避免偏差的方法。 想想我们曾经在组会上讨论过的用蒙特卡洛方法计算一张A4纸上任意图形面积的方法就能明白bootstrapping的本质了。往纸上撒大米然后看看落到图形中的大米比例,从而推断图形面积大小,对不对?但问题是,万一你这次没撒均匀怎么办(前提是你也不知道自己是否撒均匀了,因为在数据模型中你不知道这个纸的分布和图形分布的关系)?那就多撒几次求平均呗。没错,这个就是bootstrapping的想法。在样本集中多采样几次(撒大米),然后用每次采样的结果都进行计算(看落入图形的比例),最后把每次的结果汇总起来分析(求平均)。当然,在bootstrapping中,最后一步不一定是求平均这种等权重处理,也可能是用不同的权重来操作。那么权重怎么来?这篇论文就是用causal方法来的。也是这篇论文的思想。 第二,学习因果推理 因果推理我们曾经做过一点,但那次实质是充要条件分析,还构不成因果。沿着这篇论文的思路,找到了图灵奖得主Pearl的一系列研究成果,其主要是基于贝叶斯网络的因果图推理。有幸,在放假前曹玉阳同学还找到了《the book of why》这本书的电子版,配合网上的一些资料,构成了我对因果推理的一点了解。 我是先粗读了一遍causal bootstrapping这篇论文之后才开始学习因果的,目的是找出我需要再因果推理中学习什么。经过分析,我发现do算子、混杂(confound)、介入(intervention)、前门准则、后门准则是这篇论文的高频词,和因果有关,同时我不懂。所以这些是我需要学习的。看看,我先对论文做了一次采样,然后需要的是根据这个采样去学习了。 好在大多数材料是英文的,这样在专业词汇上就做到了统一。而且能通过构词法去理解作者用这个词来定义这件事的原因,这就比读中文文章能够更为直接的和作者沟通。同时,也锻炼了自己的英文阅读。从一开始的每天3个小时读5页左右,到现在半个小时5-8页,进步的速度我还是满意的。而且随着词汇的熟悉,我查字典的次数越来越少了。 the book of why这本书的好处最大的好处是科普读物,对于任何一个问题作者会反复的举例子让你明白其到底是怎么回事,而且会从历史上讲这件事的来龙去脉。读了这样的书,对问题的理解要比读论文深刻多了,毕竟他比较生动。但同时,其知识含量有点低,当做课外书来读可能更合适。所以,我配合了一些网络教程来学习。包括20分钟左右将贝叶斯网络的(快速了解其原理)、分为14讲讲概率图模型的(了解推理的细节)、知乎或csdn上的文字介绍(梳理总结)。学习完了这些之后,我对因果推理有了大体的了解(通过各种绪论、引言),对我需要的具体内容有了细致了解(通过推导),我觉得我可以再看这篇论文了。 以上就是我为读这篇论文做的准备。其实并不难,就是看看自己现有的知识体系和论文的体系间交集是什么,差集是什么。然后去填补差集,争取做到交集最大且差集最小。形成这样的目标函数之后就去学习,当迭代几次之后觉得已经收敛(不一定到达全局最优),就可以开始再去论文了。 这一次是细读,大约用了三天时间。读的时候关注了以下几点: 第一,作者的写作方法。客观的讲,我觉这篇写作挺怪的,可能由于这不是一篇正式发表的论文的原因吧。但前面的引言和后面的相关方法上还是给了很多启示。同时,作者对其涉及到的公式要么给出了出处,要么在文中或附录给出了证明过程。这一点非常值得我们学习。也是我经常强调的:不要去说没有论据的论点。 第二,作者的主题思想,到底怎么理解作者所谓的因果。其实,我觉得作者只是deconfound,而不是真正的因果。比如,他的实验是这么做的,以文中的帕金森实验为例吧,这个是我和曹玉阳在讨论deconfound与non confound的一段批注: " 首先,找了三个数据集。这三个数据集是不同人采集的。采集条件不同,会造成对于同样一个特征,其计算结果会有偏差(比如采集时对噪声的控制,如果噪声大的话其信噪比就会低,那么和噪声相关的特征比如HNR等就会不同)。作者是把这种偏差作为了confound来使用的。 第二步,deconfound。目的就是排除由于采集不同带来的偏差。这个用字符识别的例子比较好。在字符识别中,如果给不同的字符不同的亮度,用这个网络训练出来的结果是不可信的。因为网络可能把亮度当做了特征,这样就造成了high risk. 第三,关于non-confound,我觉得相当于ground truth. 第一个实验中就是没有加入噪声的原始模型,第二是可以是没有亮度干扰(或随机亮度干扰)的图片,第三个则是对特定数据集而非混合数据集。 所以,deconfound是在confound基础上做去除的结果,而non是根本就没有。相当于去噪声信号和理想信号的差别。 为什么要deconfound? 就是为了消除关联关系对结果的影响。比如实验中的亮度与数字,书中提到的溺水人数与冰激凌销量,这些都是关联,而不是因果。采用关联分析在所有条件都不变的时候分类性能是好的。原因在于经典机器学习认为数据是独立同分布的,所以训练集和测试集分布一样。但真实情况下这种关系并不稳定。比如,把在秦皇岛统计的溺水人数与冰激凌销量放到新疆就会失效。原因就在于分布发生了变化。 而对于因果分析来说,理论上他会从“游泳方便程度->溺水人数->气温->冰激凌销量”这样的关系中得出冰淇淋销量与溺水人数不相关。至于和谁相关,就是前门法则、后门法则等讨论的内容了。 " 同时,曹玉阳问到了和batch norm的区别,我的答复: " 二者的目的都是为了更稳定,但出发点是不一样的,所以本质不同。 你的这个例子其实和文章中数字与亮度的问题是一样的。如果所有对猫的训练都是用黑猫,他可能识别一只彩色的猫吗?可能。但如果你的训练样本中是黑猫、黑狗和黄狗,这时你给它一只黄猫的图片,神经网络的内心是崩溃的。因为它会发现两个类都有可能,最终的输出就不一定是什么了。(此段为我自己理解,可能有误) " 但对于deconfound来说,他会发现你现在要识别的是猫和狗,这个和颜色无关,所以会把颜色这个特征先deconfound掉,然后再送给分类器去学习。那么此时分类器学到的结果就更可靠了。 所以,BN并没有达到因果的目的。 但这里要说明,从我读到的资料看deconfound要依赖casual diagram,而这个diagram往往是专家人工指定的。如何自动生成是个diagram?我还没看到。这也是我对这篇论文感兴趣的原因。 其实,对于稳定性我们也在做另一套思路,就是属性拓扑。 属性拓扑目前我们在用概念树来表示,概念树中的概念就会随着数据的变化而发生变化,从而趋近更为稳定的结构。这就是目前荣美和浩然在做的东西。概念虽然也是从相关性中提取,但其可能发现更为本质的东西。比如黑猫、黑狗和黄狗的例子,当它打算把黑色作为猫的特征时,会反思训练集中还有谁是黑色的。此时它发现还有黑狗,于是概念结构中会把黑色排除出猫的概念。 但概念结构的问题也很明显。还是上面这个例子,它会发现所有的黄颜色对象都是狗,且狗都是黄颜色。那么当来了一个黄猫时,它可能会误判为狗。此时它和神经网络的错误是一样的。 我在考虑,casual diagram和属性拓扑都是图结构,现在属性拓扑可以算概念,那么能不能把casual diagram的deconfound方法借鉴到属性拓扑,从而使得其获得因果概念结构呢? 我在读论文的过程中写了很多批注,这个批注版我会发到群共享中。总结起来,这个论文的收获:通过设计deconfounded方法改变数据分布,获得更为本质的数据相关性。但其问题在于对confounder的设定要满足提前已知的要求,所以其今后的可扩展性还有待分析。 ...
Read More

张涛周报20200119

本周内的工作如下: 1. 阅读学习因果性文献。 感谢曹玉阳同学的催促,我终于大体读完了causaal bootstrapping这篇论文。读完之后的感觉:一头雾水。 好在顺着论文的思路,查到了很多基础的博客和知乎,大体有了一个了解。由Pearl提出的这套方法主要就是为了弥补现有机器学习,尤其是深度学习中间由于拟合行程的关联性思维。其实这种关联性思维在大数据兴起的早期还是被当做一个好事来说的。但正是应了“否定之否定”这样的马克思主义哲学原理(顺便给大家做一点思政教育),当今人们越来越重视到因果推理的重要性。以Pearl这样的大牛来推动,给了我们不少启发。 令我欣慰的是,在完全没有参考Pearl的情况下,我们也写出了利用属性拓扑进行因果分析的文章,而且思路是何其的类似。更有意思的是,我一直念念不忘的贝叶斯问题,也恰恰被Pearl拿来做成贝叶斯网络进行推理(虽然有争议)。这么看下来,利用属性拓扑做因果推理在理论基础上是没有什么问题的,至少做到贝叶斯推理的水平没问题。虽然现在属性拓扑还缺少do()算子这样的描述方法,但我们的关联机制从本质上不就是do问题吗?而所谓的caculus问题或者边缘问题,我们也一直在通过路径分析在做。换句话说,单纯从写论文的角度,我们完全可以将贝叶斯推理那一套移植过来就是一大套的论文(不得不承认,我们在数学描述上差的有点远。Pearl的很多推理我们自己没有想到)。而且属性拓扑比贝叶斯网络更适合做成因果分析,我们是不是要考虑进入一下呢? 所以,本周最为兴奋的就是读到了这篇论文和相关的文献。目前已经安排曹玉阳同学争取假期实现一下看看效果,单浩然同学简单阅读作为后期的储备。我的想法是:如果将贝叶斯网络加入图神经网络方法,会不会有提升呢?如果能行,这东西一调整就是属性拓扑的突破啊。 感谢曹玉阳同学找到了Pearl书籍“The Book of Why”的电子版,而且各种格式齐全。我已经下载到kindle,过年的时候读一读。有需要的同学可以和我或玉阳联系。 基金写作 这周的另一个事情就是写基金。原来基本填好的河北基金系统居然说了一句“测试系统数据不保存”就被重置了。本周通知继续填写。写了一天,发现这次仍然是测试,还是等正式文件发布后再弄吧,据说格式还要调整。 国家基金本来已经放弃,也和姚老师说明了限项的事情。可……,政策再次发生变化,我又不被限项了。这一波操作实在是*****,不知道时候还能来得及写。不过打乱了我假期读论文的计划是一定的了。 其他 1)将帕金森语音特征相关性的小论文交给了孙浩处理,不知年前能否投出。 2)和刘梦奇分析了大论文的架构以及小论文的架构,同时对小论文做了一轮调整。目前看除了部分位置逻辑不顺外还都不错。 3)和部分同学讨论了假期的计划与任务。 ...
Read More

张涛周报20200112

1 帕金森 1)不出意外,《仪器仪表学报》的论文被毙了。 2)非常意外,很快改好又投出了。 2 属性拓扑 1)粗略读完了max关于因果的论文,发现没太看懂。又找了一篇博客,还是不太懂。但感觉很多内容,尤其是DAG部分,和AT很像。 2)和梦奇碰了一下小论文,捋顺了思路。 3)看了浩然关于形式背景生成的演示,不错。 3 预测 1)与晓晴简单分析了暑期被毙掉的小论文,可惜我都忘了当时要怎么改。 4 FPGA 1) 这次效率很高,顺利完成。 5 其他 1) 年会。对每一位同学做了简单的总结,希望对大家有用。 2) 审稿。典型的很会写,推荐大家方便时看看。 ...
Read More

张涛周报20191229

2019年最后一周,我的任务居然是还债。由于前两周主要精力在于外语考试,这周要还教学债(考试、判卷、课程设计、毕业设计等)、人情债(各种吃饭),果然还是应了那句话:出来混,迟早要还。 1 属性拓扑 1) IJAR出版后续事宜基本完毕,估计再过几个月才能正式出版,希望荣美明年评奖学金时能用上。 2) 和浩然讨论了两次gnn,但由于我最近落后导致效果不理想,这个锅我来背。 3)和梦奇讨论了论文的修改,觉得还是避开“遗忘”这个敏感词好一些。 4) 针对复旦大学场景图的论文和荣美、浩然做了一次简单分析,也是由于我没准备好导致不理想。我需要尽快赶上。 2 帕金森 1) 和亚娟讨论了一下小论文的结构和综述的结构。目前看亚娟的思路已经比较清晰,我基本上提不出太多的改进了。我可以偷懒一些啦。 3 预测 1) 和在发讨论了一下论文的前景,目前看可以尝试冲击一下2区,但需要仔细布局。在发还需要经常骚扰我才行。 4 其他 1) 河北基金写作:又优化了一版,如果没有特殊情况,应该不再大改动了。现在等系统开房后申报。 2) 留学基金申报:借着这个机会想了想和little怎么合作,目标肯定是帕金森,内容应该还在机器学习。目前考虑的是两个内容:a.以属性拓扑为代表的图的应用,现在考虑是将孙浩和单浩然的内容结合起来。b.因果分析,目前已经安排曹玉阳去看因果分析的论文,希望能和荣美的内容进行融合。 3)FPGA:各种联系,好在刘川同学给力,我不太操心。 本周内容较少,但上周提到要大家找我一下,似乎很多人没有完成任务啊。 ...
Read More