该页面为《科研有方:科研需要『想好』再『做』》一书读书笔记的第二章总结,对该书前言及第一章的总结可移步 科研有方读书笔记之做科研的准备工作
如何做科研
做科研归根结底就是一个字:想。科研所『想』的问题通常比较复杂,因此需要有逻辑、系统并且严密的设计。逻辑性『想』的关键,所谓逻辑也就是前因后果清晰明了。
科研需要持续性的思考,而思考是一个缓慢的、需要积累的过程,因此需要有策略的阅读、有逻辑的思考和有步骤地总结和推进自己的科研,这是做科研的关键所在。
做科研的步骤
一个科研课题或者论文的完成可以分为三个步骤:提出问题、分析问题和解决问题。
- 提出问题:寻找出有价值的学术课题或者确定论文的科研方向。
- 分析问题:根据已确定的科研问题,分析其特点,然后按照自己在提出问题步骤中所确定的科研目标,提出有针对性的解决方案。
- 解决问题:使用数学工具分析了这个问题后,采用仿真或者数学证明充分验证自己所提出方案的正确性。
提出问题
学会提出问题,尤其是提出『好』问题,是读博训练的重中之重。
导师在计划书(Proposal)中会在其所关心的领域内提出若干有价值的科研问题,讨论这些问题的意义和对该领域可能带来的贡献,并且初步分析可能采用的科研方法。
提出问题的目标就是找到正确的科研方向,分析和解决问题的目标就是完整且坚实地迈出一小步。
要想提出好的问题,首先需要深入了解自己所从事的科研领域。这个过程通常需要阅读大量文献,然后通过独立思考,找出有价值并且尚未完成的问题。
文献是读不完的,需要学会有目的的去读,读一篇,吸收一篇。
第一:寻找问题的根源
了解基本知识
可以通过阅读以下几类文章获得:
- 调研类的论文或者期刊,或称为『survey』、『文献综述』。
- 该领域内比较好的论文,通常为知名期刊或者会议。
- 国外一流大学的博士论文。
阅读文献的目标:需要在文献中寻找什么,读这篇论文的目的是什么?达到目的即可停止阅读。
通信领域中,通信系统通常由多个模块构成。这些模块是如何运作和相互依存并影响的,每个模块存在的意义和它的运作方案是什么?是否有标准支持,标准的目的和内容是什么,这些都应该了解。
有选择性地阅读文献的部分内容,如Introduction和System Model的前半部分,而不需要通篇阅读——即不需要充分了解文献提出的设计方案。
所谓读完,是指达到我们的阅读目标,并非通篇完成。以后还会在不同阶段再读它们,点到为止即可,不会干扰大脑的思维。
思考存在的问题和这些问题的解决方案
在自己对要研究领域的基本知识和概括有清晰认识时即停止阅读,开始自己独立思考该领域的根本问题,不能盲目跟着别人的脚步走。
在了解一个系统的结构和工作方式后,需要去思考该系统存在和妨碍其发展的根本性问题。比如回答以下几个问题:
- 系统存在的原因:为何需要?满足了什么实际需求?需求是否都被很好地满足?是否还有未被发现的需求?解决这些问题对科研或者人类生活提高是否有帮助?
- 系统无法实际部署的原因:是什么原因导致目前无法将该系统高效地在实际中部署和应用。
- 解决方案:针对该系统无法实际部署的原因,应该从何下手能最直接有效地解决这个问题?
以上三个问题十分关键,它能保证我们能独立思考而不被别人带着走。回答上述三个问题,我们不光要思考所研究的领域有什么问题,还应该考虑自己对问题的解决方案。
自己的初步解决方案应有较强的逻辑性和一定的完整性。
- 此时的逻辑性体现在根据设计需求和科研动机找出最直接的解决方案(科研动机来源于现实世界)。
- 完整性就是能针对系统进行初步的建模,确定一些关键参数并能大体勾勒出这些参数之间的逻辑关系,从而找出解决问题最关键的参数。
在写论文的时候,需要让他们知道这个课题的意义:问题从何而来,去向何方。而不仅仅是通过引用别人的论文去说服审稿人。
如果要跟着别人的工作做,也需要知道别人的问题从何而来,去向何处。自己采纳前人方案的真正原因和自己要获取的目标是什么。
提出问题的意义所在:
拿到一个科研课题时,需啊哟先了解这个课题的背景和基本知识,然后从这个课题所涉及的技术的最初使用原因和动机,自己去思考这个课题存在的问题和发展方向。
第二:比较阅读
第二步阅读的目标是通过独立思考,提出有价值的问题和初步解决方案:
- 了解自己在提出问题的第一步中找到的问题是否已被他人研究和解决过。
- 自己所提出的解决方案是否曾被别人提出过。
以上两个目标可以认为是问题和方法比对,具体则是带着自己的问题和解决方案去阅读文献,与每一篇论文进行对比。此时阅读的层次如下:
- 根据论文题目和摘要部分寻找论文,寻找与自己所要解决的问题类似或可以借鉴的论文。
- 比较论文和自己的问题,不是同一个问题则粗读——了解论文中使用的数学建模方法和解决的问题;问题一致——精度之,比较它所描述的解决方案和我们自己提出的是否是同一个方案?若是——哪种更好?区别在哪里?可否吸收融合提出更好的方案?如果自己的问题被别人很好地解决了——果断放弃。
如果1和2都被其他论文提及,还可以通过其他方法对科研的内涵和外延进行扩展,让你讨论的问题更贴近实际,从而降低和他人工作的相似度。
通过比较关注的问题和解决方法有三点益处:
- 可以帮助选择最有用的论文进行阅读。
- 带着问题去阅读会迫使我们在阅读时进行进一步地思考,从而深刻理解和记忆相关文献。
- 知己知彼方能知道自己问题的价值和解决方案的创新性。
对于跟我们的工作非常类似的文献,我们需要反复去研读和比较。对于该文献的引用文献也需要仔细查阅。
第三:时间分配和论文的规划
根据问题和解决方法的不同,论文可以分为以下四类:
- 新问题,老方法。
- 老问题,新方法——此类问题通常是比较基础、长期存在但尚未被很好解决的问题。
- 新问题,新方法——论文的最佳状态。
- 老问题,老方法——问题已被深入研究,且使用以前的方法。这类问题应该被剔除。
根据以上归类选择相应档次的期刊或者会议。
对于大课题可以采取分而治之的方法,让这个课题能在可控时间内逐步地有所产出,由浅入深。具体步骤如下:
- 先考虑若干参数或情况,假设其他参数和情况已知或确定。
- 逐步放宽假设,做得更实际。
- 先有会议论文,再写集大成的期刊论文。
确定时间表
- 提出问题、调研、阅读文献和确定自己的设计方案。(提出问题和比较阅读)
- 数学建模和分析。
- 仿真验证。
- 攥写论文。
科研的内涵和外延
内涵越大,外延就越小。本身包含的意义越多,其可扩展性也就越窄。
对于基础问题,由于研究了很多年,已很难再有新意。这时可以通过增加这个课题的内涵赋予更多细节,让这个问题的建模过呢个贴近于我们的生活和实际。
加入更多的属性缩小其内涵时,会缩小科研成果的适用面,但是会让我们取得的成功更贴近实际和更精确,帮助我们和前人的工作有所区分。
如何读论文
- 开始提出问题的时候,读它的Introduction和建模过程,学习它怎么架构系统,从而知道自己所关心的系统的基本机构和运作方式。
- 比较阅读,将自己关心的问题和解决方案与这篇论文比较,从而更好地审视、改进自己的设计。
- 徐希这篇论文是如何具体对系统建模、如何分析参数、如何设计仿真的,从而为自己科研的具体展开服务。
分析和解决问题
所要解决的科研问题通常分为两类:性能分析和优化算法。
以通信学科为例:
性能分析主要针对通信系统的需求来设计通信协议,然后采用数学建模和分析的方法来建立系统参数与系统性能之间的关系,从而优化系统参数以获取最佳性能。
优化算法根据通信用户的服务需求,直接将系统设计建模为优化问题。在没有最优解决方案时则寻找近似算法。
实际设计中可将两种方法结合起来用。
性能分析工具
性能分析主要采用随机建模的方法,使用概率论、排队论和马尔可夫链等数学工具。
数学规划
数学规划或优化有很多类别,如凸函数优化和整数优化。主要考虑优化系统的不同特性采用不同方法。
Markov Decision Process (MDP) 与 Network Utility Maximization (NUM)
NUM主要在跨层优化的背景下提出,以网络Utility作为优化对象,采用凸函数优化等数学规划方法,设计最优协议。
MDP和NUM的区别在于MDP是动态优化,NUM是静态优化。
MDP针对动态系统,优化系统随时间变化的平均性能。动态系统中有不断的参数变化。
NUM或凸函数等静态优化方法通常需要采用数值方法求解,通过多次修改参数以达到最优,因此需要花时间收去收敛到最优值。系统变化过快时可能无法收敛。
对于变化较为频繁的系统,MDP的解会更自如地应对系统变化,但MDP不适用于系统状态过多的情况。
Game Theory 与 Convex Optimization
两者区别在于系统优化方向不同。
- 博弈论的问题经常会转化为凸函数优化问题。主要用于分析网络中没有中心控制,节点处于资质的情况下如何设计网络协议。假设节点是理性的自私(Rational Selfish)。
- Convex Optimization也多用于设计分布式系统,但Convex Optimization假设网络节点都是『良民』,绝对服从组织安排,没有自私性。
由于对节点的假设不同,Game Theory的设计主要目标是网络稳定性,或者追求纳什均衡。因为在完全自治的网络中,稳定的工作是首要保证和最低要求。采用Game Theory设计的协议被证明可以达到纳什均衡时,下一步才是分析这个系统的性能。
Game Theory设计的终极目标是获得和Convex Optimization一样的性能,但前提是达到纳什均衡。
Convex Optimization 与 Stocahstic Optimization
两者都是类似的数学规划的优化方法。Stochastic Optimization允许系统中有参数是随机变化的,这个随机变量可以出现在目标函数中,也可以出现在限制条件的不同位置。不同位置的解法会相应调整。因此Convex Optimization是Stochastic Optimization的基础,Stochastic Optimization更复杂,但是对系统的建模更准确。系统的噪声和误差可建模为随机变量引入Convex Optimization,从而变为Stochastic Optimization,常作为Robus Optimization使用。
稳态和瞬态分析
对通常的通信系统,我们关心的是稳态性能或者稳态解。可以采用马尔可夫链建模和排队论分析。与排队论这样的动态系统分析工具对应的是Network Calculus——静态网络分析方法。
对于瞬态分析,通常使用微分方程建模。将系统参数与时间的变化联系起来,通过求解微分方程可获取参数随时间变化的表达式。让时间取无限大即为稳态性能。
对于数学工具,我们需要掌握的是他们的名称、功能和特点。