iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 17
0
AI & Data

強化學習系列 第 17

強化學習方法 Day 17

  • 分享至 

  • xImage
  •  

前言

昨天說明了在蒙地卡羅方法中,狀態價值並不是一個關鍵的數值,原因在於計算動作價值中沒有使用。使用蒙地卡羅方法時,需要的是大量模擬真實情境,並不像動態規劃方法,需要狀態價值才可以計算。

蒙地卡羅控制 (Monte Carlo Control)

從估計到決策

至此,我們介紹蒙地卡羅方法,怎麼估計狀態與動作的價值,但還沒有說明我們怎麼做決策。在動態規劃方法中,我們使用貪婪法來決定,在某個狀態下應該採取什麼動作,可以獲得最大的動作價值。

相同的,我們也可以使用貪婪法,幫助我們選擇某狀態下應該採取什麼動作,不過流程有些不相同,整體流程如下:

首先,我們先初始化動作價值函數、策略、以及回饋。然後以 episode 為單位,開始收集各狀態下,進行動作價值估算。再透過估算出的動作價值,與之前提到的貪婪法,決定「下次遇到相同的狀態時,執行具有最佳動作價值的動作」。

模擬沒有想像的這麼美好

上一段介紹中,我們提到如何使用估計的動作價值,決定我們在每個狀態下的動作策略。然而,這件是建立在我們模擬準確的情況下。這是什麼意思呢?下面我們使用 GridWorld 說明

在 GridWorld 中,只有 q(1, 左)、q(4, 上)、q(11, 下)、q(14, 右),以上四個動作價值,不需要經過模擬,就已經知道是零。以設計者的想法而言,選到這幾個狀態與動作時,我們之後就可以找到最好的策略。

然而,那是我們有選到這個幾個狀態與動作的前提下,會知道這幾個動作是最佳策略。舉例而言,假設起始於狀態 2 、動作往左,並走以下路線

  • 2 > 1 > 5 > 4 > 0

我們不會評價 q(1, 左),而且 q(1, 下) 表現得也不錯,最終可能會收斂在 q(1, 下) 是最佳策略。

是否會發生錯誤的收斂,還與其他的設定有關

  1. Q(s,a) 的初始化
    如果初始化是給予隨機範圍的負值,現在 q(1, 下) 大約為 -3 ,只要給予的隨機值小於 -3 ,未來就不可能選到 q(1, 左) 這個情況。
  2. 獎勵函數的給予機制
    現在的獎勵函數給予機制,是設定好的情況,在自己定義的問題中,需要自己定義獎勵函數。如果現在的機制改成非終點的回饋 = 0.1,終點的回饋 = 1。那就算初始化時,設定 Q(s,a) = 0,依然不會選到 q(1, 左) 這個情況。

以上情況並非是我擔心太多,而是如果要將強化學習應用在真實世界時,可能會發生的情況。因此,我們需要一個就算遇到這樣的設定,然而可以獲得最佳策略的方法。

為了要解決這個問題,需要調整我們選擇策略的方法。貪婪法固然好,但需要一點可以微調的空間。因此,明天我們將會介紹處理這個問題的 https://chart.googleapis.com/chart?cht=tx&chl=%5Cepsilon - greedy。


上一篇
強化學習筆記 Day 16
下一篇
強化學習筆記 Day 18
系列文
強化學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言