研究生论文价值、必要、讨论和工具

学习一下王树义老师的文章,深有启发,https://mp.weixin.qq.com/s/nHSeKa6NXsSt7pPXcmBE7w

  • 价值

  • 必要

  • 讨论

  • 工具

价值

咱们先说说价值。

研究价值,是一篇论文的灵魂。文字写得再精妙,如果没有研究价值,也不值得做。

更为详细的论述,请你参考我那篇《什么样的开题报告会被毙掉?:https://mp.weixin.qq.com/s?__biz=MzIyODI1MzYyNA==&mid=2653540276&idx=1&sn=5d0326eab8fbdbd3aa02fb777274b1da&scene=21#wechat_redirect》。

这里涉及到一个具体的价值评判标准问题:如果机器分类效果,比不上人工水平,那么值不值得做?

直觉会第一时间告诉你——不值得啊!既然人可以做得更好,就让人做呗。只有机器性能超越了人类,研究成果才值得发表嘛!

但是,仔细想想看,这种论断,不仅和学术界的共识不同,也违背你的常识。

你叫来一个人,让他分辨一张照片是猫还是狗。他会觉得小菜一碟,准确率也会很高。

反之,你让机器来判别猫和狗。即便是目前最尖端的计算机视觉技术,也会出现在人类看来,非常显而易见的疏漏。

你可能会因此对机器的“智能”嗤之以鼻。

且慢。

刚才的情境,只是去分辨一张照片。对吧?

十张八张呢?似乎也没问题啊。

可假如,你让这个人分辨一千万张照片呢?

他扭头就跑了,对不对?

因为这个任务,不仅繁重,而且枯燥,机会成本太高。

有做这件事的时间,他可以做很多更有意义和趣味的活动。

机器的好处,这时候就体现出来了。它任劳任怨,不知疲惫,运算速度还快。可以帮我们在很短的时间内,完成成千上万张照片的分辨结果。

你说分析这么多张照片,真的有用吗?

当然有。往远了说,你可以看看电影《少数派报告》,了解一下大规模图片分析的前景。往近了说,你可以回顾一下新闻,看看那些过马路闯红灯的行人,是如何立即连同个人信息,被展示在大屏幕上的。

这就是人和机器的区别。我们懒,我们喜欢精彩,不喜欢重复。发明机器,让它们替我们做自己不愿意从事的工作。哪怕机器做的,不如自己做得好,我们也能忍受。或者说,也得选择忍受。

你现在做的这个研究,是通过机器学习的方法,来辅助用户判断,他即将发布的信息是否包含隐私,并且进行提醒,防患于未然。

一个主流社交媒体平台,每天要有多少人发信息?每一条信息都让人来帮你判断是否包含隐私,来得及吗?靠谱吗?谁又能来支付这么庞大的成本?

而且,你立即想到了一个更大的不妥吧。

对,你要发布的内容,如果包含了隐私,却已经被平台雇佣的审核人员一览无余,预先看了去。那还何谈隐私保护呢?

所以你看,这个任务,交给计算机来做,比交给人来做,靠谱许多。

因此,在你的研究中,把分类效果与人工水准进行对比,没有必要,也没有道理。

但是人工分类水准却不可不提,它应该出现在你的数据标注环节。

监督学习是需要训练数据的,即数据要有标签。这些标签,是人打上去的。人标注的准确率,直接关系到你的数据质量。马虎不得。

你训练的模型,分类效果如果不跟人比,那跟谁比呢?

跟别人的模型比吗?

要对比别人的模型,前提有两个:

  • 别人的模型已存在

  • 你的模型效果优于别人的

假设别人的模型,准确率做到了70%,那么你即便做到69%,也别写了。因为没有价值

但是,每一个学科领域,甚至是具体的研究问题,如果要应用机器学习监督分类,都会有第一篇文献,对吧?这可算作是探索性研究

这样的研究,该跟谁去比呢?

通例是,跟一个空模型(null model)去对比。

什么是空模型?

还记得许多教科书里面,告诉你对数据要做平衡分类吗?就是二元分类任务,训练集和测试集里面,都是50%猫,50%狗。

你可能一直约定俗成也这样做。但是为什么?

现在原因就呼之欲出了。

这么做,你可以很容易构造空模型。

所谓空模型,就是在猫狗分类中,不分青红皂白,也不去分析图片特征,把所有的样本都猜测成“猫”(或者全都猜成“狗”)。这就是一本正经地乱猜

想想看,这样的空模型,准确率是多少?

当然一定是50%了。不会更高,却也不会更低。稳定得很啊。这个数值,也称作随机基线准确率(Random Baseline Accuracy)。

好了,你就跟它比。

只要比空模型好,就意味着你的模型存在意义,因为看起来,它从样本的特征中把握到了有用的信息,比瞎猜强。

注意,这里你要通过完整的规范论述流程,排除随机性的影响。后文会有详细说明。

看到没有,只要你的模型,是这个细分领域中的第一个,那你就不需要跟别人的模型,锱铢毫厘去争短长。

这也是为什么,我一直对你的拖延症有意见。

科研活动不是一次散步,可以让你从容游览把玩。它是一场赛跑。跑到第一个,你只需要跟空模型比。你的研究,会被赋予开创性探索性的标签。而且很有可能,因为这种先发优势,被后续许多研究引用,让你获得与自己的实际投入并不相称的学术声誉。这是典型的“低垂果实”,也叫做“甜买卖”。

而一旦跑慢了,成了第二名进入者。那不好意思,你就只能沦落到和别人去比了。如果你研究的,是一个很有价值的问题,那即便你拼尽全力,让自己的结果短暂领先。人们也几乎可以断言,你很快就会被后来者超越和淹没。而且这些后来者会不会记得引用你的成果?难说。

你做的到底是开创性,还是探索性研究?

这个问题,只有你自己才能回答。因为你系统梳理过文献啊。在中文社交媒体文本上进行隐私分类,别人做过了吗?

你当时告诉我说,没有。

我相信你,认为你说的是事实。

然而,我必须提醒你注意,事实是在不断变化的。

一年前,你开题的时候,没人做;并不代表一年后的今天,也没人做。所以,你得不断跟踪研究进展。万一很不妙,因为你手慢,已经有人做了。那你的研究,就不是探索性研究了。和空模型对比,就不再合适。你必须转而正面迎战,和别人的结果去对比。想尽一切办法提升模型效果,形成竞争优势。

如果遇到这种情况,你大概会叹息自己的运气糟糕。但是,那也是没有办法的事。谁让你拖延呢?你不该做的,是“选择性失明”,假装视而不见。要知道掩耳盗铃,可是大错特错,直接会影响别人对你学术品德的判断。

必要

因为被批评后信心不足,于是你开始怀疑自己。你说虽然自己做的是中文文本隐私分类,之前文献回顾中,没见到有人做。但是英文文本隐私分类不仅有人做过,而且你还参考了人家的流程步骤。那么自己的研究是否有必要性

如果你在这一点上,质疑自己的研究,我只能说,你对机器学习的本质,还没有充分领悟。你对数据分类的理解,还停留在 software 1.0 阶段。

什么叫做 software 1.0 ?这是 Andrej Karpathy 提出的概念。

解决一个问题,software 1.0的手段,是人来设计算法,机器照章执行。

所以,它即便再高妙,也不可能超越人的思维局限。它的复杂度,也就到那儿了。

例如前几天有个刷屏的游戏,据说是中文系毕业的人做的。因为程序员跑路,这位仁兄不得不亲自上阵。因为缺乏算法基础知识,所以他自己手写了几十万个 if 语句。这样居然还没有 bug !听起来非常励志。

励志归励志,但是所有 software 1.0 程序的复杂度,和基于机器学习的 software 2.0 一比,差距高下立判。

研究生论文价值、必要、讨论和工具

 

software 2.0的定义,是以不断积累的数据作为约束,在算法空间搜寻,利用优化器,自动构建软件模型。

这么说有些抽象,给你举个例子。

曾经,人造出来的下棋程序,根本打不过人类顶尖高手。

然而,一旦用上了机器学习,围棋大师也只好黯然神伤。

因为机器是自己从数据中尝试挖掘规律,自己构造模型。这样,它可以通过大规模增长见识,迅速提升表现,甚至是超越人类。因为“人为设定算法”这个玻璃天花板,已经被悄悄移除了。

因此,对于机器学习来说,你用的模型越复杂,就越需要高质量、大规模的数据支持。

听明白我在说什么了吧?

数据的地位,空前提高。特别是那些大规模标注数据。

你做这个研究的时候,有现成数据吗?

没有吧。

虽然社交媒体的数据,可以通过爬虫来便捷获取。但是对这些数据的分类标注,才是重点。

你组织人力,付出时间和经济成本,才获取了有标注的数据集合。这个过程中,你实际上已经解决了很多问题。

例如说,怎么把数据标注样本进行拆分,让若干标注者有序并行工作?怎么把任务描述得清晰无歧义,让个体的标注具备稳定性和一致性?标注结果该如何取信,如何评估,如何验证?什么才算做足够多的数据?……

对机器学习来说,如此重要的环节和内容,被你一笔带过。仿佛你用的,不过又是一个别人早已采集、清理和发布的公共数据集而已。因此,读者误解你的实际工作,把全部注意力,放到你模型的准确率评判上面。

你这么写论文,就叫做暴殄天物。

要知道,现在有的期刊,已经可以刊载“数据论文”了。你构造了一个好的数据集,本身就可以看做科研成果。是可以跟研究论文获得同等贡献对待,也是可以被引用的。

研究生论文价值、必要、讨论和工具

 

例如上图这篇论文中,3位作者利用 Zalando 图像数据库,构建了一个机器视觉分类的数据集 Fashion-MNIST,并公开发布。论文发表1年,已经被引用了154次。

研究生论文价值、必要、讨论和工具

 

另外,你真的只是构建了一个数据集而已吗?

然后,你就拿着那篇英文文献的方法,开心地套用到这个中文文本数据集了?

开玩笑!

你不用分词吗?你不需要构建和迭代停用词表吗?你不需要选择模型结构吗?

该重点写的,研究里面的独特内容和实际工作,你都不好好写。不该写的,你反倒写了个不亦乐乎。说你不会讨论,不冤枉吧?

讨论

我之前为你写的教程,很多都会结束在“做出结果”。我给你推荐的 Coursera 平台的 MOOC 里面,项目作业也只会要求到这一步。

这没有错啊。教程的目的,是让你会用方法和工具。

但是不要忘了,你现在撰写的,不是教程,也不是作业,而是论文。

什么是论文?

它是你和学术共同体沟通的信息单元,反映的是你做的研究。写作的目的,是让他人相信接受你的研究。

论文要被别人接受和采信,得靠能自圆其说

你提出了一个问题,找到了数据,应用了方法,做出了结果。但是结果本身,是不是能够让人信服,说你解决了问题呢?

这可不一定。即便你的结果很显著,也不一定。做到这一步,只能叫做演示

因为这个世界上,存在着一种叫做小概率事件的东西。中**头奖概率很低,但时常也有人会中。俗话说得好,谁家过年不吃顿饺子?

所以你写论文的时候,脑子中时刻要有一根弦儿,就是得说服别人,你的模型达到这种效果,不是巧合

查科同学前几天在咱们团队群里,分享了一篇自然语言处理最新进展的论文。我希望你认真读一下,看看该文的作者,是如何讨论结果的。

仅从结果来看,模型效果已经是非常显著了。因为按照表格中数据对比,这种模型,已经超越了人工水平。

然而,你会看到作者是在非常认真细致地讨论这种结果取得的途径。他尝试了各种排列组合,在多个数据集上进行了对比……最终,读者会被说服,这个模型确实由于设计的精妙,达到了目前最高水准(state of the art)。

别误会,我不是让你照搬该论文的讨论流程和叙述方式。因为人家就是在跟别人的模型比;而你,是在跟空模型比较。

而你做出来结果之后,其实是在乱比较。居然用随机森林和决策树模型,对比效果。

你讨论的重点该是什么呢?并不是你的模型最优(不论是决策树,还是随机森林这模型,都不是你提出的),或者你的工具最好(scikit-learn的研发你也没有参与),而是机器学习方法,适合于解决中文文本隐私分类问题。

你不觉得很奇怪吗?随机森林模型的效果,在大多数情形下,就应该优于决策树模型。那在咱们讨论分类模型选择的时候,为什么二者都保留了下来呢?

因为你不应满足于演示模型分类效果优于空模型,关键是说服读者,这种优势不是随机获得的。

怎么办呢?

我在《如何有效沟通你的机器学习结果?》一文中给你讲过,可视化是一种非常好的结果沟通手段。而在《贷还是不贷:如何用Python和机器学习帮你决策?》一文中,我曾经给你展示过,决策树模型的一大优势,就是可以做出这样的可视化图形:

研究生论文价值、必要、讨论和工具

 

想想看,你用的方法,是基于关键词的特征。那么如果能够描绘决策判断过程中,哪些词会导向隐私分类结果,哪些词能导向非隐私分类结果,是不是就可以帮助读者了解,你的模型是否真正抓住了自然语言中蕴含的信息表征(representation)?

另外,演示了一个决策树可视化图形,你又觉得完事大吉,不知道后面该讨论什么了?

注意,模型自身算法并不重要。重要的是,它是怎么被训练出来的。

莫非你对于每个分类模型,都满足于直接调用默认参数了?

有没有进行超参数(hyper parameter)的调整?

有没有遇到过拟合(over-fitting)或者欠拟合的(under-fitting)问题?你是如何处理的?

有没有继续采集更多数据?有没有尝试更换不同模型结构?

优化器(optimizer)你是如何选取的,为什么?

学习速率(learning rate)你是怎么设定的?会不会导致模型学习太慢?或是难以收敛?亦或陷落到局部最优中,难以自拔?

你在特征工程(feature engineering)上做了哪些努力?要知道,你做的并不是深度学习,所以特征的有效提取和转化,是非常必要的。

研究生论文价值、必要、讨论和工具

 

如果你把上图的例子都忘了,请务必复习回顾我在《如何用机器学习处理二元分类任务?》为你做的详细解读和说明。

工具

虽然我一直鼓励你学习机器学习和深度学习这样的方法,用好 Keras 和 scikit-learn这样的优秀框架工具。但是你真的不应该因为掌握了它们,而沾沾自喜。现在看你的论文,就弥散着这种味道。似乎你会用机器学习,所以很了不起。

这种骄傲的态度,也会让读者和评阅专家反感。

说句让你不那么开心的话——你能够如此快速地掌握和应用这些前沿技术,主要是因为门槛越来越低。

以图像处理为例。2012年以前,如果你要让计算机对猫狗照片分类,并且获得很高的准确率,几乎所有前沿学者都会告诉你:

那是不可能的!

因为他们用的方法,是手工提取特征。然后再让机器,对手工提取后的特征,进行分类操作。

研究生论文价值、必要、讨论和工具

 

上图来自这里。它介绍了手工特征提取的不足。不难看到,为了给“熊猫”图片有效提取特征,你需要考虑多少种情况。特别是看到熊猫打滚的时候,你会有怒火中烧的感觉,恨不得勒令它保持一个姿势,不要动。

因此,当时的分类算法,特别“劳动密集型”。如果你想在国际大赛中取得佳绩,真是得“一分耕耘,一分收获”。

可是现在呢?

假如你用 fast.ai 深度学习框架,进行猫狗分类,那你根本不需要考虑任何特征提取的问题。写以下几行代码就可以了: