首页 > IT资讯 > 正文

缺陷软件:大数据驱动科学的致命伤?

近来关于科研造假的报道甚嚣尘上、令人忧虑。但诚实的研究结果就那么可靠吗?在科学网站iSGTW上,记者Adrian Giordani指出了对软件缺陷日益增长的担忧:

2012年10月,一个关于“电子科学可维护软件实践”(maintainable software practices in e-science)的研讨会强调了代码中隐匿错误导致主要研究论文被撤销的现象。例如,2006年12月,美国加州Scripps研究所分子生物学部的Geoffrey Chang发现一个手写的程序把两个纵栏的数据颠倒了,导致电子密度图倒置,他为此震惊。结果是若干篇论文不得不从《科学》期刊撤销。

较早前一篇论文的作者之一、鉴定软件工程学(forensic software engineering)教授Leslie Hatton写道:


我在气象学、地震学、计算等领域工作了四十年,我用过的大多数软件都受到了这类缺陷的污染,无论其程序员怎样努力使尽测试手段也无济于事。当缺陷最终显露时,总是大大出人意料之外。.

这些缺陷自身则有多种来源,包括:需求也许被误解,物理计算错误,代码中简单的录入错误(例如公式中减号写成了加号),程序员也许依赖了编程语言中某项微妙但未恰当定义的特征(例如未初始化的变量),也许有数值方面的不稳定性(如溢出或下溢错误),以及代码中基本的逻辑错误。这个清单极长,实质都是不同形式的人为失误,但编程语言的复杂性、算法的复杂性、仅计算规模本身,更使问题雪上加霜。

哥伦比亚大学计算机学家Victoria Stodden所开发的RunMyCode网站,通过共享代码和数据、加速实验重复来帮助科研人员发现错误。而幸运的是,许多大家较为熟悉的消费品中的软件故障,只是偶然发生,在多数时间不会严重影响其功能。真正的问题在于:某个软件错误会过一阵子突然变得致命,就像1980年代恶名昭著的放疗事故那样。

可重复性能够帮助科研人员改正不可避免的缺陷。但那些管理日常生活的许多程序又怎么办呢?这些程序涉及:法医实验、信用评分、反恐监控名单;而其代码经常是商用的,或者是国家安全机密。在美国国防部出了问题的F-35喷气战斗机项目里,

项目经理空军少将Christopher Bogdan说:“无法忽视的大问题是测试飞机及其支持系统用的2,400万行软件代码,指令堆积如山,远远超过了其他飞机曾尝试过的手段”。

在民用行业,例如信用评分计算中,对程序的计算结果经常没有切实可行的上诉措施。现在的问题是:我们能否研制出有效的工具来在其造成严重破坏之前发现假阳性或假阴性。



相关文章:


大数据需要数据学家、数量分析师、Excel骑师


为了从大数据中获取最大的商业价值,企业在寻找多技能的专家,他们需要懂得编程、大规模数学、统计学、商业。这一新角色被称为“数据学家”。如同大数据,数据学家这个词既时髦、又可疑。

也像大数据一样,某些企业目前就需要数据学专才,另外一些则还不那么迫切需要。随着社交媒介、传感器、其他新的数据源带来“拍字节”(译注:petabyte,10的15次方)数据量在商业分析中成为惯例,其商业需求在近几年内预计会陡增。高校正忙于设立数据学课程,而现有数据密集型公司则在自行建立这类课程,尽管他们不用“数据学”这个标签,其手段是对目前的分析师、数量分析师、Excel骑师、熟悉计算的MBA(工商管理硕士)学位持有人等给予培训,教授他们大数据方面的技能,例如Hadoop。

SAS公司副总裁及技术总监Keith Collins在硅谷“丘吉尔俱乐部”论坛上发言说,该公司认为数据学专才职位有个巨大的缺口。

五月,麦肯锡全球研究所论及大数据的报告中对需求提出了些数字:“到2018年,在深度分析技能人才方面,仅美国就可能会有14万到19万的缺口,在有能力使用大数据分析来有效决策方面,缺口是150万名经理及分析师”。

相信及怀疑大数据的人都认为,大公司将需要三至十人的团队来把专长集中在一起,这些专长是为了满足下列方面的需求:理解数据、制定出创新的数据用法、选择软硬件、编写程序为商业用户提供所需要的信息。

Greenplum公司(目前已属于EMC公司)的CTO和共同创始人Luke Lonergan说,大家低估了大数据能根本改变业务的程度。

“他们会坐失良机或者穷于应付。具有数据学团队的企业开始明白了;其他企业却看不到其潜力”。

他补充说,有些公司以为能够靠购买应用系统来启动大数据,其实不灵。“围绕着大数据爆发,会有新活动的爆发”。

Teradata公司Aster创新中心的Randy Lea,界定了数据学家的素质:具备数学及统计学技能、调研型头脑、理解C++及Java等编程语言、有能力编写代码。他承认,大学还很难提供此类专才,但具有这些技能结合的人已有二十年的历史了,他们被称作业务分析师。他们可以学习例如MapReduce那样的并发编程框架,但他认为许多分析采用SQL语言的数据库同样可以奏效;该中心拥有25家客户使用逾拍字节的数据。 Aster中心具有SQL和SQL MapReduce代码编写、采用SAS系统中的R语言从事数据挖掘的专长。

“因此我们让您在二者间择优选择”。

他认为不用等待大学提供数据学专长的毕业生。

“有经验的数字分析师一直在使用数据挖掘工具。这是教他们新工具和MapReduce的绝好机会。他们已经有了全面的背景知识”。


上一篇:谷歌“学习机器人”:机器像人脑一样思考
下一篇:为什么程序员喜欢熬夜工作?

PythonTab微信公众号:

Python技术交流互助群 ( 请勿加多个群 ):

群1: 87464755

群2: 333646237

群3: 318130924

群4: 385100854