CategoryResearch

转:The Culture Wars of Data Management (April 13, 2018)

source: https://thedatadossier.blogspot.com/2018/04/the-culture-wars-of-data-management.html


Scientists are people. Despite their fervent protestations of objectivity, all scientists are prone to conflating subjective experience with objective truth, at least once in a while. Einstein himself infamously dissed on quantum mechanics initially but then contributed to …

看论文/听讲解的一些提问方向

这个学期开始组里每周三下午开论文研讨会,形式是让一个人讲一篇计算机网络、信息安全或者人工智能领域CCF A类的文章,然后大家至少提一个问题。我觉得这个活动对培养批判性思维很有意义,特别适合我这种懒惰到不愿意看论文的所谓“参与科研的本科生”。果然,自己提的问都很浅薄。所以在这里,我把开头三周大家好的提问总结归类成一些方向,期待能够举一反三

先决条件:提前花时间去看论文

要想真正提出有建设性的问题,即能够做到以下任意一点

  • 有力地质疑有漏洞的工作(维护Academic Integrity
  • 启发后续的研究(对问题的解答或改进)
  • 过滤掉那些无意义即文中有解答/太宽泛的问题,在自问自答的同时深化理解(找到可供迁移的方法或借鉴的研究思路)

那么,即使有人讲PPT,也得先把论文大致看看。看完一篇论文,至少要能解答五点核心问题:

  1. Background
  2. Challenge
  3. Motivation
  4. Contribution
  5. Criticism(“批判吸收”)

关于怎么看论文才能不陷入细节,避免“拖泥带水”以致不得要领(上面五点),另有略读的方法和辅助工具,有缘分另开一篇博文研究之。一般而言是分章节看以及关注图表。之前有一篇提到了这个的博文是Notes on Research

如果你真的认真看了论文,并且方法得当,看完之后的Criticism就是你的问题。但是学习总有个过程,批判能力不是自然而然就有的,所以在本文的剩下部分会介绍一些我碰到过的提问方向,看能否有所启发。这些方向按照程序员的套路粗分为

  • Errors:错误;不可用
  • Warnings:不足;不好用

Errors

  • 方法的可行性建立在未说明的假设上,因果链残缺,“显然”过多
  • 对于已经用假设限定后的问题,理论上的分类讨论或测试中的划分等价类仍然有遗漏(不等于不完善,等于压根没有)
  • 从特殊到一般、少到多、简单到复杂的推广有问题
  • 提出方法的Motivation不明,无法说明提出方法的适用性或原创性
  • 测试结果相较已有方法没有明显优势;在其他方面劣势太多;没有说明优劣之间的权衡
  • 方法的细节没说清楚,丢给计算机执行不了
    • 严格版本:没有提供代码及人为设置的参数,无法复现实验结果
  • 理论部分写的自己方法的优点/特点以及未经理论证明的论点,没有相应的实验证实

Warnings

  • 没有提到方法的任何不足
  • 测试不完善(太理想化),可信度低
  • 方法的可行性建立在过强的假设上
  • 有安全隐患:没有考虑系统自身的异常行为或恶意用户

How to Make Proposals

工具

Zotero + Docear(待研究)、zoterobib、Excel

找Topic

有一个初步的目标领域和方向(议题)

  • 请求导师建议

  • 在Google Scholar上订阅大牛动向

  • 浏览ACM、IEEE、CCF等学会刊发的新闻动态确定目标领域的主要会议,一般是CCF顶会

把这些会议近几年来(至少3年)所发表过的论文的Title及Abstract浏览一遍,找出跟研究议题比较相关的论文(大牛写的Survey优先)

把这些论文的Introduction和Conclusion看一遍,然后把这些论文依它们与研究议题的相关性做个大致的排序

依相关性顺序研读这些论文,思考Background/Challenge/Motivation/Contribution/Criticism;把高相关性论文同步记录在*.bib中

在研读过的文章中选择/自行提出(较难,且更需注意可行性)Topic

做Survey

写Intro

  • 写明找到的Topic

  • 划定范围
    • 会议:记录在上一步的*.bib中的文章及其Related Work(老成果可以去期刊找)
    • 年代:一般3-5年为确保没有漏网之鱼,用关键字去Google Scholar、ACM DL、IEEE Xplore DL上搜搜看
    • 说明分类标准及理由:根据找Topic时浏览的内容进行聚类

完成每一类别

  • 预备一张Excel表格,X轴为所有看问题的角度,Y轴为范围内的所有Paper
    • 选取最早、最具代表性的一篇文献作为开端,写出其主要内容、贡献
    • 简要描述其关键技术列出后续的follow-up们,写出其改进之处
    • 把每篇Paper新发现/解决的X轴维度补上/注明效果
  • 对本类的评论
    • 目前在这类别的研究成果大致如何
    • 还有哪些不足的地方
    • 与自身研究有何关联,如
      • 会采用哪些既有的技术
      • 自身的研究方法或成果与它们有何差异
      • 自身的研究对这个领域的贡献是什么

写Conclusion

  • 目前的研究进展/能够应用的成果

How to Write Papers

论文大致上有五、六章。第一章是Introduction,这一章通常只占论文整体篇幅的十分之一,却是最关键的一章;在国际会议论文的审稿过程中,很多委员往往仅从Introduction中评断论文是否值得接受。Introduction要如何写好是需要一些天份与努力的,基本上它就像在写作文一样,要有强而有力的开头,在前一、二段就能带领读者进入你要研究的领域。接下来的几个段落,你必须替读者建立足够的background,让他们了解你论文的研究背景。Background建立好之后,你必须点出整个研究的动机,这是最关键的地方,动机不足,无法显示你研究的重要性,变成无病呻吟,甚至连呻吟的声音都听不到,不晓得你到底要做什么。动机点出来之后,通常就会说明你的研究成果及主要贡献,也就是论文的价值之所在。在Proposal阶段,这部分会以预期的方式来呈现。最后,你会花一段文字来说明整个论文的架构,并做为第一章的总结。

除了动机要强之外,第一章一般比较容易犯的毛病是研究背景给的不充分,以及与研究动机没有连贯性,研究背景漫无边际的讨论,然后“天外飞来”你的研究动机。切记一点,写研究论文逻辑一定要清晰,整个章节的构思逻辑是什么、为何这个句子要承接上个段句子、这个段落要承接上个段落等等,一定要清楚的思考过。许多论文的败笔在于论文东一段、西一段,段落之间没有逻辑关联,让论文整体杂乱无章。如何避免这样的问题,如果你没有天份的话,只好靠后天的努力:对于论文返覆的读取,不厌其烦的思考句子、段落之间是否有逻辑上的问题。我个人的经验是,我自己写过的文章,每读一次都有新的体会与修正。一篇论文写完之后,我都会再从头到尾读一次,修改到我最近一次读过后没有新的修正为止。这样通常会经历四、五回合以上。我最不喜欢见到的是学生论文写完之后,从头到尾连一次都没看过就送给我,里面错误百出,甚至连基本的连结 (cross reference)都错,好像要我帮他校稿一样。你们有些人也有这样的毛病,这样的毛病不改是做不好学问的。以后我看到这样的论文马上就退。我以前念书的时候跟指导教授meeting讨论论文时总是战战兢兢,在给他看我的论文时我自己会来回看好多次,深怕犯一些明显的文法或逻辑错误,或他曾经指正过我的错误,我也藉此训练出比较独立的研究能力。这里我感觉大多数的学生都比较缺乏独立的研究能力,有些则完全依赖指导教授替他修改论文,甚至觉得理所当然,这是相当不正确的研究态度。

第二章是文献探讨。在写这章前一定要仔细思考你要探讨哪些相关文献,这些相关文献如何分门别类,然后在第二张开头以约一页的篇幅描述你要survey的内容、范围与架构。当然,你得提供充分的理由说明为何你要做这样的组织分类。文献探讨要做的好是一门学问,它并不是把一些相关的文献看过,然后对每个文献作摘要即可。把相关文献做一个有系统的分类,本身就是一种贡献。一般而言,每个研究领域都可以拉的很广,你在有限的空间内不可能全部涉猎,因此,你得设定一适当的焦距,决定文献探讨的领域范围。

在你设定的范围内一定有许多文献要探讨,你得将这些文献分门别类,每一类别选定一个最具代表性的文献做这个类别的开端。接下来你得摘要这篇文献的主要内容与贡献,并且用比较简单浅显的方式让读者了解关键的技术。一般而言,这篇代表性的文献后续多少有些follow-up继续改进前人的结果。这时你大致不需要针对每个follow-up做仔细讨论,只要用一、二句话摘要出每个follow-up改进之处即可。把比较重要的follow-up说明之后,你应该以一段话做为这个类别的结论。这一段话必须评论目前在这类别的研究成果大致如何,还有那些不足的地方,以及与你的研究有何关联(如你会采用那些既有的技术,你的研究方法或成果与它们有何差异,你的研究对这个领域的贡献是什么)。

很多人的文献探讨只摘要了别人的成果,却少了最后这一段,无法让人了解你的survey与你的研究议题有何关联,也不晓得你对前人的成果看法为何。另外一个比较常见的问题就是survey不深入犀利,讲得都是很表面得东西,让人家觉得看你的survey对这领域一点帮助都没有。

对每个类别survey完之后你必须对这整个章节做一个结论。在这个总结里,你必须汇整出这个领域里目前的研究进展,还有那些不足的地方,并且从此支持你在第一章提到的研究动机,以承接下一章节。

第三章基本上是要描述你的研究议题与方法。你必须清楚的描述及定义你的问题。有些时候,问题与定义会牵涉到你的系统或演算法所植基于的model,因此你也必须定义你用的系统model是什么,有那些假设的前题。接下来就是说明你的研究方法,所须的定义与所用的核心技术。接下来就是提出你对问题的解决方桉,并分析讨论它的优劣。在proposal的阶段基本上不必具体的提出解决方法,只要讨论你大致将采用的措施即可。但即使如此,在proposal的阶段这一章也不能马虎的做表面的探讨。一定要具一定的深度,才可以让committee 的成员相信你对于你的研究议题有足够的了解。这一章写深入,你未来修改甚至更换研究题目的机率就低。

第四章通常是对于你在第三章提出的问题解决方桉做一实证,如系统模拟,比较你的方法效能为何、与既有的方法有何差异。

第五章就是对论文做一结论,在这里你必须重覆你整个研究的动机,再叙述你的成果,然后说明你的研究价值与贡献。每项研究总有不尽完美之处,你的大概也不例外。因此,接下来你就要讨论你的研究成果或系统还有那些可以改进之处,据此引出未来研究方向。

论文最后必须附上参考文献。这是大多数人最容易忽略的地方。因此,研究态度严不严谨也很容易从这个地方看出。我已经告诉过你们参考文献要如何编排,应该会有那些栏位。你们要确实且详尽的去建立每笔参考文献。另外,参考文献的数目应该要适中。硕士论文我认为应该在30笔到40笔之间。博士论文可能多达四、五十笔以上。但也不要过度夸大,把许多不相干的都放进来。当然,这些数目都不是绝对的,它会随研究领域和议题有所差异。


如何写paper:
1,想象你是一个推销员,你怎么介绍你的paper,从而使能够别人欣赏和认同你的工作。
2,如果让你用中文说,你会怎么组织你的paper,从而让别人明白你具体做了什么。你的逻辑会是怎样的。
3,英文的表述主要学习借鉴自己之前看到过的native speaker写的你觉得写得很好的paper。

1,2其实是最重要的,实际上就是逻辑是最重要的。不管是中文还是英文,你的论文组织都需要有条理。你首先得讲清楚你为什么要做这个研究。比别人的好在哪里。为什么要让你的paper中。你得讲清楚你研究的是个什么问题。每一个section或者段落,你得有中心句让人一眼就看出来你要说什么。

如果你用中文口语,能够清楚的推销你的paper,你就能用英语把paper写得明白易读。

Notes on Research

Conferences

  • 以会促研:事先读了paper/socialize/思考问题

Presentations

  • 讲清楚:目标是让现场非该小方向的人也能听懂
  • 带着批判性眼光审视他人工作:在pre的最后添加自己的comment,比如关于assumption/motivation/implementation
  • 思考对自己的助力:比如idea/method/tool
  • 听pre主动提问题
  • 熟悉著名的研究团体

Survey (Proposal)

预测 Introduction 中的 Motivation
在写这章前一定要仔细思考你要探讨哪些相关文献,这些相关文献如何分门别类,然后在第二张开头以约一页的篇幅描述你要survey的内容、范围与架构。当然,你得提供充分的理由说明为何你要做这样的组织分类。文献探讨要做的好是一门学问,它并不是把一些相关的文献看过,然后对每个文献作摘要即可。把相关文献做一个有系统的分类,本身就是一种贡献。一般而言,每个研究领域都可以拉的很广,你在有限的空间内不可能全部涉猎,因此,你得设定一适当的焦距,决定文献探讨的领域范围。

在你设定的范围内一定有许多文献要探讨,你得将这些文献分门别类,每一类别选定一个最具代表性的文献做这个类别的开端。接下来你得摘要这篇文献的主要内容与贡献,并且用比较简单浅显的方式让读者了解关键的技术。一般而言,这篇代表性的文献后续多少有些follow-up继续改进前人的结果。这时你大致不需要针对每个follow-up做仔细讨论,只要用一、二句话摘要出每个follow-up改进之处即可。把比较重要的follow-up说明之后,你应该以一段话做为这个类别的结论。这一段话必须评论目前在这类别的研究成果大致如何,还有那些不足的地方,以及与你的研究有何关联(如你会采用那些既有的技术,你的研究方法或成果与它们有何差异,你的研究对这个领域的贡献是什么)。

很多人的文献探讨只摘要了别人的成果,却少了最后这一段,无法让人了解你的survey与你的研究议题有何关联,也不晓得你对前人的成果看法为何。另外一个比较常见的问题就是survey不深入犀利,讲得都是很表面得东西,让人家觉得看你的survey对这领域一点帮助都没有。

对每个类别survey完之后你必须对这整个章节做一个结论。在这个总结里,你必须汇整出这个领域里目前的研究进展,还有那些不足的地方,并且从此支持你在第一章提到的研究动机,以承接下一章节。

第三章基本上是要描述你的研究议题与方法。你必须清楚的描述及定义你的问题。有些时候,问题与定义会牵涉到你的系统或演算法所植基于的model,因此你也必须定义你用的系统model是什么,有那些假设的前题。接下来就是说明你的研究方法,所须的定义与所用的核心技术。接下来就是提出你对问题的解决方桉,并分析讨论它的优劣。在proposal的阶段基本上不必具体的提出解决方法,只要讨论你大致将采用的措施即可。但即使如此,在proposal的阶段这一章也不能马虎的做表面的探讨。一定要具一定的深度,才可以让committee 的成员相信你对于你的研究议题有足够的了解。这一章写深入,你未来修改甚至更换研究题目的机率就低。

Paper Writing

Notes on SIGCOMM’19

Opening Keynotes

Steps Toward a Robust Global Internet (CC)

Mark Handley, UCL

Lessons from struggles in CC over all these years

  1. change is hard
  2. even the best CC algorithm cannot, by itself, solve congestion
    1. Feedback Loops
      1. (HTTP GET – [TCP:

蹭会笔记 – 武汉大学人工智能珞珈论坛

内容概要

Multi-agent Deep Reinforcement Learning, Bo Xin, MSRA

小爱同学:人工智能带来人机交互的新变化,王刚,小米小爱团队

Connecting Isolated Social Multimedia Big Data, Changsheng Xu, 中科院自动化所

 

Multi-agent Deep Reinforcement Learning

来自MSRA的Bo Xin博士的报告可视作对于强化学习(Reinforcement Learning)的一个简单介绍

Where Are We

强化学习介于有监督学习和无监督学习两者之间,属于机器学习的范畴

Deep RL vs. RL

深度学习可以视作基于多层神经网络的机器学习框架。在运算机能和数据集容量的提升下,越来越多的机器学习方法被改造成“深度xx学习”,以获得更强的泛化能力等

基本思路

强化学习的过程可视作一个决策过程。和传统规划不同的是,RL面对的模型是未知的,需要通过训练拟合出来

目的

Learn the

Block Chain – Intro

来源:陈文光教授,清华大学,“初识区块链”。

感谢陈教授的精彩演说。


引子:数据库

区块链的技术基础模型是所谓“关系型数据库”。传统的关系型数据库基本是由单一方拥有最高的管理权限,例如:

跨境支付之全球分布式账本

由于交易双方缺乏互信,引入第三方中间银行进行国际结算。

全球物流

涉及海关、运输等多方,各方为了保密采用单独数据库,需要大量接口。

总结:

大家都在维护单方数据库,对接成本太高。

我们需要一个“分布式全球数据库”。

 

如何构建呢?我们需要解决如下问题:

  1. 谁能加入该数据库?
  2. 谁拥有写数据库的权限?
  3. 谁愿意来维护这个数据库?
  4. 这个数据库可不可靠?性能足够吗?

 

问题1:谁能加入

公有链(个人,如比特币)—-> 交易可信?

私有链/联盟链(组织,如Hyperledger) —->  一个仅仅是提升了可靠性的数据库价值高吗?

 

问题2:可靠性与性能

性能:应用批处理技术,如10分钟写1MB数据(弊端:限制了TPS(Transactions per Second(每秒传输的事物处理个数)))

可靠性:多份复制,如每台机器均保留完整数据(利用副本自动机(Replicated State Machine)技术实现状态同步),只要有一台机器还存在,数据的完整性就不会被破坏。

 

问题3:谁能写?写什么?(以比特币为例)

保护付款人:避免把不存在的交易写上去…