化学中的机器学习方法1

  • 来自我的个人网站: http://wangbch.com

化学中的机器学习方法

  • 化学中的ML主要是用在能量预测上,MoleculeNet或DeepChem实现了较多的方法。通常有用分子结构式或用分子坐标进行能量预测两种。下面主要讲从分子坐标到能量

从分子坐标到能量

  • 分子坐标作为一个Nx3(N为原子数目)的矩阵,可以直接用神经网络等ML方法映射到一个能量浮点数上,但是这样不具备平移和旋转对称性,即平移之后,矩阵变动很大,但是实际上分子的能量没有变,要实现这种对称性,要么就数据集扩增(强行平移坐标,能量不变)要么就编码(实现一种平移对称性编码)。
  • ANI-1方法实现的编码是,将每一个原子作为中心原子,对于每一种其他元素的所有原子,求距离得到一个距离向量(比如第1个C原子,对所有氧原子求距离得到距离向量),然后将距离向量作为x代入一个固定均值和方差的高斯函数中,将新得到的向量进行reduce降维求和(reduce_sum就是将向量各元素相加得到1个浮点数),高斯函数有多个,均值和方差都不同。
  • 这样的编码效果是将Nx3的矩阵变成NxMxL的矩阵,N是原子数目,M是元素数目,L是高斯函数的数目(也可能是NxM*L,后两维flatten成向量)。这样采用高斯函数编码,对于任意多的原子,编码过后向量长度都是L(而不是随着原子数目增加)
  • 此外,另一个拓展新还体现在,对于不同的中心原子种类,作为不同的DenseNN的输入,最后得到一个能量分量,最终用reduce sum求和作为能量。
  • 比如CHO原子的输入3x3,经过5个高斯函数转化为3x3x5或3x15,然后按照CHO分成三个1x3x5,放入三个DenseNN中,这个DenseNN输入为3x5或者15,输出为1长度。这样的操作使得对于原子种类有扩展性,并且更为精确。

你可能感兴趣的:(AI&化学)