###### tags: `reinforcement learning` # 深度強化學習 Ch2.4 : 策略函數 & 價值函數 & Return <br> 在深度學習中**代理人**會與**環境**互動,目標是為了得到最多的回饋值, 為了使 Reward 越大,要使用價值函數去做衡量,而策略函數會幫助我們計算價值。 :::success - $s_t$:時間點t的狀態 - $a_t$:時間點t所採取的動作 - $r_t$:時間點t獲得的reward(回饋) BTW提醒一下 $r_t$ 並不是做了 $a_t$ 產生的回饋而是 $a_{t-1}$ <br> >:bangbang:**注意**: 通常"XX"空間(集合)會寫成大寫 ex : 動作空間 $A$, 狀態空間 $S$ 但如果是==加上時間戳記(t)則是代表此情況還未知(未來的值) ex : $A_{t+1}$== ::: --- <br> ## 1. 策略函數 Policy Function **策略函數**會根據==目前狀態==,決定該執行的==動作==。 ### - 策略函數定義 :::warning <font size=4 color=red>**數學式:$\pi(A|s)=P(A\mid s)$,$s\in S$**</font> >解釋:策略($\pi$)可以算出在指定狀態中每個可能動作為**最佳動作的機率** $P(A\mid s)$:s狀態下個動作的機率分布&emsp;A:動作空間&emsp;S:狀態空間 ::: ### - 最佳策略函數 :::warning <font size=4 color=red>**數學式:$\pi^*\rightarrow argmaxE(r\mid \pi)$**</font> >解釋:能夠產生最高期望回饋值的策略 期望回饋值($E(r\mid \pi)$):將回饋值長期觀察,並將結果進行平均計算 ::: --- <br> ## 2. 狀態轉移函數 狀態轉移函數是指在==狀態 $s_t$ 時執行動作 $a_t$ 會轉移成新狀態 $S^{'}$ 的機率== :::warning <font size=4 color=red>**數學式:$p(S^{'} \mid s_t,a_t)=P(S^{'} \mid s_t,a_t)$**</font> >解釋 : 當在狀態 $s_t$ 執行 $a_t$ 可能產生不同的狀態, $p$ 則是產生各狀態的機率 ::: :::spoiler :secret: **舉例** ![](https://i.imgur.com/7LIOfkd.png =300x) **- 策略函數 : 在 State now 產生各動作的機率** $\pi(A|now)=[0.6,0.4]$ **- 狀態轉移函數 : 在 now 時使用 Action 1 產生各 $S^{'}$ 機率** $p(S'|now,action1)=[0.6*0.3, 0.6*0.7]=[0.18, 0.42]$ ::: --- <br> ## 3. Return 回報 Return 也叫做未來累計獎勵(Cumulative future reward),寫為 $U_t$ 是之後推導 Q-learning 等演算法很重要的觀念。 ### - Return 定義 :::warning <font size=4 color=red>**數學式:$U_t=R_{t+1}+R_{t+2}+R_{t+3}+R_{t+4}+...$**</font> R : 未來的回饋 reward >解釋 : 當在時間 t 時會有此 Return 指的是"未來"的回饋總和,因為回饋越大越好,當然 $U_t$ 也是。 ::: ### - Discounted Return :::warning <font size=4 color=red>**數學式:$U_t=R_{t+1}+\gamma R_{t+2}+{\gamma}^2R_{t+3}+{\gamma}^3R_{t+4}+...$**</font> $\gamma$ : 折扣係數,介於 0-1 >**解釋** : 在 Return 中加入了折扣係數,越是未來的回饋就給予越多折扣(越不重要) 因為最主要還是考慮當前情況,此 Return 在之後 TD-learning 會用到 ::: :::success **折扣係數想法** : 今天有人讓你選 [ 現在給你 1000 元 ] 或 [ 明年給你 1500 元 ] 也許你會猶豫該怎麼做決定,我們可以發現因為未來的不確定性 導致 [ 1000($R_{t+1}$) ] 和 [ 未來的1500($R_{t+2}$) ] 形成了等價 可將 [ 未來1500 ] 寫成 "$1000=\gamma R_{t+2}$ $\gamma$ 就是折扣係數,進而理解 Discounted Return ::: Return 中的 $R_{t+1}$ (Reward) 與未來的狀態($S_{t+1}$)、動作($A_{t}$) 有關 此二值又取決於 [策略函數] 和 [狀態轉移函數] 所以 $U_{t}$ 會與未來所有動作、狀態有關,對在 t 時刻的我們來說他是個**未知的隨機值**。 --- <br> ## 4. 動作價值函數 Q 動作價值函數可以得到在狀態 $s_t$ 下使用某動作 $a_t$ 的效果好不好(動作的價值) ### 定義 :::warning <font size=4 color=red>**數學式:$Q_{\pi} (s_t,a_t)= E(U_t\mid s_t,a_t)=E({\sum}_{k=0}^{\infty} {\gamma}^kR_{t+k+1} \mid s_t,a_t)$**</font> >解釋 : 因為 $U_t$ 是未知隨機值,但可以求其期望值, >在利用 $s_t$, $a_t$ 對 $U_t$ 積分求期望後,將未來 $S_t,A_t$ 都積掉了 >得到的 $Q_{\pi}$ 為實際變量,==意義為"使用 $\pi$ 策略 在 $s_t$, $a_t$ 情況的期望回饋值"== ::: 補 : $U_t$ 可看成未來 $s_t$, $a_t$ 組成,所以就可對[策略函數] 和 [狀態轉移函數]進行積分(求期望) :::spoiler :secret:前一章(CH2) 的動作價值函數 <br> $Q_k(a)=\frac{r(a1)+r(a2)+...+r(an)}{n}$ <br> 其實可以看成 $U_t = r(a1)+r(a2)+...+r(an)$ $Q_k(a)$ 則是對他做平均取 $U_t$ 期望值 ::: ### 最大動作價值函數 :::warning <font size=4 color=red>**數學式:$Q^* (s_t,a_t)= \mathop{max}\limits_{a}Q_{\pi} (s_t,A)$**</font> >解釋 : $Q_{\pi}$ 有很多因不同策略$\pi$,不同策略又產生不同動作($a_t$) >==所以可以說 $Q^*$ 是在 $s_t$ 狀態下採取某 $a_t$ 獲得的最大期望回饋== > ::: --- <br> ## 5. 狀態價值函數 狀態價值函數可以得到當前狀態 $s_t$ 好不好(狀態價值) ex: 西洋棋當前的局面好壞 ### 定義 :::warning <font size=4 color=red>**數學式:$V_{\pi} (s_t)= E(Q_{\pi}\mid s_t,\pi)=E({\sum}_{k=0}^{\infty} {\gamma}^kR_{t+k+1} \mid s_t)$**</font> > 解釋 : $Q_{\pi}$ 會得到狀態$s_t$ 執行動作 $a_t$ 的好壞, > 如果只要狀態 $s_t$ 的好壞,可以求 [ $Q_{\pi}$ 執行動作 $a_t$ ] 的期望值($A\sim \pi$) > 就可以把 $a_t$ 積分掉(總和掉),==所以 $V_{\pi}$ 就是在 $s_t$ 狀態下的期望回饋值== ::: <br> ## 6. 狀態價值 vs 動作價值 --- Reference : - [深度強化學習(1/5) : 基本概念 (1/5)|Shusen Wang](https://www.youtube.com/watch?v=vmkRMvhCW5c&t=990s)