25个重大的科学问题

来源:Science Magazine 1 July, 2005

THE QUESTIONS : The Top 25

A roundup of 100 additional problems that should keep researchers busy for years to come.

如何建立一个理论?

How to Develop a Theory

理论(Theory)是用于解释为什么发生某件事或者几件事是如何关联的,是对观测到的"what"探求"how"和"why"。
发展理论需要用科学方法。
首先,对于某件事为什么以及如何工作做出可衡量的预测。
然后,用可控的实验来验证这些预测,并客观地总结结果是否证实了假设。

Part I. Conceiving a Theory

构思一个理论

1. wonder "why"

对看似没有关联的事件中找到模式,在每天生活中的事件探索模式出现的根本原因,然后试着预测下一步会发生什么。

  • 如果你已经有了一个理论的种子在你的头脑中,观察这个想法的主题,并试图收集尽可能多的信息。然后写下"how"和"why",把这些碎片用因果关系拼接在一起。
  • 如果你头脑中没有理论或假设,你可以从建立联系开始。如果你以一种好奇的眼光走过这个世界,你可能会突然想到一个主意。

观察现象,找到模式,发现关联,推测因果,做出预测,实验验证。

2. Develop a theory to explain a law

law: 定律
theorem: 定理
科学定律是对所观测到的现象的描述。
定律不解释出现这种现象的原因。对现象的解释被称为科学理论。有足够的研究,理论就会变成定律,这是一个普遍的误解。

// 根据定律总结出一系列定理。
// 发展一门理论,解释这些定律背后的因果关系。

例如:牛顿万有引力定律是第一个从数学上描述宇宙中两个不同物体如何相互作用的定律。然而,牛顿定律并没有解释为什么会有引力,或者引力是如何起作用的。直到牛顿之后的三个世纪,阿尔伯特·爱因斯坦发展了他的相对论,科学家们才开始了解重力是如何以及为什么起作用的。

3. Research the academic precedents to your theory.

//研究你的理论的学术先例。

学习已经被测试、证明和反驳的东西。尽你所能找出关于主题的一切,并确定是否有人曾经问过同样的问题。从过去吸取教训,这样你就不会犯同样的错误。

  • 利用现有的知识来更好地理解你的主题。这包括方程、观测结果和现有理论。如果你正在处理一个新的现象,试着建立在已经被证明的相关理论的基础上
  • 看看是否有人已经发展了你的理论。在进一步讨论之前,请合理地确保没有其他人已经探索过这个主题。如果你找不到任何东西,请自由发展你的理论。如果有人已经提出了类似的理论,那就通读一下他们的著作,看看你是否能在此基础上有所建言

4. Build a hypothesis

// 建立假说。
假说是根据已有知识作出的猜测或命题,旨在解释一系列事实或自然现象。

从你的观察中提出一个合乎逻辑的可能的现实——寻找模式,并思考是什么导致了这些事情的发生。
// 怎样算合乎逻辑?——或许是,让我理解起来很自然。

Use an "if, then" form: "If [X] is true, then [Y] is true," or "If [X] is true, then [Y] is untrue."

形式假设包含一个“自变量”和一个“因变量”。自变量是一个你可以调整和控制的潜在原因,而因变量是一个你可以观察或测量的现象。

如果控制X为a,那么观察到Y为b。

  • 如果你要用科学的方法来发展你的理论,那么你的假设必须是可测量的。你不能证明一个没有数字支持的理论。
  • 试着提出几个假说来解释你的观察结果。比较这些假设。考虑它们在哪里重叠,在哪里分裂。
  • 例如假设:“如果皮肤癌与紫外线有关,那么高紫外线照射的人患皮肤癌的几率会更高。”或者“如果叶子的颜色变化与温度有关,那么把植物暴露在低温下会导致叶子颜色的变化。”

5. Know that every theory starts as a hypothesis

每个理论的建立都是从假说开始的

理论是对模式存在原因的经过充分检验的解释,而假设只是对这种模式的预测的原因。理论总是有证据支持的。然而,假设只是一种建议的可能结果,它可能成立,也可能不成立。

how to write a hypothesis

assumptions: 前提假设

Part II. Testing Hypotheses

验证假说

1. Design an experiment

根据科学方法,你的理论必须是可检验的。
开发一种方法来测试每个假说是否正确。确保在受控环境中执行测试:尝试将事件和提出的原因(因变量和自变量)与任何可能使结果复杂化的因素隔离开来。要精确,并注意外部因素。

  • 确保你的实验是可重复的。在大多数情况下,仅仅证明一个假设一次是不够的。你的同伴应该能够自己重新创建你的实验,并得到相同的结果。
  • 让同事或顾问检查你的测试程序。请别人检查一下你的工作,确认你的逻辑是合理的。如果你正在与合作伙伴一起工作,确保每个人都给出了他们的意见。

2. Find support

根据你的研究领域,如果没有特定的设备和资源,可能很难进行复杂的实验。科学仪器可能很贵,而且很难买到。如果你被一所大学录取,和任何可能提供帮助的教授和研究人员谈谈。

如果你不在学校,可以考虑联系当地大学的教授或研究生。例如,如果你想探索物理理论,请联系物理系。如果你发现一所遥远的大学在你的领域做了很多令人兴奋的研究,考虑给他们发电子邮件,询问他们的研究、结果或对你的项目的建议。

3. Keep precise records

实验必须是可重复的:其他人必须能够以与您相同的方式设置测试并得到相同的结果。把你在实验中做的每件事都做准确的记录。一定要保存好你所有的数据。

如果你在学术界,有一些档案存储着在科学研究过程中收集的原始数据。如果其他科学家需要了解你的实验,他们可以查阅这些档案或要求你提供数据。确保你能提供所有的细节。

4. Evaluate the results

将你的预测和你的实验结果进行比较。寻找模式。问问你自己,这些结果是否有新的含义,并考虑一下你是否忘记了什么无论数据是否证实了这一假设,都要寻找可能影响结果的隐藏或“外生”的变量

5. Establish certainty

如果结果不支持你的假设,那就以预测不正确为由拒绝它。如果你能证明这个假设,那么这个理论就离被证实又近了一步。尽可能详细地记录你的结果。如果一个测试过程及其结果不能被复制,那么它的用处就会小得多。

// 理论由一系列定律、定理及被证实/尚未有条件被证实的假说构成。

  • 确保每次实验的结果不会改变。重复测试直到你确定。
  • 许多理论被实验驳倒后就被抛弃了。然而,如果你的新理论能够解释一些以前的理论无法解释的东西,这可能是一个重要的科学进步

Part III. Accepting and Expanding a Theory

1. Draw a conclusion

确定你的理论是否有效,并确保你的实验结果是可重复的。如果你接受了这个理论,你就不能用你所掌握的工具和信息来反驳它。然而,不要试图把你的理论变成绝对的事实。

2. Share your results

为了证明你的理论,你可能会收集大量的信息。当你确信你的结果是可重复的,你的结论是有效的,试着把你的理论提炼成一篇其他人可以学习和理解的论文。按照逻辑顺序安排你的过程:首先,写一个“摘要”来概括你的理论;然后,提出你的假说,你的实验过程,和你的结果。试着把你的理论提炼成一系列的观点或论点。最后,用你的结论来结束论文。

  • 解释你是如何定义你的问题的,你采用的方法,以及你是如何测试它的。一份适当的报告将引导读者通过每一个相关的想法和行动,使你得出你的结论。
  • 考虑你的听众。如果你想和同行分享你的理论,写一篇正式的论文来解释你的研究结果。考虑向学术期刊投稿。如果你想让你的发现为大众所接受,试着把你的理论提炼成更容易理解的东西:一本书,一篇文章,或者一段视频。

3. Understand the peer-review process

在科学界,理论只有经过同行评审才能被普遍认为是有效的。如果你把你的发现提交给学术期刊,另一位科学家可能会决定同行评审——也就是说,测试、考虑和复制——你提出的理论和过程。这要么证实这个理论,要么把它搁置一边。如果这个理论经受住了时间的考验,其他人可能最终会把你的想法扩展到其他领域。

4. Build upon your theory

你的思维过程不需要在你分享了你的理论之后就结束了。事实上,你可能会发现,写下你的想法的行为迫使你考虑那些你一直忽略的因素。不要害怕不断地测试和修改你的理论,直到你完全满意为止。这可能意味着更多的研究、更多的实验和更多的论文。如果你的理论的范围足够大,你可能永远也无法充实其全部含义。

不要害怕合作。保持你的智力独立是很有诱惑力的,但是当你和同事、朋友和顾问分享你的想法时,你会发现它们会赋予你新的生命。

[转载] 认知科学的危机:一场跨学科革命为什么会走向失败?

认知科学危机-标题图.jpg
本文来自微信公众号:集智俱乐部(ID:swarma_org),作者: 十三维,标题图来自视觉中国

导语:

备受关注的“认知科学革命”已经兴起了将近半个世纪,但多个领域交叉产生的新学科——“认知科学”却渐渐陷入了瓶颈,近期发表在Nature human behaviour的文章通过计量分析甚至给出了“认知科学很难再形成完整学科”的结论。本文详细介绍了这项研究,并通过梳理认知科学的发展历程,试图解析这一跨学科领域没有成功收敛的原因。

本文部分内容源于集智俱乐部“意识与认知前沿读书会”中的讨论。


- 阅读剩余部分 -

boost mpi调试环境的配置

boost mpi调试环境的配置

本文为介绍Boost::MPI调试环境搭建方法的教程。所使用的环境或工具为:Windows 10, boost 1.68.0, Microsoft MPIVS 2015

MPI是分布式计算常用的一种接口。C++库Boost提供了MPI的接口,但依赖于其他如OpenMPI、Microsoft MPI等具体实现,也就是说boost::mpi也仅是提供了接口而已。因此,如果要在本机上调试分布式算法,搭建调试环境,需要先安装一个MPI的实现,然后构建boost::mpi库,最后配置相关的引用路径。下面将具体介绍配置过程。

假设已经在Windows 10上正确安装了boost库。下面将如何进一步配置MPI环境呢?

- 阅读剩余部分 -

软件测试

在代码重构过程中,有一个核心的步骤就是测试。

简单调研了一下常用软件测试工具后,决定使用google test这个工具进行软件测试。下面对所搜索到的资源做一个简单记录,以便日后查阅。

- 阅读剩余部分 -

论文泛读 | 谷歌AI预测源代码

Google开发了一个算法,用于编程时的源代码预测。
程序员再也不怕需求改来改去!谷歌大脑新突破:AI预测源代码

具体来说(举一个例子):

AI预测代码-图片1.png

且看State 2,当代码状态处于State 2时,预测的修改表征Likely Edit 3有两种可能,一是t=3: INSERT ', 1',二是t=3: DELETE ', y',那么应该选择哪种修改方式呢?取决于历史状态。历史状态State 0如果是History A,则预测为前者;如果是History B,则预测为后者。

【MARK】这让我联想到了HTM的序列预测模型。不过不同的是,HTM的输入对象和预测对象是同一类对象,而这里预测对象(可能的编辑)和输入对象(代码状态)是不同的对象。是否可以改进HTM网络的模型,使之更普适,也能兼容如是情形,进行代码预测呢?

比较感兴趣的关键问题:

  1. 是否建立了数据集?如果有,下载下来,可作为实践的根据。
  2. 如何表示代码状态和编辑内容?若要利用HTM进行实现,需要首先明确这个问题。
  3. 评价标准是什么?准确率?怎么定义准确率?

[转载] 如何阅读paper

论文阅读一直是科研过程中至关重要的一环,如何收集论文,快速选取和课题匹配的论文,高效地把握论文核心思想是每个科研人员的必备素养,也是每个科研萌新(硕士研究生)苦恼的问题。
台湾国立清华大学的彭明辉教授曾出版过一份《研究生手册》,其中关于论文阅读的内容详实精彩,将其整理如下,希望对大家有所帮助。


- 阅读剩余部分 -