公司动态
李宏毅机器学习课程:七大AI核心知识点系统拆解
2026 年了想系统入门人工智能大部分人第一反应不是买书而是找一套能从头跟到脚下来的视频课程。李宏毅老师的机器学习课程应该是这个清单里被提到的频率最高的名字之一。这门课最大的特点是不把数学当门槛也不把代码当演示。它从机器学习的回归、分类讲起一路带到深度学习、神经网络、强化学习、计算机视觉、自然语言处理最后覆盖大模型。也就是说标题里那七个人工智能核心知识点确实是一套课讲完的。这篇文章不打算替你把视频刷完而是按课程主线把这七个知识点拆开讲清楚每一块的学习重点、需要掌握的公式和概念、配套的动手实验以及最容易卡住的地方。同时给出本地学习环境的搭建方式以及一套能复用的验证思路。如果你刚好准备入门人工智能或者想把手头零散的知识串成体系这篇可以收藏备用。1. 课程核心能力速览先把这门课的整体规格放在前面方便你快速判断。能力项说明课程形式视频公开课中文授课为主配套讲义和作业主讲背景台湾大学电机工程学系教授研究方向为机器学习与语音处理覆盖知识点机器学习、深度学习、神经网络、强化学习、计算机视觉、自然语言处理、大模型共七大模块学习门槛需要 Python 基础数学要求不高但线性代数和概率统计能提高理解上限编程环境Python PyTorch Jupyter NotebookCPU 即可完成大部分入门实验硬件要求入门阶段 CPU 足够进阶和大模型微调实验建议准备独立显卡显存越大越好适合人群刚入门 AI 的学生、转行开发者、想系统补齐理论盲区的工程师不当用途不适合零编程基础直接上来就学不适合想只看实战不看理论的人速成从这里能直接判断这门课不是“三天速成班”而是一条可以走完从基础到大模型的完整路径。后面七个模块每一块单独拿出来都能撑起一门专业课但这门课的价值在于它把七块串在一起而且每一块都保留了足够清楚的推导过程。2. 七个人工智能核心知识点整体拆解在正式开始前先把七大部分之间的关系画清楚。模块核心问题核心工具 / 概念和下一个模块的关系机器学习如何让程序从数据中学规律回归、分类、梯度下降、偏差方差、正则化是深度学习的基础语言深度学习如何用多层网络拟合复杂函数反向传播、激活函数、优化器、Dropout让 MLP 真正能处理大尺度数据神经网络算法如何设计更高效的网络结构CNN、注意力机制、TransformerCNN 打底 CV注意力打底大模型强化学习如何在没有标签的情况下学决策奖励信号、Q-Learning、策略梯度、PPO和深度学习结合后能处理连续状态计算机视觉如何让机器理解图像图像分类、目标检测、分割、数据增强是 CNN 知识的直接应用出口自然语言处理如何让机器理解文本词向量、Seq2Seq、Attention、BERTTransformer 从这里走向大模型大模型如何把预训练模型用到真实场景预训练、微调、RLHF、提示工程、量化部署是前六个模块汇合后的高阶形态注意这个链条机器学习是底座深度学习是方法神经网络是结构强化学习是另一条分支CV 和 NLP 是两条应用主线大模型则是现有技术路线的综合形态。这也是为什么很多人学完基础之后会觉得整个 AI 知识体系很清晰因为这套课程的安排本身就把依赖关系理清了。3. 机器学习基础回归、分类与梯度下降机器学习这部分最核心的问题只有一个给定一堆数据如何让程序自动找出输入和输出之间的关系。3.1 回归与分类回归任务的目标是预测连续数值常见的例子包括房价预测、PM2.5 预测、点击率预估。分类任务则是预测离散标签比如判断一张图片是猫还是狗、一封邮件是否为垃圾邮件。这两个概念看似简单但它们决定了后面所有模型的设计思路。模型的本质就是函数拟合定义一个带参数的函数输入样本输出预测结果然后根据预测和真实值的差距调整参数。3.2 梯度下降与学习率机器学习最重要的数学工具就是梯度下降。给定一个损失函数参数更新的基本方式是新参数 旧参数 - 学习率 × 梯度李宏毅课程在讲这个部分时会特别强调学习率的影响学习率太大参数来回震荡学习率太小收敛速度慢。实际工程里学习率调度策略往往比模型结构改动能带来更直接的收益。这里建议自己动手做一次小实验生成一组线性数据用梯度下降手动更新参数并画损失下降曲线。把这件事做一遍对后续理解 Adam、SGD 这些优化器非常有帮助。3.3 偏差方差与正则化模型表现不好通常就两类原因欠拟合和过拟合。欠拟合对应训练误差高意味着模型容量不够。过拟合对应训练误差低但测试误差高意味着模型把训练数据的噪声也记下来了。解决过拟合的常规手段包括增加数据量、降低模型复杂度、加正则化、早停、Dropout。这部分不需要背公式重要的是理解偏差和方差之间的权衡关系你为了降低模型对训练数据的依赖会增加方差为了让模型更平滑又会牺牲偏差。后面深度学习里所有调参决策本质上都在处理同一个权衡。4. 深度学习反向传播与神经网络的训练深度学习部分是整门课的承上启下段落。机器学习的套路还是靠人工设计特征深度学习把特征提取这个环节也交给模型自己完成。4.1 从感知机到多层网络单个神经元只能拟合线性决策边界这在实际任务中远远不够。把多个神经元堆叠成隐藏层再通过非线性激活函数就能拟合任意复杂函数。这个结论是深度学习的理论基础。常见激活函数的用途值得逐一手写验证一遍激活函数特点常见使用位置ReLU计算快缓解梯度消失但会“死神经元”隐藏层默认选项Sigmoid输出限制在 0 到 1适合概率输出二分类输出层Tanh输出限制在 -1 到 1均值接近 0RNN 结构Softmax多分类归一化概率多分类输出层4.2 反向传播反向传播是整个神经网络的训练核心。前向传播计算预测值反向传播利用链式法则逐层计算梯度。如果你第一次看反向传播的推导建议用笔在草稿纸上推一个最简单的 2 层网络而不是直接看代码。在实际编码中PyTorch 这种框架通过自动求导把反向传播封装好了但底层原理不清遇到 loss 不降、梯度爆炸时排查会比较吃力。4.3 最小可运行示例MNIST 手写数字分类MNIST 是深度学习里的 Hello World。下面这个示例在 CPU 上就能跑通建议作为第一个完整训练流程。import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader transform transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,)) ]) train_data datasets.MNIST(root./data, trainTrue, downloadTrue, transformtransform) train_loader DataLoader(train_data, batch_size64, shuffleTrue) class MLP(nn.Module): def __init__(self): super().__init__() self.net nn.Sequential( nn.Flatten(), nn.Linear(28 * 28, 128), nn.ReLU(), nn.Linear(128, 10) ) def forward(self, x): return self.net(x) model MLP() optimizer optim.Adam(model.parameters(), lr0.001) criterion nn.CrossEntropyLoss() for epoch in range(3): total_loss 0 for images, labels in train_loader: optimizer.zero_grad() outputs model(images) loss criterion(outputs, labels) loss.backward() optimizer.step() total_loss loss.item() print(fepoch {epoch 1}, loss: {total_loss / len(train_loader):.4f})关注三个观察点损失是否稳定下降、训练耗时多少、最终准确率。正常跑完 3 个 epoch在 CPU 上也就一两分钟。如果损失不降优先检查学习率和数据预处理。5. 神经网络算法进阶CNN 与注意力机制神经网络不是一个固定结构它的发展主线就是把“手工设计特征”逐步替换成“自动学特征”。第 5 节重点讲两个影响最深的结构CNN 和注意力机制。5.1 卷积神经网络的组成CNN 的出现解决了全连接网络在图像上的参数爆炸问题。卷积层通过共享权重提取局部特征池化层降低分辨率最后用全连接层做分类。理解 CNN 有三个关键词关键词含义局部感受野卷积核只关注相邻区域符合图像的空间局部性权值共享同一个卷积核扫过整张图大幅减少参数量层次化特征浅层学到边缘纹理深层学到语义部件有意思的是CNN 提取的特征在浅层和深层之间有明确分工浅层关注边缘、颜色、纹理深层关注脸、物体部件。这个观察后来直接影响了目标检测和图像生成的发展。5.2 注意力机制为什么重要注意力机制最早用于机器翻译但它真正改变行业是因为解决了长距离依赖的问题。RNN 处理长序列时会遇到梯度消失注意力机制允许模型直接关注输入序列中的任意位置。自注意力的计算过程是每个 token 生成 Query、Key、Value 三个向量然后计算 Query 与所有 Key 的相似度用相似度加权求和 Value。这套逻辑完全取代了 RNN 的递归结构并且可以并行计算。它就是 Transformer 的核心也是后来 BERT、GPT 等大模型的底层结构。学到注意力机制时建议对照 PyTorch 官方 Transformer 代码理解一遍不要只看公式。6. 强化学习奖励驱动下的决策优化强化学习是七个知识点中思路差异最大的一块。监督学习依赖带标签数据强化学习没有标签只有奖励信号。Agent 通过和环境交互不断试错目标是最大化长期累计奖励。6.1 强化学习基本框架五个核心概念必须搞清楚Agent做决策的智能体EnvironmentAgent 交互的对象State当前环境状态ActionAgent 采取的动作Reward环境返回的即时奖励举例说明训练一个玩迷宫游戏的智能体状态是当前位置动作是上下左右移动奖励是到达终点得 1 分撞墙扣 0.1 分。Agent 的任务就是学会一套策略在每一步选择让未来累计奖励最大的动作。6.2 从 Q-Learning 到 PPO课程中通常会从表格型的 Q-Learning 讲起用一张 Q 表记录每个状态下的动作价值再逐步演化为 DQN深度 Q 网络用神经网络替代 Q 表。策略梯度方法则是直接学习策略函数。Actor-Critic 结构把两者结合Actor 负责选动作Critic 负责评估动作的价值。PPO 在 Actor-Critic 基础上加了稳定性约束是目前工业界最常用的强化学习算法之一也是大模型 RLHF 里面的关键组件。6.3 强化学习入门的常见误区初学者最容易犯的错误是只跑现成环境不做状态和奖励设计。强化学习的效果高度依赖奖励函数设计奖励稀疏、奖励过密、奖励欺骗都会导致学不到有效策略。建议第一个实验从一个小型网格世界开始自己定义状态、动作、奖励用 Q-Learning 跑通整条流程再换到更复杂的连续控制环境。一步到位直接上 PPO遇到问题很难定位是网络问题还是奖励问题。7. 计算机视觉图像理解任务全解析计算机视觉是神经网络最成熟的应用方向之一。七个知识点里CV 对应的是从 CNN 结构到实际任务之间的桥梁。7.1 视觉任务图谱任务类型目标典型输出图像分类判断整图属于哪个类别类别标签目标检测找出图中物体位置和类别边界框 类别语义分割对每个像素分类像素级标签图实例分割区分同一类的不同个体掩码 类别学习时建议按照这个顺序推进先做分类再理解检测最后理解分割。每个任务背后都有对应的网络结构变化分类是骨干网络检测在骨干上加了区域提议分割变成了像素级的密集预测。7.2 数据增强的重要程度很多刚入门的人低估了数据增强的作用。图像分类模型对平移、旋转、缩放、亮度变化的鲁棒性大部分来自训练时的数据增强。在课程中这部分也会涉及实际工程中它的优先级甚至高于模型结构更换。7.3 本地跑一个小实验如果只想验证 CNN 在图像上的效果不用直接上 ImageNet。用上一节 MNIST 的代码把网络改成一个小型 CNN对比它和 MLP 的准确率差异就能直观感受到卷积结构的优势。import torch.nn as nn class SimpleCNN(nn.Module): def __init__(self): super().__init__() self.features nn.Sequential( nn.Conv2d(1, 32, kernel_size3, padding1), nn.ReLU(), nn.MaxPool2d(2), nn.Conv2d(32, 64, kernel_size3, padding1), nn.ReLU(), nn.MaxPool2d(2) ) self.classifier nn.Sequential( nn.Flatten(), nn.Linear(64 * 7 * 7, 10) ) def forward(self, x): return self.classifier(self.features(x))这份代码可以直接替换上一节 MLP 的模型定义训练流程不用改。对比二者在测试集上的准确率是理解 CNN 最直观的方式。8. 自然语言处理从词向量到 Transformer自然语言处理和计算机视觉是 AI 应用的左右手。NLP 的特殊性在于数据是序列形式长度不固定语义高度依赖上下文。8.1 核心建模思路演变NLP 建模经历过几个明显阶段阶段代表方法核心问题独热编码One-Hot无法表达语义相似度静态词向量Word2Vec, GloVe一词多义问题上下文编码ELMo, BERT解决一词多义生成式预训练GPT统一理解与生成理解从词向量到上下文编码的演变是重点。Word2Vec 给每个词一个固定向量但“苹果”在“苹果公司”和“吃的苹果”里应该是不同的语义。BERT 这类模型通过学习上下文让词的表示随语境动态变化。8.2 Transformer 结构Transformer 是 NLP 部分的高峰也是大模型的起点。它的核心组件包括多头自注意力、位置编码、前馈网络、残差连接和层归一化。这里有一个非常值得注意的细节自注意力本身不带位置信息。语言是有顺序的“我爱你”和“你爱我”的 token 集合完全一样但含义相反。位置编码的作用就是给模型注入顺序信息。8.3 动手验证思路入门阶段不建议直接训练 BERT建议先跑文本分类的迁移学习流程加载一个中文预训练模型在自定义数据集上做微调。这样可以理解预训练和微调的真实流程同时为后面大模型部分做铺垫。9. 大模型部分从预训练到量化部署大模型部分是七个模块里和产业结合最近的一段。2026 年来看大模型已经不只是研究热点而是开发者的日常工具。课程中这部分的价值是把大模型背后的技术链条理清楚预训练、微调、对齐、部署、推理。9.1 大模型的技术链条阶段解决什么问题核心技术预训练大量无标注文本上学语言规律Transformer、大规模分布式训练指令微调让模型理解任务指令有监督微调、LoRA 等参数高效微调对齐让模型回答更符合人类偏好RLHF、DPO推理部署降低显存和延迟模型量化、蒸馏、批处理学习这一块的时候最好把注意力放在“大模型和之前的神经网络有什么进步”这个问题上。之前的深度学习模型多为单一任务训练大模型通过大规模预训练获得了通用能力再通过微调和提示工程适配到具体任务这是范式层面的变化。9.2 本地部署与显存观察大模型部署经常会碰到显存问题。常见的并行思路是FP32 模型参数权重最大FP16 和 BF16 能把显存占用降到接近一半INT8 量化还能再降一截。但精度和效果需要在本地做验证不同模型、不同量化工具的结果差异很大。在本地跑大模型实验时建议用下面这套流程观察资源占用# 通过 nvidia-smi 观察显存变化 nvidia-smiimport os import torch # 观察当前进程占用的显存单位 MB if torch.cuda.is_available(): print(torch.cuda.memory_allocated() / 1024 / 1024) print(torch.cuda.memory_reserved() / 1024 / 1024)注意显存占用不是一个固定值它会随模型版本、输入长度、批处理大小变化。更稳妥的做法是在本地做一组对照测试记录不同 batch size 和输入长度下的显存变化而不是依赖网上的数字。9.3 大模型 API 调用与批量任务实际应用大模型当前主流是基于 HTTP 接口调用。这里给一个通用调用示例模板实际使用时需要按具体模型服务的接口文档调整地址和参数。import requests import json # 以 OpenAI 兼容接口为例实际 base_url 和 api_key 请按服务方文档填写 url http://127.0.0.1:8000/v1/chat/completions payload { model: your-model-name, messages: [ {role: user, content: 请用一句话解释什么是梯度下降} ], temperature: 0.3, max_tokens: 200 } response requests.post(url, jsonpayload, timeout60) print(response.json()[choices][0][message][content])批量任务的核心思路是把调用过程拆成读取输入列表、逐条调用模型、写入输出文件、记录失败日志。不要一次性提交几万条请求先从几十条开始观察接口的响应时间和限流情况再决定是否加大并发。所有测试数据都要在合规范围内使用不要用未经授权的隐私数据或版权素材。10. 学习环境搭建Python PyTorch Jupyter不管学哪一部分第一步都是把本地环境搭起来。这里给一个通用方案在 Windows、macOS、Linux 上都能用。10.1 安装 Anaconda 与创建虚拟环境# 创建 Python 3.10 的独立环境 conda create -n ml_course python3.10 -y # 激活环境 conda activate ml_course # 安装基础库 pip install numpy pandas matplotlib scikit-learn jupyter10.2 安装 PyTorchPyTorch 的安装命令取决于你的 CUDA 版本。最简单的做法是先装 CPU 版本跑通代码再根据显卡驱动选择对应的 CUDA 版本。# CPU 版适合入门实验 pip install torch torchvision # 如果有 NVIDIA 显卡先在终端执行 nvidia-smi 查看驱动支持的 CUDA 版本 # 再前往 PyTorch 官网选择对应安装命令例如 pip install torch torchvision --index-url https://download.pytorch.org/whl/cu12110.3 验证环境import torch import sklearn import numpy as np print(PyTorch:, torch.__version__) print(scikit-learn:, sklearn.__version__) print(CUDA available:, torch.cuda.is_available()) if torch.cuda.is_available(): print(GPU:, torch.cuda.get_device_name(0))如果 CUDA available 是 False并不影响入门阶段的学习MNIST 这种实验在 CPU 上完全能跑。等到做更大规模训练或大模型微调时再解决显卡环境问题。11. 学习路线规划与时间安排视频课程和书籍不同很容易出现“收藏了等于学会了”的情况。建议按照下面这个节奏安排学习。11.1 三阶段推进阶段内容范围前置基础核心输出第一阶段机器学习基础 深度学习基础Python 基础理解回归、分类、梯度下降、反向传播第二阶段CNN 强化学习 CV/NLP 入门第一阶段跑通 MNIST、文本分类实验第三阶段Transformer 大模型 部署第二阶段完成一个微调或 API 调用项目11.2 每阶段做的事第一阶段不用写太多代码更重要的是推导公式和画图理解。每节课后回答三个问题这个模型解决什么问题、它的损失函数怎么设计、参数更新过程是什么样的。第二阶段开始动手。每个知识点对应一个小项目CNN 对应图像分类RNN/Transformer 对应文本分类强化学习对应一个简单游戏环境。项目不需要复杂重要的是把训练、评估、调参的流程完整走一遍。第三阶段聚焦大模型。建议从调用现有 API 开始理解上下文长度、temperature、max tokens 这些参数的作用再逐步尝试本地部署和微调。这个阶段的产出应该是一个能够向别人讲解的完整项目。11.3 建议的练习强度不建议一天看十几个小时视频。更合理的方式是每天 1 到 2 小时其中一半时间看视频一半时间写代码。遇到看不明白的内容可以往回跳过但要在后续补回来。12. 常见问题与排查方法学习过程中大概率会遇到下面这些情况这里给一份可以对照的排查表。问题现象可能原因排查方式解决方案视频看得懂但代码写不出来只看不练缺乏编码手感记录每个算法伪代码每个知识点配一个小项目数学公式推导看不懂线性代数和概率基础不足先跳过推导理解结论的应用恶补矩阵运算和贝叶斯基本概念loss 不下降学习率太大或太小数据预处理有误打印 loss画曲线调整学习率检查数据归一化代码报错缺少依赖环境冲突查看完整报错栈新建 conda 环境重装依赖CPU 跑大模型太慢模型规模超出硬件能力观察内存、CPU 占用用量化模型或改用 API 调用显存不足batch size 过大或模型过大nvidia-smi 观察显存降低 batch size启用梯度累积微调效果变差学习率过大、数据量不足对比微调前效果降低学习率增加数据量强化学习训练不稳定奖励函数设计不合理打印累计奖励曲线调整奖励密度和范围13. 最佳实践与学习建议13.1 用项目驱动而不是用课程驱动课程是知识输入的载体但不是终点。每学完一个模块至少完成一个能运行的项目并把结果记录下来。代码仓库就是最好的学习笔记比文档笔记更能反映真实掌握程度。13.2 保留一套最小可运行配置在你的代码目录里建一套固定结构ml_course/ ├── data/ # 数据集 ├── models/ # 模型权重 ├── notebooks/ # Jupyter 实验 ├── scripts/ # 训练脚本 └── outputs/ # 输出结果这样每次实验的输入、输出、权重都分得清楚方便复现和排查。13.3 注意数据、模型与版权合规使用公开数据集、预训练模型时先看许可证。涉及人脸图像、语音、隐私数据、版权素材时必须确认是否有合法授权发布或商用前要做效果复核。大模型 API 调用时不要在未经评估的情况下向外部服务发送敏感数据。13.4 先小后大先通后优无论训练还是微调第一次跑通永远比追求效果重要。先用小参数验证整个链路能跑通再逐步加大模型、数据量和训练时长。这条规则适用于所有深度学习项目。14. 总结与下一步李宏毅这套课程的最大价值不是让你记住某一个算法而是把七个核心知识点串成一条完整的技术脉络。如果你能按顺序学完并动手完成每个模块的练习你得到的就不是零散的知识点而是一套可以继续深入 AI 方向的基础框架。最先应该验证的地方是回归和分类是否理解、梯度下降是否能手动推、PyTorch 是否跑通 MNIST。这三个点过了学习曲线后续会很顺。最容易踩的坑反而是节奏问题不要贪快不要跳着看不要只收藏不练。下一步的扩展方向很明确完成基础部分后可以根据自己的方向选择分支想做应用就去理解大模型 API 和提示工程想做视觉就深入目标检测和图像生成想做算法就进入模型训练和优化。知识主线不变分支由你的实际项目决定。把环境搭好从第一个回归实验开始跑比囤十套课程都有用。