监督学习
监督学习(supervised learning)擅长在“给定输入特征”的情况下预测标签。 每个“特征-标签”对都称为一个样本(example)。 有时,即使标签是未知的,样本也可以指代输入特征。 我们的目标是生成一个模型,能够将任何输入特征映射到标签(即预测)。
监督学习之所以能发挥作用,是因为在训练参数时,我们为模型提供了一个数据集,其中每个样本都有真实的标签。 用概率论术语来说,我们希望预测“估计给定输入特征的标签”的条件概率。
虽然监督学习只是几大类机器学习问题之一,但是在工业中,大部分机器学习的成功应用都使用了监督学习。 这是因为在一定程度上,许多重要的任务可以清晰地描述为,在给定一组特定的可用数据的情况下,估计未知事物的概率。
![![[Pasted image 20241229132516.png]]](https://i-blog.csdnimg.cn/direct/5e51032b423d4848ab0cd38b278cbeee.png)
监督学习的学习过程一般可以分为三大步骤:
- 从已知大量数据样本中随机选取一个子集,为每个样本获取真实标签。有时,这些样本已有标签(例如,患者是否在下一年内康复?);有时,这些样本可能需要被人工标记(例如,图像分类)。这些输入和相应的标签一起构成了训练数据集;
- 选择有监督的学习算法,它将训练数据集作为输入,并输出一个“已完成学习的模型”;
- 将之前没有见过的样本特征放到这个“已完成学习的模型”中,使用模型的输出作为相应标签的预测。
![![[Pasted image 20241229110739.png]]](https://i-blog.csdnimg.cn/direct/38b7f5ab7fd3492db745a13c79b1926c.png)
即使使用简单的描述给定输入特征的预测标签,监督学习也可以采取多种形式的模型,并且需要大量不同的建模决策,这取决于输入和输出的类型、大小和数量。
回归
回归(regression)是最简单的监督学习任务之一。
假设有一组房屋销售数据表格,其中每行对应一个房子,每列对应一个相关的属性,例如房屋的面积、卧室的数量、浴室的数量以及到镇中心的步行距离,等等。 每一行的属性构成了一个房子样本的特征向量。
当人们在市场上寻找新房子时,可能需要估计一栋房子的公平市场价值。
销售价格(即标签)是一个数值。 当标签取任意数值时,我们称之为回归问题,此时的目标是生成一个模型,使它的预测非常接近实际标签值。
分类
分类问题希望模型能够预测样本属于哪个类别(category,正式称为类(class))。
最简单的分类问题是只有两类,这被称之为二项分类(binomial classification)。
回归是训练一个回归函数来输出一个数值; 分类是训练一个分类器来输出预测的类别。
然而模型怎么判断得出这种“是”或“不是”的硬分类预测呢? 我们可以试着用概率语言来理解模型。 给定一个样本特征,模型为每个可能的类分配一个概率。
预测类别的概率的大小传达了一种模型的不确定性。
当有两个以上的类别时,我们把这个问题称为多项分类(multiclass classification)问题。
与解决回归问题不同,分类问题的常见损失函数被称为交叉熵(cross-entropy)
分类可能变得比二项分类、多项分类复杂得多。
例如,有一些分类任务的变体可以用于寻找层次结构,层次结构假定在许多类之间存在某种关系。 因此,并不是所有的错误都是均等的。 人们宁愿错误地分入一个相关的类别,也不愿错误地分入一个遥远的类别,这通常被称为层次分类(hierarchical classification)。
层次结构相关性可能取决于模型的使用者计划如何使用模型。
标记问题
学习预测不相互排斥的类别的问题称为多标签分类(multi-label classification)。
举个例子,人们在技术博客上贴的标签,比如“机器学习”“技术”“小工具”“编程语言”“Linux”“云计算”“AWS”。 一篇典型的文章可能会用5~10个标签,因为这些概念是相互关联的。 关于“云计算”的帖子可能会提到“AWS”,而关于“机器学习”的帖子也可能涉及“编程语言”。
搜索
有时,我们不仅仅希望输出一个类别或一个实值。 在信息检索领域,我们希望对一组项目进行排序。
以网络搜索为例,目标不是简单的“查询(query)-网页(page)”分类,而是在海量搜索结果中找到用户最需要的那部分。 搜索结果的排序也十分重要,学习算法需要输出有序的元素子集。
该问题的一种可能的解决方案:首先为集合中的每个元素分配相应的相关性分数,然后检索评级最高的元素。
推荐系统
另一类与搜索和排名相关的问题是推荐系统(recommender system),它的目标是向特定用户进行“个性化”推荐。
在某些应用中,客户会提供明确反馈,表达他们对特定产品的喜爱程度。
在其他一些情况下,客户会提供隐性反馈。
总的来说,推荐系统会为“给定用户和物品”的匹配性打分,这个“分数”可能是估计的评级或购买的概率。 由此,对于任何给定的用户,推荐系统都可以检索得分最高的对象集,然后将其推荐给用户。
工业生产的推荐系统要先进得多,它会将详细的用户活动和项目特征考虑在内。 推荐系统算法经过调整,可以捕捉一个人的偏好。
尽管推荐系统具有巨大的应用价值,但单纯用它作为预测模型仍存在一些缺陷。 首先,我们的数据只包含“审查后的反馈”:用户更倾向于给他们感觉强烈的事物打分。
此外,推荐系统有可能形成反馈循环:推荐系统首先会优先推送一个购买量较大(可能被认为更好)的商品,然而目前用户的购买习惯往往是遵循推荐算法,但学习算法并不总是考虑到这一细节,进而更频繁地被推荐。 综上所述,关于如何处理审查、激励和反馈循环的许多问题,都是重要的开放性研究问题。
序列学习
以上大多数问题都具有固定大小的输入和产生固定大小的输出。
在这些情况下,模型只会将输入作为生成输出的“原料”,而不会“记住”输入的具体内容。
如果输入的样本之间没有任何关系,以上模型可能完美无缺。
但是如果输入是连续的,模型可能就需要拥有“记忆”功能。
序列学习需要摄取输入序列或预测输出序列,或两者兼而有之。 具体来说,输入和输出都是可变长度的序列,例如机器翻译和从语音中转录文本。 虽然不可能考虑所有类型的序列转换,但以下特殊情况值得一提。
标记和解析:
这涉及到用属性注释文本序列。 换句话说,输入和输出的数量基本上是相同的。
通常,目标是基于结构和语法假设对文本进行分解和注释,以获得一些注释。
Tom has dinner in Washington with Sally
Ent - - - Ent - Ent
自动语音识别:
在语音识别中,输入序列是说话人的录音,输出序列是说话人所说内容的文本记录。
音频和文本之间没有1:1的对应关系,因为数千个样本可能对应于一个单独的单词。
这也是“序列到序列”的学习问题,其中输出比输入短得多。
文本到语音:
这与自动语音识别相反。 换句话说,输入是文本,输出是音频文件。
在这种情况下,输出比输入长得多。 虽然人类很容易识判断发音别扭的音频文件,但这对计算机来说并不是那么简单。
机器翻译:
在语音识别中,输入和输出的出现顺序基本相同。
而在机器翻译中,颠倒输入和输出的顺序非常重要。 换句话说,虽然我们仍将一个序列转换成另一个序列,但是输入和输出的数量以及相应序列的顺序大都不会相同。
![![[Pasted image 20241229141013.png]]](https://i-blog.csdnimg.cn/direct/5d22b3f9a0df4bbfb003732b617e3874.png)
无监督学习
到目前为止,所有的例子都与监督学习有关,即需要向模型提供巨大数据集:每个样本包含特征和相应标签值。
“监督学习”模型像一个打工仔,有一份极其专业的工作和一位极其平庸的老板。 老板站在身后,准确地告诉模型在每种情况下应该做什么,直到模型学会从情况到行动的映射。 取悦这位老板很容易,只需尽快识别出模式并模仿他们的行为即可。
如果工作没有十分具体的目标,就需要“自发”地去学习了。
比如,老板可能会给我们一大堆数据,然后要求用它做一些数据科学研究,却没有对结果有要求。
聚类(clustering)问题:
没有标签的情况下,我们是否能给数据分类呢?给定一组用户的网页浏览记录,我们能否将具有相似行为的用户聚类呢?
主成分分析(principal component analysis)问题:
我们能否找到少量的参数来准确地捕捉数据的线性相关属性?
因果关系(causality)和概率图模型(probabilistic graphical models)问题:
我们能否描述观察到的许多数据的根本原因?
如果我们有关于房价、污染、犯罪、地理位置、教育和工资的人口统计数据,我们能否简单地根据经验数据发现它们之间的关系?
生成对抗性网络(generative adversarial networks):
为我们提供一种合成数据的方法,甚至像图像和音频这样复杂的非结构化数据。
![![[Pasted image 20241229142132.png]]](https://i-blog.csdnimg.cn/direct/b51904bb6ebb4f72849ba014201fa2db.png)
与环境互动
到目前为止,不管是监督学习还是无监督学习,我们都会预先获取大量数据,然后启动模型,不再与环境交互。
这里所有学习都是在算法与环境断开后进行的,被称为离线学习(offline learning)。
对于监督学习,从环境中收集数据的过程
![![[Pasted image 20241229130248.png]]](https://i-blog.csdnimg.cn/direct/4ca858fbf3674f56bed317caa8033d67.png)
简单的离线学习。好的一面是,我们可以孤立地进行模式识别,而不必分心于其他问题。 但缺点是,解决的问题相当有限。 这时我们可能会期望人工智能不仅能够做出预测,而且能够与真实环境互动。
与预测不同,“与真实环境互动”实际上会影响环境。 这里的人工智能是“智能代理”,而不仅是“预测模型”。 因此,我们必须考虑到它的行为可能会影响未来的观察结果。
当训练和测试数据不同时,提出了分布偏移(distribution shift)的问题。
强化学习
使用机器学习开发与环境交互并采取行动,强化学习(reinforcement learning)。
这可能包括应用到机器人、对话系统,甚至开发视频游戏的人工智能(AI)。
深度强化学习(deep reinforcement learning)将深度学习应用于强化学习的问题,是非常热门的研究领域。
在强化学习问题中,智能体(agent)在一系列的时间步骤上与环境交互。 在每个特定时间点,智能体从环境接收一些观察(observation),并且必须选择一个动作(action),然后通过某种机制(有时称为执行器)将其传输回环境,最后智能体从环境中获得奖励(reward)。 此后新一轮循环开始,智能体接收后续观察,并选择后续操作,依此类推。
强化学习的目标是产生一个好的_策略_(policy)。 强化学习智能体选择的“动作”受策略控制,即一个从环境观察映射到行动的功能。
![![[Pasted image 20241229131743.png]]](https://i-blog.csdnimg.cn/direct/f5315104d25b43c09b979a2bf4513f2f.png)
强化学习框架的通用性十分强大,可以将任何监督学习问题转化为强化学习问题。
假设我们有一个分类问题,可以创建一个强化学习智能体,每个分类对应一个“动作”。 然后,我们可以创建一个环境,该环境给予智能体的奖励。 这个奖励与原始监督学习问题的损失函数是一致的。
强化学习者必须处理学分分配(credit assignment)问题:决定哪些行为是值得奖励的,哪些行为是需要惩罚的。
强化学习可能还必须处理部分可观测性问题。 也就是说,当前的观察结果可能无法阐述有关当前状态的所有信息。
最后,在任何时间点上,强化学习智能体可能知道一个好的策略,但可能有许多更好的策略从未尝试过的。 强化学习智能体必须不断地做出选择:是应该利用当前最好的策略,还是探索新的策略空间(放弃一些短期回报来换取知识)。
一般的强化学习问题是一个非常普遍的问题。 智能体的动作会影响后续的观察,而奖励只与所选的动作相对应。 环境可以是完整观察到的,也可以是部分观察到的,解释所有这些复杂性可能会对研究人员要求太高。 此外,并不是每个实际问题都表现出所有这些复杂性。
当环境可被完全观察到时,强化学习问题被称为马尔可夫决策过程(markov decision process)。 当状态不依赖于之前的操作时,我们称该问题为上下文赌博机(contextual bandit problem)。 当没有状态,只有一组最初未知回报的可用动作时,这个问题就是经典的多臂赌博机(multi-armed bandit problem)。
机器学习:监督、无监督与强化学习
1万+

被折叠的 条评论
为什么被折叠?



