ML入门书籍Tom Mitchell《机器学习》笔记——第一章引言

因为这段时间意向找的实习工作可能偏向CV或者ML较多,但是鉴于基础相对薄弱,所以重拾这本入门书籍对于我来说有一定意义。


1. 引言

Tom用西洋棋学习问题为例让读者开篇就对机器学习有一定概念。其中对“学习”进行了一个清晰的定义:

【定义】对于某类任务T(参与西洋跳棋对弈)和性能度量P(赢棋的能力),如果一个计算机程序在T上以P衡量的性能随着经验E(通过和自己下棋获取)而自我完善,那么我们称这个计算机程序在从经验E中学习。


关于经验E,提出了三个重要属性:

a.训练经验提供的是直接还是间接的反馈。例如,间接反馈指的是,只有过去的对弈序列和最终结局。我们只能从每一次走子中分配其对最终结果的贡献程度(信用分配问题)。直接反馈的训练比间接容易。

b.学习器如何控制训练样例序列。关于这点提出了三个很重要的分类:1.施教者提供所有样例;2.学习器向施教者询问正确的走子;3.学习器完全和自己对弈。

c.训练样例的分布是否能表示实例分布。毕竟最终学习器是为了完成实际情况的任务,所以一般假设训练样例与测试样例分布一致。


那么学习器学习什么呢?

归根结底是获得一个目标函数,这个函数告诉你怎么走子是最好的。

往往这个理想目标函数很难表达,所以用近似的目标函数来逼近。例如在Tom这本书中,下西洋棋的目标函数被简单表示为6个参数(棋盘上黑子的数量;红子的数量;黑王的数量;红王的数量;被红子威胁的数量;被黑子威胁的数量)的线性函数。其实这里隐含的意思是:某个棋盘局势的好坏仅仅由当时的这6个参数的情况决定。


之后的过程就简单了,只要获得线性目标函数里的系数(权)值。思路是:1.有一堆训练数据;2.利用最小均方法(LMS),小幅度更新权值,使得当前的权值计算出来的目标函数最接近训练数据里的目标函数值。

看起来挺简单的,但是问题是第一步1中训练数据里的目标函数怎么获得?注意西洋棋是个间接反馈问题,我们只知道最终赢了才是最佳的,但是不知道下棋过程中的每一步是否最佳。所以巧妙之处在于,这里认为某一训练数据(棋局)的目标函数值等于程序下了一步和对手回应一步后的棋局的目标函数值。

注意,这里有点绕。也就是说,我拿训练数据来不断优化目标函数(系数值),然后再拿优化后的目标函数来估计训练值。

之所以这样的思路能够收敛,应该归功于越接近游戏结束,目标函数值越精确。


因此,可以看出目标函数对于学习器的意义,好的目标函数意味着更准确的拟合。例如6个参数代表的西洋棋走法显然不合适。所以才会有更多的目标函数表示法,比如人工神经网络、最近邻算法、遗传算法等。


因此作者Tom认为机器学习问题归结于搜索问题,对非常大的假设空间(目标函数所处的空间)进行搜索,最终确定最佳拟合的假设。




猜你喜欢

转载自blog.csdn.net/u011937018/article/details/78833334