一、西洋跳棋

西洋跳棋是一种两人棋盘游戏。玩家的棋子都是沿斜角走的。棋子可跳过敌方的棋子并吃掉它。

相关规则参考:Wiki

二、机器学习

通过让程序分析人们购物清单,来分析人们对商品的品牌、价格的偏好。

通过跟踪个人的新闻浏览,分析其兴趣爱好、并为其推荐感觉兴趣的新闻或产品。

通过对已知的手写字符的分析,能够让计算机程序自动的认出手写字符。

以上这些都是机器学习的例子,在今天,机器学习已经不知不觉的进入到人们的生活,也许你为奇怪为什么网页上的广告都是显示你最在在淘宝或京东上最近购买的商品。最终你会发现,你使用的软件,你操作的系统,变得越来越智能。

机器学习:任何计算机程序通过经验来提高某任务处理性能的行为,都称为机器学习。

定义

对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么我们称这个计算机程序在经验E中学习。

既然学习的定义如上面描述,那么我们用机器学习来定义下西洋跳棋。

任务T:下西洋棋

性能标准P:比赛中击攻对手的百分比

训练经验E:和自己或与选手对弈。

三、如何设计一个机器学习系统

上面我们已经把下西洋棋用机器学习的方法表示出来,接下来,我们需要一步一步考虑如何完成这个学习系统的设计。

面临的第一个问题就是训练经验,因为它是整个系统的输入:

首先,这个经验一定要可以为我们下西洋棋每一步的决策提供直接或间接的反馈。直接的经验比如:和种棋盘状态和相应的正确走子;间接的经验比如:根据最终局的胜负或走子序列反馈每步走子的贡献度。

其次,学习器可以在多大程度上控制训练样例序列。可以用一些固定的走子步骤和棋局,可以允许学习器主动地去微调一些走子方式和尝试一些它还未考虑过的全新棋局。

最后,训练样例的分布能多好地表示实例分布,就是说你不能一直让学习系统一直与菜鸟对弈,这样遇到大师级的就不能有很好的表现,因为它会遇到平时训练时没有遇到过的走子或棋位布局。

那么我们就选择和100位水平高低各不相同的选手对弈各100局,总共1万局够成了我们的训练经验。

为了完成这个下棋的学习系统,我们需要选择:

1) 目标函数

2) 目标知识的表示

3) 一种学习机制

目标函数:我们在西洋棋对弈时,能够操作的步骤就是走子,合法的走子有很多种,每一种都会产生一个不同的棋局,我们的目标就是选择出最好的走法,于是定义我们的目标函数是这样的:

目标函数V,并用$V:B \to R$来表示$V$把任何合法的棋局映射到某一个实数值。

我们让目标函数$V$给好的棋局赋予较高的评分,如果系统能够成功地学会这个目标函数$V$,那么它便能使用此函数轻松地找到当前棋局的最佳走法。

于是我们的目标就落在了,怎样给一个棋局评分,我们需要一套规则来给所有的棋局评分。一个棋局,其最直观的形式就是棋局上所有点棋子状态有或没有,比如传统的10*10的棋盘,那每个格子里要么有子,要么没有子,我们可以用1或0表示,这样一局棋局就可以表示为一个10*10的矩阵,矩阵的元素为1或0。

我们会发现这样表示一个棋局还是太抽象,不容易找出判断棋局好坏的规则,我们希望选择一些具有表征能力的描述,以最大可能的代替一个棋局的信息。如果可以选择棋盘上黑子的数量和红子的数量,这时候,较为一般的数量占优的棋局会有较高的评分。下面是我们选择的几个棋盘状态特征:

feature1:棋盘上黑子的数量

feature2:棋盘上红子的数量

feature3:棋盘上红王的数量

feature4:棋盘上黑五的数量

feature5:被红子威胁的黑子的数量

featurn6:被黑子威胁的红子的数量

但是上面6个特征它们说明棋局好坏的能力也不同,有的代表性强,有的代表性弱,所以我们要给它们赋予一定的权重:

$$v(b)=w_0+w_1 x_1+w_2 x_2+w_3 x_3+w_4 x_4+w_5 x_5+w_6 x_6$$

那么V(b)就是一个目标函数,对于每一种走子b,目标函数都可以计算出一个实数值来说明棋局的好坏。

比如黑子赢了的棋局,我们将它的函数值定位为V(bi)=+100,这种情况下,已经没有红子,那么这个棋局就可以表示为:

$$<<x_1=3,x_2=0,x_3=1,x_4=0,x_5=0,x_6=0>,+100>$$

有了上面这些表示,我们就可以运用一些对局的局来训练我们的系统,那么就想通过这些样本来选择一组最合适的权值,让所有棋局与我们最终的预测结果都尽可能一致。

任何一个样本棋局都要表示为这样一个数据对$<b,V(b)>$,其中的$V(b)$我们通过给出来些近似函数$\hat{V}(b)$来手动的标记。

剩下的事情就是为这个学习算法选择最合适训练样例的权。一种常用的方法是把最佳的假设(或权重向量集合)定义为使训练值和假设预测出的值间的误差平方和E最小。

$$E=\sum_{<b,V_{train}(b)>}(V_{train}(b)-\hat{V}(b))^2$$

这里我们可以采用最小均方法来求最佳权值,或叫LSM训练法则

对于每一个训练样本$<b,V_{train}(b)>$

使用当前的权重计算$\hat{V}(b)$

对每一个权重$w_i$进行如下更新:

$$w_i \gets w_i +\eta (V_{train} (b)-\hat{V}(b))x_i$$

这里是一个小的常数,用来调整权值的更新幅度,比如果误差为0时,权值就不会更新。

四、最终的设计

执行系统:这个模块用学会的目标函数(决策器)来下棋。它把一局新的棋局作为输入,然后会产生一组解答路线。

鉴定器:它将一组解答路线生成为一组训练数据。

泛化器:它以训练样本作为输入,产生一个输出假设,作为它对目标函数的估计。

实验生成器:它以泛化器中生成的假设来生成一个决策器,决定每种棋局下应该执行的走子。

五、可靠吗

如此设计的程序能击败人类的西洋跳棋冠军吗?或许不能,部分原因在于我们对目标函数的表示过于简单了,我们可以设计更复杂更具有表征性的特征。学习的方式也是多种多样:

我们可以简单的只储存训练样例,然后去寻找保存的“最接近”的情形来匹配新的情况——最近邻法。

可以产生大量的跳棋程序,让它们相互比赛,保留最成功的程序并进一步用模拟进化的方式来培育或变异它们——遗传算法。

而人们有着不一样的学习机制,我们可以分析或向自己解释比赛中碰到的成败的原因——基于解释的学习。这当然也是机器学习最高级的形式。

机器学习:计算机学习西洋跳棋相关推荐

  1. 【资源放送】机器学习/深度学习最全公开视频大放送!

    文章首发于微信公众号<有三AI> [资源放送]机器学习/深度学习最全公开视频大放送! 该篇小记一下机器学习与深度学习的一些好的基础视频资源. 如果你是刚入门的小白,建议细细阅读一下下面将要 ...

  2. 机器学习 深度学习 ai_人工智能,机器学习,深度学习-特征和差异

    机器学习 深度学习 ai Artificial Intelligence (AI) will and is currently taking over an important role in our ...

  3. 吴恩达《机器学习》学习笔记九——神经网络相关(1)

    吴恩达<机器学习>学习笔记九--神经网络相关(1) 一. 非线性假设的问题 二. 神经网络相关知识 1.神经网络的大致历史 2.神经网络的表示 3.前向传播:向量化表示 三. 例子与直觉理 ...

  4. 吴恩达《机器学习》学习笔记三——多变量线性回归

    吴恩达<机器学习>学习笔记三--多变量线性回归 一. 多元线性回归问题介绍 1.一些定义 2.假设函数 二. 多元梯度下降法 1. 梯度下降法实用技巧:特征缩放 2. 梯度下降法的学习率 ...

  5. 吴恩达《机器学习》学习笔记一——初识机器学习

    吴恩达<机器学习>学习笔记一 一. 什么是机器学习? 二.监督学习 三.无监督学习 初识机器学习 这是个人学习吴恩达<机器学习>课程的一些笔记,供自己和大家学习提升.第一篇内容 ...

  6. 人工智能-机器学习-深度学习的区别与联系

    AI,机器学习,深度学习,这些术语使很多人感到困惑.如果您也是其中之一,那么人工智能-机器学习-深度学习的区别与联系– AI vs Machine Learning vs Deep Learning绝 ...

  7. 计算机游戏比赛,计算机学习系统问世 机器会学习游戏比赛

    腾讯科技讯(过客/编译)一位计算机科学家已经发表了一篇论文详细描述了计算机系统在观看了两分钟长的人类桌游比赛的视频之后如何成功赢得比赛. 计算机科学家研制最新计算机学习系统能学习如何成功赢得游戏比赛 ...

  8. 机器学习 深度学习技术区别_体育技术机器学习金钱和灵感的圣杯

    机器学习 深度学习技术区别 I claim that anyone with a math background and a love of baseball has at one time give ...

  9. AI时代——人工智能技术图谱,它来啦(机器学习+深度学习学习路线)

    导读:人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学.人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目 ...

最新文章

  1. 沃尔沃投资两家以色列科技创企 布局人工智能
  2. 一个例子看懂神马是闭包
  3. 信息学奥赛一本通 1164:digit函数
  4. [爬虫-python]爬取京东100页的图书(机器学习)的信息(价格,打折后价格,书名,作者,好评数,差评数,总评数)
  5. python编程规则_python编程规则
  6. 前端程序员有前途吗?
  7. 卸载anaconda
  8. 利用ajax防止session过期,AJAX实现防止Session过期
  9. 移动磁盘提示使用驱动器中的光盘之前需要格式化文件怎么找回
  10. 凸优化第六章逼近与拟合 6.1 范数逼近
  11. eova常用前端组件介绍
  12. 2022年道路运输企业安全生产管理人员考题及答案
  13. 移动端字体小于12px的解决方案
  14. CodeLens 显示引用
  15. React中实现防抖功能的两种方式
  16. 第二讲:双活灾备方案建设方法论
  17. 数据分析中的常用数学模型实战教程笔记(下)
  18. 二级计算机的office用到哪些函数,计算机二级MS office excel中所用函数整理
  19. Python学习笔记:Python基础使用
  20. 呕心整理Java中的12种常用设计模式以及应用场景

热门文章

  1. Instrumentation框架分析及其使用
  2. 图解 K8S(07):调度利器之亲和与反亲和(服务容灾)
  3. MONTARA酒店集团呈献布吉岛最新奢华宅邸别墅推广综合式养生社区概念
  4. 绿盟科技c语言笔试,绿盟科技全国统一笔试题
  5. Python飞机大战两个问题, 1.字体font 2.import路径
  6. 开发Windows Mobile今日插件 -- 内存电量,桌面便笺,桌面记单词(转自hoodlum1980 ( 發發 ) 的技术博客)
  7. 【附源码】Python计算机毕业设计实验室耗材管理系统
  8. 【OpenSourceC#】PureMVC
  9. 算法:扑克牌相关的一个简单功能示意(纯C实现)
  10. 政府大数据治理体系的框架及其实现的有效路径