标签: AI 原理与智能系统

  • 机器学习为什么能从数据中形成可泛化的模型

    作者:lihao技术文章发布:AI 原理与智能系统 · 第 02 期

    用同一组点比较记忆表与线性规则,再用改变分布的反例说明:训练误差很小,仍然不足以保证未来表现。

    训练集做对了,为什么还不够

    假设训练数据只有三个点:(0,1)、(1,3)、(2,5)。规则f(x)=2x+1能全部答对;记忆表也能全部答对,只要遇到表外输入就输出0。两者训练误差都为零,在x=3时却分别给出7和0。

    机器学习的困难因此不只是找到一个能解释已有数据的函数,而是在有限观察之外仍作出有用预测。泛化指模型在目标分布的新样本上的表现;它不是“记得更多”,也不是凭训练集本身就能无条件保证的能力。

    下面固定一个一维、无噪声、合成数据的例子,只比较规则。这些点是合成数据,目的在于隔离模型偏好的作用。

    数据之外,还需要一种偏好

    从三个点出发,有无穷多函数都能穿过它们。选择线性函数,等于事先限制模型族:我们愿意优先考虑直线。这个限制是一种归纳偏置,训练只能在它允许的候选中寻找参数。

    令预测为ax+b,用训练点的平方误差之和作目标。由(0,1)得到b=1,再由(1,3)得到a=2,第三点与该规则一致。对这组无噪声数据,参数可以直接推导,不必调用复杂库。

    这个结果为什么可能有效?如果未来数据也遵循同一规律,所选模型族包含了它,训练又确定了正确参数,那么在新点上也能答对。任何一项条件变化,结论都需要重新检查。教材中的泛化理论正是在明确样本、假设空间、损失与分布条件后讨论保证。[1]

    用保留点检验,再用反例检查条件

    固定训练输入0、1、2,保留测试输入3、4,目标仍为2x+1。线性规则预测7、9,平均平方误差为0;上述记忆规则预测0、0,平均平方误差为(49+81)/2=65。

    这里有意采用区间外的保留点,是一次外推压力测试,不是独立同分布抽样的统计评估。它能显示两条规则的不同,不能估计真实应用中的平均误差。若把这些测试点拿来选模型,它们随后就成了模型选择依据,还应另留最终评估数据。

    再构造另一种世界:x≤2时y=2x+1,x>2时y=100。训练数据完全不变,但线性规则在3、4上误差变成93和91,平均平方误差为8465。这不是算法突然算错,而是训练样本没有区分两种未来规律。仅凭前面三个点,无法排除后一种世界。

    实际评估如何避免自己骗自己

    先按数据产生过程划分训练、验证与测试。训练集用于拟合;验证集用于选择模型或超参数;测试集用于相对独立的最终评价。若同一人、同一设备或同一段时间的高度相关样本分落两边,就可能出现泄漏。

    例如,用一位用户的多条近乎重复消息同时训练和测试,可能主要测到了记忆能力。若任务是预测未来,把未来记录中的特征泄漏到过去样本,同样会高估效果。具体划分应服从应用中的独立单位与时间关系,不能机械地随机打散。

    正则化、早停或限制模型复杂度,是调节偏好的方法,不是免检证书。数据有偏、标签错误、部署分布变化,都可能让训练过程正常完成而模型失效。

    把经验误差与目标风险分别写清

    设训练集S={(xᵢ,yᵢ)},候选模型为f,损失为ℓ。经验风险R̂ₛ(f)是训练样本损失的平均;目标风险Rᴅ(f)是在部署相关分布D上损失的期望。训练直接操作的是前者,用户最终关心的通常是后者。

    两者差异可以分成两类问题。第一,即使把训练目标降到很低,有限样本仍可能不代表D;第二,模型族本身可能不包含低风险函数。前者涉及估计和选择,后者涉及近似能力。优化器没收敛又是额外一层,不能把所有误差都叫过拟合。

    在独立同分布、损失有界、候选集合有限等条件下,可以用集中不等式与对候选的联合控制得到一致的泛化界。具体地,若损失在[0,1]、假设集合H预先固定且有M个元素、n个样本独立同分布,则以至少1−δ的概率,对全部f∈H都有 |Rᴅ(f)−R̂ₛ(f)|≤√(ln(2M/δ)/(2n))。对经验风险最小化解,这进一步给出相对H中最优目标风险至多2倍该界的差距。它是充分界,可能很松;前面的平方损失例子若没有先界定输入和输出范围,也不能直接代入这个[0,1]损失界。[1,第4—6章] 这里不把这一有限模型结果原封不动外推到任意深网、相关数据或分布迁移。

    关键是“一致”控制:训练后选择的f依赖S,不能把只对预先固定f成立的估计,未经处理就用于反复选出来的最优模型。这也是验证集、独立测试和模型选择理论要处理的核心依赖。

    代入一个有限候选例子:在固定的 100 个模型中选择,n=1000、δ=0.05,则界为 √(ln4000/2000)≈0.0644。意思是:在前述抽样与损失条件成立时,以至少 95% 的概率,抽到的训练集会使全部 100 个模型的经验风险与目标风险相差不超过约 0.0644。这项概率针对训练集的抽样,不表示模型每次预测有 95% 的准确率。

    ERM 的超额风险保证相应不超过约 0.1288,可能远比实际误差宽。若只靠这个充分界要求一致差距不超过 0.01,至少需要 41471 个样本;这不是声称较少样本必定失败,而是说这条界尚不足以作出那样强的保证。[1,推论4.6]

    带一点噪声,再看规则怎样形成

    构造训练点(0,1)、(1,2)、(2,5),仍限定f(x)=ax+b,并最小化平方误差。三点不在一条直线上,不能同时零误差。均值x̄=1、ȳ=8/3,斜率a=Σ(xᵢ-x̄)(yᵢ-ȳ)/Σ(xᵢ-x̄)²=4/2=2,截距b=2/3。

    三次预测为2/3、8/3、14/3;残差分别为-1/3、2/3、-1/3,训练MSE为2/9。这个拟合在模型族和损失固定后是可核算的结果,既没有完全记住训练标签,也没有证明噪声来自何种现实过程。

    如果我们知道中间标签本应为3而记录成2,修正数据可能比增大模型更合理;如果标签2是可靠观察,则“真实关系一定是2x+1”的假设要受审查。学习不是让算法替研究者决定所有数据质量问题。

    正则化可以在误差目标中增加参数复杂度惩罚,例如λa²。它改变了我们偏好的解,而不是给原问题免费增加证据。λ越大通常越压制斜率,但是否降低目标风险仍要独立评估,不能只看目标函数值。

    不确定性如何进入结果,而不是只写一个分数

    两个保留点上的零误差,不等于风险已知为零。样本量小、输入范围窄或样本高度相关,都会使估计不稳定。若任务允许,应报告样本数量、抽样单位与误差分布;重复实验还需区分数据变化与训练随机性。

    分布变化也有不同形式:输入频率改变、标签机制改变、观测流程改变,所需应对并不相同。前文y在区间外变成100的反例,直接改变了关系机制;简单扩大缓存或提高训练轮数无法从相同三点恢复被遗漏的信息。

    真正的部署判断还要规定何时拒答、何时转人工、如何监测失效。泛化理论解释某些条件下为什么有限样本可能足够;工程评估说明这些条件和实际任务相差多远。两者结合,才比一句“数据越多越聪明”更有解释力。

    捷径学习:样本很多,也可能学到错误的依赖

    构造一个分类数据集,真实目标与形状有关,但训练图片中圆形总是红底、方形总是蓝底。一个只看背景的模型可以在随机划分的测试集上很好,因为两边都保留了同样的关联。样本数量增加,只会让这条捷径更容易被确认。

    若部署时背景与形状独立,原指标就可能失效。问题不是模型不能拟合,而是评估分布没有检验真正需要的依赖。处理方式可以包括按来源分组、构造打破背景关联的保留集,或取得更能区分候选机制的数据;不能只靠把相同来源继续随机拆分。

    这也显示“归纳偏置”不总是坏事。一个适合任务的结构或数据策略,可以抑制某些捷径;但若预设错了,也会排除有用关系。应将假设写出,让反例有机会改变它。

    前面的泛化界把训练与目标分布关系作为条件,捷径例子则问这个条件是否描述了实际应用。统计保证与部署有效性因此需要一起阅读:公式严谨,不等于应用假设已经被数据验证。

    泛化不等于理解全部规律

    本例的线性规则确实比记忆表更适合第一种目标,但不能据此宣布简单模型永远更好。若真实关系是复杂非线性,过强的限制也会造成欠拟合;若样本量与任务结构支持,更丰富的模型可能有优势。

    最终应报告目标任务、输入范围、损失、划分方式、误差与失败样本。平均指标还可能掩盖某些群体或边界输入的失败。若任务要求超出已验证范围,就应明确标出证据缺口。

    从数据形成可泛化模型,靠的是数据、结构假设、训练方法和评估条件的共同作用。这个回答保留了一个必要限制:没有任何有限样本能单独替我们承诺任意未来世界。

    来源、证据与阅读路线

    1. Shalev-Shwartz、Ben-David,Understanding Machine Learning,2014,第2章学习模型及第5—6章归纳偏置与可学习性
    2. Goodfellow等,Deep Learning,2016,第5章5.2—5.3:泛化、过拟合、超参数与验证集

    证据范围:回归、含噪拟合及统计界的数值按已列条件复算;外推点是构造压力测试,有限假设类保证不等于现实数据满足抽样假设。

    版本1.2 · 2026-10-18:完成事实、条件与引用复核,逐篇明确证据方法;有实质缺口处补齐推导、反例或原题。原网址与首次发布日期保留。

  • 人工智能、机器学习、深度学习:三个概念怎样区分

    作者:lihao技术文章发布:AI 原理与智能系统 · 第 01 期

    用同一个分类任务区分手写规则、从样本拟合和多层表示学习;模型的计算方式与系统职责分别讨论。

    三个词,回答的并不是同一层问题

    一套程序能下棋,我们会说它属于人工智能研究的对象;它是否必须先从大量棋谱学习?并不必须。若把人工智能、机器学习和深度学习当成同义词,就很难说清一套系统靠什么得到能力。

    本文采用常见的教学关系:人工智能(AI)是围绕智能任务的广泛研究领域;机器学习(ML)研究如何借助数据或经验改进任务表现,是实现AI的一类方法;深度学习(DL)是以多层可学习表示为重要特征的一类机器学习方法。这个包含关系便于定位方法,不是按商业产品名称划分的法律或标准分类。

    1955年的达特茅斯项目建议书把语言、抽象、问题求解与自我改进等列为研究问题。[1] 它提出的是研究设想,不能把当年的设想当作后来已经证明所有智能都可被机器完整模拟的结论。

    用一个任务比较三种做法

    设想给短消息分成“普通”与“待复核”两类。为了讲清机制,先只用两个特征:某个词出现的次数x₁,链接数量x₂。这是本文构造的教学任务,没有真实用户消息,也不评价任何真实检测系统。

    第一种做法是人工写规则:若链接超过某个阈值,就送去复核。阈值由人指定,没有从样本自动拟合;规则系统仍可能是更大AI系统的一部分,不能仅因没有神经网络就断言它与AI无关。

    第二种做法是固定线性打分形式s=w₁x₁+w₂x₂+b,再利用带标签样本选择w₁、w₂和b。人规定特征、模型族与损失,训练过程按数据调整参数。它属于机器学习,却不因参数是学来的就自动属于深度学习。

    第三种做法是让模型从字符或词元等输入出发,经过多层变换形成表示并输出分类。中间表示也参与学习,这是深度学习常见的工作方式。究竟多少层才叫深,并没有一个适用于所有架构的固定门槛。[2]

    学习发生在什么地方

    把训练过程写成“数据→训练算法→参数”,把使用过程写成“新输入+参数→输出”,就能区分训练与推理。一个已经训练好的模型,在每次推理时可以只是执行确定的运算;它不一定边回答边更新权重。

    因此,运行程序时行为很稳定,不妨碍它的参数来自学习;反过来,程序根据一条人工规则改变输出,也不等于它正在学习。判断时要找可观察的更新机制,而不是凭“看起来聪明”下结论。

    Mitchell的机器学习教材把学习与任务、经验和表现改进联系起来。[3] 实际报告还必须说明指标和数据划分,否则“模型学习了”可能只是记住训练样本。下一篇会专门讨论这个差别。

    一张表看清比较对象

    比较项 手写规则示例 线性学习示例 多层表示学习示例
    主要由人指定 规则及阈值 特征、模型族与目标 架构、目标与训练流程
    从样本调整 本例没有 权重和偏置 多层参数及表示
    必须核验 覆盖与例外 未见数据误差 未见数据误差与计算代价

    这张表不能推出第三种一定最好。样本少、解释要求强、任务规则明确时,简单规则或浅层模型可能更合适。在非线性、宽度和连接结构适当时,更深的模型可能更有效地表达某些函数;但深度本身不保证表达力或效果提升,也可能增加训练、调试与部署成本。它不会自动带来正确标签或稳定泛化。

    把一层网络写出来,才知道“学了表示”是什么意思

    令输入为二维向量x=(x₁,x₂)。构造隐藏表示h=ReLU(Wx+b),再计算分数s=vᵀh+c。ReLU把负数截为0,保留非负数。这里的关键不只是乘法数量多,而是前一级的输出成为后一级的输入,而且W、b、v、c可以共同由训练目标调整。

    若第一层只做线性变换h=Wx,后一层也只做线性变换s=vᵀh,那么复合后仍是s=(vᵀW)x。一味叠加线性层,并没有获得任意非线性关系。非线性、结构与目标之间的配合,才决定模型能表达什么。

    例如用两个二值输入构造XOR:输入00、11标0,01、10标1。假定单个线性阈值分类器s=w₁x₁+w₂x₂+b≥0时输出1,则00为0要求b<0;01、10为1分别要求w₂+b≥0和w₁+b≥0。相加得到w₁+w₂+2b≥0,因此11处的s≥-b>0,与其应为0矛盾。问题不在训练次数不够,而在这个模型族不能表达该划分。

    多层非线性模型可以构造相应区域,但这不是说每个实际分类问题都需要深网。XOR只是一项表达能力的例证,没有代表自然数据分布,也没有比较学习效率、鲁棒性或部署成本。[2,表示与复合函数的讨论]

    学习、搜索和推理,为什么常在同一个系统里出现

    考虑下棋系统:搜索负责在候选行动和后续局面中展开比较;评估函数估计局面价值;规则限定哪些行动合法。评估函数可以由人工设计,也可以从数据学习。搜索不是机器学习的同义词,但可以使用学习得到的组件。

    再看一个检索问答系统:检索器寻找相关材料,模型生成回答,规则控制权限与输出格式。文本来自检索,不说明模型在本次调用中更新了权重;外部记忆增加,也不自动等于参数学习。判断系统时,应追踪信息在什么位置被保存、何时影响后续行为。

    这种拆解还能防止把能力归错原因。若系统回答了一个新事实,可能是训练中见过,可能是检索到了,也可能是上下文直接提供。只凭最终答案,不能断定哪种机制起作用。需要关闭或替换对应组件,构造受控比较。

    因此,AI作为系统任务、ML作为获取某些能力的方法、DL作为一种模型与表示学习路线,可以同时成立。产品层面往往是组合关系,研究分类则帮助我们提出更可验证的问题。

    评价模型,至少把四个问题分开

    表达能力问是否存在一组参数能完成任务;可学习性问在给定数据与假设下能否学到有用规律;可优化性问训练算法能否实际找到合适参数;系统可用性还要问延迟、成本、失败与维护。四者不会由一个标签自动保证。

    一个很大的网络可能表达目标函数,却因数据不足而无法稳定学习;一个可证明适合的统计模型,也可能因为实现错误而训练失败;测试误差较低的模型,还可能不满足部署资源与隐私条件。

    这就是为什么技术报告应交代任务、数据、模型、训练、评估和运行条件。称为深度学习,只提供了部分机制线索;它不能代替对整条证据链的检查。

    让XOR网络真正算一遍,区分表示与训练

    沿用二值x₁、x₂,令u=x₁+x₂,h₁=ReLU(u),h₂=ReLU(u−1),输出y=h₁−2h₂。输入00时u=0,输出0;输入01或10时u=1,输出1;输入11时u=2,输出2−2=0。这个两单元隐藏表示已经能实现XOR。

    这里权重是人为构造出来的,所以这次演示证明的是该模型族具有表达能力,不是证明某种训练算法必然能学到它。若真实训练失败,可能是初始化、目标函数、优化过程或数据编码的问题;表达能力充足不能替代这些条件。

    它也没有说明XOR需要“非常深”的模型。一个小型非线性表示就够用。现代深度学习的复杂性来自更广的任务、表示复合与训练规模,不能用一个玩具函数为任意增加层数背书。

    把这几个结论分开,就能更精确地阅读“某架构解决某任务”的报告:作者展示了存在性构造,训练得到的结果,还是在未见数据上的稳定表现?它们分别需要不同证据。

    模型与完整系统还差一层

    实际产品还包括数据清理、检索、规则、权限、监控和人工复核。一个应用可以同时使用手写规则与深度模型;它的可靠性不能只用模型在一张公开测试表里的分数表示。

    这些方法类别不能代替对实际系统的评估。“AI”不能直接推出会学习,“机器学习”不能直接推出使用神经网络,“深度学习”不能直接推出接近人类理解。

    以后遇到一个新系统,可以依次问:它完成什么任务,哪部分来自人工规则,哪些参数由数据确定,如何评价未见输入,以及失败由谁发现。这些问题比争夺一个标签更接近理解机制。

    来源、证据与阅读路线

    1. McCarthy等,1955年达特茅斯AI研究项目建议书,开篇及研究主题
    2. Goodfellow、Bengio、Courville,Deep Learning,2016,第1章,尤其图1.4与表示学习讨论
    3. Tom Mitchell,Machine Learning,1997,作者提供的教材入口与第1章

    证据范围:AI分类依据教材与所列任务定义;XOR网络是手工构造并核对有限输入的例子,没有进行数据训练或设备性能测量。

    版本1.2 · 2026-10-18:完成事实、条件与引用复核,逐篇明确证据方法;有实质缺口处补齐推导、反例或原题。原网址与首次发布日期保留。