【强化学习入门系列一】

自勉

目标成为一个合格的强化学习研究人员

为监督学习而记录,也因为强化学习的资料都是英文的,在此记录一下强化学习专有名词

前段时间理论看到一半发现需要深度学习的知识所以回去恶补了一段时间的深度学习

名词Terminology

State s 状态

Action a 动作

Agent 智能体

Policy pi(a|s) 策略 在当前状态s下执行每个动作a的概率

Reward R 奖励 (和动作、状态有关)

state transition状态转移 

强化学习的随机性

Action动作随机 state transition状态转移随机

定义 Return:U_{t}=R_{t}+\gamma R_{t+1}+\gamma^{2} R_{t+2}+\gamma^{3} R_{t+3}...

Discounted 折扣 \gamma

Action-value function动作价值函数  for policy pi

Q_{pi}(s_{t},a_{t})=E[U_{t}|S_{t}=s_{t},A_{t}=a_{t}] E是求期望

因此

Return U_{t} 取决于动作A_{t},A_{t+1},A_{t+2}...和状态S_{t},S_{t+1},S_{t+2}....

在状态s的情况下给动作a打分

State-Value Function 状态价值函数

V_{pi}(s_{t})=E_{A}[Q_{pi}(s_{t},A)] 求期望

评价当前状态是好是坏,是快赢了还是快输了

如何让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

最优价值函数 argmaxQ^{*}(s,a) 此时的a为最优动作a^{*}

接下来的问题:我们不知道Q^{*}

解决方法:Deep Q Network(DQN)

使用神经网络去近似出最佳的Q^{*}

输入:State s(假如是超级玛丽,则将画面传入,通过卷积层来处理)

输出:对每个动作Action打分,选择最高分

如何去训练DQN?

利用 Temporal Difference(TD) Learning algorithm 时间差异学习算法

example:

纽约到亚特兰大总时间(模型估计预测)≈纽约到华盛顿(实际时间)+华盛顿到亚特兰大(模型估计预测)

在深度强化学习中

Q(s^{t},a^{t};w)\sim r^{t}+\gamma *Q(s^{t+1},a^{t+1};w)

现在的模型预计≈已经得到的回报+折扣率*以后的模型预计

Q(s^{t},a^{t};w)是对E[U_{t}]的预测

  

Temporal Difference(TD) Learning迭代过程

1观察state和action

2预测value

3反向传播求导得到梯度

4环境提供新状态

5计算出TD target

6梯度下降更新模型参数w

接下来的问题:策略函数怎么确定?

利用神经网络近似策略函数

这个网络称为Policy Network

例如超级玛丽:输入画面State->通过一个或多个卷积层->转变为一个特征向量feature->通过全连接层->将特征向量映射到一个三维向量(左,右,上)

\theta来评价这个神经网络的好坏

如何提升\theta?Policy gradient ascent 策略梯度上升

但到目前为止我们还不知道Q_{pi}从哪里来

1玩完一整局游戏 对s_{1},a_{1},r_{1},s_{2},a_{2},r_{2},...,s_{T},a_{T},r_{T}全部记录,然后更新策略网络

2actor-critic方法

策略网络Policy network(actor 运动员) 训练通过改进\theta去改进pi行为(使运动员做打分高的动作)

价值网络Value network(critic裁判) 训练通过改进w去预测Q打分(让裁判打分更准)

利用TD算法更新value network q价值网络的参数w

用策略梯度更新\theta  

Behavior Cloning是一种模仿学习 它没有奖励

 MCTS蒙特卡洛树搜索四步

1section选出分数最高的动作

2expansion用策略网络预测对手可能的动作,产生新的状态

3evaluation通过自我博弈和价值网络算出分数

4backup更新分数

Sarsa 训练action-value function(critic) Q

TD target:y_{t}= r_{t}+\gamma *Q(s_{t+1},a_{t+1})

Q-Learning 训练optimal action-value function  Qstar

TD target:y_{t}= r_{t}+\gamma *maxQ(s_{t+1},a)

如果上面的r_{t}不只有一个

则称为Multi-Step TD Targets  这是对TD target的改进

Dueling Network对神经网络的改进

Optimal advantage function优势函数

Theorem1:A^{*}(s,a)=Q^{*}(s,a)-V^{*}(s).

Theorem2:Q^{*}(s,a)=V^{*}(s)+A^{*}(s,a)-maxA^{*}(s,a).

得到Dueling Network:Q(s,a;w)=V(s;w^{v})+A(s,a;w^{A})-maxA^{*}(s,a;w^{A}).

这数学推导看得让人头疼

今天的学习到此为止吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值