百度飞桨世界冠军带你从零实践到强化学习-强化学习简介

强化学习

  • 强化学习
    • 概念及应用
    • 核心知识
    • 强化学习初印象
  • 算法篇
    • 基于表格型方法
    • 基于神经网络方法求解RL
      • 神经网络计算表格
      • DQN
    • 基于策略梯度求解RL(待续)
    • 连续动作空间上求解RL(待续)

强化学习,很早接触这个概念是从AlphaGo开始的,也看过一些基础的理论知识,但限于工作内容的关系,跟着课程一边学习、一边实践还是第一次,虽然还只是copy and execute的阶段,但收获还是很大。

强化学习

概念及应用

理论知识:强化学习就是智能体(Agent)与环境(Env)不断交互并学习知识的一个过程,也就是通过交互了解环境状态(State),然后根据这个状态采取一定的行动(Action),这个行动作用于环境之后会产生相应的奖励(Reward)及更新后的环境状态,最终获得更好的动作。
Alt

应用:从上面概念中可以看出,强化学习在跟环境的交互中是会产生一序列的动作,并根据奖励做出决策(动作),那么具备这种特点的场景都可以尝试使用强化学习来解决:
1.智能推荐(是体育还是时政等)
2.股票预测(是买还是卖)
3.交通信号灯控制(是停还是通过,甚至多长时间)

核心知识

1.强化学习的特点:奖励延迟,试错学习
奖励延迟就是指智能体只有在完成一序列动作完成之后才能获取奖励,虽然每一次动作会有即时奖励,但还要考虑这个动作对于未来一序列动作的影响,最终决定在这个状态下,采取这个动作是好是坏。比如说在下围棋时,下了某一步棋,可能这一步会有收获(吃掉几个子),但可能最终是个败招(输掉这一局),那最终的奖励会很低。
试错探索因为奖励是有延迟的,那么就要不断的去尝试,才能知道在这个状态下这个动作是好是坏。
2.强化学习与监督学习、无监督学习之间的区别和关系
它们都属于机器学习中的一个分支,监督学习其实是任务驱动型的,根据任务比如分类或回归来提供样本;无监督学习是数据驱动型,需要去发现数据之间的联系,比如聚类;强化学习是环境驱动性的,需要与环境做交互,获取状态,采取行动获取奖励,根据奖励不断去修正动作。
虽然它们属于三个不同的领域,但是DeepLearning的发展也给三个领域带来了性能的突破。

强化学习初印象

Alt

算法篇

基于表格型方法

强化学习四元组
Alt
前面我们讲了强化学习的目的是为了做出最优的决策,也就是在某个状态下采取的奖励最高的动作。那么我们可以把奖励看成是状态和动作的一个二维表格,先设计一个初始值,然后去不断的更新表格,最后收敛到一条价值水平最高的路线

Alt
更新这个表格的方法有两种:SARSA和Q-Learning
1.两者的共同点。
1.1 折扣因子,也就是当下的奖励是当前奖励和未来奖励乘以一个系数的和,这个系数就是折扣因子,通常是(0,1)之间,越小表示越关注当下,越大表示关注的更长远
1.2 随机探索策略,在某个状态下我们可以按照Q表格一直选择最优的动作,但是也有的动作概率低但是是最佳的通道,那么随机探索策略就保留了这样的一个可能
2.两者不同点
两者不同点在于更新Q表格的时候所采用未来的奖励选取方式不一样,SARSA是采取了动作,并计算出这个动作得到的奖励,而Q-Learning是直接在当前表格中选取奖励最高的那个动作来计算奖励更新
Alt

基于神经网络方法求解RL

当转态可数的时候,所有的状态都可以用Q表格装下然后进行处理。但是状态太多了,无法完全记录怎么办呢???那么我可以采用带参数的Q函数来代替Q表格,Q函数可以用多项式来表达,而神经网络可以用来拟合任意的多项式函数,所以产生了用神经网络方法来更新Q函数。
ps:国际象棋 1047种状态,围棋 10170,宇宙原子数量近1080,某个区间的角度转态正无穷。

神经网络计算表格

之前是用一个表格来更新状态和动作函数,神经网络只需要一个网络,通过输入状态就能得到各个动作下的奖励,并进而更新表格
Alt

DQN

神经网络是利用真实的标签值来约束预测的结果,即利用两者之间的均方差,通过不断缩小两者的差距,并反向更新权值来达到最优效果。
那么DQN中的真实值是什么呢?实际上在真实环境中我们也不知道执行这个动作之后会得到多少奖励,那么DQN就是利用历史的经验值来代替真实的标签,但因为这个值是随着迭代不断的变化,如果就采用这样的方式来动态替代真实值的话,那么训练会很不稳定,DQN另外一个策略就是固定Q目标,是每个一段时间再更新目标,从而使得学习更稳定。总结起来DQN提出了两个创新指出:经验回放和固定Q目标。
Alt
DQN的两大特点:
1.经验回放。
增加一个缓冲区,存放历史探索数据,并定期更新,使得做出的决策越来越优
2.固定Q目标。
在监督式学习中目标值是稳定的,预测值只要不断的靠近真实值y即可
但是在DQN中Q的目标值是,这个值是不断变化的,是有波动的可变值。
固定Q目标就是在一段时间内把Q固定,也就是单位时间内Q值是不动的,单位时间后再进行更新,这样子可以促进稳定。

基于策略梯度求解RL(待续)

连续动作空间上求解RL(待续)

你可能感兴趣的:(强化学习)