机器学习:对于某类任务T和性能度量P,计算机程序在T上以P衡量的性能随着经验E而自我完善
三个特征:任务的种类、衡量任务提高的标准、经验的来源
以跳棋为例的设计流程:
一.选择训练经验:
训练经验的三种属性:
1.训练经验能否为系统的决策提供直接或间接的反馈,从直接的训练反馈学习比间接的训练反馈学习容易,因为间接样例常涉及回溯和信用分配,比如棋类,对较早走子的正确性需要最终棋局结果来判定
2.学习器可以在多大程度上控制训练样例,有3种情况:训练样例以超乎学习器控制的随机过程提供;学习器向施教者查询;学习器通过自动搜索环境搜集训练样例
3.训练样例的分布能多好的表示实际样例的分布
二.选择目标函数
程序需要学会在合法的走子中选择最佳走子,合法走子定义了一个已知的巨大的搜索空间,最佳的搜索策略未知。要学习的信息类型是一个函数,输入是合法棋局集合中的棋盘状态,输出是合法走子集合中的某个走子。提高任务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,得到本轮的估计值
调整权值:常用的方法是误差平方和最小:
LMS法则:即最小均方法,对每个训练样例,把权值向减小这个训练数据误差的方向略微调整,这个方法是对可能的假设空间进行随机的梯度下降搜索,以使误差平方和E最小化,LMS算法步骤:
对每个训练样例,使用当前的权计算V(b),对每个权值
进行如下更新
,
其中是一个很小的常数,用来调整权值更新的幅度
五.最终设计
核心组件如下: