強化學習基礎-對偶梯度上升
本文為 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) 。
Modified from source
這就是對偶梯度上升法的工作原理。(PPT)
示例
讓我們通過一個示例來分析如何求解的。
拉格朗日乘子
那麼,拉格朗日乘子是什麼?我們可以使用不同d值的等高線圖可視化f函數。g是約束函數。
其中 λ 是拉格朗日乘子
思考
對偶梯度下降可以使用任何優化方法來最小化具有λ值的拉格朗日函數。在軌跡優化問題中,我們一般使用的優化方法為iLQR。然後我們應用梯度上升來調整λ。通過重複迭代可以找到最優解。
TAG:AI研習社 |