AI扫盲指南:机器学习、深度学习、Transformer与Agent核心概念解析

发布时间:2026/11/2 14:18:39
AI扫盲指南:机器学习、深度学习、Transformer与Agent核心概念解析

1. 为什么我要写这份AI扫盲指南

国庆七天假,朋友圈里一半人在景区排队,另一半人在家里对着屏幕调参。我就是后者。每年长假我都会挑一个"平时想学但一直没整块时间啃"的方向做集中突破,今年选的是AI。原因很简单:过去一年,不管你是做后端、前端、测试还是产品,工作里都绕不开这几个词——机器学习、深度学习、Transformer、Agent。你不一定马上要上手训模型,但至少得知道它们各自解决什么问题、边界在哪、坑在哪。

这份指南的定位很明确:给技术人做一次系统性的概念扫盲,不是教你七天成为算法工程师,而是让你在七天之后,能看懂技术群里的讨论、能判断一个需求该不该用AI、能跟算法同学对上话。我把它拆成四个核心板块:机器学习打地基、深度学习往上盖、Transformer讲透原理、Agent看落地。每个板块都配了"为什么这么设计"的解释和"实际会踩什么坑"的经验,你可以按顺序读,也可以挑自己缺的那块补。

需要提前说明的是,文中涉及的具体参数、代码、工具选型,一部分来自我自己的实操记录,一部分是基于行业常见实践做的合理补充,我会在相应位置标注清楚。你照着抄作业没问题,但别当成唯一标准答案——AI这个领域,版本迭代快,今天的最优解明天可能就被替代了。

2. 机器学习:先搞清楚它在解决什么问题

2.1 机器学习到底"学"的是什么

很多人第一次接触机器学习,脑子里浮现的是科幻电影里那种会思考的机器人。实际上它的核心逻辑非常朴素:从数据里找规律,然后用这个规律去预测新数据。传统编程是你把规则写死,输入A就输出B;机器学习是你给一堆A和对应的B,让它自己总结出从A到B的映射关系。

举个生活化的例子。你想写个程序判断一封邮件是不是垃圾邮件。传统做法是列关键词黑名单,"中奖""免费""点击链接"命中就判定为垃圾。但发垃圾邮件的人会不断换词,你永远追不上。机器学习的做法是:给它一万封已经标注好"垃圾/正常"的邮件,让它自己统计哪些词、哪些句式、哪些发送时间跟"垃圾"这个标签关联最强。学完之后,来一封新邮件,它根据学到的规律给出一个概率值。

这里有个关键概念叫特征。特征就是你能从原始数据里提取出来的、对判断结果有帮助的信息。邮件的特征可以是词频、发件人域名、是否含附件、发送时间段等等。特征选得好不好,直接决定模型效果的上限。我见过太多项目,模型换了一茬又一茬,效果就是上不去,最后发现是特征工程没做透。

2.2 监督学习、无监督学习、强化学习怎么区分

这三个词经常被混着用,其实区分标准很简单:看数据有没有标签。

监督学习是数据带答案的。你给模型看图片,同时告诉它"这是猫""这是狗",它学的是从图片到标签的映射。分类问题(判断类别)和回归问题(预测数值)都属于这一类。实际工作中八成以上的落地场景都是监督学习,因为业务方通常能提供历史标注数据。

无监督学习是数据不带答案的。你只给一堆用户行为记录,让模型自己找出哪些用户行为相似、可以分成几群。聚类、降维、异常检测是典型应用。它的难点在于结果不好评估——模型说分成了五群,但这五群到底有没有业务意义,得靠人去解读。

强化学习是另一套逻辑:没有标准答案,只有一个环境和一个奖励信号。模型(智能体)在环境里做动作,做对了给奖励,做错了给惩罚,目标是学会一套能拿到最多累计奖励的策略。下棋、机器人控制、游戏AI是它的主战场。强化学习的样本效率通常很低,需要大量试错,这也是它在实际业务里落地相对少的原因。

注意:初学者最容易犯的错是把强化学习当成"更高级的监督学习"。它们的问题设定完全不同,不要混用。

2.3 数据处理:模型效果的地基

热搜里有个词叫"机器学习中的数据处理是什么",这个问题问到了点子上。我个人的经验是:一个机器学习项目里,数据处理和特征工程占掉60%到70%的时间,建模和调参只占20%左右。数据处理做不好,后面全是白费。

数据处理通常包含这几步。第一是清洗:处理缺失值(删掉、填充均值、用模型预测)、处理异常值(超出合理范围的数据要么修正要么剔除)、去重。第二是转换:把类别型变量做独热编码或标签编码,把数值型变量做归一化或标准化。第三是构造:从原始字段里组合出新特征,比如从"注册时间"和"下单时间"算出"注册到下单的间隔天数"。第四是划分:把数据切成训练集、验证集、测试集,比例常见的是6:2:2或8:1:1。

这里有个特别容易踩的坑:数据泄露。比如你在做标准化的时候,用了全量数据的均值和方差,然后才划分训练测试集。这就导致测试集的信息"泄露"到了训练过程里,模型在测试集上表现虚高,上线就崩。正确做法是先划分,再只用训练集的统计量去转换验证集和测试集。

另一个坑是类别不平衡。比如做欺诈检测,正常交易占99.9%,欺诈只占0.1%。模型只要全预测成"正常",准确率就有99.9%,但一个欺诈都抓不到。这时候要看召回率、F1值、AUC这些指标,或者用重采样、调整类别权重来缓解。

2.4 常见模型速览与选型思路

机器学习模型大致可以分成几类。线性模型(线性回归、逻辑回归)简单、可解释性强,适合做基线。树模型(决策树、随机森林、梯度提升树)在表格数据上表现极稳,XGBoost、LightGBM至今仍是很多竞赛和业务的首选。支持向量机适合小样本高维数据。神经网络则是深度学习的范畴,后面单独讲。

选型的时候我一般按这个顺序想:先看数据量和特征类型,再看可解释性要求,最后看推理性能约束。如果业务方要求"必须能解释为什么拒绝这笔贷款",那树模型或逻辑回归比神经网络合适。如果数据是图像、语音、文本这种非结构化数据,那基本只能上深度学习。

热搜里"机器学习期末复习""机器学习西瓜书""西电机器学习期末""山东大学机器学习期末"这些词说明很多同学在应付考试。我的建议是:考试归考试,但别只背公式。把每个算法的"输入是什么、输出是什么、优化目标是什么、有什么假设"这四件事搞清楚,比死记推导过程有用得多。

3. 深度学习:从机器学习里长出来的分支

3.1 深度学习跟机器学习是什么关系

热搜里有人问"llm是否属于深度学习",答案是肯定的。深度学习是机器学习的一个子集,它的特点是用多层神经网络自动学习特征。传统机器学习需要人工设计特征,深度学习把特征提取这一步也交给网络自己学。

这个区别在图像任务上体现得特别明显。传统做法你要手动设计SIFT、HOG这些特征描述子,费时费力还不一定好。卷积神经网络(CNN)直接吃原始像素,浅层学边缘和纹理,中层学部件,深层学整体物体,层层抽象。你不需要告诉它"猫有尖耳朵",它自己从数据里学出来。

深度学习的"深"指的就是网络层数多。层数多了,表达能力上去了,但训练难度也上去了——梯度消失、过拟合、算力需求爆炸,这些都是要解决的问题。后面讲的Transformer,本质上也是在解决"怎么让深层网络训得动、训得好"这个问题。

3.2 计算机视觉和机器学习到底啥区别

热搜里"计算机视觉和机器学习区别"这个问题,其实问法本身有点问题。计算机视觉是一个应用领域,机器学习是一类方法。计算机视觉的任务(图像分类、目标检测、语义分割)可以用机器学习方法做,也可以用深度学习方法做,甚至可以用传统图像处理方法做。

正确的问法应该是"计算机视觉里的传统方法和深度学习方法有什么区别"。传统方法依赖手工特征加分类器,比如用HOG特征加SVM做人脸检测。深度学习方法用CNN端到端学习特征和分类器。在数据充足的情况下,深度学习方法通常碾压传统方法;但在数据很少、算力受限、或者需要极强可解释性的场景,传统方法仍有价值。

3.3 CNN、ViT与Swin Transformer的演进逻辑

CNN的核心是卷积核。一个小的窗口在图像上滑动,每个位置做加权求和,提取局部特征。它的两个关键特性是局部连接和权重共享,前者利用了图像的局部相关性,后者大幅减少了参数量。池化层负责下采样,扩大感受野。

但CNN有个天然局限:感受野是局部的,要看到全局信息得堆很多层。Vision Transformer(ViT)换了个思路:把图像切成一个个小块(patch),每个patch当成一个"词",直接送进Transformer。这样第一层就能看到全局。ViT在数据量大的时候效果很好,但数据少的时候不如CNN,因为它缺少CNN那种内置的归纳偏置。

Swin Transformer则做了折中:它用窗口注意力,只在局部窗口内算注意力,然后通过窗口移动让信息跨窗口流动。这样既有全局建模能力,又把计算量控制住了。热搜里"swin transformer""vision transformer"这两个词热度高,说明视觉Transformer已经是主流方向了。

3.4 深度学习需要什么编程语言和工具

热搜里"深度学习所需要的编程语言"这个问题,答案很明确:Python是绝对主流。生态太全了,PyTorch、TensorFlow、JAX、各种数据处理库、可视化工具,全是Python优先。C++主要在推理部署阶段用,比如TensorRT、ONNX Runtime。CUDA是英伟达GPU的编程接口,做底层算子开发才需要。

框架选择上,PyTorch目前是研究和教学的首选,动态图写起来直观,调试方便。TensorFlow在工业部署上积累深,但近年份额被PyTorch蚕食不少。JAX在学术圈很火,函数式风格,适合做研究。我的建议是新手直接上PyTorch,社区活跃,遇到问题好搜答案。

热搜里"codex跑深度学习""codex无法发送消息"这些词,反映的是用AI编程助手辅助写代码的需求。这类工具确实能帮你生成模型代码、解释报错、优化写法,但别指望它替你理解原理。它生成的代码你得能看懂、能改、能调,否则出了问题你连从哪查都不知道。

3.5 深度学习里的parameter到底指什么

热搜里有个很有意思的问题:"深度学习里的parameter应该不是mb吧"。这里混淆了两个概念:参数量和显存占用。

参数量是模型里可学习变量的个数,单位是"个",比如一个7B的模型有70亿个参数。显存占用是这些参数在GPU上实际占的空间,单位是字节。一个FP16精度的参数占2字节,所以70亿参数大约占14GB显存。再加上优化器状态、梯度、激活值,实际训练时显存需求可能是参数量的好几倍。

所以"参数量"和"MB/GB"是两个维度的事。参数量决定模型容量,显存占用决定你能不能跑得起来。推理时可以用量化把FP16压到INT8甚至INT4,显存直接砍半再砍半,代价是精度可能略有下降。

4. Transformer:把原理讲透

4.1 为什么Transformer能取代RNN

在Transformer出现之前,处理序列数据主要靠RNN和LSTM。它们按时间步一个个处理,天然适合序列,但有两个致命问题:不能并行和长距离依赖衰减。你处理第100个词的时候,第1个词的信息已经经过100次传递,衰减得差不多了。

Transformer用自注意力机制一次性看到整个序列。每个词都跟其他所有词算相关性,直接建立连接,距离不再是问题。而且所有位置的计算可以并行,训练效率大幅提升。这就是为什么Transformer能训得又大又快,直接催生了后面的大模型时代。

热搜里"transformer架构及其工作原理""transformer模型详解""the illustrated transformer""transformer模型讲解"这些词,说明大家对这个架构的细节很感兴趣。我下面拆开讲。

4.2 自注意力机制:Q、K、V到底在干什么

自注意力的核心是三个矩阵:Query(查询)、Key(键)、Value(值)。你可以把它想象成一个检索系统:你拿一个查询去跟所有键比对,算出相似度,然后按相似度加权求和所有值。

具体计算分四步。第一步,输入向量分别乘以三个权重矩阵W_Q、W_K、W_V,得到Q、K、V。第二步,Q乘以K的转置,得到注意力分数矩阵,表示每个位置对其他位置的关注程度。第三步,除以根号d_k(d_k是向量维度),防止点积过大导致softmax梯度消失。第四步,softmax归一化,再乘以V,得到输出。

为什么要除以根号d_k?因为当维度很大时,点积的方差会随维度线性增长,数值会变得很大,softmax之后会变成接近one-hot的分布,梯度几乎为零。除以根号d_k把方差拉回1附近,训练更稳定。这个细节很多教程一笔带过,但面试常问。

4.3 多头注意力与位置编码

多头注意力就是把上面的过程并行做多次,每次用不同的W_Q、W_K、W_V。每个头关注不同的模式,有的头关注语法关系,有的头关注语义相似性,最后拼接起来再线性变换。这跟CNN用多个卷积核提取不同特征是一个思路。

位置编码是Transformer的另一个关键设计。因为自注意力本身不区分顺序,"我爱你"和"你爱我"在它眼里是一样的。所以要把位置信息注入进去。原始论文用的是正弦余弦函数,现在很多模型用可学习的位置嵌入,还有RoPE(旋转位置编码)这类相对位置方法。位置编码的选择对长文本处理影响很大。

4.4 手写一个最小Transformer的实操要点

热搜里"transformer手写""transformer代码"说明很多人想自己实现一遍。我的建议是:先手写,再用库。手写一遍能让你真正理解每个张量的形状变化,用库的时候才知道每个参数在干什么。

手写的时候按这个顺序搭:先写缩放点积注意力,再写多头注意力,然后写前馈网络,接着写编码器层和解码器层,最后拼成完整模型。每个模块写完单独测一下输入输出形状对不对。常见的坑包括:mask没加对导致看到未来信息、维度对不上、softmax维度搞错、位置编码加错位置。

下面是一个缩放点积注意力的核心实现,用PyTorch:

import torch import torch.nn as nn import math def scaled_dot_product_attention(q, k, v, mask=None): d_k = q.size(-1) scores = torch.matmul(q, k.transpose(-2, -1)) / math.sqrt(d_k) if mask is not None: scores = scores.masked_fill(mask == 0, -1e9) attn = torch.softmax(scores, dim=-1) return torch.matmul(attn, v), attn

这段代码里,mask用来屏蔽padding位置或未来位置。masked_fill把要屏蔽的位置填成负无穷,softmax之后这些位置就变成0。注意dim=-1是对最后一维做softmax,也就是对每个query对所有key的分数做归一化。

4.5 Transformer的变体与医疗图像分割

热搜里有个很具体的词:"missformer: an effective transformer for 2d medical image segmentation"。这说明Transformer已经渗透到医疗图像领域。医疗图像分割的难点在于标注数据少、目标边界模糊、不同设备成像差异大。MissFormer这类工作通常会在标准Transformer基础上引入多尺度特征融合、增强的跳跃连接、或者针对医学图像特点的注意力设计。

从工程角度看,把Transformer用到医疗图像,最需要关注的是数据效率和泛化能力。医学数据标注成本极高,一个模型如果只能在训练集所在的医院数据上好用,换个设备就崩,那没有临床价值。所以这类工作往往会强调在少量标注下的表现,以及跨数据集的鲁棒性。

5. Agent:从概念到落地

5.1 Agent到底是什么,跟普通AI应用有啥区别

Agent这个词今年特别火,但很多人说不清它跟普通的AI调用有什么区别。我的理解是:普通AI应用是"你问它答",Agent是"你给目标它自己想办法达成"。区别在于有没有自主决策和工具使用能力。

一个Agent通常包含几个部分:大模型作为"大脑"负责推理和决策,工具集(搜索、计算器、代码执行、API调用)作为"手脚"负责执行,记忆模块负责保存上下文和历史,规划模块负责把大目标拆成小步骤。你给它一个任务"帮我查一下这周北京的天气并整理成表格",它会自己决定先调天气API,再调表格生成工具,最后返回结果。

热搜里"ai agent""agent开发""agent框架""agent项目""吴恩达 agent 教程"这些词,说明大家已经从"了解概念"进入"动手做"的阶段了。

5.2 Agent的核心组件拆解

规划是Agent最核心也最难的部分。简单任务可以用ReAct模式:推理一步、行动一步、观察结果、再推理。复杂任务需要任务分解,把大目标拆成子任务,再逐个解决。还有的方案用树搜索,探索多条路径选最优。

记忆分短期和长期。短期记忆就是对话上下文,受限于模型的上下文窗口。长期记忆通常用向量数据库存,需要的时候检索相关片段塞进上下文。记忆管理做得好不好,直接决定Agent能不能处理长流程任务。

工具使用是Agent区别于聊天机器人的关键。工具可以是函数、API、数据库查询、代码解释器。难点在于让模型正确选择工具、正确填参数、正确处理返回结果和异常。实际项目中,工具描述写得好不好,对成功率影响巨大。

执行环节要考虑并发、超时、重试、错误处理。热搜里"ai agent 怎么扛并发"这个问题很实际。Agent的一次任务可能涉及多次模型调用和工具调用,延迟高,并发上来之后资源消耗很快。常见的做法是异步化、加缓存、限制单用户并发数、对工具调用做熔断降级。

5.3 主流Agent框架怎么选

目前常见的框架有LangChain、LlamaIndex、AutoGPT、CrewAI等。LangChain生态最全,组件多,但抽象层多,调试起来有时候绕。LlamaIndex在检索增强场景下更专注。CrewAI主打多Agent协作,适合模拟团队分工的任务。AutoGPT更偏向自主探索型任务。

选型的时候我一般看三点:任务复杂度、团队技术栈、可维护性。如果只是做个简单的工具调用Agent,没必要上重框架,自己用原生API加个循环就够了。如果要做多Agent协作、复杂工作流,那框架能省不少事。但要注意,框架版本迭代快,API经常变,锁版本很重要。

5.4 从零搭一个Agent的实操步骤

我以"帮用户查询并总结技术文档"为例,走一遍流程。

第一步,定义工具。至少要有两个:一个搜索工具,输入关键词返回相关文档链接;一个读取工具,输入链接返回正文内容。工具的描述要写清楚功能、输入格式、输出格式,这是模型选择工具的依据。

第二步,设计提示词。系统提示里要说明Agent的角色、可用工具、输出格式要求。ReAct模式的提示词通常要求模型按"思考-行动-观察"的格式输出。

第三步,写主循环。伪代码逻辑是:把用户问题放进上下文,调用模型,解析输出。如果是行动指令,执行对应工具,把结果追加到上下文,继续循环;如果是最终答案,返回给用户。设置最大循环次数防止死循环。

第四步,加记忆。把历史对话存起来,每次调用时把相关历史塞进上下文。如果历史太长,做摘要压缩。

第五步,测试和调优。构造一批测试用例,覆盖正常流程和异常流程。重点看工具选择准确率、参数填写正确率、任务完成率。根据失败案例调整提示词和工具描述。

提示:Agent开发中最容易被低估的是错误处理。工具调用失败、模型输出格式不对、上下文超长,这些都要有兜底逻辑,否则线上很容易出问题。

5.5 Agent落地的常见坑

第一个坑是过度自主。让Agent完全自主决定做什么,很容易跑偏或者陷入循环。实际落地时通常要加约束,比如限定可用工具范围、限制最大步数、关键操作要人工确认。

第二个坑是成本失控。Agent一次任务可能调用模型十几次,token消耗是普通对话的几十倍。上线前一定要算清楚成本,做好限流和预算控制。

第三个坑是评估困难。普通模型可以用准确率评估,Agent的任务完成质量怎么量化?通常要结合自动指标和人工评估,构造多样化的测试集。

第四个坑是状态管理。多轮任务中,状态怎么存、怎么恢复、怎么避免污染,这些工程问题在demo阶段看不出来,一上量就暴露。

6. 七天怎么安排,以及一些实在的建议

如果真按七天来规划,我建议这样分配。第一天到第二天啃机器学习和深度学习的基础概念,重点是搞清楚监督学习流程和神经网络训练的基本环节。第三天到第四天专攻Transformer,手写一遍最小实现,把注意力机制吃透。第五天到第六天做Agent,从简单工具调用开始,逐步加记忆和规划。第七天做一个小项目串起来,比如用Transformer做个文本分类,或者用Agent做个文档问答。

学习资源方面,吴恩达的课程适合入门,讲得清楚节奏好。《动手深度学习》适合边看边敲代码。Transformer那篇原始论文《Attention Is All You Need》一定要读,配合"The Illustrated Transformer"看更容易懂。西瓜书适合系统过一遍传统机器学习。

最后说几个我自己的体会。第一,别追求一次学完,AI领域太大,抓住一条主线深入比泛泛了解强。第二,一定要动手,看十遍不如写一遍,报错和调试才是真正学习发生的地方。第三,别被热词带偏,每年都有新概念,但底层原理变化没那么快,把基础打牢,新东西上手就快。第四,保持怀疑,网上很多教程和结论是有前提条件的,换个场景就不成立,自己验证过再信。

这个领域唯一不变的就是一直在变,但只要你理解了每个方法"为什么被设计出来、解决什么问题、代价是什么",你就有能力判断下一个新东西值不值得学。