深度強化學習基礎
對決網路架構(dueling network architecture)
在許多狀態裡,到底選哪個動作幾乎無關緊要——如果你橫豎都要撞上,那每個動作都差不多糟,智能體卻浪費容量去為每個動作學一個獨立的價值。對決架構把問題一分為二:身處這個狀態本身有多好,以及在這裡每個動作比平均好或壞多少。它把這兩者學成獨立的分流,再重新組合成你實際使用的 Q 值。
在內部,網路共用前面的層,然後分岔成一條價值分流 V(s),給狀態一個數字;以及一條優勢分流 A(s,a),每個動作一個數字。它們被合併成:Q 值等於 V(s) 加上優勢、再減去平均優勢,這個減法讓分解保持可辨識。好處是不論採取哪個動作,狀態價值分流每一步都會被更新,所以智能體更快學到哪些狀態重要,尤其在動作選擇無關緊要之處。它純粹是架構上的改動,原封不動就能嵌入 DQN。
Q(s,a)=V(s)+\Big(A(s,a)-\tfrac{1}{|\mathcal{A}|}\textstyle\sum_{a'}A(s,a')\Big)
價值加上去均值的優勢
另見