學習目標:p(x) = Π p(xᵢ | x<ᵢ) 是恆等式,對任何一個變數排列都精確成立——所以「自迴歸模型有順序偏見」這句話,錯的不是鏈式法則,是條件機率的模型class。這裡把兩件事分開量:容量夠的時候換順序完全沒差容量不夠的時候,同一批資料換個順序就差一個 nat 以上。右邊是另一件事:生成要走幾步。

所有順序的測試 NLL(條件表在訓練集上估、在另一份 5000 筆的測試集上算;每根一個排列,由小到大排好);橫線=真模型在同一份測試集上的 NLL,也就是理論下限

可切換:(a) 順序的分布(兩種容量疊在一起) (b) 取樣要走幾步:自迴歸 vs 一次到位

理論下限(真模型在測試集上的 NLL) = 最好的順序 = 最差的順序 = 最差 − 最好 = 容量夠的時候:最差 − 最好 = 自迴歸取樣要走幾步 =

觀察:把「條件模型的容量」切到「看全部」,120 根長條塌成同一個高度——最差減最好只剩 4.2e-3 nats,那是有限樣本的抖動,不是順序造成的。這就是「鏈式法則是恆等式」的全部意思。切回「只看前 1 個」:同一個分布、同一批資料,最差減最好變成 1.08 nats(理論下限本身才 1.79)。而這個玩具裡的相依關係是「x1 綁 x5、x2 綁 x4」,贏的那個順序一定是把每一對排在一起的那種,輸的那個把它們全部拆開——按「重抽」換一組資料,贏家的排列會變,但那個性質不變。順序決定的不是能不能寫成連乘,而是哪幾條相依關係會被丟掉。把耦合強度調到 0(變數互相獨立),差距掉回 3.9e-3——沒有相依關係可以丟,順序就不重要了。切到 (b):自迴歸取樣的步數等於 d,和模型大小無關,那是這個分解方式本身的代價。