本文為 AI 研習社編譯的技術部落格,原标題 :
The base of deep reinforcement-learning-Dual Gradient Descent
作者 | Jonathan Hui
翻譯 | 斯蒂芬•二狗子
校對 | 斯蒂芬•二狗子 稽核| 莫青悠 整理 | 鳳梨妹
原文連結:
https://medium.com/@jonathan_hui/rl-dual-gradient-descent-fac524c1f049
對偶梯度下降是一個優化帶限制目标函數的常用方法。在強化學習中,該方法可以幫助我們做出更好的決策。
該方法的核心思想是把目标函數轉換為可以疊代優化拉格朗日對偶函數。其中拉格朗日函數 和拉格朗日對偶函數 g 定義為:
其中标量 λ 被稱為拉格朗日乘子。
對偶函數 g 是原始優化問題的下限,實際上,若 f 是凸函數,g和f保持強對偶關系,即g函數的最大值等價于優化問題的最小。隻要找到使得g最大的 λ ,我們就解決了原始優化問題。
是以,我們随機指定 λ 為初始值,使用優化方法解決這個無限制的g(λ)。
接下來,我們将應用梯度上升來更新 λ 以便最大化g。 g的梯度是:
即為
在下面的步驟1中,我們根據目前的 λ 值找到最小x,然後我們對g進行梯度上升(步驟2和3)。
先最小化帶有原始x變量的拉格朗日 ,再用梯度法更新拉格朗日乘子 λ ,不斷交替着進行這兩種計算。通過這樣重複疊代,λ、x将收斂。
可視化
讓我們想象一下這個算法是如何工作的。
Modified from source
設 y = g(x), z = f(x)。y 和 z 在來自于空間 G ,我們畫出了與y對應的z。我們的解是上面的橙色的點: 空間 G上的最小f同時滿足g(x)= 0。下面的橙色線是拉格朗日函數。它的斜率等于λ,它接觸G的邊界 。
然後我們使用梯度上升來調整 λ(斜率),以獲得與 g(x)= 0 接觸G的最大值 f(x) 。
這就是對偶梯度上升法的工作原理。(PPT)
示例
讓我們通過一個示例來分析如何求解的。
拉格朗日乘子
那麼,拉格朗日乘子是什麼?我們可以使用不同d值的等高線圖可視化f函數。g是限制函數。
其中 λ 是拉格朗日乘子
思考
對偶梯度下降可以使用任何優化方法來最小化具有λ值的拉格朗日函數。在軌迹優化問題中,我們一般使用的優化方法為iLQR。然後我們應用梯度上升來調整λ。通過重複疊代可以找到最優解。
想要繼續檢視該篇文章相關連結和參考文獻?
長按連結點選打開或點選【強化學習基礎:對偶梯度上升】:
https://ai.yanxishe.com/page/TextTranslation/1427
AI研習社每日更新精彩内容,觀看更多精彩内容:雷鋒網雷鋒網雷鋒網(公衆号:雷鋒網)
盤點圖像分類的竅門
動态程式設計:二項式序列
如何用Keras來建構LSTM模型,并且調參
一文教你如何用PyTorch建構 Faster RCNN
等你來譯:
如何在神經NLP進行中引用語義結構
你睡着了嗎?不如起來給你的睡眠分個類吧!
進階DQNs:利用深度強化學習玩吃豆人遊戲
深度強化學習新趨勢:谷歌如何把好奇心引入強化學習智能體