函數近似

特徵建構(feature construction)

線性模型能學之前,得先有人決定怎麼把狀態描述成數字——這就是特徵建構。原始座標往往不夠;你要打造能突顯價值函數所需結構的特徵,例如距離、角度、變數的乘積,或某些區域的指示變數。好的特徵會讓價值幾乎是線性的;壞的特徵則讓任何演算法都學不起來。

一個特徵映射 x(s) 把狀態送進 R^d,而選一組基底,其實就是在選你究竟能表達哪幾種價值函數。常見手法有多項式基底、傅立葉基底、瓦片編碼、粗略編碼與徑向基底函數;每種都在解析度、推廣能力與權重數量之間取捨。其精髓在於編碼「推廣」:兩個狀態共用的特徵,會讓對其一的更新也牽動另一個。你會希望價值相近的狀態共用特徵,價值不同的狀態彼此相異。

手工特徵曾是古典強化學習的瓶頸——既因領域而異、又脆弱、還耗人力,一套在某個任務上表現漂亮的特徵,換到下一個任務往往就垮掉。深度網路能從原始輸入端到端地學特徵,這正是深度強化學習取代大部分人工特徵工程的原因。但原則依舊原封不動地成立:無論是學來的還是手工設計的,表徵品質都默默地決定了一個智能體學得多快、學得多好的幾乎一切。

\mathbf x:\mathcal S\to\mathbb R^d,\qquad \hat v(s)=\mathbf w^\top \mathbf x(s)

特徵映射把每個狀態送進 R^d;上層線性層讀出價值。

又称
feature engineering for RLbasis functions