人工智慧 – DQN算法

關鍵字 :人工智慧DQN

Q-Learning簡介:

        在Q-learning中,我們維護一張Q值表,表的維數為:狀態數S * 動作數A,表中每個數代表在當前狀態S下可以採用動作A可以獲得的未來收益的折現和。我們不斷的迭代我們的Q值表使其最終收斂,然後根據Q值表我們就可以在每個狀態下選取一個最優策略。
                                                                                          
                                                                                                                                                              圖1 Q-Learning更新公式

        Q值一開始的值可能是錯的,但經過一次又一次的疊代,Q值會不斷的接近Q-target值,如果夠長的時間,value-function就可以優化為最優的價值函數。

       因為Q-learning如果是用在狀態比較多的情況,會導致Q-learning無法把所有的狀態的Q值都計算出來,要計算出來記憶體也可能會爆炸,所以就想出DQN,RL+DL的學習方法,設計出一個神經網路,只需要將狀態輸入,輸出的是每個動作的Q值,這樣就可以解決記憶體爆炸的情況,這個就是Value function approximation
                                                                                            
                                                                                                                                                              圖2 DQN Neural Network

     神經網路的訓練就是要找一個最好的參數來優化loss function,然後要訓練就必須要有training data,input X跟label Y,我們現在將State當作input了,那我們要那裡找label呢?
                                                                                                           


                                                                                                                                                              圖3 Loss Function

     看看圖1的更新公式,中間那個就是所謂的Target Q,把它當作Label,不就代表,我們的Q function就會越來越接近Target Q function了嗎?所以我們就可以定義出Loss function(圖3),Label也定義出來了,那這樣就可以做Neural network的訓練了。

     DQN 兩大利器:
                                                                                              
                                                                                                                                                             圖4 DQN 2015演算法

Experience Replay:

    深度學習的訓練資料最好為獨立同分布的資料,然而我們知道,RL的資料是時序性的,也就是代表資料前後是有關聯的,這樣可能會造成模型無法正常訓練,所以建立了一個空間來儲存資料,並且利用Random 採樣的方式來進行training,這樣就不會有關聯性的問題了,其實簡單一點想,這個就是”回憶學習”的概念。

                                                                  
                                                                                                                                                          圖5 Double DQN 學習架構

Update Target Q network:

      原本2013的DQN是只有一個network,然後同時計算Target Q跟預測的Q,如果是這種情況的話,同一個network都在更新,Target Q同樣在更新,那這樣是不是會有一種自己在跟自己的Target Q去做比較的呢?所以就出現了2015的DQN,很直觀的,2015DQN就是把計算Target Q的神經網路跟訓練用的神經網路分開,那要怎麼分開呢,從上面的演算法看來,就是經過一些時間後,把訓練用的參數給復製到計算Target Q的網路,這樣就會分開了。

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論