進階策略優化
TRPO 中的共軛梯度(conjugate gradient in TRPO)
要走出一步自然梯度,TRPO 必須解一個線性系統:費雪矩陣乘以搜尋方向等於策略梯度。對現代神經網路策略而言,那個矩陣有上百萬列與行,光是把它建出來都不可能,更別說求逆。共軛梯度(conjugate gradient)是逃生口。它是一種迭代求解器,只用到「能把費雪矩陣乘上一個向量」這項能力就能找出方向,從不需要矩陣本身。
這些費雪—向量乘積可以用自動微分便宜地算出——大約是多做兩次反向傳播的成本——做法是以特定順序對 KL 散度微分兩次。大約十來次共軛梯度迭代通常就能給出夠好的方向,把「不可能的精確求逆」變成幾個梯度大小的運算。這個免黑塞(Hessian-free)的技巧,使二階策略優化在深度網路規模下變得可行,同樣的機制也出現在別處的自然梯度與 K-FAC 優化器中。
\text{solve}\ \ F\,x=g\ \ \text{for}\ x,\quad\text{using only Fisher--vector products}\ \ v\mapsto Fv
用免矩陣的費雪—向量乘積,解出自然梯度方向。
又称
另见