强化学习

1. 概括图

强化学习

2. 基本方式

1. 策略学习 Policy learning

state->action 叫做一个policy
相当于每个state做了个action的分类,即找到最好的policy

input: state(界面,图片等)
output: <action0, 70%>, <action1, 20%>, <action2, 10%>…

2. 价值迭代学习

确定方法:Q-learning; DQN及其扩展
目的就是学习价值最大

input: state(界面,图片等)
output: value(<action0, value0>, <action1, value1>…)

3. 环境模型学习 Environment modeling

直到此刻的装态以及行为,预测下一刻的状态以及回报,模拟真实的环境反馈


3. 常见算法

1. Q learning

价值函数:
强化学习
下一状态的最大回报作为价值
策略函数:
强化学习
能够达到价值最大的行为作为策略

目标价值:
强化学习

目标价价值由当前回报r和t+1价值组成

算法:

  • Initialize Q[num_states, num_actions] ( Q(s,a) ) arbitrarily
  • Repeat (for each episode) :
    • Initialize s (observe state)
    • Repeat (for each step of episode) :
      • choose a from s using policy derived from π()
      • take action a, observe r, s’
      • Q(s , a) <- Q(s , a) + α[ r + γmaxa’ Q(s’ , a’) - Q(s, a) ]
      • s <- s’
      • Until s is terminal

例子:

强化学习
强化学习
强化学习
强化学习
强化学习
强化学习
强化学习

补充:

  • 直接用表格查询形式确定回报,适应简单任务
  • 回报矩阵R不变,价值矩阵Q不断更新,价值矩阵描述了从某状态出发的action的不同选择的回报信息
  • 理论上如果信息能够可以用查表(lookup table)表示,Q-learning能够学到最优的policy

2. DQN

同Q-learning的过程类似,迭代优化,Action-Reward不是简单的table,是深度模型学习的目标,并且添加了 experience replay,用于模型训练

Q table无法描述复杂问题,这里用神经网络作为Q函数,优化输出,直接生成<Q, action>,(由图一–>图二)

state
network
action
Q-value
state
network
Q-value, action1
Q-value, action2
Q-value, action3

没有pooling层,因为需要保留位置信息
基本结构:conv1(ReLu)->conv2(ReLu)->conv3(ReLu)->fc4(ReLu)->fc5(Linear)

Loss:

  • loss:
    强化学习

算法:

  • initialize replay memory D
  • initialize action-value function Q with random weights
  • repeat
    • select an action a
      • with probability ε select a random action
      • otherwise select a = argmaxa’(s,a’)
    • carry out action a
    • observe reward r and new state s’
    • store experience <s, a, r, s’> in replay memory D
    • sample random transitions <ss, aa, rr, ss’> in replay memory D
    • calculate target for each minibatch transition
      • if ss’ is terminal state than tt = rr
      • otherwise tt = rr + γmaxa’Q(ss’, aa’)
    • train the Q network using (tt - Q(ss, aa))² as loss
    • s = s’
  • until terminated

3. A3C

  1. Asynchronous 异步
    DQN: 单个agent,单个神经网络,一个环境
    A3C:一个全局神经网络,多个worker agent,每个agent复制一份神经网络,一个环境,单独优化,通过独立的进行多个worker agent训练,增加训练的多样性

  2. Actor-Critic 演员 - 评论
    演员:相当于一个policy,policy就是估计最好的action,即根据神经网络求出state下action的概率分布
    评论:value,不同action能得到的回报
    Value和policy结合,通过全连接层生成,类似于duelingDQN

  3. Advantage 不仅考虑模型的回报,还考虑某个具体action带来的贡献的大小
    A = R - V(s)
    A: advantage,R:当前reward,V(s):value函数,advantage用于value loss的计算

三个A结合:

  • value loss:L = ∑(R - V(s))²
  • policy loss:L = log(π(s)) * A(s) + β*H(π)

流程图:
强化学习
强化学习