DeepFloodbeta

Day15 A3C模型

今天用antigravity的agent manager模式吓到我了
几个agent同时跑
不停地要我点确定
都没来得及好好看是什么内容
根本忙不过来
感觉就成了一个无情的点赞机器

明天试试让他们自动跑
把流程限制去掉
今天跑了一晚上
我就是这个流程里的累赘

如果功能稳定下来
完全可以放到手机端
甚至AI 眼镜上
用语音来输入

今天完全被带飞了
脑袋跟不上AI的速度
我就是AGI的瓶颈


A3C的全称是Asynchronous Methods for Deep Reinforcement Learning
相比于DQN用储存的过去的经验数据抽样来作为目标函数
A3C采用的是同时让多个agent去跑
从A3C本身的架构来说
和DQN不同,它更新的不是价值函数
而是策略函数
策略函数就是说对于某(s,a)
到下一个状态和回报
是一个动作策略的分布
具体到公式上
这里有两个角色
一个是actor,一个是critic
Actor求的就是action对应的最优策略
$G_{t:t+n} - V(s_t; \theta_v)$
算是一阶矩
V(S)其实是E_a(V(s,a))
算是一个平均基准
包含了多个agent探索的信息
减去之后
会更平稳收敛更快
Critic求的就是准确预测状态价值
$$L_v = (G_{t:t+n} - V(s_t; \theta_v))^2$$
这里是二阶矩

两者都是多步回报
(但是A居然不考虑并行的问题)
为了防止过快收敛
$$\nabla_{\theta'} \text{Total} = \nabla_{\theta'} \text{Policy_Loss} + \beta \nabla_{\theta'} H(\pi(s_t; \theta'))$$
给actor的损失函数加了一个熵的校准

整个训练过程是
当有多个A探索过n步之后
它们异步修正\theta
这个时候C也根据A的探索,修正V(S,\theta)
同时,对于n步之后的下n步
多个A这时候基于之前n步得到的\theta有一个预期策略
同时C也对未来N步的S
有其价值函数上的预估
然后不断循环更新

另外,A3C也是一个深度模型
只看上面的这些说法和简单公式
其实看不出来深度神经网络在哪里
这部分看代码的时候
再具体来说