Informed_machine_learning

knowledge_landmarks_toy

一个对应 Informed Machine Learning with Knowledge Landmarks 的最小可运行 toy reproduction。

这个项目抓住原论文的核心结构:

这个 toy 在做什么

任务是一维回归。

直观上:

当前支持的 landmark sets

这几组主要用来比较:

和原论文的对应关系

这个 toy 保留了原论文最关键的四件事:

  1. 本地数据 D* 只覆盖局部区域
  2. 知识 K = {(Ai, Bi)} 覆盖全域
  3. 损失由 lambda * L1 + (1 - lambda) * L2 构成
  4. L2 扮演 knowledge regularizer 的角色

简化的地方:

  1. 从真实物理问题简化为 1D toy regression
  2. 输入 granule 简化为区间
  3. 输出 granule 简化为区间
  4. regularizer 简化为“预测落在输出区间外的 hinge penalty”

目录结构

02_knowledge_landmarks_toy/
  README.md
  notes.md
  config.py
  data.py
  landmarks.py
  model.py
  trainer.py
  experiment.py
  run.py
  results/

单次实验

默认运行:

python run.py

指定 landmark set:

python run.py --landmark-set good --experiment-name good_demo
python run.py --landmark-set coarse_good --experiment-name coarse_demo
python run.py --landmark-set mixed --experiment-name mixed_demo
python run.py --landmark-set shifted_bad --experiment-name bad_demo

调节数据项权重:

python run.py --lambda-data 0.7

调节知识中心拉回强度:

python run.py --center-pull-weight 0.08

跳过绘图:

python run.py --skip-plots

运行后会生成什么

默认会在 results/<experiment_name>/ 下生成:

推荐先看的对照

  1. good vs baseline
    • 看知识 landmarks 是否帮助全局泛化
  2. good vs coarse_good
    • 看知识粒度与 regularization 强度如何交互
  3. good vs mixed
    • 看部分错误知识的影响
  4. good vs shifted_bad
    • 看系统性错误知识是否会误导模型