准备吃瓜
入门机器学习,周志华老师的西瓜书是必不可少要尝尝的。这几天也是刚刚买了一本西瓜书,之后开始我的吃瓜之旅。因为我学习方法的关系,所以我会在边读边记录。既然都是记录,那么我就索性决定定期发表一篇我的进度。 当然在我的文章可能会有大量搬运。一些公式的推导我看的懂的会尽量解释,不懂的就会直接贴上去。
第一章 绪论
1.1引言
何为机器学习?
让计算机通过经验,对新情况做出有效决策。 机器学习致力于如何通过计算机手段,利用经验来改善系统自身的性能
1.2基本术语
机器学习是一个很大的领域,那么我们可以通过层层划分基本把它分为以下几类问题。 首先是机器学习中根据训练的形式可以分为监督学习(supervised learning )和无监督学习(unspervised learning)。这里西瓜书中写的是根据训练数据是否有标记信息。
监督学习:是指定训练结果,告诉计算机让它的模型向这个结果靠拢 无监督学习:是不指定训练结果,让计算机自己归纳所训练的数据中的规
所以说无监督学习解决的都是聚类问题,把数据丢给计算机,然后反馈出一个分类结果。 监督学习解决的则是预测问题。通过已知的条件训练出一个通用的模型,然后在未知的数据中应用
然后在监督学习中,我们可以根据数据的情况进一步将预测问题进行划分为分类问题(classification)和回归问题(regression)
如果是离散的值,我们就可以将其进行分类操作,转换成分类问题 如果是连续的值,我们就可以拟合出一条函数图像,转化成回归问题
在分类中,根据分类的类别我们也可以进一步细分为**二分类(binary classification)和多分类(multi-class classification)**问题
在二分类中,我们通常称一个类为正类(positive tive),另一个类为反类(negative class)
机
器
学
习
?
{
监
督
学
习
→
预
测
问
题
{
离
散
数
据
{
二
分
类
问
题
?
多
分
类
问
题
连
续
数
据
→
回
归
问
题
无
监
督
学
习
→
聚
类
问
题
机器学习\ \begin{cases} 监督学习\rightarrow 预测问题 \begin{cases} 离散数据 \begin{cases} 二分类问题& \text{ } \\ 多分类问题 \end{cases} \\ 连续数据 \rightarrow {回归问题} \end{cases} \\ 无监督学习 \rightarrow 聚类问题 \end{cases}
机器学习???????????监督学习→预测问题??????离散数据{二分类问题多分类问题??连续数据→回归问题?无监督学习→聚类问题?
预测问题中,数据集我们一般会划分为两个部分:训练集(trainig dataset)和测试集(testing dataset)我们会先使用训练集进行训练。最后得出一个训练后的模型(模型有时候也会称为学习器)*。之后就有进行测试(testing)*,来验证我们模型的结果的如何。
但是需要注意的是,并不是说训练集训练出的模型如果在测试集中得到一个不错的结果,就意味着我们得到了一个优质的模型。作为一个预测问题来讲,模型的意义并不是验证已知的结果而是验证未知问题的时候也有很高的准确率。那么对于这种习得模型适用于新样本(sample)的能力称为泛化能力(generalization)。通常来讲具有强泛化能力的模型能很好的适用整个空间样本。 通常来讲数据集的数据越多,训练出的模型泛化能力就越强
1.3假设空间
在科学推理中有两大手段——演绎(deduction)和归纳(induction)
演绎:从特殊到一般的‘泛化’过程,即从具体的事实总结出一般性的规律 归纳:从一般到特殊的‘特化’过程,即从基础原理退出具体情况
那么从上面的两个定义中我们不难看出,机器学习显然是一个归纳的过程,所以也成为归纳学习(inductive learning),归纳学习也可以根据广义和狭义来分成两个类别
归
纳
学
习
?
{
广
义
→
从
样
例
中
学
习
狭
义
→
概
念
学
习
归纳学习\ \begin{cases} 广义 \rightarrow 从样例中学习 \\ 狭义 \rightarrow 概念学习\end{cases}
归纳学习?{广义→从样例中学习狭义→概念学习?
广义:大体上相当于从样例中学习 狭义:要求从数据中学得概念(当前该领域的研究和应用都比较少)
其中我们简单来了解一下概念学习,有助于我们建立有关机器学习的基础思想。概念学习中最基本的就是布尔概念学习,即对“是”和“不是”这样的可以表示为0、1布尔值的目标概念学习。我们现在获得了下面的数据。 如何判断一个好瓜呢。我们可以用布尔表达式表达出来
好
瓜
<
—
—
>
(
色
泽
=
?
)
(
根
蒂
=
?
)
(
敲
声
=
?
)
好瓜 <——>(色泽 = ?)(根蒂 = ?)(敲声 = ?)
好瓜<——>(色泽=?)(根蒂=?)(敲声=?)
其
中
?
代
表
未
确
定
的
值
,
我
们
学
习
的
目
的
就
是
要
确
定
他
们
其中 ? 代表未确定的值,我们学习的目的就是要确定他们
其中?代表未确定的值,我们学习的目的就是要确定他们
图中我们可以轻易的发现1 和2不就是好瓜吗,只要记住他们的属性,不就可以轻易的判断了吗。 大错特错!!! 我们上边讲到,我们需要的是一个强泛化模型,记住数据集内的特征属性,只是证明这个模型在数据集内很合适。并不能说明它有很强的泛化能力,如果没有泛化能力我们的模型也就没有意义。那么应该如何学习呢?
我们可以把学习的过程看作一个在所有假设空间进行搜索的过程,搜索目标是找到与训练集"匹配(fit)"的假设,即能够将训练集中的瓜判断争取的假设,假设的表示一旦确定,假设空间及其规模大小也就可以确定了
这里我们的假设空间由形如"(色泽=?)八(根蒂=?) ^ (敲声=?)“的可能取值所形成的假设组成.例如色泽有"青绿” “乌黑” “浅白"这三种可能取值;还需考虑到,也许"色泽"无论取什么值都合适,我们用通符”*“来表示,例如"好瓜件(色泽= *) ^ (根蒂口蜷缩)八(敲声=浊响)” ,即"好瓜是根蒂蜷缩、敲声浊响的瓜,什么色泽都行"此外,还需考虑极端情况:有可能"好瓜"这个概念根本就不成立,世界上没有"好瓜"这种东西;我们用 表示这个假设.这样,若"色泽" “根蒂” "敲声"分别有 种可能取值,则我们面临的假设空间规模大小为 x 3 x 3 + 1 = 37. 下图 直观地显示出了这个西瓜问题假设空间
当我们有了假设空间之后就可以选取一个恰当的方法不断进行学习,搜索过程中我们可以通过不断删除与正例不一样的假设。最终会获得与训练集一致的结果,这就是我们训练好的模型。 (需要一提的是,现实中的问题可能会有很大的假设空间,但是学习是基于有限个样本进行的。所以可能存在一个情况是有很多个假设与训练集一致。即存在于一个与训练集一致的“假设集合”,我们称之为"版本空间(version space)"如下图所示)
1.4归纳偏好
随着我们训练的模型增多,我们不免会有一个问题,这么多的模型,究竟哪一个更好? 这时候“偏好”就会起到关键性的作用,任何一个有效的机器学习算法必有其归纳偏好
为什么要有偏好呢? 我们知道,机器学习也好,人工智能也好,最终的目的是通过计算机来帮助解决人类世界的问题。那么我们的问题又就又会根据不同需要对任务的完成提出不同程度的要求。就比如说,我们有军刀,也有菜刀。他们都是刀,但是对于不同的场合,就对刀提出了不同的要求。同样算法也是,我们也是根据实际的要求来选取具有最合适偏好的算法。
归纳偏好可看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或"价值观",那么有没有一般性原则引导算法确立"正确的"偏好呢?
奥卡姆剃刀原理(Occam’s razor)
奥卡姆剃刀是一种常用的、自然科学研究中最基本的原则,即"若有多个假设与观察一致,则选择最简单的那个"
如无必要,勿增实体 我简单讲一下我的理解。为什么要选择最简单的那一个。 从实际的角度出发,既然我们已经找到了解决方案,就没有必要再从方法上给自己出难题,来避免资源的浪费 第二点就是,当我们对一个问题使用越多参数的估计,对于结果就越不容易把控。最简单的就是我们可以用二进制来结社 如果有一个数字2,我们用四位 0010 来猜测,那么猜对的概率是1/16,那么如果是八位呢 0000 0010,那就是1/256。可以看到越多的参数,对于结果把控起来就越难。当然你可能会说只用一位不就更简单了?但是一位只能表示0或1。如无必要,勿增实体,很显眼现在有必要增加一位。
NFL定理(No Free Lunch Theorem)
假设学习算法 Zα 基于某种归纳偏好产生了对应于曲线 的模型,学习算法 ~b 基于另一种归纳偏好产生了对应于曲线 的模型.基于前面讨论的平滑曲线的某种"描述简单性"?我们满怀信心地期待算法乌比岛更好.确实,下图显示出?与 相比, 与训练集外的样本更一致;换言之, 的泛化能力比强但是,且慢!虽然我们希望并相信乌比马更好,但会不会出现图1.4(b)情况:与 相比, 与训练集外的样本更一致?很遗憾,这种情况完全可能出现.换言之,对于一个学习算法鸟,若它在某些问题上比学习算法岛好,则必然存在一些问题,在那里岛比 2α 好.有趣的是,这个结论对任何算法均成立,哪怕是把本书后面将要介绍的一些聪明算法作为乌而将"随机胡猜"这样的笨拙算法作为乌.惊讶吗?让我们看看下面这个简短的讨论:为简单起见,假设样本空间 和假设空间组都是离散的.令 P(hIX,'ca)代表算法乌基于训练数据 产生假设 的概率,再令 代表我们希望学习的真实目标函数 'c 的"训练集外误差",即鸟在训练、集之外的所有样本上的误差为
NFL定理最重要的寓意?是让我们清楚地认识到,脱离具体问题,空泛地谈论"什么学习算法更好"毫无意义,因为若考虑所有潜在的问题,贝。所有学习算法都一样好.要谈论算法的相对优劣,必须要针对具体的学习问题;在某些问题上表现好的学习算法,在另一些问题上却可能不尽如人意,学习算法自身的归纳偏好与问题是否相配,往往会起到决定性的作用
|