# Ch2 練習題：從 DFT 到 MLIP

> 概念 2 題＋實作 2 題。詳解在最後。

## 題目

**Q1（標籤計數）** 訓練集：120 個構型，每個 96 原子。
(a) 能量標籤幾個？力標籤幾個「分量」？
(b) 若 loss 不加權（w_E = w_F = 1，逐項求和），哪一項天生主導？這合理嗎？

**Q2（抽樣策略）** 一條 2000 幀的 AIMD 軌跡（NVT, 800 K），要抽 200 幀當訓練集。比較三種策略對「高能構型的力誤差」的影響，並排序：
A：取前 200 幀　B：等間隔每 10 幀取 1　C：按能量分 10 層、每層抽 20

**Q3（分割設計）** 你的 HEA 資料涵蓋 5 種組成。設計兩種 train/test 分割，分別回答「模型能不能內插」與「模型能不能外推到新組成」。哪種分割的 test 誤差會比較高？為什麼這不是壞事？

**Q4（動手）** 打開 `notebooks/mace-minimal-demo.ipynb`：
(a) 跑第 5 節，從學習曲線讀出「force/energy RMSE 減半需要幾倍資料」（讀 log-log 斜率）。
(b) 把第 6 節分布外測試的 scale 範圍從 (1.2, 1.4) 改成 (1.05, 1.15)（離訓練窗較近），誤差放大倍數變多少？寫一句話解釋。

---

## 詳解

**A1**
(a) 能量 120 個；力 120 × 96 × 3 = **34,560 個分量**。
(b) 力項天生主導（項數差 288 倍）。**部分合理**——力的訊號密度本來就高、且直接決定 MD 品質；但完全不管能量會讓絕對能標漂移，所以實務上用 w_E、w_F 平衡（也順便處理單位：eV² vs (eV/Å)²）。

**A2** 排序（對高能構型的力誤差，由差到好）：**A < B < C**。
A：前 200 幀只覆蓋平衡化前的窄區域，且高度相關；B：去相關、覆蓋整條軌跡，但能量分布天生集中在常出現的構型，高能尾巴樣本少；C：分層保證尾巴有配額——高能構型「被看過」，誤差才壓得下去。這正是「多樣性 > 數量」的操作化。

**A3**
- 內插測試：5 種組成都出現在 train 與 test（隨機分割）。
- 外推測試：留一種組成完全不進 train（leave-one-composition-out）。
後者 test 誤差幾乎必然較高——**這不是壞事，是誠實**：它量出的正是你研究裡會遇到的真實風險（掃到沒算過的組成）。你想宣稱什麼能力，就設計什麼分割。

**A4**
(a) 玩具體系的典型結果：誤差 ∝ N^(−k)，k ≈ 0.5–1；以 notebook 預設種子，N 從 20→240 RMSE 約 0.043→0.024，粗估**資料 ~4 倍換誤差減半**（讀自己的曲線為準）。
(b) 誤差放大倍數從 ~150× 掉到個位數倍——**外推誤差隨「離訓練分布的距離」增長**，不是有/無的開關。這就是為什麼「離 bulk 平衡態越遠越危險」是漸進的警語。
