首页 AI学术青年与开发者社区

绝对贪婪策略的不足:

reward改变的情况下,过去积累的reward印象策略,给策略选择一个微小的随机性,

Epsilon Greedy Policy 给策略选择一个微小的随机性,使agent 更可能选择时使Q最大

Control

目的获得最优策略

On-policy learning:策略评估和改善是同步进行的,求得目标最优Q值,然后选取某一个策略,蒙特卡洛基于两步走。一套episode 系统同时探索和策略改进

Off-policy learning 两套系统 策略评估和改善不直接用于产生agent的policy 一个探索学习并成为optimal policy 另一个用来逼近上述策略。

On-policy learning 通过探索和利用Exploitation 交替迭代完成

先策略评估 e-greedy(Q)更新策略,e如何选取?

e如何选取?在agent与环境刚开始交互时,agent对环境知之甚少,这时需要大量探索;为了尽可能更多了解环境,agent动作选取需要多样化(随机选取)。2 后面的迭代 agent对环境了解足够多,后面需要选择greedy policy

e选取只要满足条件 状态度量空间是无线的 策略收敛到argmaxQk agent就是一定达到最优策略。e=1/i

算法步骤

1)初始化变量

2)通过Epsilon-greedy获得起始策略

3)进行策略评估

4)进行策略迭代

5)不断重复上述步骤直到达到收敛

Incremental Mean 增量均值

采样之后 相加求均值,写成计算机语言 需要遍历每一个episode,每一次的变化迭代,μk=μk-1 + 1/k (xk-μk-1)

满足GLIE Monte-Carlo Control算法 每次生成新的策略再不断迭代直到生成收敛的结果。

2个policy 一个是target policy 一个是behavior policy 前者学习成为optimal policy 后者用于探索Exploration。

因此学习过程变化为behavior policy 不断更新参数,target policy 去逼近前者分布

 

[展开全文]

建模成马尔可夫决策过程,动态规划方法,一般或者最优策略,对状态转移概率清楚,遍历并选择策略,评价策略好坏,更新策略

现实中无法知道环境,不知道状态,不知道概率,对于这类序列决策问题

蒙特卡洛学习 Monte-Carlo Prediction

目标:Agent Environment

寻找最优策略 使得期望Q(S,W)最大化

动态规划知道所有环境,我们需要知道环境的一个近似,MC方法从episodes开始学习,model free是生活中大多数的模型,RL分为基于值函数的学习,或者基于策略的学习。

MC complete episodes no bootstrapping

MCuses simplest possible idea value= mean return

Caveat can only apply MC to episodic MDPs

terminate

蒙特卡洛学习全球十大算法排名第二,对多次环境的采样对环境进行模拟。

Monte-Carlo Prediction: 评价当前策略好坏,一般思想:对于任意给定策略π,agent 执行action,估计相应的状态值。我们需要通过执行episode 中出现状态s的数目N(s),多次reward 值得平均值来计算相应的动作值或者状态值。计算有两种方式:第一次预见蒙特卡洛策略的评价,和每次预见蒙特卡洛的评价。

First Visit

做实验 假如每次以1/4概率选取四个选择之一,得到很多状态s,first只取预见第一个s时的at, value is estimated by mean return 趋近于标准期望。

相对于动态规划是绝对贪婪策略,找到最大的return 先用策略得到Q表 然后找到最佳策略,再去更新Q table 再更新策略。

考虑策略的方法是绝对贪婪的

[展开全文]

强化学习基本要素和概念:

  1. 没有监督,只有reward
  2. 反馈是有时延的
  3. 通过不断地试错使得行为获取高分,最后学到的高分行为就是学习到的策略。
  4. Rt表示第t个time step的返回奖赏值,是一个标量scalar
  5. Action来自于动作空间A
  6. State指当前agent所处的状态
  7. Agent执行动作的智能体
  8. Environment,将agent当前状态和操作作为输入,并将代理的奖励和下一个状态作为输出返回
  9. Policy,状态映射到行为的函数,即承诺最高回报的行为
  10. Value长期的平均的总奖赏,相对于短期的reward
  11. Model,训练好的agent
[展开全文]

一、什么是强化学习?

强化学习任务通常使用马尔可夫决策过程(Markov Decision Process,简称MDP)来描述,具体而言:机器处在一个环境中,每个状态为机器对当前环境的感知;机器只能通过动作来影响环境,当机器执行一个动作后,会使得环境按某种概率转移到另一个状态;同时,环境会根据潜在的奖赏函数反馈给机器一个奖赏。综合而言,强化学习主要包含四个要素:状态、动作、转移概率以及奖赏函数。————周志华《机器学习》
 

agent(智能体)在进行某个任务时,首先与environment进行交互,产生新的状态state,同时环境给出奖励reward,如此循环下去,agent和environment不断交互产生更多新的数据。强化学习算法就是通过一系列动作策略与环境交互,产生新的数据,再利用新的数据去修改自身的动作策略,经过数次迭代后,agent就会学习到完成任务所需要的动作策略。

  • 无特定数据,只有奖励信号
  • 奖励信号不一定实时
  • 主要研究时间序列的数据,而不是独立同分布的数据
  • 当前行为影响后续数据
二、强化学习的要素
 

强化学习关键要素:agent(智能体),reward(奖励),action(行为),state(状态),environment(环境)。

agent:主要涉及到:策略(Policy),价值函数(Value Function)和模型(Model)。Policy,可以理解为行动指南,让agent执行什么动作,在数学上可以理解为从状态state到动作action的映射,可分为确定性策略(Deterministic policy)和随机性策略(Stochastic policy),前者是指在某特定状态下执行某个特定动作,后者是根据概率来执行某个动作。Value Function,对未来总Reward的一个预测。Model,一个对环境的认知框架,可以预测采取动作后的下一个状态是什么,很多情况下是没有模型的,agent只能通过与环境互动来提升策略。
state:可以细分为三种,Environment State,Agent State和Information State。Environment State是agent所处环境包含的信息,简单理解就是很多特征数据,也包含了无用的数据。Agent State是输入给agent的信息,也就是特征数据。Information State是一个概念,即当前状态包含了对未来预测所需要的有用信息,过去信息对未来预测不重要,该状态就满足马尔科夫性(Markov Property)。Environment State,Agent State都可以是Markov Property。
environment:可以分为完全可观测环境(Fully Observable Environment)和部分可观测环境(Partially Observable Environment)。Fully Observable Environment就是agent了解了整个环境,显然是一个理想情况。Partially Observable Environment是agent了解部分环境的情况,剩下的需要靠agent去探索。
强化学习算法按照agent分类,可以分为下面几类:

关注最优策略(Policy based)
关注最优奖励总和(Value based)
关注每一步的最优行动(Action based)
 

[展开全文]

强化学习第一讲

1.传统机器学习——有监督学习——回归任务、分类任务

无监督学习——无标签——K-means——超像素分割Superpixel,根据色差 像素 等差异性 进行分类

2. 传统机器学习不能做什么?

实现机器人的特殊舞步

AlaphaGo

3.强化学习

一般性的框架 学习序列决策任务

decision making tasks

4.强化学习还能做什么?

管理、控制

集群的资源管理

智慧城市——交通灯的控制

化学反应的优化——优化配比、催化剂等要素

个性化推荐

[展开全文]

马尔科夫决策过称正式描述强化学习的环境;因此此环境是可以全部观察的;几乎所有的强化学习问题都可以提炼成一个MDP问题

全部观察指环境的所有状态,所有reward集合我们都知道

马尔克夫性 P[St+1|St]=P[St+1|S1,...St]

下一时刻转移的状态之和前一时刻有关和之前的都没有关系

状态转移概率Pss' =P[St+1=s'|St=s]

类似于指数分布

P11指前一时刻状态为1的状态到下一时刻依然在1时刻的概率

Markov chain <S,P> S是状态集合P是状态转移概率矩阵

sleep是一个状态的终止,即进入该状态只会以1的概率待在这个状态,不会进入别的状态

 

状态转移概率矩阵特点 对于每一行 每一列求和都为1,

Markov reward process:<S,P,R,γ>

R是奖赏函数,伽马是折扣系数

Value function值函数是未来奖赏值得预测;可以用来评估当前状态的好坏;agent可以根据此来选择要执行的动作 Vπ(S)=Eπ[Gt|St=s] 当前状态return的期望

Vπ(S)=Eπ[Rt+γRt+1+...|St=s]=Eπ[Rt+γ[Rt+1+Rt+2+...]|St=s]=Eπ[Rt+1+γGt+1|St=s]=Eπ[Rt+1+γv(St+1)|St=s]  V(s)=Rs+γ∑Pss'V(s')(s'属于S)

收获是针对一个马尔可夫链中的某一个状态来说的

MRP矩阵形式 贝尔曼方程v=R+γPv

只需要求得相关转移的逆矩阵就可以求解贝尔曼方程

v=R+γPv; (1-γP)v=R; v=(1-γP)^(-1)R

RL实际问题中转移概率不知道

[展开全文]

强化学习的要素和概念

像婴儿学走路那样
根据正负反馈

不像监督学习有直接反馈,一般是持续数据
对每次行为打分,不告知标准答案,通过不停地试错过程使行为获得高分
通过interaction获得交互
Reward Rt 标量 表示第t个time step的奖赏值,强化学习基于reward假设的
Action 对每次state以及上一状态的reward确定要执行的action,最优策略要最大化reward,所得policy就是action的sequential data
state 当前agent所处的状态
Agent 执行动作的智能体
Environment 将agent当前状态作为输入,并将奖励和下一状态作为输出
Policy 根据当前状态确定下一个操作的策略
Value 长期的平均的总奖赏,相对于短期reward
Model 预测环境接下来会干什么

[展开全文]

基于序列决策过程基础上

马尔克夫决策过程

1.强化学习模型构建

具体优化什么变量?

state 参数更新时和环境交互

环境给Agent一个观察,智能体给一个动作,环境给一个reward 再下一个观察...

数学化

environment将state s0传递给agent,然后action A0,reward R1

即S0 A0 R1 S1 A1...对这些序列 即Episode 学习

每一次的过程称为Episode

Si Ai相当于数据;奖赏值相当于label

目标最大化期望累积奖赏

无法直接优化Rt!

如果只优化一步的Rt,若只考虑一步的Rt,对于总体可能不是最好的,就像贪心算法那样不一定是最好的,随机性太大。

马尔克夫决策过程 MDP

对于某种问题,建立马尔可夫决策过程,然后解该模型。最后通过改模型的参数最大化期望累计奖赏来的得到最优解。

最大化期望累积奖赏: R1+R2+...+Rt+Rt+1+...

Gt=Rt+1+Rt+2...+

只考虑未来时刻和当前时刻的奖赏

但是未来时刻的reward 对当前return影响是不一样的

γ=0就是贪心算法

γ=1就是每一时刻奖赏对当前是一样的

[展开全文]
第三课 RL环境介绍与搭建
3.1 Python环境
sudo apt-get install python3.6
3.2 强化学习环境
Open AI GYM 环境的安装
//清华镜像 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
//安装anaconda

cd downloads
bash anaconda3_4.3.0-linux-x86_64.sh
//创建虚拟环境
conda create --name gymlab python=3.5
//Open AI GYM 安装
source activate gymlab
sudo apt install git
git clone https://github.com/openai/gym.git
cd gym
pip install -e '.[all]'
pip install --upgrade setuptools
pip install numpy matplotlib
pip install opencv-python
//如果安装过程中有错误发生,一般是因为环境包没有安装成功,如
Failed building wheel for atari-py
Failed building wheel for Box2D-kengz
//解决办法
sudo apt-get install cmake
sudo apt-get install -y python-numpy python-dev cmake zlib1g-dev libjpeg-dev xvfb libav-tools xorg-dev
pip install -e '.[all]'

 

Open AI GYM 测试
环境测试代码
import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
    env.render()
    env.step(env.action_space.sample())
import gym

env = gym.make('CartPole-v0')
for i_episode in range(20):
	observation = env.reset()
	for t in range(100):
		env.render()
		print(observation)
		action = env.action_space.sample()
		observation, reward, done, info = env.step(action);
		if done:
			print("Episode finished after {} timesteps".format(t+1))
			break

3.3 深度学习环境搭建

安装官网说明进行安装tensorflow

老师环境配置参考(Win10+CUDA9.0+CUDNN7.5+tensorflow1.9+GYM1.9 + Python3.6+jupyter-notebook)

CUDA+CUDNN(最先安装): https://www.cnblogs.com/tanwc/p/9375161.html

Tensorflow安装:https://www.cnblogs.com/tanwc/p/9375161.html

// 安装jupter notebook
python3 -m pip install --upgrade pip
python3 -m pip install jupyter

 

[展开全文]

强化学习是机器学习的一个分支,与其他类型机器学习的区别:

  • Thers  is no supervisor, only a reward signal.
  • Feedback is delayed, not instantaneous.
  • Time realy matters(sequential).
  • Agent's action affect the subsequent data it receives.
由于只有激励数据,一般来说,强化学习需要通过不停的试错来获取更高的得分。
 
  • Reward:通常被计作Rt,表示第t个time step的激励值。
  • Action:来自于动作空间,智能体对每次所出的状态、以及上一状态的的激励值来确定当前要执行什么动作。执行动作要达到最大化期望激励,知道算法收敛。最终得到的策略就是一系列行为的序列数据。
  • Action:当前智能体所处的状态,不同的情况状态差别很大。
  • Agent:执行动作的智能体。在强化学习算法中算法本身就是一个智能体。
  • Environment:智能体所处的环境。环境将智能体的当前状态和操作作为输入,并将代理的奖励和下一个状态作为输出返回。
  • Policy:是智能体根据当前状态确定下一个操作所采用的策略。它将状态映射到行为,即承诺最高回报的行为。分为确定策略与随机策略。从数学角度出发就是一个函数。
  • Value:长期的平均的总奖赏,相当于一个短期激励。因为强化学习基本上可以总结为通过最大化激励来得到一个最优策略。所以为了很好地客户使包括了未来的当前激励值最大(即从当前时刻开始,移植到状态达到目标的的总激励值最大)。因此构造了值函数来描述这一变量。
  • Model:就是用来预测环境接下来会干什么,即在这一状态的情况下执行某一栋做会达到什么样的状态,这一个动作会得到什么激励。
[展开全文]

授课教师

暂无教师
微信扫码分享课程