Foundations of Machine Learning 2nd——第一章 机器学习预备知识

Foundations of Machine Learning 2nd——第一章 机器学习预备知识

  • 前言
  • 1.1 什么是机器学习(Machine learning)
  • 1.2 什么样的问题可以用机器学习解决?
  • 1.3 一些常见的学习任务
  • 学习阶段
  • 1.5 学习场景
  • 1.6 泛化性 Gneralization

前言

打算写一系列博客作为阅读这本书的学习笔记,第一章主要是一些概述性的东西,笔记内容比较繁杂,后面会适当减少无用的话,挑重点的写。有错误的地方欢迎指出~

1.1 什么是机器学习(Machine learning)

机器学习可以宽泛的定义为使用经验来提升性能或者作出精准预测的计算方法。经验就是指模型可以获得的过去的信息,信息通常是电子数据的形式使得可以在计算机上分析处理。这些数据可以是数字的人为标签的训练集的形式,或者其他类型通过和环境交互获得的信息。数据的质量和大小对于模型的性能都至关重要。
一个机器学习的例子是:如何使用随机选取的文档形成的有限数据集,数据集的标签是文档的主题类别(topic),来精准的预测未知文档的主题类别。显然,样本数量越多,模型越容易训练。但是任务的难度也取决于标签的质量,因为标签有可能是错的。
机器学习包括设计有效并且预测精准的算法。在其他的CS领域里,一个算法的质量衡量标准是他的时间和空间复杂度,而在机器学习领域,还要加上样本复杂性,来评估算法训练所需要的样本量。
算法的理论学习的保证取决于考虑类别的复杂性和训练样本的大小。
由于算法学习的成功取决于所用的数据,机器学习天然与数据分析和统计学相关。机器学习技术是一种数据驱动的方法,将计算机科学的基础概念和统计学、概率论和优化的思想相结合。

1.2 什么样的问题可以用机器学习解决?

  1. 文本分类。例如给一段文字或者一篇文章赋予一个主题,或者自动决定一个网页的内容是否合适,也包括垃圾邮件检测。
  2. 自然语言处理。该领域的任务包括:词性标记(part-of-speech tagging)、命名实体识别(named-entity recognition)、上下文无关解析(context-free parsing)、词法分析(dependency parsing)等。在这些问题里,预测模型具有一定的结构。例如,在词性标记里,对于一个句子的预测是一个词性标记的序列,用来给每一个单词赋予标签。在上下文无关解析里,预测模型是一个树。他们属于结构化预测问题(structured prediction problems)。
  3. 语音处理应用。包括语音识别(speech recognition)、语音合成(speech synthesis),讲话人验证(speaker verification),讲话人识别(speaker identification)等,也包括一些字问题,如语音模型、声学模型等。
  4. 计算机视觉应用。包括目标检测,目标识别,人脸检测,光学字符识别,基于内日用的图片检索或者姿态估计等
  5. 计算生物学应用。包括蛋白质方程预测、关键位置辨别或者一些基因或蛋白质工程的分析
  6. 其他应用。如信用卡欺诈检测、网络入侵、学习游戏(如下象棋)等。

1.3 一些常见的学习任务

  1. 分类:给每一个元素赋予类别(标签)的问题。例如给文档赋予:政治、商业、运动等标签,给图片赋予车辆、行人、飞机等标签。类别数量一般少于几百,不过在一些困难问题里也可以很多,甚至在光学字符识别、文本分类、语音识别里可以有无数个类别。
  2. 拟合:对于每一个元素预测他的真实值的问题。例如预测股市等。在拟合问题里,对于错误预测的惩罚基于真实值和预测值之间差距的量级。也就是说预测的错误程度越大,对于这个模型的惩罚越大,促进模型往正确的方向更新。
  3. 排序:学习基于一些标准来排序元素的问题。例如网络搜索,返回和搜索问题相关的网页。排序问题在信息检索的设计环境或自然语言处理系统里都有很大用武之地。
  4. 聚类:这是一种把一个元素集合划分成几个同类的子集的问题。用来分析比较大的数据集。例如在社交网络分析里,聚类算法尝试识别出自然群体,也就是把人划分成几大类,每一类里的人在某种程度上相似。
  5. 降维或流形学习:就是把元素的院士表示转换成维度较低的表示方法,同时保留一些数据属性。比如用在计算机视觉任务里的数字图像处理上。
    为了处理以上问题,我们需要设计有效且稳定的算法。那么会引出许多算法和原理方面的问题,一些基础问题如:那些概念系列可以被实际学习到?在什么情况下可以学习到?这些概念在计算机上能被学习多少?

学习阶段

这里使用垃圾邮件检测这一经典案例作为例子来解释一些基础的定义,介绍实际应用中机器学习的使用和评估,包括他们的不同阶段
垃圾邮件检测是学习自动判断电子邮件是垃圾邮件(SPAM)还是非垃圾邮件(non-SPAM)。下面是一些常用名词解释:

  1. Example(样本):用来学习或者评估的一个数据项。在当前问题里,这些样本相当于搜集到的电子邮件。
  2. Features(特征):属性的集合。通常用向量表示,和一个样本相关。在当前问题中,一些相关特征包括:邮件内容的长度,发送者姓名,邮件内容关键字等。
  3. Labels(标签):赋予样本的值或类别。在这个问题中,“垃圾邮件”\“非垃圾邮件”就是样本的两种标签,是一个二分类的问题。
  4. Hyperparameters(超参数):不是由学习算法来决定的自由参数,这些参数在训练之前就被人为确定了。
  5. Traning sample(训练集):用来训练学习算法的样本。在这个问题中,训练样本包括电子邮件和他们的标签的集合。训练样本会随训练环境变化,1.5节会讲述。
  6. Validation sample(验证集):当学习算法作用在有标签数据上时,用来调整学习算法参数的样本。验证样本用来选择合适的超参数。
  7. Test sample(测试集):用来评估学习算法性能的样本。测试样本和训练、验证样本是分离的,在学习阶段并不使用。在当前问题中,测试样本是一个电子邮件的集合,学习算法必须根据这些样本的特征来预测他们的标签。之后将真实标签和预测结果做比较来评估算法性能。
  8. Loss function(损失函数):用来测量预测标签和真实标签之间的差距,或者说损失的函数。令 y y y表示所有标签的集合, y ′ y' y表示预测值集合,损失函数 L L L是这样一个映射: L : y × y ′ − > R + L: y \times y'->R_+ L:y×y>R+。大部分情况下,损失函数是有界的。常见的损失函数包括zero-one loss(0-1损失函数)在 { − 1 , + 1 } × { − 1 , + 1 } \{-1,+1\}\times \{-1,+1\} {1,+1}×{1,+1}上定义: L ( y , y ′ ) = 1 y ≠ y ′ L(y,y') = 1_{y \neq y'} L(y,y)=1y=y。平方损失函数在 J × J J\times J J×J上定义: L ( y , y ′ ) = ( y ′ − y ) 2 L(y,y')=(y'-y)^2 L(y,y)=(yy)2, J ⊆ R J\subseteq R JR
  9. Hypothesis set(假设集):一个能映射特征向量到标签集合 y y y的函数的集合。在当前问题中,他们也许是映射电子邮件特征到 y = { s p a m , n o n − s p a m } y=\{spam,non-spam\} y={spam,nonspam}的函数的集合。映射的值域 y ′ y' y可以解释为得分( y ′ ⊆ R y'\subseteq R yR),得分更高更有可能是垃圾邮件。

图1.1表示了算法的学习阶段。对于一组给定标签的数据,我们先随机分成训练集、验证集和测试集,他们的大小基于多因素考虑,例如验证集数据量基于超参数的数量,用 Θ \Theta Θ表示。相应的,当有标签数据数量相当小时,训练集的数量比测试集的大的多,因为学习性能直接基于训练集。 Foundations of Machine Learning 2nd——第一章 机器学习预备知识_第1张图片接下来,选择相关特征去训练算法。特征的选择至关重要,它直接影响算法的性能,不过对于特征的选择更多的基于用户对于当前任务的的先验知识。

之后使用选择的特征通过调整超参数来训练学习算法,通过多次尝试,我们选择在验证集上效果最好的一组超参数。最后使用训练好的模型来预测测试集的样本。通过损失函数来评估算法性能(注意,不能用训练集来评估,因为训练的时候就是用的训练集数据,使得模型对于训练集有依赖性,之后模型能够在没见过的数据(测试集)上也表现出良好性能时,才能说明算法有效)。

要注意一点,损失函数其实更常用来更新网络参数,后续会讲到。

1.5 学习场景

下面介绍一些常见的机器学习场景。他们因训练集的可获得性、训练集获取的方法、测试集评估的方法而不同

  1. Supervised learning(有监督学习):训练集的标签已知,用这样的数据训练出来的模型预测未知数据,称作有监督学习。这是最常见的一种学习场景,在分类、回归、排序等问题都有应用场景。
  2. Unsupervised learning(无监督学习):训练者只有无标签的训练数据,用训练好的模型预测未知数据。因为在某些场景,数据集的标签无法获得,这时很难定量评估模型性能。聚类、降维等都是无监督学习。
  3. Semi-supervised learning(半监督学习):训练集包含有标签的和无标签的。这种学习方式常用在无标签数据易获得而有标签数据很难获得,或者开销很大的情况。这种学习方法的应用也很广泛:分类、回归、排序等。半无监督的目的是希望能够使用无监督数据来帮助模型在有监督配置下获得更好的性能。
  4. Transductive inference(归纳推理):和半监督的场景一样,模型获得了一批有标签的训练数据和无标签的测试数据。不过归纳推理的目标是只在这些特殊的测试点上预测标签。他的目的是提供更简单的训练任务同时匹配现代应用中可能遇到的多种场景。不过,和半监督一样,他是否能提供更好的性能是尚未完全解决的问题。
  5. On-line learning(在线学习):在线学习的训练集和测试集有多个输入回合。也就是说模型并不是由一批数据训练好之后就固定不动的,而是不断接受新的数据并训练更新模型。它的目标是最小化累积损失或者累积损失和最优结果之间的差值。
    在线学习不会做数据分布假设.
  6. Reinforcement learning(强化学习):他的训练集和测试集的输入也是多回合的。模型不断和环境交互并立刻接收环境对于模型每个行为的奖励反馈来不断优化模型。目标是最大化和环境互动迭代过程的奖励。
  7. Active learning(主动学习):模型能够从海量无标签数据中筛选出最有用的一批数据,请求专家来给这些数据标注标签之后用于训练模型。他的目标是使用更少的有标签数据来达到标准的有监督模型的性能。通常应用在标签获取十分昂贵的情况下,如计算生物应用。

1.6 泛化性 Gneralization

机器学习从根本上讲是泛化性的问题。机器学习就是从一个假设集合里选择最适合的一个函数(function)来对数据做预测(分类等)。那么如何选择假设呢?如果是一个复杂的假设,比如高阶多项式,那么在训练集上他可以表现的十分完美,然而对于测试集可能表现的并不好,如果是一个过于简单的假设,可能不具备预测或者分类的能力。
所以在选择假设的时候,性能和泛化性都要考虑到。
Foundations of Machine Learning 2nd——第一章 机器学习预备知识_第2张图片左边的假设可以完美分类每一个样本,然而整体数据分布和当前训练集样本分布并不完全一致,因此该假设作用在测试集上时效果可能很差。右图分界较为平滑,然而泛化性可能较高。
当样本量较少,选择一个过于复杂的假设可能会导致很差的泛化性,称为过拟合(overfitting);同时过于简单的假设可能不具备有效的精度,称为欠拟合(underfitting)。

你可能感兴趣的:(机器学习)