神经网络在化学中的应用

来源:互联网 发布:freecodecamp python 编辑:程序博客网 时间:2024/05/11 15:03

Deeplearning for computational chemistry

本文主要介绍机器学习(主要指深度学习神经网络)在当前计算化学中的应用。目前机器学习领域正逐渐从传统学习方法(浅层学习方法)向深度学习方法过渡,这主要得益于GPU等硬件的发展。在计算机视觉及语音识别等领域,机器学习被人们广泛应用。考虑到在CCS(chemicalcompound space)空间仅1060,而alphago的搜索空间为10170,这使得将机器学习方法应用到化学领域成为可能。

神经网络简介

神经网络模型由输入层,隐藏层,输出层组成,数据集及权重偏置均以张量的形式存在,前一层的输出在加入非线性函数作用后作为后一层的输入,非线性函数的作用是用来增强神经网络模型的非线性表达能力,否则这个神经网络仅仅是输入的基组的线性转换,往往难以表达复杂的函数关系。根据相关数学论文证明,在引入非线性函数后,神经网络网络可以拟合任意非连续性的函数,其精度理想上可达到1/n(n为非线性函数项数)。神经网络模型在处理回归问题时,输出层不需要加入非线性变换,误差函数采用范数形式,而对于分类问题,误差函数采用信息熵形式。这主要神经网络的隐藏层可看做对输入层基函数做非线性仿射变换,从而提取了输入的特征,使得隐藏层的最后一层与输出之间的函数关系相对简单,甚至仅仅是线性关系,而对于分类问题输入输出之间存在的是一个概率输出的关系,因而采用最大似然近似的方法将逼近实际分布与优化参数联系起来,衡量参数优化的好坏便可以采用最大似然近似值或者信息熵来衡量,而对回归问题,可将其看做为希尔伯格空间上的泛函问题,是基函数对目标函数的逼近问题,这在数学上采用LP范数来衡量基函数的逼近误差。传统的全连接神经网络在处理图像等数据量极大的问题时,往往存在训练量过大的问题,因而通常引入卷积与池化,在化学领域目前主要还是使用全连接的神经网络,但已经开始出现由于输入维度过大采用卷积神经网络处理的探索。

神经网络目前采用反向传播算法来优化参数,Hinton在06年曾提出用逐层贪婪算法加bp微调来解决梯度弥散的问题,在11年Bengio等提出了ReLu等新的激活函数来解决梯度弥散的问题,因而Hinton的方法目前不再为主流。神经网络存在多种技巧如提前终止,引入正则项,指数衰减,滑动平均模型等,在权重矩阵初始化问题上对权重矩阵一般采用高斯分布,标准差论文上选取存在多种形式如sqrt(1/n_input),sqrt(2/(n_input+ n_output));偏置项在采用传统激活函数时设为0,在采用ReLu类时,设置为较小的常数以避免激活函数失活。输入输出必须归一化(输入未归一化时反映了一定信息特征除外),归一化范围与选取的激活函数的值域相关,一般归一化可直接线性归一,也存在其他的方法,但一般影响不大。

神经网络在化学中的应用

12年Hinton带来了神经网络的新突破(dp for com chem 18),提出新的trick使神经网络适应于大数据。随着化学领域研究问题的数据量及输入维度的增加,可能需要借鉴计算机领域相关技巧并作出相应的修改。

目前化学领域的应用主要包括计算机辅助药物设计(computer-aided drugdesign)、计算结构生物学(computational structural biology)、量子化学(quantum chemistry)、材料设计(computationalmaterial design)。在计算机辅助药物设计领域,Merck首先取得了突破,Dagl等在此后作出了跟进,在此领域Hochreiter在14年在(NIPS)上做了review,输入特征使用了fingerprint。Pande group做了multitask(多个输出特征)的相关研究。,Mold and PaDEL提出了新的特征表示法URGNN,Hochreiter提出了观察隐藏层特征的方法。在计算结构生物学方面,Baldi首次将DNCON与深度学习方法相结合并提出了该问题的输入特征表示方法。

在量子化学及材料设计领域,目前同样有采用多任务输出的方法。材料与量子化学领域息息相关,存在QSPR(quantitative structure property relationship)[结构决定性质赶脚],Aspuru-Gizik采用了指纹表示而非库伦矩阵表示法进行了研究。其输入特征往往为量化领域神经网络的输出,因而两者在一定程度上可以有机结合,而量化上的从头算方法对大体系往往难度较大,上升到材料领域则几乎不可能,因而可考虑机器学习的方法。材料领域如果仅仅是筛选问题,鲁棒性较大因而可以考虑。目前量化领域Hansen总结了此前的工作,在基于baseline的基础上,对比了不同的机器学习方法在预测原子能方面的优劣。该论文详细的介绍了输入特征采取库伦矩阵的表示方法,提出了特征值法,定序库伦矩阵法,以及随机库伦矩阵法。特征值法将元素按大小排序,定序库伦矩阵则按行或列的范数排序,而随机库伦矩阵法则较为复杂:对任意一未排序矩阵按行求范数引入正态分布微扰,然后排序,再按列求范数,引入正态分布微扰排序,按此法取多个,对每个矩阵做二值化,按照[…,tanh((c-p)/p),tanh(c/p),tanh((c+p)/p),…],目测输入先归一化到(-1,1),在p取1时,由于tanh二值性,(-2,0),(-1,1),(0,2)范围能各输出均不同,此外的均与(-2,0),(0,2)相同故而展开后特征项为原先3倍左右。

0 0