天天看點

強化學習專欄|什麼是強化學習?1 什麼是強化學習2  強化學習的要素2 強化學習的Limitations3 強化學習的小案例

更多可見強化學習專欄——Reinforcement Learning

1 什麼是強化學習

        強化學習是學習該做什麼 - 如何将環境映射到動作 - 以最大限度地提高獎勵。agent并沒有被告知要采取的行動,而是必須通過嘗試來發現哪些行動産生最大獎勵。行動即受及時獎勵影響也受後續行動獎勵的影響,試驗和錯誤搜尋和延遲獎勵 - 是差別強化學習的兩個最重要的特征。

1.1 強化學習與監督學習、非監督學習的差別

        監督學習是從知識淵博的外部監督者提供的标簽示例的訓練集中學習。每個示例都是對情況的描述,以及系統應對該情況采取的正确操作的說明(标簽),這通常是為了辨別該情況所屬的類别。這種學習的目的是讓系統推斷或概括其響應,以便在訓練集中不存在的情況下正确操作。這是一種重要的學習方式,但單靠它還不足以從互動中學習。

        無監督學習通常是尋找隐藏在未标記資料集合中的結構。監督學習和無監督學習這兩個術語看似詳盡地對機器學習範式進行了分類,但實際上并非如此。盡管人們可能會因為強化學習不依賴于正确行為的例子而傾向于認為它是一種無監督的學習,但強化學習是試圖最大化獎勵信号,而不是試圖找到隐藏的結構。揭開代理人經驗中的結構在強化學習中肯定是有用的,但是它本身并不能解決最大化獎勵信号的強化學習問題。是以,我們認為強化學習是第三種機器學習範式,與監督學習和無監督學習以及其他範式并列。

1.2 強化學習面臨的挑戰

        探索和利用之間的權衡!

        為了獲得大量獎勵,強化學習agent必須更喜歡它過去嘗試過并發現能有效産生獎勵的行為。但是要發現這樣的動作,它必須嘗試以前沒有選擇過的動作。agent必須利用它已經經曆過的事情來獲得回報,但它也必須探索,以便在未來做出更好的行動選擇。困境在于,無論是探索還是利用,都不能在不失敗的情況下進行。agent必須嘗試各種各樣的行動,并逐漸傾向于那些看起來最好的行動。在随機任務中,每個動作都必須嘗試多次,以獲得對預期回報的可靠估計。

2  強化學習的要素

        除了agent和環境,我們可以确定強化學習系統的四個主要子元素:政策(policy)、獎勵(reward)、價值函數(value function),以及可選的環境模型(enviroment)。

        政策定義了學習代理在給定狀态的行為方式,即agent已使用的動作集合(學過運籌學/最優化原理/凸優化的可以對應動态規劃中的政策的含義)。

        獎勵定義了強化學習問題的目标。在每個時間步長上,環境向強化學習agent發送一個稱為獎勵的數字。agent的唯一目标是從長遠來看最大化其獲得的總獎勵。在生物系統中,我們可能認為獎勵類似于快樂或痛苦的體驗。

        如果獎勵訓示即時意義上的好壞,但值函數指定長期效果的好壞。粗略地說,一個狀态的價值表示從那個狀态開始,一個agent期望在未來積累的報酬總額。

        從某種意義上說,獎勵是首要的,而價值作為獎勵的預測是次要的。沒有獎勵就沒有價值,而評估價值的唯一目的就是獲得更多的獎勵。然而,我們在做決定和評估決定時最關心的是價值觀。行動選擇是基于價值判斷做出的。我們尋求帶來最高價值狀态的行動,而不是最高獎勵,因為從長遠來看,這些行動為我們獲得了最大的獎勵。

        環境模型是一種模拟環境行為的東西,或者更一般地說,它允許對環境的行為做出推論。例如,給定一個狀态和動作,模型可能預測結果的下一個狀态和下一個獎勵。

2 強化學習的Limitations

        局限性:

                強化學習在很大程度上依賴于狀态的概念——作為政策和價值函數的輸入,以及模型的輸入和輸出。非正式地說,我們可以把狀态看作是一種信号,向agent傳達某種特定時間的“環境如何”的感覺。

3 強化學習的小案例

        大家應該小時候都玩過這個‘#’字方格的遊戲,遊戲的勝負規則就是三個連成一連線就算赢啦。

強化學習專欄|什麼是強化學習?1 什麼是強化學習2  強化學習的要素2 強化學習的Limitations3 強化學習的小案例

         首先,讓我們認為平局和輸球對我們同樣不利。那麼我們該如何使自己能發現對手遊戲中的缺陷并最大化獲勝?

        雖然這是一個簡單的問題,但通過經典的技術并不能很容易地以令人滿意的方式解決。

        例如:

                博弈論中經典的“極小極大”解決方案在這裡是不正确的,因為它假設對手有一種特定的遊戲方式。例如,一個極小極大玩家永遠不會達到一個可能會輸的遊戲狀态,即使事實上它總是因為對手不正确的遊戲而從那個狀态赢。

                進化方法将直接搜尋可能政策的空間,尋找一個對對手獲勝機率高的政策。在這裡,政策是一個規則,它告訴玩家在遊戲的每個狀态下應該做什麼動作——在三乘三的棋盤上Xs和Os的每個可能的配置。對于所考慮的每種政策,通過與對手進行一定數量的遊戲,可以獲得其獲勝機率的估計。然後,該評估将指導下一步考慮哪個或哪些政策。

        下面是如何利用一個值函數來處理井字遊戲問題。首先,我們将建立一個數字表,每個可能的遊戲狀态一個。每個數字都是我們從那個州獲勝機率的最新估計。我們把這個估計當作狀态的值,整個表就是學習值函數。狀态A比狀态B具有更高的值,或者被認為比狀态B“更好”,如果我們從A獲勝的機率的目前估計高于從B獲勝的機率。假設我們總是玩Xs,那麼對于連續有三個Xs的所有狀态,獲勝的機率是1,因為我們已經赢了。同樣,對于所有連續有三個作業系統的狀态,或者被填滿的狀态,正确的機率是0,因為我們不能從它們那裡赢。我們将所有其他狀态的初始值設定為0.5,表示我們有50%的機率獲勝。

        然後我們和對手打了很多場比賽。為了選擇我們的移動,我們檢查每一個可能的移動所産生的狀态(棋盤上的每一個空格對應一個狀态),并在表格中查找它們的目前值。很多時候我們貪婪地移動,選擇導緻價值最大的狀态的移動,也就是估計獲勝機率最高的狀态。偶爾我們會從其他動作中随機選擇。這些被稱為探索性的行動,因為它們使我們體驗到我們可能永遠看不到的狀态。遊戲中進行和考慮的一系列動作可以如圖1.1所示。

強化學習專欄|什麼是強化學習?1 什麼是強化學習2  強化學習的要素2 強化學習的Limitations3 強化學習的小案例

                 值函數轉移方程可表示:

強化學習專欄|什麼是強化學習?1 什麼是強化學習2  強化學習的要素2 強化學習的Limitations3 強化學習的小案例

繼續閱讀