一、机器学习的一些成功应用
1. 识别人类语言:SPHINX系统 - 识别基本的音素(phoneme)单词/神经网络学习&隐马尔可夫模型的应用
2. 学习车辆驾驶:ALVINN系统 - 基于传感器的控制问题,在车辆中进行穿行驾驶
3. 分类新的天文结构:从各种大规模数据库中发现隐藏的一般规律 - 决策树算法被NASA用于天体分类
4. 博弈类棋局:Alpha Go - 围棋
二、关联学科
1. 人工智能:学习概念的符号表示。作为搜索问题的机器学习,利用先验知识和训练数据一起引导学习
2. 贝叶斯方法:作为计算假设概率基础的贝叶斯法则。朴素贝叶斯分类器。
3. 计算复杂性理论
4. 控制论
5. 信息论:熵和信息量的度量。学习最小描述长度
6. 哲学
7. 心理学和神经生物学:实践的幂定律(power law of practice)- 对于很大范围内的学习问题,人的反应速度会随着实践次数的幂级提升
8. 统计学
三、学习问题的标准描述
1. 定义:如果,一个计算机程序针对某些任务T的、用P衡量的性能、根据经验E来自我完善,
那么,我们称这个计算机程序从经验E中学习,针对某些任务T,它的性能用P来衡量。
2. 为了完成一个学习系统的设计,除了确定ETP,还需要选择:要学习的知识的确切类型+对这个目标知识的表示(目标函数)+一种学习机制
【举例】
AlphaGo: 任务T是围棋博弈;性能P是赢得博弈;经验E是与自己博弈/过往的棋局。
3. 选择训练经验的3个关键属性:
(1)训练经验能否为系统的决策提供直接/间接反馈(直接反馈:如棋盘状态或相应的正确走子;间接反馈:过往对弈的走子序列及其最终结局)
对于间接反馈,还涉及到信用分配问题:每一步行动对最终结果的权重/贡献程度
(2)学习器能在多大程度上控制训练样例序列
- 学习器依赖于施教者选取的棋盘状态和所提供的每一次正确移动
- 学习器提出它发现的特别困惑的棋局,并向施教者询问正确的走子
- 学习器可以完全控制棋盘状态和训练分类
*对于最后1种学习器的控制,有2种情况:1.试验它从未考虑过的全新棋局;2.在它目前发现的最优路线上的微小变化上对弈
(对于学习器的控制程度,后续章节会提到一些学习框架,包括了训练经验以随机过程提供;学习器可以提出查询;学习器自动探索来搜索训练样例)
(3)训练样例能多好地代表实例分布
4.选择目标函数
(1)合法(legal)走子:定义了某个巨大的搜索空间,但是搜索策略未知
(2)目标函数:学习从合法走子中做出选择,要学习的信息类型是1个函数或程序,它对任何给定的棋局能选出最好的走法
优点:通过目标函数的设计,我们把【提高任务T的性能P】这一问题简化为【选择某个目标函数(如ChooseMove)】
*在棋局的例子中,可以定义这个函数为ChooseMove,
并用ChooseMove:B-->M来表示这个函数接受合法走子中的期盼状态作为输入,并以某种走法作为输出
缺点:学习难度大,因为提供给系统的是间接的训练经验
(3)替代方案:给可选择的目标函数定义一个【评价函数】(V:B-->R,R表示实属域)
举例:赢局V(b)=+100;输局V(b)=-100;平局V(b)=0 (其中b是任意的期盼状态)
缺点:这个方案【不可操作!】,为了能够确定V(b),需要在b的基础上向前搜索所有的路线
思路:因此,我们需要把问题简化为【发现一个理想目标函数V的可操作描述】。
然而要得到一个完美函数是困难的,因此我们要用【近似】的思路来求解,例如使用【函数逼近】的方法(确定V^)。
5.选择目标函数的表示(V^)
(1)表示的方式:- 列表法: 对于每个唯一的棋盘状态,都有一个唯一对应的状态值(V^=V^(b))
- 规则集合法:将某个棋盘状态的有限集合定义为一种规则,并且给这个规则定义一个状态值(可以采用二次多项式函数)
- 人工神经元网络
(2)对于状态参数x1,x2,x3,...xn,定义V^(b) = w0 + w1*x1 + w2*x2 + w3*x3 + ... + wn*xn(其中w1,w2,w3,...,wn称为权/权重)
(3)选择函数逼近算法
i. 估计训练值:通常使用后续棋局进行估计,称为【迭代估计训练值】
ii. 调整权值:为这个算法,确定最合适的权向量(w0,w1,...,wn)。
为了做到这一点,我们定义最佳拟合(Best Fit)的概念【误差平方和】
iii. 确定最小化E的方法,如LMS(Least Mean Squares) - 最小均方误差法。
具体思路是:每一次训练,都将权向量往减小误差的方向做调整
- 使用当前的权向量,计算V^(b)
- 对权向量的每一个wi,进行如下更新:
6.最终设计
1. 执行系统(Performance System)- 用学会的函数解决给定的某个任务,以新问题/新参数作为输入,同时输出新结果。策略由V^(b)函数来评估
2. 鉴定器(Critic)- 以对弈的路线或历史记录作为输入,输出目标函数的一系列训练样例 - V(train)
3. 泛化器(Generlizer)- 以训练样例作为输入,产生一个输出假设,作为它对目标函数的估计。它从特定的训练样例中泛化出一个一般函数
例如在上述例子中,泛化器就是LMS算法,输出假设是用学习到的权向量(w0,w1,w2,...,wn)
4. 实验生成器(Experiment Generator) - 以当前假设(以前学到的)作为输入,输出一个新的问题供执行系统去探索,从而获得新的知识
四、机器学习的一些观点
1. 机器学习通常归结为搜索问题,即在一个假设空间内进行搜索,从而找到最佳拟合观察到的数据和学习器已有知识的假设
2. 机器学习要解答的一些关键问题:
- 存在什么样的算法,能够从特定的训练数据学习一般的目标函数呢?如果提供了充足的训练数据,什么样的条件下能够让特定的算法收敛到期望的函数?
- 多少训练数据是充足的?假设的置信度、训练数据的数量以及提供给学习器的假设空间特征,三者之间的关系?
- 学习器拥有的先验知识,如何引导从样例进行泛化的过程?先验知识只是近似正确的时候,它们有帮助吗?
- 关于选择有效的后续训练经验,什么样的策略是最好的?这个策略会如何影响学习问题的复杂性?
- 怎样把学习任务简化成一个或多个函数逼近问题?系统应该学习哪些函数形式?(不一定是二次多项式函数)这个过程本身能否自动化?
- 学习器如何自动地改变表示法来提供表示和学习目标函数的能力?