010

Deep Learning for Molecules and Materials:分子与材料深度学习路线

《Deep Learning for Molecules and Materials》是分子深度学习的系统教材。这篇讲清它的结构与学习重点。

《Deep Learning for Molecules and Materials》(Andrew White)是一本免费在线的交互式教材,把深度学习方法与分子/材料问题系统地对应起来。它填补了「通用深度学习课程」与「分子专属知识」之间的空白。

教材的结构

部分 内容 对药物发现的价值
机器学习基础 回归、分类、正则化 基础
分子表示 SMILES、指纹、图、三维 核心
图神经网络 消息传递、GCN、GNN 变体 核心
等变神经网络 对称性、群论基础、实现 最有特色的部分
生成模型 VAE、GAN、流模型、扩散
可解释性 归因方法
不确定性 贝叶斯方法、集成
深度学习在化学中的应用 各类任务案例

最有特色的部分:等变神经网络

# 【这是这本教材相对其它资源的最大优势】
#
# 多数深度学习教材不讲对称性,
# 而它对分子的三维建模是核心概念(见 160)
#
# 教材讲清了:
#   □ 群与群作用的基本概念
#   □ 不变性 vs 等变性的严格定义
#   □ 为什么架构保证优于数据增强
#   □ 【具体的实现方式】:
#     - 只用不变量(距离、角度)
#     - 沿相对位置向量更新坐标
#     - 球谐函数与张量积(更完整但复杂)
#   □ 各种等变架构的对比
#
# 【学习建议】:
#   不必深究群论的数学细节,
#   但必须理解:
#     1) 为什么需要等变性
#     2) 【怎么验证自己的实现是等变的】
#
# 验证代码(应该成为每次实现的单元测试):

import torch

def test_equivariance(model, h, x, edge_index, tol=1e-4):
    """随机旋转平移后检查输出"""
    torch.manual_seed(0)
    A = torch.randn(3, 3)
    Q, _ = torch.linalg.qr(A)
    if torch.det(Q) < 0:
        Q[:, 0] = -Q[:, 0]
    t = torch.randn(3)

    h1, x1 = model(h, x, edge_index)
    h2, x2 = model(h, x @ Q.T + t, edge_index)

    inv_err = (h1 - h2).abs().max().item()
    equi_err = (x1 @ Q.T + t - x2).abs().max().item()
    print(f"不变性误差 {inv_err:.2e}, 等变性误差 {equi_err:.2e}")
    assert inv_err < tol and equi_err < tol, "对称性被破坏"

# 【常见的实现错误】:
#   1) 用了绝对坐标 → 破坏平移不变性
#   2) 等变层后接普通 MLP 处理坐标 → 破坏等变性
#   3) 用了坐标的某个分量作特征 → 破坏旋转不变性
# → 这个测试能立刻发现

交互式的学习方式

  • 每章都有可运行的代码:基于 Jupyter,可以在浏览器中直接运行或下载;
  • 从零实现关键组件这是最有价值的部分——自己实现一遍消息传递或等变层,理解深度远超读论文;
  • 用真实的分子数据:而非玩具数据集;
  • 持续更新:作为在线教材,会跟进新方法;
  • 免费开放:无门槛。

建议的学习重点

# 【如果时间有限,按这个顺序】
#
# 优先级 1(必读):
#   □ 分子表示章节
#     → 理解各种表示的信息含量与适用场景
#   □ 图神经网络章节
#     → 消息传递的机制
#   □ 【等变神经网络章节】
#     → 这是最难在别处学到的
#
# 优先级 2(重要):
#   □ 不确定性章节
#     → 实际项目中必需(见 166)
#   □ 生成模型章节
#     → 如果做分子设计
#
# 优先级 3(选读):
#   □ 可解释性
#   □ 材料相关的内容
#   □ 强化学习
#
# 【配套练习建议】:
#   1) 跟着实现一个消息传递网络
#   2) 【实现一个等变层并通过对称性测试】
#   3) 用它做一个分子性质预测任务
#   4) 【与 ECFP + LightGBM 基线比较】
#      → 这一步教材不会强调,但实践中最重要(见 131)

# 【教材没有充分覆盖的内容】:
#   □ 【评测设计的陷阱】(见 051、167、169)
#     教材侧重方法本身,对数据划分、
#     基线公平性、泄漏问题的讨论不多
#   □ 药物发现的领域约束
#     成药性、可合成性、专利
#   □ 传统方法(对接、MD、FEP)
#   → 这些需要从别的资源补

与其它学习资源的分工

资源 侧重
本教材 分子深度学习的方法与实现
MIT 6.S191(见 007《MIT 6.S191 深度学习课程》 通用深度学习基础
CS224W(见 006《Stanford CS224W 图神经网络》 图学习的理论深度
DeepChem(见 004《DeepChem 教程体系入门》 快速上手与流程
TeachOpenCADD(见 012《TeachOpenCADD 教程》 完整的 CADD 流程
Practical Cheminformatics(见 011《Practical Cheminformatics 博客》 实践经验与批判视角
RDKit Cookbook(见 013《RDKit Cookbook》 化学信息学操作

一个建议的组合用本教材学方法与实现,用 Practical Cheminformatics 补批判性视角与实践陷阱——前者告诉你「怎么做」,后者告诉你「什么时候不该信」。

学习成果的检验

  • 能从零实现一个消息传递层,并解释每一步在做什么;
  • 能实现一个等变层并通过对称性测试
  • 能说出不同分子表示的信息含量差异,以及什么任务该用哪种;
  • 能给模型加上不确定性估计并检验其校准(见 166《不确定性估计》);
  • 最重要的能判断一个分子深度学习方法的宣称是否可信——这需要结合评测设计的知识(见 169《Benchmark 陷阱》170《AI 制药论文阅读框架》)。

关键要点

  • 等变神经网络章节是它最大的优势——这部分内容在别处很难系统学到;
  • 从零实现关键组件比读论文的理解深度高得多;
  • 教材对评测陷阱与领域约束覆盖不足,需要从别的资源补;
  • 建议组合:用它学方法与实现,用 Practical Cheminformatics 补批判视角。

延伸资源