機器學習【4】:強化學習(Reinforcement Learning),Q-learning方法

一. 強化學習

     什麼是強化學習,首先我們要了解強化學習的幾個重要概念,也是強化學習四要素:狀態(state)、動作(action)、策略(policy)、獎勵(reward)

         

    說簡單一點,強化學習其實就是實現了智能體自發的與環境進行交互並且達到我們所希望的狀態。這個過程就會產生很多動作,下一步動作是依靠上一步動作以及當前狀態,上一步狀態,以及實施動作之後的獎勵所決定的

    在周志華的西瓜書中說到一點:

    智能體處在一個環境中,每個狀態爲智能體對當前環境的感知;智能體只能通過動作來影響環境,當智能體執行一個動作後,會使得環境按某種概率轉移到另一個狀態;同時,環境會根據潛在的獎賞函數反饋給智能體一個獎賞。

 

二. Q-learning算法

    1. 簡介

    Q-learning算法是強化學習的一個算法模型。接下來詳細介紹下這個算法。

    動作值函數(或稱「Q 函數」)有兩個輸入:「狀態」和「動作」。它將返回在該狀態下執行該動作的未來獎勵期望。

   

    Q函數的更新公式爲:

    

     分別代表的含義爲:新的Q函數 = 當前的Q + 學習率*(獎勵+discount_rate*新狀態所支持的所有可能動作中能產生最大價值的dong動作-當前的Q函數)       

     其中:
     S 代表當前的狀態,a 代表當前狀態所採取的行動,
     S’ 代表這個行動所引起的下一個狀態,a’ 是這個新狀態時採取的行動,
     r 代表採取這個行動所得到的獎勵 reward,γ 是 discount 因子,

     由公式可以看出 s,a 對的 Q 值等於 即時獎勵 + 未來獎勵的 discount。γ 決定了未來獎勵的重要性有多大,比如說掃雷遊戲,我們到了一個狀態,它雖然離目標狀態遠了一些,但是卻離炸彈遠了一些,那這個狀態的即時獎勵就很小,但是未來獎勵就很多。

     2. Q-learning算法流程

     

     在訓練初期,由於我們的算法模型沒有任何經驗,所以我們不能基於已有的經驗去做判斷。

     這個時候涉及到兩個概念,一個叫探索,一個叫利用(exploration/exploitation)。
     思路就是,在一開始,我們將使用 epsilon 貪婪策略:
       我們指定一個探索速率「epsilon」,一開始將它設定爲 1。這個就是我們將隨機採用的步長。在一開始,這個速率應該處於最大值,因爲我們不知道 Q-table 中任何的值。這意味着,我們需要通過隨機選擇動作進行大量的探索。

      然後我們會生成一個隨機數。如果這個數大於 epsilon,那麼我們將會進行「利用」(這意味着我們在每一步利用已經知道的信息選擇動作)。否則,我們將繼續進行探索。在剛開始訓練 Q 函數時,我們必須有一個大的 epsilon。隨着智能體對估算出的 Q 值更有把握,我們將逐漸減小 epsilon。

 

發佈了234 篇原創文章 · 獲贊 71 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章