強化學習簡介(第一部分)

編譯:chux

出品:ATYUN訂閱號

強化學習是機器學習的一個方向,智能體通過執行某些操作並觀察從這些操作中獲得的獎勵或者結果來學習在環境中行爲。

機器人手臂操縱技術的進步,Google的Deep Mind擊敗專業的圍棋玩家,以及最近OpenAI團隊擊敗了專業的DOTA玩家,近年來強化學習領域處於爆發狀態。

在本文中,我們將討論:

  • 什麼是強化學習以及它的本質,如獎勵,任務等
  • 強化學習的分類

什麼是強化學習?

首先讓我們舉個例子進行解釋 – 比如有一個嬰兒開始學習如何走路。

我們將這個例子分爲兩部分:

1. 寶寶開始走路,成功地達到了沙發上

由於沙發是最終目標,孩子和父母都很開心。

所以,寶寶很開心並得到父母的讚賞。這是積極的(或者說正向的/陽性的) – 寶寶感覺良好(正獎勵+n)。

2. 寶寶開始走路,由於中間的障礙而摔倒,並被擦傷。

寶寶受傷並且疼痛。這是消極的 – 嬰兒哭(負獎勵-n)。

這就是我們人類學習的方式 – 通過跟蹤和試錯。強化學習在概念上與此相同的,它通過行爲進行學習,但是一種計算的方法。

強化學習

讓我們假設我們的強化學習智能體正在學習馬里奧。強化學習過程可以建模爲迭代循環,其工作方式如下:

  • RL智能體從環境(即馬里奧)接收狀態 S⁰
  • 基於該狀態S⁰, RL智能體採取動作A⁰,比如說 – 我們的RL智能體向右移動。最初,這是隨機的。
  • 現在,環境處於新的狀態S¹(來自馬里奧或遊戲引擎的新幀)
  • 環境給予RL智能體一些獎勵 R¹。它可能會給出+1,因爲智能體還沒有死。

這個RL循環一直持續到我們死了或到達目的地,並且它不斷輸出一系列狀態,動作和獎勵。

我們的RL智能體的基本目標是最大化獎勵。

獎勵最大化

RL智能體的工作原理基於獎勵最大化的假設。所以強化學習應該採取最佳行動以最大化獎勵。

每個時間步與相應的操作的累積獎勵爲:

但是,在總結所有的獎勵時,事情並不是這樣運作的。

讓我們詳細瞭解一下:

假設我們的RL智能體(機器老鼠)在迷宮中,其中包含奶酪,電擊和貓。目標是在被貓吃掉或受到電擊之前吃掉最多的奶酪。

很明顯,最好吃我們附近的奶酪而不是靠近貓或有電擊的奶酪,因爲我們越接近電擊或貓,死亡的危險就越大。因此,貓或電擊附近的獎勵,即使它更大(奶酪更多),也會打折扣。這是因爲不確定因素。

讓獎勵打折的方法如下:

我們定義了一個名爲gamma(γ)的折扣率。它應該在0和1之間。γ越大,折扣越小。

因此,我們的累計的預期(折扣)獎勵是:

累積的預期獎勵

強化學習中的任務及其類型

任務是強化學習問題的一個實例。一般有兩種類型的任務:持續和偶發。

持續的任務

持續的任務類型。例如,一個做自動外匯/股票交易的RL智能體。

在這種情況下,智能體必須學習如何選擇最佳操作,並且同時要與環境交互。沒有起點和終點狀態。

RL智能體必須持續運行,直到我們決定手動停止它。

偶發任務

在這種情況下,我們有一個起點和終點,稱爲終端狀態(terminal state)。這會創建一個情節(episode):狀態列表(S)、行爲列表(a)、獎勵列表(R)

例如,打一場反恐精英(CS),我們射殺我們的對手或者被他們殺死。我們射殺了他們,完成了這段情節,否則我們就會被殺死。所以,只有兩種情況可以完成情節。

探索和開發的權衡

強化學習中有一個重要的探索和開發權衡概念。探索就是要找到有關環境的更多信息,而開發則利用已知信息來最大化回報。

真實生活示例:假設你每天都去同一家餐館。你基本上是在開發。但是,如果你每次去這些餐館都要去搜索的新餐館,這就是探索。探索對於尋找未來的回報是非常重要的,未來的回報可能會高於近期的回報。

在上面的遊戲中,我們的機器人鼠標可以有很多小奶酪(每個+0.5)。但在迷宮頂部有一堆奶酪(+100)。因此,如果我們只專注於最近的獎勵,我們的機器鼠永遠不會獲得大堆的奶酪 – 它只會開發。

但是,如果機器人鼠標進行了一些探索,它可以找到大獎勵,即大奶酪。

這是探索和開發權衡的基本概念。

強化學習的方法

現在讓我們學習解決強化學習問題的方法。一般來說有3種方法,但我們在本文中只將兩種主要方法:

1.基於策略的方法

在基於策略的強化學習中,我們有一個我們需要優化的策略。該策略主要定義了智能體的行爲:

我們學習了一個策略函數,幫助我們將每種情況映射到最佳行爲。

深入瞭解政策,我們進一步將策略分爲兩類:

  • 確定性:給定狀態下的策略將始終返回相同的行爲(a)。這意味着,它被預映射爲S =(s)→A=(a)。
  • 隨機:它給出了不同行爲的概率分佈即隨機策略→p(A = a | S = s)

2.基於價值

在基於價值的強化學習中,智能體的目標是優化價值函數V(s),這個函數被定義爲告訴我們智能體要達到的每個狀態下獲得的最大預期未來獎勵。

每個狀態的價值是RL智能體可以預期從特定狀態獲得的獎勵總額。

智能體將使用上述價值函數來挑選每個步驟中選擇的狀態。智能體將始終採用具有最大價值的狀態。

在下面的例子中,我們看到,在每一步,我們將採取的最大價值,以實現我們的目標:1 → 3 → 4→6等等…

迷宮

案例研究:Pong遊戲

讓我們以Pong遊戲爲例。本案例研究將向你介紹強化學習如何運作。當然在這裏還不會介紹的太詳細,但本系列的下一篇文章中我們肯定會繼續深入挖掘。

假設我們教RL智能體玩Pong遊戲。

基本上,我們將遊戲幀(新狀態)輸入到RL算法中,讓算法決定向上或向下。這個網絡就是一個策略網絡。

用於訓練該算法的方法稱爲策略梯度。我們從遊戲引擎提供隨機幀,算法關於產生隨機輸出,給出獎勵,並將其反饋給算法或網絡。循環此過程。

環境=遊戲引擎和智能體=RL智能體

在遊戲的上下文中,記分板充當獎勵或反饋傳給智能體。每當智能體傾向於獲得+1時,它就會理解在該狀態下它所採取的行動已經足夠好了。

現在我們將訓練智能體進行Pong遊戲。首先,我們將向網絡提供一串游戲幀(狀態)並讓其決定行爲。智能體的初始行爲顯然會很糟糕,但我們的智能體有時可能會由於幸運得分,這是個隨機事件。但由於這個幸運的隨機事件使它收到獎勵,有助於智能體瞭解這一系列行動足以獲得獎勵。

訓練期間的結果

因此,在將來,智能體可能會採取獲取獎勵的行動。

限制

在智能體的訓練期間,當智能體在一個情節中失敗時,算法將丟棄或降低採取這個情節中存在的所有系列動作的可能性。

紅色邊框中顯示失敗情節中的所有動作

但是如果智能體一開始表現得很好,但由於最後2個行爲智能體輸掉了遊戲,沒有道理放棄所有行爲。相反,我們最好只刪除導致失敗的最後2個行爲。

綠色劃界顯示了正確的行爲,紅色邊框是應該被移除的行動。

這稱爲信用分配問題。產生這個問題的原因是獎勵稀疏的設置。也就是說,我們不會在每一步獲得獎勵,而是在情節結束時獲得獎勵。因此,智能體可以瞭解哪些操作是正確的,哪些實際操作導致失去遊戲。

因此,由於RL這種的稀疏獎勵設置,算法採樣效率很低。這意味着必須提供大量的訓練實例,以訓練智能體。但事實是,由於環境的複雜性,稀疏獎勵設置在許多情況下都會失敗。

因此,有一種稱爲獎勵塑造(rewards shaping)的東西,用於解決這個問題。但同樣,由於我們需要爲每一款遊戲設計一個自定義的獎勵函數,所以獎勵塑造也有一定的侷限性。

總結

如今,強化學習是一個令人興奮的研究領域。該領域已經取得了重大進展,其中深度強化學習就是其中之一。

但是,我想提一下,強化學習不是黑箱。我們今天在強化學習領域所看到的任何進步,都是一羣頭腦聰明的人夜以繼日地研究特定應用的結果。

下一篇我們將介紹Q-learning智能體工作,並討論一些強化學習的基礎知識。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章