机器学习 第1章-绪论
1.1 引言
机器学习正是这样一门学科,它致力于研究如何通过计算的手段,利用经验来改善系统自身的性能。在计算机系统中,“经验"通常以"数据"形式存在,因此机器学习所研究的主要内容,是关于在计算机上从数据中产生"模型” (model) 的算法,即"学习算法"。 有了学习算法,我们把经验数据提供给它,它就能基于这些数据产生模型;在面对新的情况时(例
如看到一个没剖开的西瓜),模型会给我们提供相应的判断。如果说计算机科学是研究关于"算法"的学问,那么类似的,可以说机器学习是研究关于"学习算法"的学问。
用"模型"泛指从数据中学得的结果。有文献用"模型"指全局性结果(例如一棵决策树),而用"模式"指局部性结果(例如一条规则)。
1.2 基本术语
要进行机器学习,先要有数据。假定我们收集了一批关于西瓜的数据,例如(色泽=青绿;根蒂=蜷缩;敲声=浊响), (色泽=乌黑;根蒂:稍蜷;敲声=沉闷), (色泽=浅白;根蒂=硬挺;敲声=清脆),等等。每对括号内是一条记录,"=“的意思是"取值为”
这组记录的集合称为一个"数据集" (data set),其中每条记录是关于一个事件或对象(这里是一个西瓜)的描述,称为一个"示例" (instance) 或"样本" (sample)。 反映事件或对象在某方面的表现或性质的事项,例如"色泽" “根蒂” “敲声”,称为"属性"(attribute)或"特征"(feature); 属性上的取值,例如"青绿" “乌黑”,称为")属性值" (attribute value)。 属性张成的空间称为"属性空间" (attribute space)、 “样本空间” (sample space)或"输入空间"。例如我们把"色泽" “根蒂” “敲声"作为三个坐标轴,则它们张成一个用于描述西瓜的三维空间,每个西瓜都可在这个空间中找到自己的坐标位置。由于空间中的每个点对应一个坐标向量,因此我们也把一个示例称为一个"特征向量” (feature vector)。
一般地,令 D = x 1 , x 2 , ⋅ ⋅ ⋅ , x m D = {x_1,x_2,···,x_m} D=x1,x2,⋅⋅⋅,xm表示包含 m 个示例的数据集,每个示例由 d个属性描述(例如上面的西瓜数据使用了 3个属性),则每个示例 x i = ( x i 1 ; x i 2 ; ⋅ ⋅ ⋅ ; x i d ) x_i=(x_{i1};x_{i2};···;x_{id}) xi=(xi1;xi2;⋅⋅⋅;xid)是d维样本空间X中的一个向量, x i ∈ X x_i∈X xi∈X, 其中 x i j x_{ij} xij 是 x i x_i xi在第j个属性上的取值(例如上述第3个西瓜在第2个属性上的值是"硬挺" ), d称为样本 x i x_i xi的"维数" (dimensionality)。
从数据中学得模型的过程称为"学习" (learning)或"训练" (training), 这个过程通过执行某个学习算法来完成。训练过程中使用的数据称为"训练数据" (training data),其中每个样本称为一个’训练样本" (training sample), 训练样本组成的集合称为"训练集" (training set)。 学得模型对应了关于数据的某种潜在的规律,因此亦称"假设" (hypothesis); 这种潜在规律自身,则称为"真相"或"真实" (ground-truth),学习过程就是为了找出或逼近真相。有时将模型称为"学习器" (learner),可看作学习算法在给定数据和参数空间上的实例化。
如果希望学得一个能帮助我们判断没剖开的是不是"好瓜"的模型,仅有前面的示例数据显然是不够的要建立这样的关于"预测" (prediction) 的模型,我们需获得训练样本的"结果"信息。,例如"((色泽=青绿;根蒂=蜷缩;敲声=浊响),好瓜)“。这里关于示例结果的信息,例如"好瓜”,称为"标记" (label); 拥有了标记信息的示例,则称为"样例" (example)。 一般地,用 ( x i , y i ) (x_i,y_i) (xi,yi) 表示第i个样例,其中 y i ∈ Y y_i∈Y yi∈Y是示例 x i x_i xi 的标记,Y是所有标记的集合,亦称"标记空间" (label space)或"输出空间
若我们欲预测的是离散值,例如"好瓜" “坏瓜”,此类学习任务称为"分类" (classification); 若欲预测的是连续值,例如西瓜成熟度 0。95、 0。37,此类学习任务称为"回归" (regression)。 对只涉及两个类别的"二分类" (binary classification)任务,通常称其中一个类为 “正类” (positive class),另一个类为"反类" (negative class); 涉及多个类别时,则称为"多分类" (multi-class classification)叫任务。一般地,预测任务是希望通过对训练集 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋅ ⋅ ⋅ , ( x m , y m ) {(x_1,y_1) , (x_2,y_2) ,···, (x_m,y_m)} (x1,y1),(x2,y2),⋅⋅⋅,(xm,ym) 进行学习,建立一个从输入空间 X X X到输出空间 Y Y Y的映射 f : X → Y f: X→Y f:X→Y。 对二分类任务,通常令 Y = − 1 , + 1 Y= {-1,+1} Y=−1,+1 或 0 , 1 {0,1} 0,1; 对多分类任务, I Y I > 2 IYI >2 IYI>2; 对回归任务, Y = R Y= R Y=R, R R R为实数集。
学得模型后,使用其进行预测的过程称为"测试" (testing),被预测的样本称为"测试样本" (testing sample)。
我们还可以对西瓜做"聚类" (clustering),即将训练集中的西瓜分成若干组,每组称为 A个"簇" (cluster);
根据训练数据是否拥有标记信息,学习任务可大致划分为两大类"监督学习" (supervised learning) 和"无监督学习" (unsupervised learning),分类和回归是前者的代表,而聚类则是后者的代表。
1.3 假设空间
归纳(induction)与横绎(deduction)是科学推理的两大基本手段。前者是从特殊到一般的"泛化" (generalization)过程,即从具体的事实归结出一般性规律;后者则是从一般到特殊的"特化" (specializatio)过程,即从基础原理推演出具体状况。
而"从样例中学习"显然是一个归纳的过程,因此亦称"归纳学习"
归纳学习有狭义与广义之分,广义的归纳学习大体相当于从样例中学习,而狭义的归纳学习则要求从训练数据中学得概念(concept),因此亦称为"概念学习"或"概念形成"。
概念学习中最基本的是布尔概念学习,即对"是" "不是"这样的可表示为 0/1 布尔值的目标概念的学习。
我们可以把学习过程看作一个在所有假设(hypothesis)组成的空间中进行搜索的过程,搜索目标是找到与训练集"匹配"(fit)的假设,即能够将训练集中的瓜判断正确的假设。
1.4 归纳偏好
机器学习算法在学习过程中对某种类型假设的偏好,称为"归纳偏好" (inductive bias) , 或简称为"偏好"。
任何一个有效的机器学习算法必有其归纳偏好,否则它将被假设空间中看似在训练集上"等效"的假设所迷惑,而无法产生确定的学习结果。
归纳偏好可看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或"价值观"。
“奥卡姆剃刀” (Occam’s razor)是一种常用的、自然科学研究中最基本的原则,即"若有多个假设与观察一致,则选最简单的那个",如果采用这个原则,并且假设我们认为"更平滑"意味着"更简单" 。
事实上,归纳偏好对应了学习算法本身所做出的关于"什么样的模型更好"的假设。在具体的现实问题中,这个假设是否成立,即算法的归纳偏好是否与问题本身匹配,大多数时候直接决定了算法能否取得好的性能。
1.5 发展历程
机器学习是人工智能(artificial intelligence)研究发展到一定阶段的必然产物。
20世纪50年代到70年代,人工智能研究处于“推理期”。
20世纪70年代中期,人工智能研究进入“知识期”。
在20世纪80年代,"从样例中学习"的一大主流是符号主义学习,其代表包括决策树(decision tree)和基于逻辑的学习。典型的决策树学习以信息论为基础,以信息熵的最小化为目标,直接模拟了人类对概念进行判定的树形流程。
20世纪90年代中期之前,"从样例中学习"的另一主流技术是基于神经网络的连接主义学习。
20世纪90年代中期,“统计学习” (statistical learning)闪亮登场并迅速占据主流舞台,代表性技术是支持向量机(Support Vector Machine,简称SVM)以及更一般的"核方法" (kernel methods)。
21世纪初,连接主义学习又卷土重来,掀起了以"深度学习"为名的热潮。所谓深度学习,狭义地说就是"很多层"的神经网络。在若干测试和竞赛上,尤其是涉及语音、图像等复杂对象的应用中,深度学习技术取得了优越性能。以往机器学习技术在应用中要取得好性能,对使用者的要求较高;而深度学习技术涉及的模型复杂度非常高,以至于只要下工夫"调参"把参数调节好,性能往往就好。因此,深度学习虽缺乏严格的理论基础,但它显著降低了机器学习应用者的门槛,为机器学习技术走向工程实践带来了便利。
1.6 应用现状
今天,机器学习己经与普通人的生活密切相关。例如在天气预报、能源勘探、环境监测等方面,有效地利用机器学习技术对卫星和传感器发回的数据进行分析,是提高预报和检测准确性的重要途径;
在商业营销中,有效地利用机器学习技术对销售数据、客户信息进行分析,不仅可帮助商家优化库存降低成本,还有助于针对用户群设计特殊营销策略……