G6.0 把整個分子轉過去,預測的力也該一起轉嗎?
本篇重用1 篇
同一個分子轉過去,哪一件事真的改了?
G5 的 graph 能表示原子之間的連線。但如果要預測原子的力,只有連線還不夠:原子距離不同,受力也會不同。
想像桌上的分子模型。把整個模型轉九十度,鍵長與內部形狀沒有變,總能量應該相同;每支力的箭頭卻要一起轉。再把它搬到桌子另一邊,原子位置變了,力的方向與大小不應只因整體搬動就改變。
所以這裡同時有兩件事:原子在資料表中怎麼排列,以及整個幾何在空間中怎麼擺放。
先把每種資料的 action 寫清楚
令 的每列是原子座標 , 是 scalar node features,例如原子型別, 是連線。
設 重排原子, 是 orthogonal matrix,, 是平移。由於座標採 row vectors,聯合變換是
這裡 有 個分量,把同一個 加到所有原子。 作用在原子維度, 作用在空間維度,兩者不能互換。
三種常見答案,三個不同要求
若輸出整個分子的 energy scalar ,要求
若輸出各原子的 force vectors ,要求
力跟著自己的原子重排,方向跟著空間旋轉,但不加 。
若輸出新的原子座標 ,則要求
座標多出的平移不能漏掉。相對地,若輸出的是 coordinate displacement,則和 force 一樣只轉方向、不加平移。
這些都是 equivariance 的不同 output actions。先指定輸出是哪一種,再設計 layer,會比直接把所有張量都叫 geometric features 更容易檢查。
Euclidean group 包含哪些操作?
Orthogonal matrix 保留距離,因為 。它可能是 rotation,也可能包含 reflection。
所有 組成 Euclidean group 。若再要求 ,只留下 proper rotations,加上 translations 後稱為 。
在二維,reflection 是鏡射;三維中鏡像可能把一個有手性的分子變成另一個不能只靠旋轉重合的分子。我們因此不能在沒有任務根據時直接要求所有 scalar answers 都 reflection-invariant。G6.3 會實際算這個差別。
知道 action 之後,要怎麼開始設計?
最自然的第一步,是不要讓模型直接依賴原子的絕對座標。改看兩個原子相差多少、相隔多遠,這些量對整體搬動有更簡單的變換規則。
Satorras、Hoogeboom 與 Welling [1] 的 EGNN 利用這類相對幾何建立可學更新。我們會先找出可用的 scalar 與 vector,再把它們組成整層;不靠架構名稱代替幾何推導。
補充本單元先假設沒有固定外部方向或位置
若分子在外電場、重力或表面旁,這些外部條件可能選出特定方向與位置。要保留對稱,就需要把它們也納入聯合 action;只轉分子卻把外場固定,是另一個 input,不一定該有相同 energy。
課堂提問
把整個分子平移 b 後,force output 也加上 b,為什麼不合理?
先想一想,再展開看整理後的答案
b 是位置差,不是力的分量。力是方向向量,平移不改變兩點的相對位置;它的 output action 只旋轉、重排,不加座標平移。
動手看一次
拖動旋轉與平移,比較位置和 force 箭頭。位置加上平移量,force 不加;也可以故意不旋轉向量,看看 defect 如何改變。