从邮件分类理解学习
我们可以继续用垃圾邮件识别这个例子。
假设你希望电脑帮你区分正常邮件和垃圾邮件。一种做法是提前写好判断规则,例如,邮件里出现某些词语、包含某种链接,就把它归为可疑邮件。
这些规则可以发挥作用,但邮件内容会变化。同样一句“恭喜中奖”,可能出现在广告里,也可能出现在朋友分享的消息里。只靠某一个词,很难处理所有情况。随着例外越来越多,人就需要不断补充规则。
机器学习提供了另一种处理方式:准备一些已经知道类别的邮件,让训练程序利用这些例子,建立输入内容与邮件类别之间的联系,再用训练好的模型判断新邮件。
机器学习,英文是 Machine Learning,简称 ML。它是一类利用数据训练模型,使模型能够进行预测、判断或生成内容的方法。 它是人工智能的一部分,应用范围也包括语音识别、图像分类和内容生成等任务。机器学习的基本定义
样本、特征、标签与参数
在邮件这个例子里,一封具体的邮件就是一个“样本”。邮件中可用于判断的信息,例如文字内容、发件人信息和链接情况,可以成为模型的“特征”。我们已经知道的“正常邮件”或“垃圾邮件”这个类别,则叫“标签”。
你可以把它理解成一批带有参考答案的练习材料。输入信息告诉模型要根据什么进行判断,标签提供训练时可以对照的目标。使用这类带标签样本进行训练,属于“监督学习”。样本、特征与标签
不过,把数据放进电脑,并不会自然出现一个有用的模型。人仍然需要确定任务、选择合适的模型和训练方法,并检查数据质量。所谓让机器学习,是让程序按照设计好的方法,利用数据确定模型中可以学习的内容。
“模型”也可以从它的用途来理解:它接收输入,经过计算,产生一个判断。在一种简单的打分模型中,不同线索可以有不同的影响程度,例如某个词语的出现,让判断更偏向垃圾邮件。这些影响可以用数字表示,其中可通过训练确定的数字叫“参数”。改变参数,判断结果也可能随之改变。其他模型也可能通过学习分支条件等方式形成判断方法。参数的含义
训练、损失与推理
训练时,模型先根据邮件信息作出预测,再把预测与已知类别进行比较。如果把一封正常邮件判断成垃圾邮件,就说明当前判断存在偏差。
为了让程序能够处理这种偏差,需要用一种计算方法,把预测与目标之间的不符合程度表示出来。这个用于训练的数值通常叫“损失”。损失的具体算法会随任务变化,这里先把它理解成训练过程中衡量“预测与目标有多不一致”的尺度。损失的含义
接下来,训练算法利用这些差异调整模型。在通过优化调整参数的训练方式中,程序会尝试改变参数,使一批样本上的损失减小。这个过程可能重复很多次。一次调整不一定让每封邮件都判断得更好,训练关注的是所选目标下的整体表现。
因此,说模型“学会了”,是在描述经过训练之后,它的计算和判断方式发生了变化。学习的结果体现在模型中,例如一组训练得到的参数。它不需要把经验写成“凡是出现某个词就怎样”的自然语言说明,也不意味着它具有人的理解和意识。
模型训练好之后,就可以接收新邮件,按照当前的计算方式给出判断。利用已经训练好的模型处理新输入,这个过程叫“推理”。 在常见的离线训练方式下,处理一封新邮件,并不会自动再训练一次模型;根据新数据更新模型,需要另外安排训练与更新流程。训练与推理
泛化与数据质量
阅读提示:本文保留连续学习记录的原文。文中提及的数据切分将在第 06 模块展开,阅读本篇不需要先学过它。
还有一个重要问题:模型在练习材料上判断得很好,能否说明它已经可以可靠使用?
还需要看它面对新邮件的表现。训练数据里可能存在一些碰巧成立的联系,例如某批垃圾邮件恰好都来自相似的发件地址。模型如果过分依赖这种联系,遇到其他来源的垃圾邮件时,就可能判断不好。
模型把从训练数据中获得的能力应用到新数据上的表现,叫“泛化”。 如果它过于贴合训练数据,训练时表现很好,遇到新数据却表现较差,就可能出现“过拟合”。因此,评估时需要使用训练过程中没有用来拟合模型的数据,检验它的实际能力。泛化与过拟合
这也解释了我们前面为什么讨论训练集、验证集和测试集。它们帮助我们区分用于学习的数据、用于开发选择的数据,以及用于最终评估的数据。具体怎样划分,会在数据切分对应的编号中继续展开。
训练数据本身也会影响模型。假如正常邮件被大量标错,模型就会收到错误的训练目标;假如样本只覆盖很少的邮件类型,它对其他类型的表现就需要额外检验。增加数据数量,需要同时考虑数据是否准确、是否覆盖目标场景。
其他学习方式与 Agent
邮件分类只是机器学习的一种情况。其他学习方式可以从没有人工类别标注的数据中寻找结构,也可以从数据本身构造训练目标,或者根据行动带来的奖励学习策略。这些分别关联无监督学习、自监督学习和强化学习,以后会单独介绍。
回到 Agent,大语言模型的许多能力来自机器学习训练。开发者可以使用已经训练好的模型,再将它接入工具和任务流程,构建 Agent 应用。因此,学习如何调用和组织模型,与学习如何训练模型,是相互关联的两部分知识。
模型收到新的对话、文件或工具结果,也能据此改变这一次的回答。但这些新信息进入了当前处理过程,并不自动意味着模型参数已经更新。以后学习上下文、记忆和微调时,还会进一步区分这些变化分别发生在哪里。
接下来进入 01.03:深度学习 DL,继续了解机器学习中的一条重要技术路线:神经网络如何通过多层计算处理信息,以及这里的“深”指什么。
当前学习编号:01.02 机器学习 ML。
下一学习编号:01.03 深度学习 DL。后续还有其他学习编号。
关联分支:04.01 监督学习、04.02 无监督学习、04.03 自监督学习、04.04 强化学习、04.06 特征与标签、04.08 损失函数与优化目标、04.09 过拟合与欠拟合、06 数据切分。