ISBN 9787115490841 / 人民邮电出版社
电子版地址 -> go
机器学习基础知识
机器学习关键组件:
-
可以用来学习的数据;
每个数据集由一个个样本组成, 大多时候, 它们遵循独立同分布. 样本有时也叫做数据点或者数据实例, 通常每个样本由一组称为特征(或协变量)的属性组成. 机器学习模型会根据这些属性进行预测. 在上面的监督学习问题中, 要预测的是一个特殊的属性, 它被称为标签(或目标).
当每个样本的特征类别数量都是相同的时候, 其特征向量是固定长度的, 这个长度被称为数据的维数. 固定长度的特征向量是一个方便的属性, 它可以用来量化学习大量样本.
当数据不具有充分代表性, 甚至包含了一些社会偏见时, 模型就很有可能有偏见. -
如何转换数据的模型;
深度学习与经典方法的区别主要在于: 前者关注的功能强大的模型, 这些模型由神经网络错综复杂的交织在一起, 包含层层数据转换, 因此被称为深度学习. -
一个目标函数, 用来量化模型的有效性;
在机器学习中, 我们需要定义模型的优劣程度的度量, 这个度量在大多数情况是"可优化"的, 这被称之为目标函数. 我们通常定义一个目标函数, 并希望优化它到最低点. 因为越低越好, 所以这些函数有时被称为损失函数.
当任务在试图预测数值时, 最常见的损失函数是平方误差, 即预测值与实际值之差的平方. 当试图解决分类问题时, 最常见的目标函数是最小化错误率, 即预测与实际情况不符的样本比例. 有些目标函数(如平方误差)很容易被优化, 有些目标(如错误率)由于不可微性或其他复杂性难以直接优化. 在这些情况下, 通常会优化替代目标.
通常, 损失函数是根据模型参数定义的, 并取决于数据集. 在一个数据集上, 我们可以通过最小化总损失来学习模型参数的最佳值. 该数据集由一些为训练而收集的样本组成, 称为训练数据集(或称为训练集). 然而, 在训练数据上表现良好的模型, 并不一定在"新数据集"上有同样的性能, 这里的"新数据集"通常称为测试数据集(或称为测试集).
当一个模型在训练集上表现良好, 但不能推广到测试集时, 这个模型被称为过拟合的. -
调整模型参数以优化目标函数的算法.
深度学习中, 大多流行的优化算法通常基于一种基本方法––梯度下降. 简而言之, 在每个步骤中, 梯度下降法都会检查每个参数, 看看如果仅对该参数进行少量变动, 训练集损失会朝哪个方向移动. 然后, 它在可以减少损失的方向上优化参数.
监督学习
监督学习擅长在"给定输入特征"的情况下预测标签. 每个"特征-标签"对都称为一个
样本. 有时, 即使标签是未知的, 样本也可以指代输入特征. 我们的目标是生成一个模型, 能够将任何输入特征映射到标签(即预测).
监督学习之所以能发挥作用, 是因为在训练参数时, 我们为模型提供了一个数据集, 其中每个样本都有真实的标签. 用概率论术语来说, 我们希望预测"估计给定输入特征的标签"的条件概率.
-
回归
回归是最简单的监督学习任务之一, 训练一个回归函数来输出一个数值. 当标签取任意数值时, 我们称之为回归问题, 此时的目标是生成一个模型, 使它的预测非常接近实际标签值.
-
分类
分类是训练一个分类器来输出预测的类别.
当有两个以上的类别时, 我们把这个问题称为多项分类问题. 分类问题的常见损失函数被称为交叉熵.
分类可能变得比二项分类、多项分类复杂得多. 例如, 有一些分类任务的变体可以用于寻找层次结构, 层次结构假定在许多类之间存在某种关系. 因此, 并不是所有的错误都是均等的. 这通常被称为层次分类. -
标记问题
学习预测不相互排斥的类别的问题称为多标签分类. 一篇典型的文章可能会用5~10个标签, 因为这些概念是相互关联的.
机器学习算法可以提供临时标签, 直到每一篇文章都有严格的人工审核. -
搜索
在信息检索领域, 我们希望对一组项目进行排序. 以网络搜索为例, 目标不是简单的"查询(query)-网页(page)“分类, 而是在海量搜索结果中找到用户最需要的那部分. 搜索结果的排序也十分重要, 学习算法需要输出有序的元素子集.
该问题的一种可能的解决方案: 首先为集合中的每个元素分配相应的相关性分数, 然后检索评级最高的元素. 如今, 搜索引擎使用机器学习和用户行为模型来获取网页相关性得分. -
推荐系统
另一类与搜索和排名相关的问题是推荐系统, 它的目标是向特定用户进行"个性化"推荐. 推荐系统算法经过调整, 可以捕捉一个人的偏好. -
序列学习
序列学习需要摄取输入序列或预测输出序列, 或两者兼而有之. 具体来说, 输入和输出都是可变长度的序列, 例如机器翻译和从语音中转录文本. 虽然不可能考虑所有类型的序列转换, 但以下特殊情况值得一提.-
标记和解析: 这涉及到用属性注释文本序列. 换句话说, 输入和输出的数量基本上是相同的. 例如, 我们可能想知道动词和主语在哪里, 或者可能想知道哪些单词是命名实体.
-
自动语音识别: 在语音识别中, 输入序列是说话人的录音, 输出序列是说话人所说内容的文本记录. 音频和文本之间没有1:1的对应关系, 因为数千个样本可能对应于一个单独的单词. 这也是"序列到序列"的学习问题, 其中输出比输入短得多.
-
文本到语音: 这与自动语音识别相反.
-
机器翻译: 在语音识别中, 输入和输出的出现顺序基本相同. 而在机器翻译中, 颠倒输入和输出的顺序非常重要. 换句话说, 虽然我们仍将一个序列转换成另一个序列, 但是输入和输出的数量以及相应序列的顺序大都不会相同.
-
无监督学习
“监督学习"模型像一个打工仔, 有一份极其专业的工作和一位极其平庸的老板. 老板站在身后, 准确地告诉模型在每种情况下应该做什么, 直到模型学会从情况到行动的映射. 相反, 如果工作没有十分具体的目标, 就需要"自发"地去学习了. 这类数据中不含有"目标"的机器学习问题通常被为无监督学习.
-
聚类问题: 没有标签的情况下, 我们是否能给数据分类呢?
-
主成分分析问题: 我们能否找到少量的参数来准确地捕捉数据的线性相关属性?
-
因果关系和概率图模型问题: 我们能否描述观察到的许多数据的根本原因?
-
生成对抗性网络: 为我们提供一种合成数据的方法, 甚至像图像和音频这样复杂的非结构化数据.
强化学习
不管是监督学习还是无监督学习, 我们都会预先获取大量数据, 然后启动模型, 不再与环境交互. 这里所有学习都是在算法与环境断开后进行的, 被称为离线学习. 好的一面是, 我们可以孤立地进行模式识别, 而不必分心于其他问题. 但缺点是, 解决的问题相当有限. 当训练和测试数据不同时, 可能会带来分布偏移的问题.
强化学习问题, 这是一类明确考虑与环境交互的问题.
在强化学习问题中, 智能体在一系列的时间步骤上与环境交互. 在每个特定时间点, 智能体从环境接收一些观察, 并且必须选择一个动作, 然后通过某种机制(有时称为执行器)将其传输回环境, 最后智能体从环境中获得奖励. 此后新一轮循环开始, 智能体接收后续观察, 并选择后续操作, 依此类推. 请注意, 强化学习的目标是产生一个好的策略. 强化学习智能体选择的“动作”受策略控制, 即一个从环境观察映射到行动的功能.
强化学习框架的通用性十分强大, 我们可以将任何监督学习问题转化为强化学习问题.
以强化学习在国际象棋的应用为例. 唯一真正的奖励信号出现在游戏结束时: 当智能体获胜时, 智能体可以得到奖励1;当智能体失败时, 智能体将得到奖励-1. 因此, 强化学习者必须处理学分分配问题: 决定哪些行为是值得奖励的, 哪些行为是需要惩罚的.
在任何时间点上, 强化学习智能体可能知道一个好的策略, 但可能有许多更好的策略从未尝试过的. 强化学习智能体必须不断地做出选择: 是应该利用当前最好的策略, 还是探索新的策略空间(放弃一些短期回报来换取知识).
当环境可被完全观察到时, 强化学习问题被称为马尔可夫决策过程. 当状态不依赖于之前的操作时, 我们称该问题为上下文赌博机. 当没有状态, 只有一组最初未知回报的可用动作时, 这个问题就是经典的多臂赌博机.
Reference
- 动手学深度学习/引言.