自勉
目标成为一个合格的强化学习研究人员
为监督学习而记录,也因为强化学习的资料都是英文的,在此记录一下强化学习专有名词
前段时间理论看到一半发现需要深度学习的知识所以回去恶补了一段时间的深度学习
名词Terminology
State s 状态
Action a 动作
Agent 智能体
Policy pi(a|s) 策略 在当前状态s下执行每个动作a的概率
Reward R 奖励 (和动作、状态有关)
state transition状态转移
强化学习的随机性
Action动作随机 state transition状态转移随机
定义 Return:
Discounted 折扣
Action-value function动作价值函数 for policy pi
E是求期望
因此
Return 取决于动作
和状态
...
在状态s的情况下给动作a打分
State-Value Function 状态价值函数
求期望
评价当前状态是好是坏,是快赢了还是快输了
如何让AI控制agent
1选一个好的policy pi
2最优动作价值函数
简单的GYM代码的解释
state = env.reset()#重置环境
for t in range(100):
env.render()#渲染环境 弹出窗口
print(state)
actio = env.action_space.sample()#随机抽样得到动作 实际过程中不能这样做 应该设置测略函数来给出下一步的动作
state, reward, done, info =env.step(action)#done如果结束返回1 没结束返回0
最优价值函数 此时的a为最优动作
接下来的问题:我们不知道
解决方法:Deep Q Network(DQN)
使用神经网络去近似出最佳的
输入:State s(假如是超级玛丽,则将画面传入,通过卷积层来处理)
输出:对每个动作Action打分,选择最高分
如何去训练DQN?
利用 Temporal Difference(TD) Learning algorithm 时间差异学习算法
example:
纽约到亚特兰大总时间(模型估计预测)≈纽约到华盛顿(实际时间)+华盛顿到亚特兰大(模型估计预测)
在深度强化学习中
现在的模型预计≈已经得到的回报+折扣率*以后的模型预计
是对
的预测
Temporal Difference(TD) Learning迭代过程
1观察state和action
2预测value
3反向传播求导得到梯度
4环境提供新状态
5计算出TD target
6梯度下降更新模型参数w
接下来的问题:策略函数怎么确定?
利用神经网络近似策略函数
这个网络称为Policy Network
例如超级玛丽:输入画面State->通过一个或多个卷积层->转变为一个特征向量feature->通过全连接层->将特征向量映射到一个三维向量(左,右,上)
用来评价这个神经网络的好坏
如何提升?Policy gradient ascent 策略梯度上升
但到目前为止我们还不知道从哪里来
1玩完一整局游戏 对全部记录,然后更新策略网络
2actor-critic方法
策略网络Policy network(actor 运动员) 训练通过改进去改进pi行为(使运动员做打分高的动作)
价值网络Value network(critic裁判) 训练通过改进去预测Q打分(让裁判打分更准)
利用TD算法更新value network q价值网络的参数
用策略梯度更新
Behavior Cloning是一种模仿学习 它没有奖励
MCTS蒙特卡洛树搜索四步
1section选出分数最高的动作
2expansion用策略网络预测对手可能的动作,产生新的状态
3evaluation通过自我博弈和价值网络算出分数
4backup更新分数
Sarsa 训练action-value function(critic) Q
TD target:
Q-Learning 训练optimal action-value function Qstar
TD target:
如果上面的不只有一个
则称为Multi-Step TD Targets 这是对TD target的改进
Dueling Network对神经网络的改进
Optimal advantage function优势函数
Theorem1:
Theorem2:
得到Dueling Network:
这数学推导看得让人头疼
今天的学习到此为止吧