人工智能如何本身玩游戏?

人工智能

近些年来,人工智能在各种媒体大肆宣传报道下又大火了起来。以大众的眼光来看,人工智能看似已经无所不能了,自动驾驶、智能机器人、人脸识别、语音翻译以及下围棋玩游戏等等,这些都不在话下。mysql

正所谓外行看热闹内行看门道,实际上,目前的人工智能所用到的技术主要是一些机器学习算法,属于弱人工智能。虽然它能实现不少神奇的应用,但它的局限性也很大,只有在清楚了解人工智能的机制原理后才不至于被媒体夸大的报道牵着走。这篇文章咱们准备深刻理解人工智能如何本身玩游戏。git

image

机器学习

总的来讲,机器学习是人工智能的一个分支,是实现人工智能的一种途径。机器学习理论主要研究的是一些能让机器自动学习的算法,它能从数据样本中自动学习到规律,而后经过学习到的规律对未知数据进行预测。github

image

机器学习大体能够分为四类:算法

  • 监督学习,监督学习是利用标记了的样本进行学习。
  • 无监督学习,无监督学习则是使用未标记的样本进行学习。
  • 半监督学习,数据样本中只有少许带标记的样本,多数样本都未标记,利用这些样本进行学习。
  • 强化学习,是一种很不一样的学习方式,它没有规则的训练样本和标签,主要经过奖励和惩罚达到学习的目的。

一个小游戏

有个小游戏,以下图,进入入口后初始位置为A,阴影部分表示大炕,踩进去就没命了得重来,操做能够上下左右,最终走到H位置就算胜利。假如不知道哪些是大坑的状况下,让你来玩这个游戏,你会怎么玩?你应该有不少方法来完成这个游戏的。但若是是机器呢?怎样才能让机器本身学会玩这个游戏呢?答案就是强化学习!sql

image

强化学习

《最强大脑》曾经有个挑战项目叫蜂巢迷宫,挑战者不断尝试不断试错。强化学习作法也相似,它主要包含三个概念:状态、动做和回报。一样是以迷宫为例,智能体所在的位置便是状态,从某个位置向某方向走一步则为动做,好比能够向左向右或向上向下,每走一步会产生回报,好比撞到墙就是负回报,好的动做则会带来正回报。并且不只要关注当前的回报,还要关注长期的回报,经过不断试错学习到一个长期回报的动做序列。网络

image

智能体从环境中学习行为策略,也就是如何在环境中采起一些列行为,才能使得奖励信号函数的值最大,即得到的累积回报最大。强化学习经过环境提供的信号对产生的动做的好坏作一种评价,它必需要靠自身经历进行学习。在习得模型后智能体就知道在什么状态下该采起什么行为,学习从环境状态到动做的映射,该映射称为策略。数据结构

以下图,一个智能体经过与环境交互并以必定的策略改变环境,智能体能够从环境中获得状态,而后执行一个动做,接着获得一个即时回报,最后转移到下一个状态。整个过程就能够总结为根据当前观察状态值找到一个最优的动做使得回报最多。并发

image

马尔科夫决策过程

在理解强化学习以前,咱们先了解咱们要解决什么样的问题。其实强化学习过程就是优化马尔科夫决策过程,它由一个数学模型组成,该模型在代理的控制下对随机结果进行决策。机器学习

image

代理能够执行某些动做,例如上下左右移动,这些动做可能会获得一个回报,回报能够是正数也能够是负数,它会致使总分数变更。同时动做能够改变环境并致使一个新的状态,而后代理能够执行另一个动做。状态、动做和回报的集合、转换规则等,构成了马尔科夫决策过程。分布式

决策相关元素

在整个马尔科夫决策过程当中,涉及到如下五个重要的元素。

  • 状态集合,全部可能状态。
  • 动做集合,全部动做,它能使某个状态转换为另外一状态。
  • 状态转移几率,特定的状态下执行不一样动做的几率分布。
  • 回报函数,从一个状态到另外一个状态所获得的回报。
  • 折扣因子,用于决定将来回报的重要性。

image

强化学习训练主要就是计算各个状态下不一样动做的回报,并不是瞬间完成的,而是要通过大量尝试。下一个状态取决于当前状态和动做,而且状态不依赖于先前的状态,没有记忆,符合马尔可夫性。

强化学习是智能体与环境之间的迭代交互,须要考虑几点:

  • 处于某种状态,决策者将在该状态下选择一个动做;
  • 能随机进入一个新状态并给决策者相应的回报做为响应;
  • 状态转移函数选择的动做将影响新状态的选择;

image

强化学习的特色

  • 它是试错学习,由于它没有像监督学习同样的直接指导信息,因此它只能不断去跟环境交互不断试错来获取最佳策略。
  • 它的回报具备延迟性,由于它每每只能在最后一个状态才能给出指导信息,这个问题也让回报的分配更加困难,即在获得正回报或负回报后怎么分配给前面的状态。

image

学习模型

通过不断试错后,最终经过强化学习习得一个模型,该模型可以学习到各个状态下各个动做的质量,有了这个就能完成这个小游戏了。

image

学习过程的大体思路为:入口进去,A点有两个方向,刚开始没有回报,随机选一个方向。若是为下,则一直往下,到达B后发现没路,获得一个负100回报,结束。下次又来到B上面一格,更新本身的回报。不断更新到最后在A处时,往下的回报为-50,那就选择往右。到达D后一样先随机,而后将格子的回报值更新好。由于要看长远点,因此须要看将来n个时刻的回报指望,固然越远的回报值会打折越多。n个时刻综合起来D向右的回报大点,因而往右,到达F。去G的路上的格子通过迭代也都回报值变小,到H的回报值都较大,直到出口。

总结

因此,人工智能玩游戏的机制原理就是强化学习,机器会经过不断尝试不断试错去总结一个拥有长期回报的策略,经过这个策略就能完成游戏。其实如今在不少领域和应用都是经过强化学习来实现的,好比飞行器的飞行控制、控制机器人的行走、学习怎么玩游戏、学习怎么理财投资等等。

image

github

github.com/sea-boat/Ma…

-------------推荐阅读------------

个人开源项目汇总(机器&深度学习、NLP、网络IO、AIML、mysql协议、chatbot)

为何写《Tomcat内核设计剖析》

2018汇总数据结构算法篇

2018汇总机器学习篇

2018汇总Java深度篇

2018汇总天然语言处理篇

2018汇总深度学习篇

2018汇总JDK源码篇

2018汇总Java并发核心篇

2018汇总读书篇


跟我交流,向我提问:

欢迎关注:人工智能、读书与感想、聊聊数学、分布式、机器学习、深度学习、天然语言处理、算法与数据结构、Java深度、Tomcat内核等相关文章

相关文章
相关标签/搜索