在強化學習中,動作價值函數的更新可以使用增量法,如下所示:
Q k = 1 k ∑ i = 1 k r i = 1 k ( r k + ∑ i = 1 k ? 1 r i ) = 1 k ( r k + ( k ? 1 ) Q k ? 1 ) = 1 k ( r k + k Q k ? 1 ? Q k ? 1 ) = Q k ? 1 + 1 k [ r k ? Q k ? 1 ] \begin{align*} Q_k &= \frac{1}{k}\sum_{i=1}^k r_i \\ &= \frac{1}{k}(r_k + \sum_{i=1}^{k-1}r_i) \\ &= \frac{1}{k}(r_k + (k-1)Q_{k-1}) \\ &= \frac{1}{k}(r_k + kQ_{k-1} - Q_{k-1}) \\ &= Q_{k-1} + \frac{1}{k}[r_k - Q_{k-1}] \end{align*} Qk??=k1?i=1∑k?ri?=k1?(rk?+i=1∑k?1?ri?)=k1?(rk?+(k?1)Qk?1?)=k1?(rk?+kQk?1??Qk?1?)=Qk?1?+k1?[rk??Qk?1?]?
因此,根據最新觀測到的獎勵 r k r_k rk?,使用增量計算方法根據誤差 r k ? Q k ? 1 r_k - Q_{k-1} rk??Qk?1?調整當前的估計值 Q k Q_k Qk?,步長為 1 k \frac{1}{k} k1?,繼而獲得新的估計值 Q k Q_{k} Qk?。這意味著,如果最近觀測到的獎勵大于當前的估計值,我們會向上修改行動值的估計值。
請注意,由于存在 1 k \frac{1}{k} k1?項,隨著我們進行更多的觀測,我們調整估計的比率將變小(公式中的 k k k隨著訪問次數的增加而不斷增加,導致 1 k \frac{1}{k} k1?越來越小)。因此,我們對最新的觀測不太重視,對特定動作的動作值的估計會隨著時間的推移而逐漸穩定下來。這意味著學習過程會逐漸變得保守,因為我們更加相信之前的經驗。
但是,如果環境不是靜止而是隨時間變化的,這可能是不利的。在某些情況下,我們希望使用不會隨時間減小的固定不長,例如,固定的步長 α ∈ ( 0 , 1 ) \alpha \in (0,1) α∈(0,1)。當環境隨時間變化時,我們希望智能體能夠適應環境的變化,而不是過分依賴過去的經驗。如果我們使用固定步長,智能體將更好地適應這些變化,因為它會持續地從新的經驗中學習,而不是逐漸降低學習速率。
綜上,在一個平穩問題(環境)中,我們通常設置步長不斷遞減,這將有助于模型更快收斂。在一個隨時間變化的環境中,我們通常設置固定的步長,避免模型過分依賴過去的經驗。