写在前面:关于机器学习,一开始我是拒绝的!因为对于一个水平有限、头脑不发达、没有经验的大学生来说,无疑是朴实无华且枯燥的,但最终还是在新时代引领之下,迈向了机器学习的领域,我便从本书(西瓜书)开始,写一写总结的东西,记录学习的过程,虽然有些乏力,但尽量做到理解。必有或有纰漏,水平有限,望读者勿怪!
1. 什么是机器学习?
机器学习致力于研究如何通过计算的手段,利用经验来改善系统自身的性能。其形式化定义:
假设用P来评估计算机程序在某任务类T上的性能,若一个程序通过利用经验E在T中任务上获得了性能改善,则我们就说关于T和P,该程序对E进行了学习。
基本术语:
数据即是关于某研究对象或事件的一条条记录,这些记录的集合被称为“数据集”,每条记录是关于对象或事件的描述,以属性或特征来进行描述,属性上的取值就叫“属性值”,属性张成的空间叫做“属性空间”或者”样本空间“(以属性为坐标轴形成的一个空间),空间中每个点对应一个坐标向量,于是把示例称为一个“特征向量”。
D = {x1,x2,...,xm}表示包含m个示例的数据集。
每个示例由d个属性描述:
xi={xi1,xi2,...,xid}是d维属性空间中的一个向量,xij是xi在第j个属性上的取值,d称为样品xi的“维数”。
从数据中习得模型的过程就称为“学习”或者“训练”,而这个过程通过执行某个学习算法来完成。训练过程中用到的数据就称作“训练数据”,其中每个样本就称作“训练样本”,这些样本就成一个集合就叫“训练集”。
若我们想要预测的是离散值,此类学习任务称为分类(瓜好、瓜坏);
若想预测连续值,则称为回归(瓜熟程度0.92、0.27)。
习得模型后,使用模型进行预测的过程称为“测试”。
聚类:将训练集中的物体或事件分成若干组,每组称为一个“簇”。
根据训练数据是否拥有标记信息,学习任务分为:
1.监督学习 (以分类、回归为代表)
2.非监督学习 (以聚类为代表)
“泛化”能力:习得模型适用于新样本的能力。
通常假设样本空间中全体样本服从一个未知”分布“D,我们获得的每个样本都是独立地从这个分布上采样获取的,即”独立同分布“
假设空间:
归纳和演绎是科学推理的两大基本手段。两者亦是相反的,归纳是从特殊到一般的“泛化”过程,从具体推出一般;后者则是从基本原理推出具体情况。
机器学习是从样例学习,习得一般性的模型,自然就是归纳的过程,故称“归纳学习”。
狭义的“归纳学习”要求从训练数据中习得概念,亦称“概念学习”。了解概念学习对理解机器学习的一些基础思想有帮助。
布尔概念学习:即对“是”与“不是”这样可表示为0/1布尔值的目标概念学习。简单地表达出来,便是“有什么属性的东西是好东西,而有什么属性的东西是坏东西”这样一个概念。例如西瓜的好坏,用布尔表达式:"好瓜(色泽 = ?)(根蒂 = ?)(敲声 =?)", "?"表示未确定的值。考虑到属性取值有一种可能是什么值都合适,于是用通配符“*”来表示。于是通过训练集学习,把“?”的值确定下来。在此过程中,会在一个假设空间进行搜索,搜索与训练集“匹配”的假设(能够将训练集中的瓜正确判断的假设)。
假设空间的属性越多,值的类型越多,假设空间越大。通俗地讲,假设空间就是一个列出所有假设的集合。所以训练集如果足够大,其习得的概念的“泛化”就强。
对假设空间的搜索过程也有不同的策略:自顶向下、从一般到特殊、自底向上、从特殊到一般等等。(搜索过程中可以不断删除与正例不一致的假设、和与反例一致的假设,最终会得到与训练集一致的假设)
学习过程中,可能会发现有多个假设与训练集一致,这将形成一个“假设集合”,被称为“版本空间”。
归纳偏好
如果假设空间中与训练集一致的假设中,在解决问题时出现了矛盾。通俗地讲就是,我现在要判断一个东西是好是坏,那么这时我学习到了有3个假设可以进行判断,第一个假设判断这个东西是好的,但是第二个假设判断是坏的,第三个又是好的。那么我们应该采用哪个假设进行判断呢?
机器学习算法在学习过程中对某种类型假设的偏好,称为“归纳偏好”。
引导算法选择“正确”偏好的原则:
“奥卡姆剃刀”原则:若有多个假设与观察一致,则选最简单的那个。
那样又有问题了,什么叫“最简单”?最简单应该是对应具体学习问题的。
这时候,要讨论算法的相对优劣,就必须要针对具体的学习问题。如果考虑所有潜在的问题,所有算法的期望都是一样的,并无优劣。