Tom Mitchell 机器学习 — 学习笔记(1)
2016-03-10 12:30
260 查看
Tom Mitchell 机器学习 — 学习笔记(1)
第1章 引言
1.1什么是机器学习
计算机程序如何随着经验积累自动提高性能系统自我改进的过程
历史
成功应用
学习识别人类讲话
学习驾驶车辆
学习分类新的天文结构
学习对弈西洋双陆棋
1.2学习问题的标准描述
定义如果一个计算机针对某类任务T的用P衡量的性能根据经验E来自我完善,那么我们称这个计算机程序在从经验E中学习,针对某类任务T,它的性能用P来衡量。
西洋跳棋学习问题的解释
E,和自己下棋
T,参与比赛
P,比赛成绩(或赢棋能力,击败对手的百分比)
手写识别学习问题
机器人驾驶学习问题
定义太宽泛
甚至包括了以非常直接的方式通过经验自我提高的计算机程序
实际的机器学习问题往往比较复杂
定义一类问题
探索解决这类问题的方法
理解学习问题的基本结构和过程
2.1设计一个学习系统
基本设计方法和学习途径(以西洋跳棋为例)
选择训练经验
选择目标函数
选择目标函数的表示
选择函数逼近算法
最终设计
2.2西洋跳棋学习问题
任务T,下西洋跳棋性能标准P,击败对手的百分比
训练经验E,和自己进行训练对弈
学习系统需要选择
要学习的知识的确切类型
对于这个目标知识的表示
一种学习机制
2.2.1选择训练经验
第一个关键属性,训练经验能否为系统的决策提供直接或间接的反馈第二个重要属性,学习器在多大程度上控制样例序列
第三个重要属性,训练样例的分布能多好地表示实例分布,通过样例来衡量最终系统的性能
2.2.2选择目标函数
目标函数ChooseMoveChooseMove: B->M,接受合法棋局集合中的棋盘状态作为输入,并从合法走子集合中选择某个走子作为输出
问题转化
我们把提高任务T的性能P的问题转化(或简化)为学习像ChooseMove这样某个特定的目标函数
ChooseMove的评价
学习问题很直观地转化成这个函数
这个函数的学习很困难,因为提供给系统的是间接训练经验
另一个目标函数V
一个评估函数,V: B->R,它为任何给定棋局赋予一个数值评分,给好的棋局赋予较高的评分
优点,学习简单
V的应用
根据V能够轻松地找到当前棋局的最佳走法。
V的设计,对于集合B中的任意棋局b,V(b)定义如下
如果b是一最终的胜局,那么V(b)=100
如果b是一最终的负局,那么V(b)=-100
如果b是一最终的和局,那么V(b)=0
如果b不是最终棋局,那么V(b)=V(b’),其中b’是从b开始双方都采取最优对弈后可达到的终局
上面设计的缺陷
递归定义
运算效率低
不可操作
简评
学习任务简化成发现一个理想目标函数V的可操作描述。
通常要完美地学习这样一个V的可操作的形式是非常困难的。
一般地,我们仅希望学习算法得到近似的目标函数V’,因此学习目标函数的过程常称为函数逼近。
2.3选择目标函数的表示
2.31函数的表示
一张大表,对于每个唯一的棋盘状态,表中有唯一的表项来确定它的状态值规则集合
二项式函数
人工神经网络
2.32重要的权衡过程
一方面,我们总希望选区一个非常有表现力的描述,以最大可能地逼近理想的目标函数另一方面,越有表现力的描述需要越多的训练数据,使程序能从它表示的多种假设中选择
一个简单的表示法,对于任何给定的棋盘状态,函数V可以通过以下棋盘参数的线性组合来计算。
x1,黑子的数量
x2,红子的数量
x3,黑王的数量
x4,红王的数量
x5,被红子威胁的黑子数量
x6,被黑子威胁的红子数量
2.33目标函数
V(b)=w0+w1x1+w2x2+…+w6x6其中,w0…w6是权值,表示不同棋局特征的相对重要性
至此,问题转化为学习目标函数中的系数(即权值)
写作日期:2016年3月10日
相关文章推荐
- 从大象安全套到超级表格
- JS中的call()和apply()方法
- 2588: Spoj 10628. Count on a tree
- 博客搬迁至http://blog.lizorn.com/
- bfs2016.3.6
- springmvc学习笔记(10)-springmvc注解开发之商品修改功能
- Java的注解与使用
- maven 制作 alipay-sdk-java包到本地仓库
- 条件随机场(Conditional random fields,CRFs)文献阅读指南
- cf B. Guess That Car!
- springmvc学习笔记(9)-springmvc整合mybatis之controller
- jQuery框架学习总结
- Yii去掉index.php?r=
- drop database 使用通配符批量删除数据库
- UIScrollView的delaysContentTouches与canCencelContentTouches属性
- 天下网上系统使用及介绍
- 天下网上系统使用及介绍
- JavaScript 为什么要通过原型 prototype 调用函数, 而不是直接调用?
- 天下网上系统使用及介绍
- [LeetCode]Combination Sum