强化学习1

强化学习

  • 强化学习
  • 强化学习的交互过程
  • 强化学习-贝尔曼方程
  • 总结
  • Q-learning算法
  • Flappy Bird游戏
  • Deep Q-Network
  • 实现方法
  • 构建模型

强化学习

强化学习:是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。
其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。
这个方法具有普适性,因此在其他许多领域都有研究。
强化学习是智能体以试错的方式进行学习:
通过与环境进行交互获得的奖赏指导行为。
目标是使智能体获得最大的奖赏。
强化学习不同于连接注意学习中的监督学习,
主要表现在强化信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号)
而不是告诉强化学习系统RLS如何去产生正确的动作。
由于外部环境提供的信息很少,RLS必须靠自身的经历进行学习。
通过这种方式,RLS在行动-评价的环境中获得知识,改进行动方案以适应环境。
强化学习过程:
主要包含两个决策,一个是智能代理,可以理解为人或先进的AI算法。
一个是外部环境,也就是我们需要面对和接触的环境,在本文就是Flappy Bird游戏。

强化学习的交互过程

练习投篮动作:
人就是智能代理
外部环境就是篮球场
智能体人接受到当前的状态S,和外部的奖赏r,做出反应动作a,
在这个场景中外部状态就是人观察球场和篮筐的状态。
外部环境就是接受这次的动作a,环境根据这次动作生成状态S,并做出这次的奖赏r。

强化学习-贝尔曼方程

Bellman方程式强化学习的基础和核心。主要有三个概念:
策略函数、状态价值函数、状态-动作价值函数(简称为动作价值函数)
策略函数的含义就是在状态s下应该选择的动作a。强化学习的核心问题就是最优化策略函数从而最大化后面介绍的价值函数。
状态价值函数:是评价策略函数优劣的标准之一。
状态动作值函数:动作价值函数也称为Q函数。
状态价值函数在当前状态的动作是不确定的。
最大化状态价值函数就是求当前状态的最大期望值。
而最大化状态-动作价值函数就是求当前状态下一动作能带来的最大回报值。

总结

强化学习是一个不断训练与学习的过程。

Q-learning算法

Q-learning算法,是一种主流的强化学习算法。
主要思想:
通过建立一个Q-Table的结构,也就是记录每个状态和行为的Q值(可以理解为一种评分)
通过不断的训练,可以得到在任何一个状态下,如果做出每个行为的Q值是多少,这样就可以快速的选择出好的行为。

Flappy Bird游戏

状态的选择:
取小鸟到下一组管子的水平距离和垂直距离作为小鸟的状态。
动作的选择:
向上飞一下、什么都不做
奖赏的选择:
小鸟活着时,每一帧给予1的奖赏;若死亡,则给予-1000的奖赏。
关于Q为动作效用函数,用于评价在特定状态下采取每个动作的优劣,它说智能体的记忆。
在这个问题中,状态和动作的组合是有限的。
理想状态下,在完成训练后,我们会获得一张完美的Q表格。我们希望只要小鸟根据当前位置查找到对应的行,选择Q值较大的动作作为当前帧的动作,就可以无限地存活

Deep Q-Network

本文的目标是要开发一个一般的框架来学习特定游戏的特性并解决这个问题。
本文目标是开发一个卷积神经网络模型,从游戏画面帧中学习特性,并训练模型在每一个游戏实例中采取正确的操作。
本文综述了基于深度学习的卷积神经网络模型在模式识别(图像识别)中的应用,主要从典型的网络结构的构建、训练方法和性能表现3个方面进行介绍。

结合了深层神经网络的强化学习的深度Q网络(DQN)模型,以深层神经网络作为近似函数来代表Q学习中的Q值(动作值)。
优点:
完全无需标记的数据,该模型通过与游戏模拟器的交互。
并且随着时间的推移学会做出很好的决策。
正是这种简单的学习模型以及在Atari游戏时的惊人结果,启发我们采用一个类似的算法来完成本文所涉及的项目。

实现方法

本文是通过训练一个深度卷积神经网络模型进行特定游戏状态下图像的识别与分类。
深度Q学习网络是一个经改进过的Q学习算法训练得到的卷积神经网络。
其输入是原始的游戏画面。
输出是一个评价未来奖励的价值函数。
人工智能系统的任务是提取游戏运行的图像,并输出从可采取的操作集合中提取的必要执行动作。
这相当于一个分类问题,不过与常见的分类问题不同,这里没有带标记的数据来训练模型。
可以采取强化学习,根据执行游戏并基于所观察到的奖励来评价下一个给定状态下的动作,以此来进行模型训练。

构建模型

煽动动作(a=1),不做动作(a=0)
当前状态(框架)是由经预处理的当前帧原始图像与有限数量的先前帧图像构成。
这样每一个状态都将位移地对应小鸟运动到每一位置所遵循的运动轨迹,从而向模型提供实时信息,先前存储的帧数称为超参数。
理想情况下,S_t是从t=1开始的所有帧的函数,不过为了减少状态空间,只使用有限的数量帧。
如前所述,当鸟撞到管道或屏幕边缘时,可以给其一个负面奖励,如果通过了间隙,可得到一个正面的奖励。
样可以像人类玩家一样,尽量避免死亡并尽可能多得分。因此,有两个奖励,分别是rewardPass和rewardDie。折扣系数(γ)为0.9,用于从未来动作获得的奖励

你可能感兴趣的:(强化与提高,机器学习,深度学习,python)