Home >> Blog >> 什麼是 DQN 強化學習模型
什麼是 DQN 強化學習模型
DQN 或 Deep-Q 網絡最早由 DeepMind 於 2015 年提出,試圖將深度學習的優勢帶入強化學習(RL),強化學習側重於訓練代理在環境中的特定階段採取任何行動以最大化獎勵。然後,強化學習嘗試通過觀察與環境交互的獎勵來訓練模型以改進自身及其選擇。下圖是這種學習的簡單demo。
例如,想像一下當你優化完成SEO的每日流程後,想要訓練一個機器人玩 Ludo 這樣的遊戲。機器人將與其他玩家一起玩,每個人,包括機器人,都將有四個令牌和一個骰子(這將是他們的環境)。然後機器應該根據其他人玩過的遊戲以及機器人與獲勝的距離(狀態)來選擇要移動的令牌(即選擇一個動作)。機器人將想要玩,以便贏得遊戲(即最大化其獎勵)。
Q-Learning 與 RL 有什麼關係?
在 Q-learning 中,構建了一個內存表 Q[s,a] 來存儲 s 和 a 的每個可能組合的 Q 值(分別表示狀態和動作)。代理學習一個 Q 值函數,該函數給出給定狀態和動作對的預期總回報。因此,代理必須以最大化此 Q 值函數的方式行事。
智能體可以採取單步動作 a 並查看他們收到的獎勵 R。因此,R+Q(s',a') 成為智能體希望從 Q(s,a) 獲得的目標。
其中 γ 表示此函數的折扣因子。這會導致獎勵隨著時間的推移而失去價值,因此更直接的獎勵更有價值。例如,如果所有 Q 值都等於 1,則採取另一個行動並獲得 2 分將使 Q(s,a) 更接近 3 (1+2)。隨著智能體繼續遊戲,Q 值將隨著獎勵的值不斷減少而收斂(尤其是當 γ 小於 1 時)。這可以顯示為以下算法:
DQN
Q 值算法所需的內存和計算量會太高。因此,改為使用深度網絡 Q-Learning 函數逼近器。這種學習算法稱為深度 Q 網絡 (DQN)。因此,這一發展的關鍵思想是使用深度神經網絡來表示 Q 網絡並訓練該網絡來預測總獎勵。
由於不穩定性,以前將深度神經網絡引入強化學習的嘗試主要是不成功的。深度神經網絡在強化學習模型中容易過度擬合,這使得它們無法被泛化。根據 DeepMind 的說法,DQN 算法通過存儲代理的所有經驗並隨機採樣和重放經驗,提供多樣化和去相關的訓練數據,從而解決這些不穩定性。
在 2013 年的一篇論文中,DeepMind 通過教它學習如何在 Atari 2600 控制台上玩七款遊戲來測試 DQN。在每個時間步,代理觀察屏幕上的原始像素和與遊戲分數相對應的獎勵信號,從而選擇操縱桿方向。DeepMind 2015 年的論文通過為 50 個 Atari 2600 遊戲訓練單獨的 DQN 代理來擴展這一點(事先不知道這些遊戲是如何玩的)。DQN 在這些遊戲中幾乎有一半的表現與人類一樣好——這是之前每次嘗試將強化學習與神經網絡相結合的更好結果。
DeepMind 已將其DQN 源代碼和Atari 2600 模擬器免費提供給任何希望與自己一起工作和進行實驗的人。該研究小組還改進了其 DQN 算法,包括進一步穩定其學習動態、優先考慮重放經驗和規範化,以及聚合和重新調整輸出。通過這些改進,DeepMind 聲稱 DQN 可以在幾乎所有 Atari 遊戲中實現人類水平的性能,並且單個神經網絡可以學習多個此類游戲。
根據 DeepMind 的說法,主要目標是建立 DQN 的功能並將其用於現實生活中的應用程序。不管我們多久到達這個階段,可以肯定地說 DQN 強化學習模型擴大了機器學習的範圍和機器應對各種挑戰的能力。