SchNet
SchNet是一种用于分子和材料的量子化学计算的深度学习模型,最初由德国的研究人员在2017年开发。它是一种基于图的神经网络,专门设计来处理三维分子结构中的原子间相互作用。SchNet的独特之处在于它使用了连续卷积操作,可以捕捉到原子之间复杂的距离依赖关系,从而能够预测分子的能量、力以及其他重要的化学性质。这种模型通过学习原子环境的表示来实现高精度的预测,而不依赖于任何人工定义的特征或先验的物理知识。SchNet已经在多种化学和材料科学任务中展现出了卓越的性能,成为了分子模拟领域的一种重要工具。 1.1 SchNet模型结构 SchNet的架构如图1所示,这是一个针对分子和材料建模而设计的深度学习网络。图中分为三个主要部分:架构总览、交互模块和滤波器生成网络。 1.架构总览 如图1左图所示,输入表示为\((Z_1,\cdots,Z_n)\)和\((r_1,\cdots,r_n)\),其中\(\mathbf{z}_{i}\)是原子类型(例如氢、氧、碳等)被编码成的一个one-hot编码的向量。这是基本的化学信息,对于识别不同原子的性质非常重要。\(r_{i}\)是每个原子在分子中的三维坐标,这些位置信息对于模型来说至关重要,因为它们直接决定了原子之间的距离和相互作用,这些都是决定分子性质的关键因素。 输入数据首先经过嵌入层(embedding),这是一个常见的深度学习技术,一般使用神经网络层将每个原子的one-hot节点特征向量转换成一个固定大小的连续特征向量。在这个例子中,每个原子经过神经网络层映射成的新特征向量的维度是64,即每个原子被映射为一个包含64个元素的向量。这个向量编码了原子的某些属性,可以在网络训练过程中进行学习和优化。接下来是多个交互层,每个层都旨在捕捉和更新原子之间的相互作用信息,得到更有效的原子特征向量表示。之后,一个原子级别的操作(atom-wise)对每个原子的特征进行转换。原子级别操作将对每个原子的特征向量独立地进行学习变换。这意味着网络在进行这些操作时,不会考虑原子之间的相互作用或原子的邻居,而是将注意力集中在单个原子的特征向量上。在实践中,这通常通过应用一个全连接层来实现。 Shifted softplus是一种激活函数,用于引入非线性,该激活函数定义为:\(\text{Shifted softplus}(x)=\ln(0.5e^x+0.5)\) 其函数图像如图2所示。 它是一个平滑的非线性函数,可以将非线性引入神经网络。Shifted Softplus类似于激活函数ReLU,但对于负输入值具有非零梯度。即使输入具有负值,也可以帮助网络继续学习,且在x=0的位置过度的更加平滑。值得注意的是,Shifted Softplus 在处理几何数据时往往比ReLU更受欢迎,主要原因有下面几个: (1)平滑的梯度:Shifted Softplus 函数在整个定义域中都有一个平滑的导数。这意味着梯度不会突然变为零(如ReLU在负输入时的表现),从而避免了神经网络在训练过程中的梯度消失问题。在几何结构的数据中,原子或节点的特征可能涉及复杂的相互作用和细微的变化,平滑的梯度允许模型更细致地调整其参数以捕获这些特征。 (2)非饱和性:Shifted Softplus是一个非饱和激活函数,这意味着它的输出不会在较大的正输入值时饱和到一个固定值(与Sigmoid或Tanh不同)。非饱和性有助于减轻训练过程中的梯度饱和问题,提高网络在深层结构中的信息流动。 […]