AI与Python - 强化学习

在本章中,您将详细了解使用Python在AI中强化学习的概念。

强化学习的基础知识

这种类型的学习用于基于评论者信息来加强或加强网络。也就是说,在强化学习下训练的网络从环境中接收一些反馈。然而,反馈是有评价性的,而不是像监督学习那样具有指导性。基于该反馈,网络执行权重的调整以在将来获得更好的批评信息。

这种学习过程类似于监督学习,但我们的信息可能非常少。下图给出了强化学习的框图 -
AI与Python - 强化学习

构建块:环境和代理

环境与代理是人工智能强化学习的主要组成部分。本节将详细讨论它们 -

代理人

代理商是指通过传感器感知其环境并通过效应器对该环境起作用的任何事物。

  • 一个人的代理人有感觉器官如眼,耳,鼻,舌和皮肤平行的传感器和其他器官如手,脚,嘴,用于效应。

  • 甲机器人剂代替摄像机和用于传感器红外线测距仪,和各种马达及致动器用于效应器。

  • 一个软件代理已编码的比特串作为它的方案和行动。

代理术语

人工智能中强化学习中使用以下术语 -

  • 代理的绩效衡量 - 这是衡量代理人成功程度的标准。

  • 代理行为 - 代理在任何给定的感知序列之后执行的操作。

  • 知觉 -这是代理在给定的情况下感知输入。

  • 感知序列 - 它是代理人迄今为止所感知的所有历史。

  • 代理功能 - 它是从序列到动作的映射。

环境

某些程序在完全人为的环境中运行,仅限于键盘输入,数据库,计算机文件系统和屏幕上的字符输出。

相比之下,一些软件代理,例如软件机器人或软机器人,存在于丰富且无限的软机器人域中。模拟器具有非常详细和复杂的环境。软件代理需要实时从一系列动作中进行选择。

例如,设计用于扫描客户的在线偏好并向客户显示有趣项目的软机器人在真实环境和人工环境中工作。

环境属性

环境具有多重属性,如下所述 -

  • 离散/连续 - 如果存在有限数量的不同的,明确定义的环境状态,则环境是离散的,否则它是连续的。例如,国际象棋是一个离散的环境,而驾驶是一个连续的环境。

  • 可观察/部分可观察 - 如果可以从感知中确定每个时间点的完整环境状态,则可以观察到; 否则只能部分观察到。

  • 静态/动态 - 如果代理正在运行时环境没有改变,那么它是静态的; 否则它是动态的。

  • 单个代理/多个代理 - 环境可能包含其他代理,这些代理可能与代理的代理相同或不同。

  • 可访问/无法访问 - 如果代理的传感设备可以访问完整的环境状态,则该代理可以访问该环境; 否则它无法访问。

  • 确定性/非确定性 - 如果环境的下一个状态完全由当前状态和代理的行为决定,那么环境是确定性的; 否则它是不确定的。

  • 情节/非情节 - 在情节环境中,每集都由代理人感知并随后行动起来。其行动的质量仅取决于剧集本身。后续剧集不依赖于前一集中的动作。情境环境要简单得多,因为代理人不需要提前思考。
    AI与Python - 强化学习

用Python构建环境

为了构建强化学习代理,我们将使用OpenAI Gym软件包,可以在以下命令的帮助下安装 -

pip install gym

OpenAI健身房有各种环境,可用于各种用途。其中很少是Cartpole-v0,Hopper-v1和MsPacman-v0。他们需要不同的引擎。的详细资料OpenAI健身房上可以找到https://gym.openai.com/docs/#environments。

以下代码显示了cartpole-v0环境的Python代码示例 -

import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
   env.render()
   env.step(env.action_space.sample())

用Python构建环境
您可以以类似的方式构建其他环境。

用Python构建学习代理

为了构建强化学习代理,我们将使用如图所示的OpenAI Gym包 -

import gym
env = gym.make('CartPole-v0')
for _ in range(20):
   observation = env.reset()
   for i 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(i+1))
         break

AI与Python - 强化学习
观察到cartpole可以平衡自己。

上一篇:Scala学习笔记--提取器unapply


下一篇:Vivado简单调试技能