计算机化学将科研工作者从繁重的实验中解脱出来,利用其强大的数据处理能力,帮助科研工作者更快地实现分子结构设计模拟、实验数据处理、合成路径设计等问题,在化学材料领域已经有十分广泛的应用。自2016年Alpha Go击败人类围棋世界冠军后,计算机化学领域中的机械学习也进入到大众视野。机器学习可以通过获得的实验数据来优化自身算法,使得可以实现对实验结果的准确预测,在化学材料领域有广阔的应用前景。由此可见,计算机化学在化学材料领域科研工作中占有越来越重要的地位。
但是,计算机化学现在面临着重现性危机。近期,《Chemical World》的科学记者发表了相关文章。2019年10月,一个天然产物化学家团队发现在广泛使用的NMR软件中发现问题,这个问题是存在于代码深处的文件排序问题,这个问题使得化学位移的预测出现错误。而这个问题的发现导致了在过去五年内发表的超过150篇文章存在不确定性。
01 “核磁位移”和操作系统有关?
采用“ Willoughby-Hoye” Python脚本简化输出文件的处理时,计算得到的天然产物核磁位移取决于操作系统,运行不同的操作系统处理得到的核磁位移出现较大偏差,可能导致错误的实验结果。
02 不是第一次!
这种问题已经在计算机化学领域不是第一次出现了,而这个事件折射出了计算机化学中的重大危机。计算机科学领域的发展是十分迅速的,包括计算机硬件发展和计算机软件的迭代更新。通常,在计算机领域,源代码公开可以使得算法更新速度加快。而在计算机化学领域的研究成果实际上并不对普通大众公开,这就导致了算法的滞后。在一方面这导致了计算机化学中算法的问题发现不够及时,另一方面文章中的代码跟不上编译器和解释器的迭代速度而导致在现有系统中不兼容的问题,这使得过去在计算机化学领域的研究成果在现如今的电脑上无法重现。
有很多努力在尝试解决这些问题。Konrad Hinsen是法国奥尔良国家科学研究中心的研究员。几年前,他与他人共同创办了ReScience C杂志,目的在于创建一个空间,让尝试重新使用旧代码的人们可以共享他们的结果。
03 代码公开or保密?
随着机器学习的兴起,机器学习模式解决化学问题得到了越来越广泛的研究。但是在可重复性上,机器学习更应该制得忧虑。化学科研工作者多是用机器学习来解决之前没有软件解决的问题,而对于算法是否最优的方面却没有过多的考量。毕竟大多数化学研究者并没有什么成体系的编程学习的背景。在另一方面,在训练机器学习的过程中需要大量的数据,而这些数据也不可能将其放入研究文章中,公之于众。这就会导致实验数据可能丢失的风险增大,与此同时,其他的同行研究者也无法理解通过机器学习后得到的算法。这就使机器学习得到的算法成为了黑箱。对于机器学习得到的算法,是需要经过大量公共数据去检验和改进的。麻省理工学院的Regina Barzilay 提到:“不幸的是,这种水平的测试仍然不是AI和化学领域的普遍做法。我希望它会改变。”在这方面的缺失,也促使了机器学习得到的算法无法重复使用。
04 没那么简单!
以机器学习为代表的计算机化学领域无法重复的问题,其解决方法不仅仅是在道德上将代码公开就能解决的。一个复杂算法的源代码通常包括内存管理,处理数据集和优化性能所需的计算,近似值和技术计算机制等等,这就导致了除了开发者以外无人能看懂代码。
同时开源代码同样面临着计算机化学科研工作者成果的保护问题。开源就以为着计算机化学科研工作者要将自己的工作成果无偿奉献,那怎么从法律层面去保护科研工作者的权益?同时代码的更新也是需要大量的人力物力去处理的,这些更新代码所需的资源从哪里来?这些争议性的问题还有待进一步的解决。要解决以机器学习为代表的计算机化学重复性问题还有很长的路要走。
文章来源: