0%

强化学习1——概述

概述:强化学习一些相关知识的介绍。

基本概念

强化学习与监督学习的区别

  1. 数据间关系差异:监督学习的训练数据之间一般是独立的,每一条数据都会有反馈,强化学习则是每一步与时间顺序前后关系紧密,多步执行之后才会有反馈。

  2. 目标不同:强化学习是的目标是看重行为序列的长期受益,监督学习则是关注输入数据的输出与标签间的误差。

  3. 评价指标不同:强化学习的奖惩概念是没有正确和错误之分的,而监督学习的输出的标签是存在正确与错误的区别的。

  4. 环境交互能力不同:强化学习是一个学习+决策的过程,具有和环境的持续交互能力(交互的结果以奖惩的方式返回),而监督学习则不具备这种与环境进行交互的能力。

强化学习要素

  • 行为:研究对象要有有限中行为可以进行选

  • 状态:随着对象采取不同的行为,对象的状态表示发生变化

  • 奖惩函数:设计好函数,当研究对象在某种情况给与奖励,某些情况下给与惩罚

经典算法

  • QLearning

  • Saras

  • DQN(Deep Q Learning)

强化学习基本框架

模型

  强化学习与一般地机器学习算法的基本框架略有不同,再强化学习中不再需要实现forward() 函数进行前向传播,而是需要实现choose_action()行为选择策略的设定、实现learn()函数实现参数更新策略的设定。

1
2
3
4
5
6
7
8
9
10
11
12
class DQN(object):
def __init__(self):
pass

# 根据当前状态状态进行行为选择
def choose_action(self, obs):
...
return action

# 根据Q估计与Q现实之间的差值进行参数网络参数更新
def learn(self):
pass

  强化学习模型的基本参数包括:

  • epsilon: 贪心算法的系数,即有epsilon的概率选择Q值最大的action,1-epsilon的概率随机选择action
  • gamma: 未来期望转移系数,未来奖励的系数值
  • learning_rate:进行网络优化的学习速率

模型使用策略

  强化学习算法是通过不断的尝试去使agent学习到如何能够获取到更高的分数,但是最终要评价强化学习模型的效果,一般要从训练好的强化学习模型能够通过有限次尝试就能达到预期效果,与传统的机器学习的评价方式不太一样。

模型使用场景

  强化学习适用的场景需要满足以下几个条件:

  • 具有有限个可定义的Action
  • 状态空间可定义,并且Action的选择会引起状态的变化
  • Reward可以较为贴合的定义

这里最容易出现的问题是构建的模型中action的选择执行并不会因起状态的变化,强行套用RL框架来构建“伪强化学习”,这里要特别注意

这里需要明确的几个单词在强化学习中的含义:

  • epoch: 这在强化学习中一般指做几次重复独立实验,而不是传统的机器学习中的整个训练集遍历过一次

  • episode:一个episode就是在数据集中抽取一次样本,进行后续的action

  • max_step: episode终止条件之一,在一个episode中可以执行action的次数,超出次数则认为这次强化学习失败,终止当前epidode