深度强化学习(4/5):Actor-Critic Methods

  Рет қаралды 26,713

Shusen Wang

Shusen Wang

Күн бұрын

Пікірлер
@ShusenWang
@ShusenWang 4 жыл бұрын
讲义: github.com/wangshusen/DRL/blob/master/Notes_CN/ 这节课讲得比较浅,没深入解释TD算法。 - 后续课程中详细解释 Sarsa 和 Q-learng 两种算法。kzbin.info/www/bejne/Y5S8iJeLqsd1bLM - 我之后会讲 advantage actor-critic (A2C),比这种简单的 actor-critic 效果好。
@你就是反贼
@你就是反贼 4 ай бұрын
老师想请教您一下,怎么证明actor 和 critic 网络的稳定性呢,如果用李雅普诺夫方法,怎么定李雅普诺夫函数
@yoshiyuki1732ify
@yoshiyuki1732ify 3 жыл бұрын
真是非常好的RL课程,细节把握的恰到好处。王老师把脉络理清楚了,具体方法的细节推导也就不那么乱了。
@rockmanzb
@rockmanzb Жыл бұрын
老师讲解的非常好,能超脱出来复杂公式,提取出来公式中的意义。但能否用几个slides加入更多的内容细化一下value-based的缺点(对连续动作处理不好),policy-based的缺点(对深度state处理不好)。所以actor-critic能克服两者的缺点。这样听众可以更好的理解三种model的本质。
@gangeric5007
@gangeric5007 4 жыл бұрын
老师,你可以把视频同步到B站上去,相信会有更多人观看,讲的真的是很清晰。
@yuchangzhang2215
@yuchangzhang2215 4 жыл бұрын
讲的特别清晰,有几个前面不懂的地方也弄明白了
@jianye7833
@jianye7833 4 жыл бұрын
只看了3个视频,感觉让我豁然开朗了好多,跪谢大神!!!
@搜我干嘛
@搜我干嘛 4 жыл бұрын
我的天,这也太清晰了,非常感谢您!
@孙浩林-y9y
@孙浩林-y9y 3 жыл бұрын
老师讲得太好了,听的非常清楚明白!感谢!
@jordonwjy1772
@jordonwjy1772 3 жыл бұрын
只能说我来晚了 真的清晰
@zihanqiao2850
@zihanqiao2850 3 жыл бұрын
迎合一个二流的裁判并不会让一个运动员变成顶尖的运动员!讲的清楚!
@ethanzhang6489
@ethanzhang6489 3 жыл бұрын
要是能加上pytorch代码就完美了
@maoxianwan6335
@maoxianwan6335 4 жыл бұрын
老师讲的好棒!
@llxua7487
@llxua7487 2 жыл бұрын
十分感谢!
@hongyangy9683
@hongyangy9683 3 жыл бұрын
老师讲的真的太棒了
@Jack-dx7qb
@Jack-dx7qb 2 жыл бұрын
完美 完美 還是完美!(很重要所以講三次)
@hanxianghe4446
@hanxianghe4446 4 жыл бұрын
除了我爱你,我脑子里蹦不出其他词儿
@WGlhb1hpb25nV2VpTmk
@WGlhb1hpb25nV2VpTmk 3 жыл бұрын
讲的太清晰啦
@xz3642
@xz3642 2 жыл бұрын
Excellent tutorial!
@黄含驰
@黄含驰 4 жыл бұрын
看您讲课就像在看艺术品,疯狂打call
@virtuososino4844
@virtuososino4844 3 жыл бұрын
+1
@yidingji7552
@yidingji7552 4 жыл бұрын
请问可以再出几期讲深度学习的control问题,off-policy 近似方法跟eligibility traces吗?谢谢。
@ShusenWang
@ShusenWang 4 жыл бұрын
多谢~我打算讲这些内容: github.com/wangshusen/DRL
@yidingji7552
@yidingji7552 4 жыл бұрын
@@ShusenWang 期待,谢谢老师!
@yuezhu-zo8rc
@yuezhu-zo8rc 5 ай бұрын
王老师,在视频的11分44秒可以看到上方定义了V(s:θ,w),下面在t时间点的V的导数怎么等于g(A,0)的期望的? 我推导不出这种等价关系,可以帮忙解答一下?
@liangliu4906
@liangliu4906 2 жыл бұрын
Fantastic!!! Thanks very much!!!
@涤生-d5f
@涤生-d5f 3 жыл бұрын
王老师,您好,在15:02 kzbin.info/www/bejne/rpvHaH2nbtyDh7s,这张图中 Critic 和 Env 均是接受 a 和 s, 输出是一个分数,那么为什么不让 actor 直接用 Env 给的 r 学习,而让 Critic 从中横插了一杠子呢?
@metachenyiya
@metachenyiya 2 жыл бұрын
关于baseline的选则择,我觉得它不能跟action相关吧?试想某个state下a1 得到p1=10 y1=9,a2得到 p2=2,y2=0. 那么按照diff来update actor 的话就会有利于a2,然鹅 a1才能得到高分。我觉得如果实验真的证实diff更好,有可能是因为让actor 往critic 误差较大的区域移动有助于对环境的探索
@peggyxia2960
@peggyxia2960 3 жыл бұрын
王老师,经常看到强化学习中提到使用multi-armed bandits方法,或者Neural bandit方法。请问这和你讲的policy based,value based,或者Actor-Critic 方法有什么区别或者联系呢?
@ShusenWang
@ShusenWang 3 жыл бұрын
bandit 是简化的RL,没有state,或者state固定不变
@convel
@convel 2 жыл бұрын
value network的离散action的输入(4:18)降维和不降维有区别么?比如action 上下右 用001 010 100表示和00 01 10 表示会影响后续训练和精度么?
@shiyujiao2037
@shiyujiao2037 2 жыл бұрын
感觉应该在4/5后加一节DDPG的课
@anthonysu71
@anthonysu71 4 жыл бұрын
另外不好意思再follow-up一下, 上述问题中N如果是不确定的,应该用什么样的technique来处理比较好。我的方法是用类似zero-padding的方法将个体的总数补齐,最后输出的action中再ignore对应的padding上去的个体,是不是有更好的处理的方法。Thanks in advance!!!
@ruotianzhang3139
@ruotianzhang3139 4 жыл бұрын
太嗯了
@yuhangxie3995
@yuhangxie3995 4 жыл бұрын
王老师,我想请问,咱们为什么不把reward直接给agent来指导他的动作,非要通过一个裁判(critic)再来指导运动员(agent)来提高他的动作呢?
@ShusenWang
@ShusenWang 4 жыл бұрын
训练 policy network要用 return,而不是reward。虽然知道reward,但是不知道return,没法训练policy network。
@marswang7111
@marswang7111 2 жыл бұрын
我的理解是如果短期的数据两者有关联关系 ,对于复杂的环境来说会误导qtable的学习 造成q表不稳定,所以用两个网络来中断这种联系,使得长期情况下可以看见更多的组合情况,来让q表数据更稳定和准确 进而提高模型的鲁棒性
@kaiyizhang9864
@kaiyizhang9864 4 жыл бұрын
老师,请问有些文章critic的输入就只有state没有action。这时候critic的输出应该就只是value-function,这种情况该怎么理解呢?
@danielx1912
@danielx1912 2 жыл бұрын
请问在17:04 这里,为什么不是对delta t求梯度,而是对q求梯度呢?
@cristianmtzcolin
@cristianmtzcolin 3 жыл бұрын
No entendí nada pero se ve que usted sabe mucho jeje salu2.... Algún día aprenderé chino y regresaré a ver este video a ver si lo entiendo
@anthonysu71
@anthonysu71 4 жыл бұрын
讲的非常棒,想请问一个research中遇到的问题,假如我的agent是N个独立的个体作为一个总体,state是这N个个体的合集,因为每个个体的位置是continuous的, 所以state也是连续的。同时,如果每个个体只有两个动作,那我的action space就是一个很大的discrete action space了,这种情况下是否适用A2C这样的算法?还是一定要用ddpg来解决?
@ShusenWang
@ShusenWang 4 жыл бұрын
actions是离散的,不能用DPG。DPG只能用于连续动作。把N个agents看做一个整体当然可以,但是状态和动作空间都很大,恐怕会学不好策略函数。如果N不确定,那就更难办了,我也不知道有什么方法解决。或许你该找找multi-agent的方法,而不是把N个agents看做一个整体。
@anthonysu71
@anthonysu71 4 жыл бұрын
@@ShusenWang 非常感谢!主要可能是将agents看做整体是核心思路,不太好采取multi-agent rl的方法。目前找到了fix N的方法,也用feature优化了action space,正在尝试用DQN的变种解决。老师我想请问一下在很多真实的application中,policy gradient的算法是不是收敛结果不如value-based algorithm?这是为什么呢?
@ShusenWang
@ShusenWang 4 жыл бұрын
@@anthonysu71 你说是理论收敛率吗?理论上现在还没有定论,现在有的理论都不成熟。实际上value learning和policy learning哪个好很有争议,也没有结论。
@dzrzhou9437
@dzrzhou9437 4 жыл бұрын
有一点不明白的,g(a, theta) 这个公式里,是如何对logπ求theta的导数的?不是π因为太复杂不能求吗
@ShusenWang
@ShusenWang 4 жыл бұрын
如果pi是个可导的神经网络,那么对pi关于theta求导会很容易。log pi关于theta求导也很容易。TensorFlow或者PyTorch有gradient函数,只需要几行代码就能求出 log pi关于theta的导数。如果你google一下”policy gridient TensorFlow“,能找到很多编程实现。
@pengxu8542
@pengxu8542 4 жыл бұрын
in lecture 3, at 15:15, he said it's difficult to do integral on NN to calculate the expectation, my understanding is that the complication is due to integral not differentiation.
@davidwang2533
@davidwang2533 4 жыл бұрын
请问老师,在Summary of Algorithm的第四步,为什么用的是 随机的选择了tilde a_t+1 对应的q_t+1值? 在之前TD算法视频里,我记的选取的是最大的q_t+1值。是不是说在实际算法里,这步也具有一定的随机性?
@ShusenWang
@ShusenWang 4 жыл бұрын
训练 DQN 用的是 Q-Learning 算法,训练这里的价值网络用的是 Sarsa 算法,两者是不同的 TD 算法。这里我没深入讲这些细节。我这两天新传的视频详细讲这些 TD 算法。
@davidwang2533
@davidwang2533 4 жыл бұрын
@@ShusenWang 谢谢!你的视频都很棒!
@zhiweisong4617
@zhiweisong4617 3 жыл бұрын
老师您好,在18:30处有一个疑惑。 我觉得第九步是不是少了一个负号,应该用 -\delta_t ? 因为在A2C算法中,这里就是 用的就是-\delta_t而不是\delta t。两者唯一的区别就是这里是状态动作价值,A2C中的是状态价值,但是这应该不影响正负吧?
@Bing.W
@Bing.W 3 жыл бұрын
状态价值是梯度上升,当然是+号了。和动作价值不是一回事。A2C也是一样的道理。
@jiahao2709
@jiahao2709 3 жыл бұрын
mdp的部分会再讲吗
@台中人-j1v
@台中人-j1v 2 жыл бұрын
@nengliu5654
@nengliu5654 4 жыл бұрын
老师,请教一下:为什么课上讲的baseline可以看做一个没有随机性的常数呢?
@nengliu5654
@nengliu5654 4 жыл бұрын
Baseline 不能是动作a_t的函数,可是r_t又是部分由a_t决定的,这里面没有听明白。
@ShusenWang
@ShusenWang 4 жыл бұрын
@@nengliu5654 你说的很有道理,我也有这个疑问。baseline不能是A_t 的函数,否则在数学上用baseline与原来的policy gradient不相等。或许可以这样理解。变量的依赖关系是 A_t --> R_t。一旦R_t被观测到,它就不再依赖于A_t。 baseline中的r_t是R_t观测值,不再依赖变量A_t。(这只是我的理解,不知道对不对。我之前查过书和论文,找不到任何解释。)
@liubo19831214
@liubo19831214 2 жыл бұрын
@@ShusenWang 这样解释怎么样?1.Baseline(s_t)不能是A_t的函数,比如V(s_t)2. 我们要估计的是Advantage(s_t,a_t):=q(s_t, a_t)- Baseline(s_t),而不是单独的Baseline(s_t)。这个是依赖于(s_t,a_t)两个变量的函数 3 TD error 是Advantage(s_t,a_t)的无偏估计而不是baseline的无偏估计),本身包含r(s_t,a_t)。4 也就是从头到尾我们只是估计Advantage(s_t,a_t),从来没有单独估计过Baseline(s_t),这也就是为什么有r(s_t,a_t)的原因。
@ShusenWang
@ShusenWang 2 жыл бұрын
@@liubo19831214 我的天,RL大牛刘老师来我这里了!
@liubo19831214
@liubo19831214 2 жыл бұрын
@@ShusenWang 惭愧惭愧 王老师课程讲解非常清楚 👍🏻 我经常给别人推荐
@黃建為-y8e
@黃建為-y8e 3 жыл бұрын
老師你好,我從第一堂課看到這一堂第四堂,一直困惑一個問題,還麻煩老師替我解惑 是否『Policy 函數 Pi 』的數值越大, 代表 『Quality 函數 Q_pi』 數值越大呢? 我猜應該是錯的,尤其是底下Step4思路,但我想不到什麼反例讓我更可以理解他們是不一樣的概念 在我腦海中,『Policy 函數 Pi 』跟 『Quality 函數 Q_pi』 都是一個表格(縱軸: s_1,...s_n. 橫軸: a_1 ... a_m) 那一個是要優化表格裡的機率,另一個是優化表格裡的絕對數值(價值) -------- 底下是我在學習這些名詞的思路 Step1: Policy 函數 Pi 函數好懂,我根據Reward優化Policy 得到當前應該適合哪個 a 行為,越適合的a,他的 pi(s, a) 越大 Step2: Quality函數,摁.....應該也可以用Step1 的敘述描述Quality吧 ==> 我根據Reward優化Quality 得到當前應該適合哪個 a 行為,越適合的a,他的 Q(s, a) 越大 Step3: 摁...那Policy和Quality有啥區別? --> (1) 一個是機率,一個是絕對數值 (2) 一個會用抽樣的,另一個選最大的 Step4: 摁摁,所以 Policy函數 和 Quality函數是差不多概念的東西,之前在寫 Q_pi (s, a) ,我可以姑且理解成 pi(s, a)
@黃建為-y8e
@黃建為-y8e 3 жыл бұрын
題外話:我覺得老師您的授課內容非常的好,雖然數學符號很多,但您把很多較抽象的概念講得很完整,對我真的很有幫助,謝謝
@ShusenWang
@ShusenWang 3 жыл бұрын
『Policy 函數 Pi 』的數值越大, 代表 『Value 函數 Q_pi』 數值越大呢? 这的确是学习policy的目的,我们希望最终是这样。但一开始未必如此。
@黃建為-y8e
@黃建為-y8e 3 жыл бұрын
@@ShusenWang 了解了,謝謝老師
@yiqiangbai2247
@yiqiangbai2247 3 жыл бұрын
@@ShusenWang 老师,关于这段对话,有一点不明,policy函数pi不是一个概率密度函数吗,怎么能用大小来衡量呢?换句话说,Q_pi,是pi的期望值,所以,pi函数无所谓大小,而只能研究pi的分布特征?
@NingLu2011
@NingLu2011 Жыл бұрын
@@yiqiangbai2247 我的理解是,pi的确是在St状态下,对所有可能采取的动作的一个概率分布。而Q是动作价值函数。是评估采取一个动作后得到的reward和之后可能得到折扣后reward的期望值。是以,我们目标是力图通过调节pi的分布形状来使其分布形态最接近能得到最优Q的那个。所以Q高与否可以衡量pi形态好坏。比如一个状态下,可能上,下,左,右,不动的最优解是左。即向左概率最后接近为1·0。其他动作皆为接近0。而另一个状态下可能五种动作都一样得分,即哪个都行,那就每个动作概率最后皆接近0·2。但对任何一个动作而言,你是在最大化他的概率。不知道这样理解是否正确。
@denniszheng8073
@denniszheng8073 4 жыл бұрын
请问11:50的action是否等同于8:26的action?
@Bing.W
@Bing.W 3 жыл бұрын
一样。
@如帝临
@如帝临 2 жыл бұрын
内容很肝很清晰很硬核,但就是讲课的语气太僵硬了,给人一种说话者就像是没有感情的机器人
深度强化学习(5/5):AlphaGo & Model-Based RL
53:43
Shusen Wang
Рет қаралды 28 М.
How Many Balloons To Make A Store Fly?
00:22
MrBeast
Рет қаралды 149 МЛН
If people acted like cats 🙀😹 LeoNata family #shorts
00:22
LeoNata Family
Рет қаралды 23 МЛН
CS885 Lecture 7b: Actor Critic
35:06
Pascal Poupart
Рет қаралды 12 М.
[Chinese] Monte Carlo Algorithms
25:15
Shusen Wang
Рет қаралды 29 М.
What is Actor-Critic?
11:50
Pourquoi (布瓜的世界)
Рет қаралды 1,6 М.
Actor-Critic Model Predictive Control (Talk ICRA 2024)
6:59
UZH Robotics and Perception Group
Рет қаралды 4,8 М.
强化学习与ChatGPT:PPO 算法介绍和实际应用(中文介绍)
42:32
Pourquoi (布瓜的世界)
Рет қаралды 10 М.
How Many Balloons To Make A Store Fly?
00:22
MrBeast
Рет қаралды 149 МЛН