人工智能助力应用化学基础研究
时间:2023-04-29 18:51:02 | 来源:网站运营
时间:2023-04-29 18:51:02 来源:网站运营
人工智能助力应用化学基础研究:(2021.5.10更新版本,改善了叙述的完整性)
(强烈推荐打开本站APP并使用语音朗读功能,因为内容确实比较多)
这是继上次中科院特有考核科目“Seminar”被挂科后,第二次考核的展示内容。
上一次的主题是《Buckingham展开计算分子多极矩和(超)极化率》,这种展开方法因为只需要分子在有限电场下的能量,而不需要其他的物理量所以会算起来快一些(尤其是不需要高阶的perturbation)。严格来说是使用了连续泰勒展开,然后截断到有限项之后积分回去。这部分内容我也会找时间写一写,毕竟是我大一时候时常捣鼓的那堆东西。按照Seminar要求,要对领域的前沿和历史有把握,所以考虑到这种非常ready-to-use的东西,大家常见的工作模式就是建模型、推公式、写程序、寻找体系做测试、发布程序。考虑到本身多极矩和极化率不是什么很新奇的东西,各种软件包里面肯定不管用什么理论和方法实现,都会有计算这些量的功能。所以我自然是先调研常见的软件包,比如multiwfn,QuantumEspresso等等。请教了一下卢天在multiwfn里怎么计算这些量,抠了抠QuantumEspresso里DFPT,带着source code review在了一开始。
但总之当时的情况是几乎没有人喜欢听这些,不管是原理还是程序的时间复杂度考虑trade-off。
调研当前这个《人工智能助力应用化学基础研究》花了大概一个月时间,但是仍然时间有限,如果大家还有知道什么亮眼的代表性工作,可以留言在评论区(不过我写的东西一般都没什么人看),我会增加在PPT里并且附上致谢。我尽量只放原创程度高的工作,而不是仅仅拿某一种神经网络来用的工作(除了为了领域的举例对称添加的例子外)。每当有一个新的方向出现,我们都要警惕其变成某种水坑,水坑中过度挣扎会让人迷失在自己的信息茧房,然后片面地对方向下消极结论。又因为这个的受众群体是学化学/材料专业的大部分学生和老师,所以并没有放什么数学。但是我同样也担心这么讲会不会让一些人对深度学习丢弃敬畏之心,这样就不是什么好的效果,但很遗憾这样想的人还不少。
Balance:既不能让听众觉得很难听不进去,又不能让他们觉得实在trivial所以也什么都不爱多听。我应该提醒甚至是警告诸位的是,人工智能领域的数学可能是很难的,在基础知识储备要求上甚至远高于普通的量子化学。
《你我皆日渐厌倦的生活》人工智能这个话题在我最开始考虑的来由是multidimensional array-like的实验和模拟的必要性论证(这就要涉及到Bayesian optimization),以及顺带评估高通量实验本身的数据利用程度高低。又考虑到经常在我脑海里有这么一段话:“做实验,每次做的结果都不一样,今天这个结果,明天那个结果。如果说每天都浪费很多时间在这种充满和当前需要研究的问题没有直接关联的事情上,那我做的还是科学吗?”除此之外还有故意或者非故意的学术造假。
因此我期望人工智能能够改变这些非常浪费时间的获得新知路上的“坑坑洼洼”,所以接下来的介绍思路自然是要审视科学研究的每个阶段,其利用人工智能改善的既有工作和未来可能性。
就常规基础研究工作来说,考虑工作流程,研究的起点可能是某些现象的发现,也有可能对于研究生来说是导师一开始给定的课题。为了真正着手去做,发现或者正确定义需要研究的问题很重要,既要specific,又要well-defined。并且正确提出的问题会比较容易开展接下来的对问题解决的方法的寻找。要么根据以往经验直接进行逆合成分析,要么寻找构效关系,或者首先查阅文献,如果对问题所属领域并不是很熟悉的话。接下来就是设计和开展实验工作,然后是分析结果。
不过从发现或者正确良好且合理定义研究的问题开始,或者可能从观察到现象开始——具有什么样的知识储备将决定在观察到的现象中更注意哪部分,或者说只有具有一定的知识储备,才有可能发现看起来trivial的现象中存在的某些可能有science的线索。
但是到目前为止,从知识的储备,到查阅文献、寻找方法、逆合成分析或者构效关系为指导设计功能材料、设计和开展实验、甚至简单地分析现有结果,都已经可以由人工智能自动完成,虽然整体这几个部分都可以有人工智能参与的工作阶段之间目前还没有做到完全的集成。(虚线箭头)
每个做科学研究的人都有一个可以当个古代哲学家,不用动手操作浪费时间的梦想:philo_chemist所以从这些方面讲一讲人工智能现在能在化学研究上做到什么程度,大家也不用怀疑我放错了图片顺序,毕竟刚刚都算是introdunction。最简单或者最经典、古典的神经网络如下图左侧所示。神经网络只能说是在一定程度上进行的仿生学设计,但到底有没有直接的生物学基础,现在仍然是脑科学和人工智能交叉领域的热门话题,有的研究说“人工智能有助于探索大脑结构”,也有研究说“人工智能不一定需要落实到神经基础”。
对于左下角中每一个表示为圆形的细胞,其输入、处理和输出可以看左上图。对于每一个输入x,首先处理为wx+b,接下来被激励函数(activation function)处理,得到输出。注意到左下的神经网络里,每一个细胞接受上一层多个细胞的输入,输出给下一层多个细胞,因此相当于x和激励函数的输入wx+b构成线性变换,比如x按照细胞的顺序构成矢量,x1 x2 x3, …,那么对于图中三维转四维的矢量的线性变换,如果是矩阵右乘列矢量,就是4x3矩阵。
值得注意的是,如果没有非线性的激励函数的存在,临近两层之间的矩阵直接可以写成一次线性变换,即把第一层第二层之间的矩阵和第二第三层之间的矩阵可以直接相乘。因此非线性的激励函数带来了神经网络强大的数据拟合能力。
但说到拟合这个词,的确如此,因为神经网络,或者更大的概念比如机器学习,处理任务主要只有两方面:拟合与分类,实际上对于非理想二项分布的输出,分类是更粗糙的拟合,即从白到黑变成非黑即白。
右上角是一个玩具,tensorflow在AI的API几乎占了三成左右的份额,这个网站大家可以随后自己玩玩看,图中是一个二分类的神经网络训练工作。(Tensorflow — Neural Network Playground)
详细关于神经网络可以拟合任何函数的数学证明超出这里的讨论范围,但是推荐本站上的诸位阅读:
talk is cheap, show me the code
接下来从发现/定义问题步骤开始介绍。
就应用领域的化学研究来说,举例常见问题之一是设计药物分子。这里我展示了一个用递归神经网络根据一定规则设计药物分子的例子。不过论文中的举例更加简单,上面一行把机器生成分子含有更多的小官能团评为高分的设计(high score),下面一行则加分项是苯环数量。可以看到从左到右依次各是数量增加。值得注意的是我画出的reward。具体reward函数,即机器输出一个分子之后如何判定他有用还是没用,效果好还是差,这个函数的建立其实并不是简单的事情,但也已经有很多工作去尝试这件事情,比如这位经常推送一些AI辅助药物设计的论文( @Aspirin )。
下二图分别给出的是这种可以用来生成分子的RNN的训练和生成分子过程借着右上角的图我们先把上一张关于reward的事情说完。这篇文章里给的方法是使用另一个经典的神经网络作为predictive model来学习reward函数,比如刚刚的,原则,如果机器产出一个苯环比较多的分子,我们就给高分,把这个事件或者说判断方式让经典的神经网络学会,然后它用来训练RNN,也就是生成药物分子的神经网络。这种联合的机制称为强化学习,reinforcement learning。
一个可以预想到的reward的训练数据是做计算机模拟的受体蛋白-药物分子的高通量分子对接,首先也需要在分子中寻找一定的药效团,这种药效团也属于一种分子的定量构效关系的描述,这种分子对接技术非常成熟,商业软件也有很多,但是这并不是重点,甚至最近我的老黄历才知道有这么个东西(大人,时代变了):
接下来稍微看一下循环神经网络的结构。
循环神经网络和经典的神经网络不一样的地方在于RNN经常用来处理具有特定顺序的数据,比如自然语言,因为某些语意信息和顺序密切相关。对于分子来说,找到一个拼接或者组装分子的起点,即首先给出一个原子作为起点,然后按照学习到的规则来从起点一个原子一个原子拼接成一个分子。值得注意的是,分子并非简单的顺序序列,所以还需要另外学习整个分子的成键合理性,比如化学键如何饱和,碳原子四根键等等。
详细说明分子拼接和自然语言学习过程的共同特点详细说明分子拼接和自然语言学习过程的共同特点然后是材料领域,或者说分子里原子很多的情况,这里我举例MOF材料的设计。对于把MOF真的编码成机器能够读懂和处理的方式的工作,是发在PRL上的,也就是我圈出来的那部分。所以针对这篇举例的工作,他们用了一种多层次的材料筛选模式,然后把吸附量作为神经网络的训练和输出性质。
可以看到原先的纯设计并非实验合成的三十二万个MOF材料,经过神经网络筛选,就剩下两万个,接下来用巨正则系综蒙特卡洛来进一步筛选甲烷的吸附量。蒙特卡洛也是一种能够实现比较复杂体系的模拟算法,但是它很古典而且并不是智能算法,关于这种模拟的scheme是什么,看左下角,以及大概这种模拟里有什么可执行动作,建议阅读cp2k的这部分(CP2K_INPUT / MOTION / MC)。
这篇工作的第二个highlight是针对三维MOF材料训练的神经网络,不改变任何参数然后直接用于COF,ZIF和2D-COF筛选时,除了最后一个,都表现不错。
论及刚刚说的CGCNN,其中CNN就代表了最后一种比较经典的也是非常重要的神经网络形式,卷积神经网络。
先从什么是卷积说起。
卷积straightforward,反卷积可以直接解O(N**2),也可以用神经网络学习——又是一个小的研究方向左上角,对于反应管里定常系统,或者简单说平稳运行的系统,假设浓度分布是蓝色线。但是当考虑到扩散影响时,其实可以对管子里每一点考虑其前后两侧扩散,也就是说框出来的两点分别考虑绿色表示的扩散特性,然后考虑到蓝色线连续,把上面每一个点的扩散做叠合,就可以得到最上面橙色虚线。
按照数学的说法就是,卷积了扩散函数。按照直观解释就是,包含了那种扩散函数的影响。
所以对于数值计算来说,动手算算,比如图1,这种规律发现得会很快。
图3是说CNN里面除了卷积之外的另一个事情,最大池化,maxpooling。稍微观察一下就会发现,对每个四方格只取最大值。
这种方法其实也非常具有现实意义——想想这是不是很像马赛克?
最后一张图就是整体最常规最常规的CNN结构,一维和二维没有什么区别,其实到三维甚至更高维度都可以。
对于计算机视觉领域来说,CNN一个非常有意思,也是那个领域或者CNN技术迁移到化学研究里的一个重要原因就是,CNN具有很好的解释性。
可以看到上面这个图里,对狗的照片进行不同的卷积处理,就可以提取出牙齿,白色毛,身体轮廓等等要素,然后再用要素来预测各种性质。
所以这种理解方式也被用在了化学领域,从几年前到现在。
有的人用CNN让AI来“看”,一块周期性材料上各种位点的某种分子吸附能是多少,有的人用CNN来预测一个动力学系统前后几步有什么样的规律,提取出来,这也就是三维的CNN。左下角的工作就是CGCNN,也就是从晶体里面提取出输入给CNN的数据的那篇原创性工作。
之后在材料表征部分,我还会讲更多和更具有解释性和启发意义的例子。
设计完了分子,接下来考虑分子怎么合成。
逆合成分析贯穿有机甚至其他化学的合成始终,虽然逆合成分析甚至是作为一个发明或者重要概念被提出来的,但是一个化学反应能从反应物侧到产物侧,开到产物侧去考虑反应物侧也是自然的。
所以逆合成分析也可以很自然表示成树的形式,不同的合成路线,分支到最后成为基本原料,比如上面一行的左图和简化版右图。
这篇文章其实主要是采用这种决策树模式来做逆合成分析,但是他们并不是从根节点出发,然后并行着去找所有的分支,而是每次只走一条分支,每次走的分支要么完全随机,要么根据上一次访问到的节点进行的打分,和探索新的分支进行比较然后决策。
这个工作后面进行了双盲实验,找了真正的人类化学工作者,用这个算法做逆合成分析给出来的路线和已经发表的工作合成同一分子的路线二选一,结果发现大部分对这种机器学习方法生成的路线具有偏好,对于少部分情况,比如我红圈标出来的情况,作者也分析,说是因为这个合成路线在一开始用了一个虽然报道过的,但是大家一般不怎么用的路线,大家选择了格氏试剂那条,就是说人每次的选择未必是真正正确的,反而更可能是他们自己更熟悉的。下面一行中间和其他算法的比较就基本是碾压态势,包括右下角给出来的工作效率比较。
这个paper的作者甚至做了一件更有意思的事情,找了一个已发表的分子,做了一个benchmark,说这个分子,算法用5.4秒就设计出了和一篇paper一样的路线。
但是这篇工作是不是毫无缺点?其实并不。这是18年的工作,我读的这本RSC 2020年出的《化学中的机器学习:人工智能带来的改变》里,正好提到的一篇review里comment了这篇paper。按照这篇review的说法,自动化的逆合成分析其实分成三大类,这篇nature只是其中之一,而且问题有两个,一是其单纯的每一步逆合成分析精确度说不过去,后来我才发现其实那篇nature里确实承认了这一点,但是他们还是用了另外一个神经网络用来筛掉不合理的部分。但无论如何,被称为expansion policy的单步逆合成分析,精度并不是最高的,精度高的还有seq2seq方法,但是其实在另一类逆合成分析方法分类里面。
对于精度为什么低,右下角我画了个图解释了一下。
比如三硝基苯,发生付克烷基化基本不可能,因为付克烷基化是亲电取代,硝基是间位致钝定位基,这个反应基本不可能发生。但是对于expansion policy学习的反应提取策略,是保留反应中心,但是对于反应中心周边的原子到底保留多少,既可以说是trade off,又是,某种不可描述的艺术。但是可以预见,周边原子取的越多,符合这个特征的反应就会越少,但是预测反应能不能发生,也就是反应预测的正确性就会提高,反之亦然,所以其实逆合成分析(尤其是single expansion policy step)这个task单独看还存在着稍微有些硬伤的地方。
对标逆合成分析的是构效关系指导设计功能材料。尽管我展示的还是一个比较有机的例子,但是其他的结构也有,但是为什么我没有直接选择材料,或者按照经常做模拟的说法,选周期性体系,我之后会说。
这篇工作用了一种改进过的RNN神经元,也采用了一正一反顺序组合的RNN神经元串联,就是bi-directional。选择正序和倒序结合也是可以理解的,毕竟对于组装或者解析分子结构来说,从一个原子出发,向左还是向右作为拼接或者解析分析的第一步是无所谓的,但是一旦开始,就不能回头。
最右边可以看到这种结构组装的神经网络对于预测能量转化效率和实验测定结果出入并不大。
另外,这种bi-directional综合了两个遍历分子中片段的顺序之后外接了一个attention层,这个层提取出来的信息是构效关系发现的关键。
可以发现,在左下角这个hotmap里面,数值比较大的像素对应于这些结构其实在能量转化效率高的分子里面出现的频率很高,而回忆学过的紫外可见光谱知识里,也可以想起来这些共轭结构可能具有比较广谱的光波长吸收范围,和生色团有一定相似。
借着这篇工作,我们可以稍微多看一眼attention机制,这种机制具有非常好的可解释性,比如右边的图,可以看到对于“我爱中国”,神经网络学习后的结果,“我”对“I”的注意力很高,“爱”对“love”的注意力很高,“中国”和“China”也是一样。值得注意的是,机器自己并不知道这些东西的具体意思,但是当经过很多的文本训练之后,就可以猜出来大概这种“翻译”工作,或者更加广义的“翻译”,比如从结构到性质的“翻译”工作,其中的规律。
这也就是说揭示表象之间的关系的问题:虽然结构决定性质,但是性质可以体现结构,这两个互为表象。或者其实,对于结构的解释很微观的时候,没办法区分“单原子对碳碳双键的ita-2吸附”,到底是因为“为了获得更大的电子云重叠”,还是说因为单原子本身,电子云得以按照ita-2吸附方式重叠了电子云。
Attention是一种非常有用和可解释性强的工具,讲到这里希望大家能回忆起刚刚我讲的另一种神经网络里的特征提取方式。
实际上,不管是刚刚举例发在Nature上那篇逆合成分析,还是我一开始提到的所谓某些热点领域的工作发表速度太快,以至于很难实时follow并且在某一个方向上做得更深。所以这页PPT做了某种类似的工作,把所有已经发表的有机反应都做了多级分类。点击下载Supplementary information,电脑端解压后使用浏览器打开文件有惊喜:
https://static-content.springer.com/esm/art%3A10.1038%2Fs42256-020-00284-w/MediaObjects/42256_2020_284_MOESM2_ESM.zip通过多级分类,还可以在刚刚看到的树上搜索出和自己描述的反应最接近的反应。
虽然其实局限在工作本身来看,做的事情并不是多么non-trivial,但是其实为了应对越来越多的发表工作,能够在人注意力的上限以下尽可能follow新的成果,这项工作的意义看起来就会大一些。
这个工作使用的学习结构是Bidirectional encoder representations from transformers,RNN,seq2seq,transformer全都是BERT的前置知识,所以我稍微带一点:
经常有人会问到,Transformer里面Q,K和V分别是什么。字面来看Q = Query, K = Key, V = Value,具体如何得到这三个量,方法则是在神经网络中不能更常见的关于encoded矢量的旋转操作(W),然后在Q和K之间使用correlation: 实际上对于熟悉相关性分析的人来说,correlation不能更熟悉,这里采用的是余弦相关函数(核),实际上还有其他的相关函数,比如各种距离函数,他们也都可以叫做某种范数。K聚类是欧几里得距离,R聚类是余弦距离。
准备这个PPT的时候正巧我一边在翻Coursera的网站,抬头发现正好有Query的例子,注意看截图里的网址。
(矩阵运算比较熟悉的人的思路是红色框那样)接下来这张是示意残差网络策略和多头注意力。
接下来稍微检查一下能否Transformer的输入和输出具有不同的自然语言字长,答案是可以:
在这里我们稍微examine了一下Attention机制里是否允许“翻译”任务的输入和输出具有不同长度运行上来说,Transformer比起传统RNN的优点之一是高度并行化,但高度并行化带来的负面影响是丧失了原本隐含的顺序信息,所以实际上Transformer对输入的自然语言进行编码的时候,还额外编码了位置信息。
但有了从头到尾的顺序可能还是不够的,还需要从尾到头,或者其他的顺序组织,所以又有了如下所示的三种复杂神经网络:
对于传统的Transformer,具有各六个Encoder和Decoder层(即Attention is all you need这篇paper里的结构),但是好奇的人可以去搜搜看GPT-3的待拟合参数数量是多少个。
接下来回到我们将BERT的原因,即这篇分类有机反应的工作。对于右边的hotmap,熟悉的人都知道这是Attention layer,其中每一个像素都对应于一个注意力的分配对(pair),放大Attention hotmap就得到右上角,看到横轴实际上就是当前反应的SMILES representation,纵轴则是不同的Attention layer。也就是说,这整个hotmap展示了一个 [CLS] token对整个SMILES的注意力分配。
所以接下来的问题是,[CLS]是什么?token又是什么?
为了回答这个问题,我们有必要用几种不同的自然语言来描述一个编程时候的常见场景:
fileTag = open(file = 'thisPPT.pptx', mode = 'a+', encoding = 'utf-8')line = fileTag.readline()
我们使用open,打开了名为thisPPT.pptx的文件,并且把open这个函数的返回值赋给了fileTag这个变量。
按照MATLAB的描述方式,fileTag被称为handle,在专门的MATLAB中文参考书里叫做句柄,handle的意思是把柄、把手,即每次对fileTag这个变量操作,就相当于抓住了fileTag指向的那个文件。
按照C++的描述方式,fileTag被称为使用open函数创建的一个类的对象,这个对象中一定包含一个非常重要的数据成员是open中指定的文件,其中的函数成员则包括readline()。因此对这个类对象操作,就相当于对文件进行操作。
在这个BERT的输入中,[CLS]被缀在SMILES representation的一开头,因此正如我红色箭头强调的地方,当attention layer中数据进行传播的时候,这种层间的连通方式会让所有的信息都流向[CLS]一部分,因此我们期望[CLS]包含了SMILES中足够多的信息,这足够多的信息当中,我们去examine了注意力。因此最终[CLS]对应位置的输出被当作了反应指纹(RXNFP, Reaction Fingerprint)。
上面这张图提到了“pretrained”,是因为BERT的训练分为两个阶段,第一个阶段为pre-train,训练BERT对general文本的理解能力,检验方式是让它做完型填空。第二个阶段是特化refinement,针对研究的具体问题构造训练集进行训练,这些事情在所有介绍BERT的文章里都会有提及。
提出问题,设计好材料,或者规划好基本的反应路线之后,就可以开始做实验了。
首先是设计实验。
在2020年这篇science上,结合自然语言处理,就可以直接让机器读懂反应的描述,或者他还可以自己去网上下载文献阅读,然后根据自己实验室的具体情况去设计实验,用到什么仪器,如何操作等等。这篇文章说自己也发布了软件用来做他们描述这个事情,仍然,talk is cheap, show me the code。
也有工作去操心开展实验的成本问题,他们直接爬取阿拉丁网站上各种药品的售价,然后在反应网络里去搜索反应路径,并且保证不仅能搜索到反应路径,还要保证实验室开展这项实验的成本降到最低。缺点就是这篇文章用了一个不是很聪明的算法(我的House老师发言:I dislike BFS/DFS or traditional decision tree-like algorithms, they are stupid. 她MS做机器学习)。
前几年最出名的一篇关于AI应用于实验的工作当属下面这页的Science。这篇paper也同样收录在了RSC 去年出版的《化学中的机器学习:人工智能的影响》书中。在这篇工作里,借AI设计反应路线,机械自动化开展实验,串联了除“实验参数设置”外从给出目标产物到得到产物的所有环节。在“实验参数设置”中,需要人来手动完成的工作也相当稀少——只需要在excel文件里输入原料用量、等摩尔比、反应管停留时间和温度,即可在以后的实验中再次使用(比较类似于在色谱中建立分析方法,但操作复杂度远低于色谱)。
区别于之前这篇工作提到的自动化实验,这个工作平台将反应仪器模块化,丰富实验设备接口,保留反应模块的可开发性。左下为一个反应模块的外部结构。每个反应模块可以做到单独控制温度。
右上角为SI提供的视频,可以看到机械臂自动从反应模块存储区取用反应模块组装在支架上,然后连接管路,使用气动装置锁定管路,检查密封性后开始实验,在得到产物后停止实验,清洗所有反应模块后将模块归位。
打开电脑,点击链接,通过下饭视频感受第四次工业革命:
所以其实到这里,已经发现其实实验本身并不是非常需要人工智能,或者人类实验者依靠大脑来处理什么事情,但也有例外。在考虑例外情况之前,所有这篇工作的细节都在这里给出。
中下图是流程中唯一需要人类实验员手动配置的部分,在下一个介绍的工作中我们将看到这部分也将被智能化。
最下面展示了具体需要填写并提交给计算机的参数,可以发现界面非常用户友好。
这里还是需要再强调一遍在人工智能或者传统计算机科学与技术领域的名言:talk is cheap, show me the code,这个工作的软件搭建平台、逆合成以及实验参数设置的文档解析脚本全部都放在文章的SI部分。
其实每个步骤的自动化不是问题(或者说可能在自动化上是non-trivial问题,但是对于科学研究的应用层面和用户期望需求来说是trivial),有移动能力的机械臂处理多个步骤也不是问题,集成各实验步骤在粗略思考的时候也并不困难,但是对于做实验来说,最难的还是如何在发现一个反应之后尽可能快地得到最优条件。
不管是左边展示的动图里面自动化做实验优化光催化剂,自己探索最优反应条件,还是右边这个工作直接把机器做实验和人做实验优化反应条件相比,机器都比人快太多太多。
左边这个工作的作者说,尽管这个机器人,前前后后从设计到组装花了两年,但是因为具有良好的迁移接口,所以把它再应用到其他的研究,就不会消耗很多时间。
这两个工作里都用到了贝叶斯优化算法。
为了让图动起来:https://distill.pub/2020/bayesian-optimization/牛爷爷问为什么图图不动:https://www.jgoertler.com/visual-exploration-gaussian-processes/推荐阅读:
(致数学不好的化学/材料学生:在你仍然充实的生活中自我陶醉的时候,你看不到自己已经比别人落后了多少,而你又觉得这些东西你没必要学,那你说没必要,那就没必要。)
但是到这里我想很多人都已经明白了某些事情,处理实验时候的大脑用量远小于设计实验或者更前面的,实验思路设计环节。AI或者自动化在当前并不取代人,而是让人更多地去做更应该做的事情。确实在调研这个话题的一开始,发现大部分工作都是在进行计算机模拟,少部分在研究如何在实验中应用,现在发现似乎对于实验,的确没有很多智能化的空间。
做完实验,对于做材料的来说就需要很多大型仪器的表征,比如电镜。这三个工作全都是用CNN做的,也就是说他们都用CNN在一定程度上提高了电镜识别,或者说帮助人识别材料的某些能力,比如判断纳米粒子颗粒的朝向,或者二氧化硅纳米阵列倒伏的扫描,或者最右边这个CNN在具体应用领域的模范工作,从电子背散射直接做出来空间分辨的晶相鉴别,相当于是晶相的mapping,而且最大的优点是速度快。
说到这里,其实不管是神经网络还是别的人工智能算法,或者哪怕不是人工智能,是另一种传统学科看起来天外来客,被某些人排斥的东西,如果不能尽可能明白原理,或者可解释性很差、难以得到更多的insight,其实新的技术基本只会是一时的热点。
之所以说右边的工作模范,或者典范,是因为展示了CNN良好的可解释性,对于学习得到的卷积核,作用于电子背散射图像的时候,就可以看到卷积核把图像变换成了什么样子,或者说神经网络更加注意整张图片的哪个部分,结果发现对于Ni和Al来说,CNN更注意的部分是(1-12)晶面,其次是(112)晶面。
最后在更小和更大的研究尺度:
溶剂化电子不仅在实验上难以观察到,在模拟中也很难捕捉。考虑到DFT的纯泛函通常过度离域化电子,带来能带消失、极化子(polaron)难以模拟等众多和实际实验或事实偏离的情况,即使使用常见的Hubbard model(DFT+U),也只是非常粗糙的权宜之计,至今也已经有大量的工作指出单纯的Hubbard model不合理,使得原子反而束缚在高能态,同样大量的工作给出了解决方案,最简单的从U ramping method(CP2K_INPUT / FORCE_EVAL / SUBSYS / KIND / DFT_PLUS_U)到复杂的occupation matrix mixing,但缺乏普适性和适用性。比DFT+U更好一点的解决方案是Hybrid functional,然而,即使使用杂化泛函,即在泛函中考虑Hartree-Fock exchange或双杂化(考虑exchange-correlation),也并没有用(关于这部分说法的参考文献大多在讨论UO2,所以大家可以自行搜索)。
因此后HF方法诸如MP2、CI、CC等,成为了高精度计算的常用方法。然而高精度的代价就是高计算成本。就CI来说,考虑为各假想“激发态”的线性组合,但由于激发态花样众多,体现在能量上时,随着CI考虑的激发态从单激发到双重激发到三激发等等,能量的收敛呈现长拖尾、难收敛的情况,因此后HF方法的计算往往只适用于原子较少的系统。
但是使用MP2的零散数据点,通过采样构型计算能量与能量一阶导数——力,使用机器学习方法,就可以生成一套MP2精度的力场参数,使用这种力场,结合路径积分技术考虑核量子效应,就可以实现较长时间尺度的高精度动力学模拟,在高精度考察电子性质。
同样,在研究反应的工作中,最理想的方式是在系统所在空间周边尽可能多地采样。燃烧反应因为具体设计基元反应数量巨大,难以被充分和合理在高精度研究。虽然反应力场ReaxFF提供了一种处理含有反应的体系的解决方案,但是对于精度需求较高的系统仍然难以胜任。使用MN15计算能量和能量的一阶导数,在使用ReaxFF进行构型预采样之后将所有的结构对应力与能量作为训练集,训练出经验力场,之后在经验力场中寻找仍然未高精度计算过且出现频率较高的构型,之后再次高精度计算,最后进行长时间的动力学采样,穷尽大部分的基元反应。
(这里要感谢二位在本站对自己工作的介绍 @蘭一 @曾晋哲 ,出彩且有趣的工作)
这张其实我还没想好说点啥...《粉碎AI统治》虽然已经到了Summary,但是其实还有一个点我放在这里要说。对于isolated molecule,SMILES的分子表示方法已经用得很广泛,跟做有机方向的同学一说SMILES也都会知道是什么,但是对于材料来说,尤其要考虑表面的时候,如何将表面的结构进行编码,或者说representation/descriptor,其实困难得多。纵然我们可以尝试使用前面PRL的晶体图卷积网络编码,但是因为表面重构等等这些影响,周期性、连接关系都会带来相当繁琐的描述语句。另一个思路是在头一次提到CNN时候更多的例子里头一个,他们直接用unrelaxed cell来处理,但是对于负载型催化剂,这种方法的普适性还是要仔细考虑考虑。
就我日常想起来了会做的模拟来说,先有的报道方案可能最适合我的还是Neural network potential。
任何人最不想看到的事情,是AI被举着科研行业革新大旗的人引入,被一部分人抵抗,被另一部分人用来灌水,因此被人说“不过是除了用来灌水之外毫无用处”。
先故意亵渎再批判,这不就是最常见的稻草人思维?