强化学习基础内容有哪些?此处笔记根据B站课程,王树森老师的强化学习记录而来。【比啃书效果好多了!】一生推!不愧是王树森教授!6小时带我搞明白了【深度强化学习完整版】草履虫都能看懂的!收藏起来慢慢学!(人工智能/深度学习/AI/强化学习)_哔哩哔哩_bilibili
Random Variable随机变量:
eg:抛硬币,X={x=1,x=2},其中X是随机变量,x是随机变量的观测值
Probability Density Function (PDF)概率密度函数:(连续的、离散的)
eg:高斯分布, 概率密度函数如下:

离散的分布,概率密度如下:

两个性质:

Exception期望:(连续的、离散的)

Random Sampling随机抽样:
eg:抽球游戏(红2,绿5,蓝3)重复多次后,含有统计意义,抽到各色球的概率大致为0.2,0.5,0.3

形象化解释——超级玛丽




| State s | 状态 | |
| Action a | 动作 | 代理做出动作 |
| Agent | 代理 | |
| Policy Π | 决策策略 | 根据观测到的state,决策下一步action,控制agent运动。 策略函数Π实际上就是概率密度函数,动作的选择是随机的。 |
| Reward R | 奖励 | 自定义,奖励函数的好坏,影响强化学习的质量。获得的奖励和要尽可能的高。 |
| state transition | 状态转移 | 状态转移可以固定,可以随机。随机性来自于环境,状态转移函数是条件概率密度P(s'|s,a) |
| agent environment interaction | 代理的环境交互 | ________>Agent__________ | ^ | State s(t+1) |reward r(t) Action a(t) | | | ————Environment<-——--- |
2个随机性的来源:
Actions的随机性:根据策略函数Π,action是随机抽样来的,为什么这样呢?比如,两个人猜拳,如果一个人的选择是固定的,另一个人就很容易预测,他要出什么,那么他就会输。只有随机,别人猜不出,你才有可能赢。
State transitions的随机性,算出条件概率P,随机抽样下一个状态。

轨迹trajectory:

| U(t) | Return 回报,cumlative future reward,未来累计奖励,随机变量,R(t)的加权和 |
| R(t) | t时刻的奖励,随机变量,不同的action导致不同的reward |
未来累计奖励:U(t)=R(t)+R(t+1)+R(t+2)+……,U(t)越大越好
R(t)与R(t+1)之间,当前奖励与未来奖励是否同等重要,引入r折扣回报,eg:未来奖励不如当前奖励重要,则R(t)的权重应大于R(t+1)
Discount Return 折扣回报
U(t)=R(t)+r*R(t+1)+r^2*R(t+2)+……,U(t)是不同时刻R的加权和
R(t),U(t)都是随机变量,即R(t)具有随机性,不同的action导致不同的reward
随机性来自下面两个方面:
测率函数Π: P[A=a|S=s]=Π(a|s),根据当前状态选择下一动作
状态转移函数:P[S'=s'|S=s,A=a]=P(s'|s,a),根据当前状态s和action转移至下一状态s'
在i>=t时,S(i)和A(i)决定了R(i),U(t)与所有的(A(t),A(t+1)……)和(S(t),S(t+1),……)有关
| U(t) | 未来奖励总和,随机变量 |
| Action-value function(QΠ) | 动作价值函数,评价当前动作好不好。U(t)的期望。去除随机性。与Π函数有关,不同的Π采取不同的策略,对应不同的QΠ。 |
| Optimal action-value function | 最优动作价值函数。(QΠ)对Π取最大值。消掉Π |
| State-value function | 状态价值函数,判断当前状态好不好,QΠ对A求期望,消掉A |
U(t)越大越好,知道U(t)就知道快赢了还是快输了?
U(t)是个随机变量,t时刻,根本不知道U(t)是什么。为了评估当前形势,对U(t)求期望。
Action-value function动作价值函数
U(t)是随机变量,依赖于(A(t),A(t+1)……)和(S(t),S(t+1),……),为了消除其随机性,求解期望
QΠ(s(t),a(t))=E[U(t)|S(t)=s(t),A(t)=a(t)]
该函数对action打分,判断当前动作好不好,s(t),a(t)是观测值
进一步的,对Π函数取最大化,则有
Optimal action-value function最优动作价值函数
Q*(s(t),a(t))=maxΠ QΠ(s(t),a(t))
State-value function状态价值函数
判断当前状态好不好。QΠ对A求期望,消掉A。A符合概率密度函数Π(.|s(t))
VΠ(s(t))=EA[QΠ (s(t),A)],Π越好,VΠ的平均值越大


policy Π(a|s): 根据s(t),a(t)~Π(.|s(t)),为agent选择合适的动作——策略学习
optimal action-value function Q*(s,a): 根据s(t)评价每个动作,at=argmax a Q*(s(t),a),最大化价值,选择合适的动作——价值学习

https://gym.openai.com/
有以下几类问题:经典控制问题、Atari Game、连续控制问题(模拟控制问题)
例子:
- '''
- 强化学习的一个小例子,控制小车受力的运动,使杆子能够垂直立起来。
- 这里使一个简单的sample采取动作,小车运动效果并不好。
- '''
- import gym
-
- def cartPole():
- #获取CartPole 的环境,‘env’提供states和reward.
- env = gym.make('CartPole-v0')
-
- state = env.reset()
-
- for t in range(1000):
- #A window pops up rendering cartpole
- #pip install gym[classic_control]
- env.render()
- print(state)
-
- #随机采取行动
- action = env.action_space.sample()
- state, reward, done, info = env.step(action)
-
- #done=1时,意味着结束(赢或者输)
- if done:
- print('Finished')
- break
- env.close()
-
- if __name__=='__main__':
- cartPole()