机器学习基本概念

机器学习:对于某类任务T和性能度量P,计算机程序在T上以P衡量的性能随着经验E而自我完善

三个特征:任务的种类、衡量任务提高的标准、经验的来源

以跳棋为例的设计流程:

一.选择训练经验:

训练经验的三种属性:

1.训练经验能否为系统的决策提供直接或间接的反馈,从直接的训练反馈学习比间接的训练反馈学习容易,因为间接样例常涉及回溯和信用分配,比如棋类,对较早走子的正确性需要最终棋局结果来判定

2.学习器可以在多大程度上控制训练样例,有3种情况:训练样例以超乎学习器控制的随机过程提供;学习器向施教者查询;学习器通过自动搜索环境搜集训练样例

3.训练样例的分布能多好的表示实际样例的分布

二.选择目标函数

程序需要学会在合法的走子中选择最佳走子,合法走子定义了一个已知的巨大的搜索空间,最佳的搜索策略未知。要学习的信息类型是一个函数ChooseMove:B\rightarrow M,输入是合法棋局集合中的棋盘状态,输出是合法走子集合中的某个走子。提高任务T的性能P的问题,就是学习某个特定的目标函数的问题,这就是机器学习的目的。

这里选择评估函数,对棋盘的每个状态进行评分,好的棋局赋值高分数,若学会了这个函数V,那么就可以找到当前棋局对应的最佳走法,只要遍历所有合法走子后的棋盘状态,选择分数最高的即可。定义V(b)如下:

若b是最终的胜局,那么V(b)=100

若b是最终的败局,那么V(b)=-100

若b是最终的和局,那么V(b)=0

若b不是最终棋局,那么V(b)=V(b'),其中b'是从b开始双方都采取最优对弈后可达到的棋局

这是一个理想目标函数,用递归实现,很难学习,学习目标函数的过程其实是函数逼近,即期望学习到的是近似目标函数

三.选择目标函数的表示

有几种选择,比如一个大表,每种棋局对应唯一值;采用一个和棋盘特征相关的二次多项式函数;人工神经元网络等。这里选择一个简单的表示,使用二次多项式函数,采用如下棋盘特征:

棋盘上黑子的数量

棋盘上红字的数量

棋盘上黑王的数量

棋盘上红王的数量

被红子威胁的黑子数量

被黑子威胁的红子数量

得到目标函数表示:V=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}

其中w_{0}w_{6}是权,也就是要通过学习获取的值,也就是这个机器学习任务的最终目的

四.选择函数逼近算法

为了学习目标函数需要训练样例,每个样例描述了当前棋盘状态和训练值,即一个形如<b,V_{train}(b)>的序偶,一个训练过程如下:

估计训练值:V_{train}(b)\leftarrow V(Successor(b)),意思是,使用走一步之后的棋盘状态,应用当前学习到的V,得到本轮的估计值

调整权值:常用的方法是误差平方和最小:

E\equiv \sum_{<b,V_{train(b)}>\in training examples}^{N}(V_{train}(b)-V(b))^2

LMS法则:即最小均方法,对每个训练样例,把权值向减小这个训练数据误差的方向略微调整,这个方法是对可能的假设空间进行随机的梯度下降搜索,以使误差平方和E最小化,LMS算法步骤:

对每个训练样例<b,V_{train}(b)>,使用当前的权计算V(b),对每个权值w_{i}进行如下更新

w_{i}\leftarrow w_{i}+\eta (V_{train}(b)-V(b))x_{i}

其中\eta是一个很小的常数,用来调整权值更新的幅度

五.最终设计

核心组件如下:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值