然后做了些简单的笔记

基本概念

强化学习两种随机性来源:

  1. 动作
  2. 状态转移

P1 基本概念_重置

轨迹:包含 状态、动作、奖励 三个参数

Rewards and Returns

Return:回报(cumulative future reward 未来的累计奖励)

P1 基本概念_重置_02

 

\[1.未来的奖励不如现在实际获得的好 \\ 2.所以未来的奖励R_{t+1}的权重应该要小于现在的R_t \]

 

所以强化学习中经常使用 Discounted Return (折扣回报)

P1 基本概念_ide_03

其中γ是自调参数 对于学习效率存在影响

Value Function 价值函数

P1 基本概念_深度强化学习_04

最优动作价值函数:

P1 基本概念_迭代_05

状态价值函数:

P1 基本概念_强化学习_06

评价:

P1 基本概念_迭代_07

AI控制智能体打游戏的两种方法:

P1 基本概念_深度强化学习_08

第一种是基于策略方法 :

 

\[通过观测每个动作S_t 然后输入到π函数中 得到每个动作的概率 然后通过概率抽样得出执行动作a_t \]

 

第二种是基于价值:

 

\[根据Q^*函数来做动作,每个动作S_t,通过Q^*函数来评价做这个动作的价值好坏\\(多少),然后来选择一个价值最高的动作 \]

 

OpenAI Gym

P1 基本概念_重置_09

强化学习经常用的标准库

有几大类控制问题

  1. 给小车左右力来实现木棍竖直 给钟摆力使木棍竖直
  2. 小游戏问题 乒乓球、飞机大战、打砖块
  3. 连续控制问题

P1 基本概念_重置_10

P1 基本概念_迭代_11

P1 基本概念_深度强化学习_12

使用gym

#官网首页给的demo
import gym
env = gym.make("CartPole-v1")   #使用gym.make() 生成环境 里面的参数是需要解决的问题 
observation = env.reset() #重置环境
for _ in range(1000):
  env.render() #渲染 也就是展示出来动画
  action = env.action_space.sample() # your agent here (this takes random actions)
    #随机均匀的抽样函数
  observation, reward, done, info = env.step(action)
#done是判断游戏是否结束 done==1 表示游戏结束
  if done:
    observation = env.reset()
env.close()

实际运行效果:

P1 基本概念_强化学习_13

总结

P1 基本概念_ide_14

强化学习的流程P1 基本概念_重置_15

 

\[对于每一个状态情形S_t,我们智能体根据算法作出动作a_t,然后得到下一个状态\\s_{t+1}和一个回报r_t,并以此迭代\\ 强化学习学的主要是π函数或者是Q^* \]