dqn
强化学习网络 DQN
-
目的:让机器学会打游戏
- 在每一个对局中,情景各不相同,所以我们需要让机器当场学习
- 应用:Alpha Go; 王者荣耀 ai
-
特点
-
- 没有监督数据,只有奖励 (reward) 信号
- 例如围棋,可能性太多,一般不会通过已知情况进行计算
-
- 奖励信号不一定是实时的,可能存在延迟
- 不同于贪心算法,我们可能要放弃局部胜利而获得最终胜利
-
- 时间是一个重要因素
- 意思是样本之间存在时间维系的强关系
-
- 智能体 (Agent) 但前的动作 (Action) 影响后续接收到的数据
-
-
要素
-

-
奖励: 是一个反馈信号,是一个标量
-
工作目标是:最大化累积奖励
-
基于奖励假设:所有问题的目标都可以被描述为最大化期望的累积奖励
- 期望表示平均水平高,用于避免“赌博”的训练结果,也就是要求在稳定高水平下找更好的
-
-
序列决策 Sequential Decision Making
-
目标:选择一定的动作序列以最大化未来的总体奖励(是一系列)
- 因此奖励反馈是延迟的
-
-
智能体 Agent
-
输入: 观测
-
反馈: 奖励
-
输出: 动作
-
每一步的步骤:
-
- 接受 , , 执行
-
- 接受 , 产生观测 , 产生奖励信号
-
-
历史与状态 History and State:
-
历史是观测、行动和奖励的序列
- (最后一次的 是不存在的,因为这是我们决策的结果)
-
状态是接下来会发生的信息,是一个关于历史的函数
-
-
状态的主体有两个,一个是环境,一个是智能体
- 环境状态 是环境内部状态, 对于智能体通常不可见,即使可见也包含大量不相干信息,这个是观测和奖励的内容来源
- 智能体状态 是智能体内部对信息的表达,是历史的函数
-
-
-
-
-
训练思路
-
首先我们要决定是 探索 Exploration 还是 利用 Exploitation
- 这里会用到一个 贪心算法,也就是存在一个浮动(逐级衰减)的概率 ,我们每一个循环周期都有 的概率进行探索,有 的概率进行利用
- 探索 对应 随机生成操作,利用 对应通过已有的模型观测效果
- 随着 的逐步减小,我们会发现探索的越来越小,利用的越来越多,这符合人类学习从 屁都不懂 进化到 精通 的进程
-
接下来就是结果推演及训练
-
我们先区分 reward 和 Q 值
- reward 是环境反馈给个体的 ground truth
- Q 是我们通过学习获得的对不同操作不同环境的价值判断函数
- 也就是说我们的目的是找 或者说更加重要的是 找到最好的动作
-
所以我们需要训练合理的 网络使得agent能够优秀的找到每一步的实际最好动作
-
求损失的对象应该是 当前帧的最大 q 和 下一帧的最大 q
-
我们目前可以有的就是当前帧的状态和下一帧的状态,我们需要用一个 Q 网络映射把a,s映射到q值
-
target_q 计算函数
- 折扣因子 $discount_factor $ (通常用 表示) 用于当前状态的重要性,取值范围为
- 越大,结果越贴近未来预期效果, 越小,结果越尊重当前的属性
-
-
-
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.

