
很多人在 2026 年重新打开收藏夹原因往往不是“突然想学习了”而是大模型时代带来的焦虑以前学的机器学习还有用吗深度学习是不是已经过时神经网络算法还要不要从头看强化学习是不是只属于 AlphaGo计算机视觉和自然语言处理分开学还是一起学如果你也有类似困惑这篇文章的结论很直接机器学习课程仍然是人工智能学习最划算的主线但不能再按“看完所有视频”的方式学而是应该按“知识层 验证实验”的方式学。本文要讲的是一套公认适合入门到进阶的李宏毅机器学习系列课程学习路线以及配套的动手验证方法。我会把机器学习、深度学习、神经网络算法、强化学习、计算机视觉、自然语言处理、大模型这七个核心知识点拆成一个清晰的学习顺序每个阶段给出目标、实验参考、常见坑和排错思路。读完你不仅能理解为什么这个课程值得看还能知道每一章该练什么、怎么判断自己真的学会了。1. 这篇文章真正要解决的问题先说一个扎心的现象很多人不是没有学习资料而是资料太多。B 站收藏夹里躺着 10 套课程网盘里存着 100 个 PDF但真正看完的不到 10%。这不是意志力问题而是学习路径不清晰。李宏毅老师的机器学习系列课程之所以长期被推荐不是因为它“讲得简单”而是因为它把复杂概念用生活化例子讲清楚同时又没有丢掉数学本质。比如用宝可梦解释线性回归用“精灵宝可梦对战”引入强化学习的奖惩机制用“神奇宝贝进化”解释多层神经网络的抽象过程。这套课程的特点是看似随意逻辑链条其实非常完整。但这里真正容易踩坑的是很多人把课程当成“下饭视频”听的时候觉得懂了关上视频就忘。或者反过来一碰到公式就开始逐行推导结果一个月还在线性回归。所以这篇文章要解决的问题不是“推荐一套课”而是怎么用一套课跑通人工智能核心知识体系。重点解决三个问题七个核心知识点的先后顺序如何安排才不会被数学劝退每个阶段该写什么代码、跑什么实验才能证明自己学会了遇到训练不收敛、环境装不上、显存不够、模型下载失败这些实际问题怎么快速定位原因对整个学习过程来说课程只是“地图”动手实验才是“走路”。文章后面所有章节都会围绕“先看什么、再练什么、怎么验证”来展开。2. 七个核心知识点之间的关系与学习顺序很多自学者的第一个误区是把人工智能理解成一门“课”。实际上人工智能是一个领域机器学习是它的核心方法深度学习是机器学习的一个分支神经网络算法是深度学习的底层结构强化学习是另一条重要技术路线计算机视觉和自然语言处理是两大应用方向大模型则是深度学习在规模放大后的产物。如果用一句话概括人工智能是目标机器学习是手段神经网络是深度学习的基本结构强化学习是另一种学习范式CV 和 NLP 是战场大模型是当前的技术高点。2.1 为什么先学机器学习而不是直接学大模型大模型是当前最热门的方向不少新人上来就想学大模型微调、部署、Prompt 工程。但如果完全不懂机器学习基础会出现一个典型困境网上教程很多但你不知道什么是过拟合不知道训练集、验证集、测试集为什么要分开不理解损失函数为什么重要。最后只能照着别人的脚本跑参数一改就崩。所以学习顺序的第一条原则是先建立机器学习的基本问题框架。线性回归、逻辑回归、分类、回归、交叉验证、正则化、偏差方差权衡这些概念看起来简单却是后面所有内容的地基。2.2 为什么神经网络算法单独成层神经网络算法不是一个独立的课程章节而是贯穿深度学习的主线。它的核心包括感知机、激活函数、反向传播、优化器、损失函数、梯度消失与梯度爆炸。这里容易出现的第二个误区用框架调包调多了以为神经网络就是model.fit()。其实面试、项目调优、论文复现时真正拉开差距的往往是能不能理解网络内部发生了什么。这也是为什么在机器学习基础之后要单独花时间吃透神经网络算法。2.3 为什么深度学习要比神经网络更晚学两者容易混淆。可以这样理解神经网络算法研究的是“单个神经元 层与层之间如何连接、如何学习”深度学习研究的则是“如何构建更深、更复杂的网络并在真实任务上取得更好效果”。当你理解了反向传播和优化器的基本逻辑再学深度学习的经典结构CNN、RNN、Transformer时就会顺畅很多。深度学习不是神经网络算法的简单叠加而是包含了数据增强、归一化、正则化、分布式训练、推理优化等一系列工程问题。2.4 强化学习为什么重要强化学习与前三种“监督/无监督学习”的范式完全不同。它的核心是智能体与环境交互通过奖励信号学习策略。课程中通常用“吃东西、打游戏”这类例子讲解马尔可夫决策过程、策略梯度、Q-Learning、Actor-Critic 等概念。对很多应用开发者来说强化学习短期内未必是工作主力但它是理解智能决策系统的关键。比如推荐系统、游戏 AI、机器人控制、自动驾驶决策都离不开这套思路。2.5 CV、NLP 以及大模型的定位计算机视觉和自然语言处理是机器学习的两个主要应用方向。课程里的经典案例包括图像分类与词向量等。学到这里重点不是记忆所有模型名字而是理解数据形态不同模型设计思路也不同。CV 更多依赖卷积结构来提取局部特征NLP 更多依赖序列建模来捕捉上下文关系。大模型则把深度学习推进到了一个高度工程化、规模化阶段。它建立在 Transformer 之上核心变化是“预训练 微调 对齐”的开发模式。这也意味着学到大模型阶段时你需要从“训练一个模型”的思路转换成“使用、适配、部署一个大模型”的思路。下面用一张表总结七个核心知识点的逻辑关系知识点一句话定位学习阶段机器学习建立问题框架数据、模型、损失、优化第一阶段神经网络算法理解深度学习的最小单元与学习机制第二阶段深度学习掌握经典网络结构与训练技巧第三阶段强化学习理解智能体与环境交互的范式第四阶段计算机视觉掌握图像类任务的处理方法第五阶段自然语言处理掌握文本序列任务的处理方法第五阶段大模型理解大规模预训练模型的原理、训练与部署第六阶段3. 2026 版学习路线总览这里要说明一点所谓“2026 新版”更准确的判断是一份适合在 2026 年启动的学习规划。因为技术内容会随课程更新而调整但知识框架不会大变。下面这份路线以李宏毅机器学习系列为主体搭配可执行实验总周期建议在 6 到 9 个月具体时间取决于你每天能投入多少小时。3.1 第一阶段机器学习基础3 到 5 周目标能独立解释“给定训练数据如何找到一个函数”这件事。学习内容回归、分类、损失函数、梯度下降、偏差方差权衡、正则化、交叉验证。验证实验用 Python 实现一个简单的线性回归不用机器学习框架自己写梯度下降。完成标准能画出一张训练损失和验证损失的变化曲线并解释过拟合和欠拟合。3.2 第二阶段神经网络算法与深度学习基础4 到 6 周目标理解反向传播和优化器在做什么。学习内容感知机、激活函数、反向传播、随机梯度下降、学习率与优化器、批归一化。验证实验用 PyTorch 完成一个多层感知机MLP在 MNIST 数据集上训练打印每个 epoch 的损失。完成标准能解释为什么深层网络比浅层网络更难训练并说出至少两种缓解手段。3.3 第三阶段深度学习经典网络结构5 到 7 周目标掌握 CNN、RNN、Transformer 的设计思想。学习内容CNN、RNN、LSTM、注意力机制、Transformer。验证实验用 PyTorch 搭建一个 CNN 做 CIFAR-10 图像分类再用一个 RNN 或 LSTM 做简单文本分类。完成标准能用“局部连接、权值共享”解释 CNN 高效的原因能画出 Transformer 的编码器结构。3.4 第四阶段强化学习3 到 4 周目标理解策略、奖励、状态转移这几个核心概念。学习内容马尔可夫决策过程、策略梯度、Q-Learning、Actor-Critic。验证实验用 OpenAI Gym 的 CartPole 环境训练一个强化学习智能体。完成标准能看到智能体在环境中从随机乱动到稳定保持平衡的过程。3.5 第五阶段CV 与 NLP 应用4 到 6 周目标理解不同数据类型如何影响模型设计。学习内容图像分类、目标检测、语义分割基础词向量、文本分类、机器翻译基础。验证实验做一个图像分类项目或者做一个中文影评情感分类项目。完成标准能说清 CV 任务和 NLP 任务在数据预处理、模型结构、评估指标上的差异。3.6 第六阶段大模型基础与实践4 到 6 周目标理解大模型的开发模式掌握 API 调用和基础部署思路。学习内容Transformer 如何放大为 LLM、预训练、指令微调、对齐、上下文学习、RAG、模型压缩。验证实验调用一个公开的大模型 API 完成任务或选择一个开源可商用模型完成推理。完成标准能说清“预训练 微调 推理部署”的完整流程并知道自己做微调时需要什么样的数据与算力。这个时间线不是固定的。如果你有机器学习或深度学习经验可以直接跳过部分视频直接进入实验环节。如果你是零基础建议不要压缩数学基础部分。4. 环境准备与前置条件既然是 2026 年学习人工智能不建议再纠结“Windows 还是 Linux”这种问题。对于前三个阶段Windows / macOS / Linux 都可以只要满足 Python 环境即可。但到了大模型阶段Linux 服务器或云服务器会更方便因为很多模型运行库在 Linux 上的兼容性更好。4.1 开发环境清单Python 版本建议 3.10 或更高具体以你选择的框架版本要求为准。工具Jupyter Notebook 或 VS Code Jupyter 插件。深度学习框架PyTorch 优先因为它调试直观社区资料多。硬件学习阶段不需要企业级 GPU。普通入门实验用 CPU 也可以跑通只是慢一些图像分类和大模型推理阶段建议使用云 GPU 或带 NVIDIA 显卡的机器。虚拟环境一定用 venv 或 conda 隔离项目依赖避免“这个项目要 A 版本、那个项目要 B 版本”的冲突。4.2 创建虚拟环境下面以 Python venv 为例这是一套跨平台通用的做法mkdir ml-learning cd ml-learning python3 -m venv venv source venv/bin/activate pip install --upgrade pip如果你在 Windows 的 PowerShell 下激活命令是.\venv\Scripts\Activate.ps1激活成功后命令行前面会出现(venv)标志。4.3 安装 PyTorchPyTorch 安装命令会因为操作系统和 CUDA 版本不同而不同建议访问 PyTorch 官网获取对应命令。这里给一个 CPU 版本示例适合先跑通逻辑pip install torch torchvision如果你的机器有 NVIDIA 显卡并且已经安装了 CUDA 驱动可以按官网提供的 CUDA 版本命令安装例如pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121安装完成后用一个简单命令验证import torch print(torch.__version__) print(torch.cuda.is_available())如果torch.cuda.is_available()在带 GPU 的机器上输出False不用急通常是 PyTorch 版本和 CUDA 驱动版本不匹配优先查这个方向。5. 分阶段动手实践从线性回归到强化学习课程只看不练效果会大打折扣。下面给出四个最小实验。每一个都对应前面学习路线中的关键阶段建议按顺序完成。5.1 第一阶段实验不调框架实现线性回归很多初学者一上来就import torch这没问题但为了真正理解梯度下降建议先不用框架。import numpy as np # 生成模拟数据y 3 * x 2 噪声 np.random.seed(42) x np.linspace(0, 10, 100) y 3 * x 2 np.random.normal(0, 1, sizex.shape) # 初始化参数 w 0.0 b 0.0 learning_rate 0.01 epochs 500 for epoch in range(epochs): y_pred w * x b loss np.mean((y_pred - y) ** 2) # 梯度 dw 2 * np.mean((y_pred - y) * x) db 2 * np.mean(y_pred - y) # 参数更新 w - learning_rate * dw b - learning_rate * db if epoch % 50 0: print(fepoch {epoch}, loss {loss:.4f}, w {w:.4f}, b {b:.4f}) print(ffinal: w {w:.4f}, b {b:.4f})这段代码的逻辑很朴素不断计算预测值和真实值之间的差距然后沿梯度的反方向更新w和b。如果你看到 loss 逐步下降并且最后的w接近 3、b接近 2说明梯度下降的基本流程跑通了。这里真正值得做的是调参实验把学习率改成 0.1 或 1.0再改成 0.0001观察 loss 曲线有什么不同。这是理解学习率最直观的方式。5.2 第二阶段实验PyTorch 实现 MNIST 手写数字分类MNIST 是深度学习的“Hello World”。这个实验的目的是跑通 PyTorch 的完整训练流程数据处理、模型定义、损失函数、优化器、训练循环、评估。import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms # 数据加载 transform transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,)) ]) train_dataset datasets.MNIST(root./data, trainTrue, downloadTrue, transformtransform) test_dataset datasets.MNIST(root./data, trainFalse, downloadTrue, transformtransform) train_loader torch.utils.data.DataLoader(train_dataset, batch_size64, shuffleTrue) test_loader torch.utils.data.DataLoader(test_dataset, batch_size64, shuffleFalse) # 定义一个简单的多层感知机 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() criterion nn.CrossEntropyLoss() optimizer optim.Adam(model.parameters(), lr0.001) # 训练 for epoch in range(3): total_loss 0.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}, avg loss {total_loss / len(train_loader):.4f}) # 简单评估 correct 0 total 0 with torch.no_grad(): for images, labels in test_loader: outputs model(images) preds outputs.argmax(dim1) correct (preds labels).sum().item() total labels.size(0) print(ftest accuracy: {correct / total:.4f})这个实验的价值在于训练循环虽然只有几行代码但背后涉及前向传播、反向传播、梯度更新、批次训练等核心机制。你不需要一次全部理解但至少应该能回答optimizer.zero_grad()为什么在每一步都要调用loss.backward()做了什么with torch.no_grad()为什么在评估时使用。5.3 第四阶段实验用强化学习玩 CartPoleCartPole 是强化学习入门最友好的环境。目标是让小车学会平衡一根杆子。这里可以用策略梯度的一个简化版本任务是理解“观察状态、采取动作、获得奖励、更新策略”的循环。import gymnasium as gym import torch import torch.nn as nn import torch.optim as optim class PolicyNet(nn.Module): def __init__(self, obs_dim, act_dim): super().__init__() self.net nn.Sequential( nn.Linear(obs_dim, 32), nn.ReLU(), nn.Linear(32, act_dim) ) def forward(self, obs): return self.net(obs) env gym.make(CartPole-v1) obs_dim env.observation_space.shape[0] act_dim env.action_space.n policy PolicyNet(obs_dim, act_dim) optimizer optim.Adam(policy.parameters(), lr0.005) def choose_action(obs): logits policy(torch.FloatTensor(obs)) probs torch.softmax(logits, dim-1) action torch.multinomial(probs, num_samples1).item() return action, probs[action] for episode in range(200): obs, _ env.reset() done False log_probs [] rewards [] total_reward 0 step 0 while not done and step 500: action, prob choose_action(obs) log_probs.append(torch.log(prob)) obs, reward, terminated, truncated, _ env.step(action) done terminated or truncated rewards.append(reward) total_reward reward step 1 if total_reward 10: # 简单策略梯度更新奖励高则增大该动作概率 returns [total_reward] * len(rewards) loss 0 for log_prob, ret in zip(log_probs, returns): loss -log_prob * ret optimizer.zero_grad() loss.backward() optimizer.step() if episode % 20 0: print(fepisode {episode}, total reward {total_reward:.1f})这个代码不是一个完美的强化学习算法但足够让你理解核心直觉如果某个动作序列带来了更高的累计奖励就增大这些动作的概率。真正深入时你会学到更稳定的策略梯度变体和 Actor-Critic 方法。如果你跑出来每个 episode 的 reward 不稳定不要担心这是强化学习的常态。关注趋势而不是单次数值。5.4 第六阶段实验大模型推理思路大模型阶段的第一个实验不一定是微调更推荐“跑通推理”。如果你使用在线 API需要先注册并获取合法的密钥然后按官方文档调用。整体模式通常是# 伪代码具体以所用服务官方文档为准 response client.chat.completions.create( modelyour-model-name, messages[ {role: user, content: 请用一句话解释什么是反向传播} ] ) print(response.choices[0].message.content)如果你选择开源模型本地推理重点不是马上部署一个几十 GB 的大模型而是先观察资源需求。一个常见路径是使用支持量化模型的推理框架让模型以低精度方式运行比如只加载 4bit 量化后的权重降低显存占用。这个过程涉及模型格式转换、加载、推理速度验证和资源监控适合作为进阶练习。大模型实验有一条安全线不要用含敏感信息的业务数据做测试不确认开源协议前不要随意把模型用于商用场景不确认可以合法访问的服务时不要绕过限制。这些是工程习惯不是多余提醒。6. 运行结果与效果验证6.1 线性回归实验的预期输出运行上面的线性回归代码你应该看到 loss 从几百逐渐下降到个位数甚至更低w和b逐步靠近真实值。如果 loss 没有下降先检查学习率是否过大或过小。学习率过大参数会在最优值附近震荡loss 会跳动学习率过小训练速度会非常慢。6.2 MNIST 分类实验的预期输出程序会打印每个 epoch 的平均 loss通常是下降趋势。训练结束后测试准确率一般能到 95% 以上。如果你的准确率远低于 90%优先检查数据归一化是否正确模型最后一层有没有输出原始 logits数据加载是否正常有没有出现全黑/全白图片。这个实验只要跑通一次后续所有深度学习项目的代码骨架都能复用。6.3 强化学习实验的预期输出CartPole 实验的最终目标是让小车在 500 步内不倒。如果你看到每个 episode 的 reward 逐步变高说明策略在改善。如果 200 个 episode 后仍停留在 10 以下通常是因为奖励回传方式太粗糙或学习率不合适。可以尝试把学习率调低、增加训练轮数或者换用更稳定的算法。6.4 如何判断“学会”而不是“看过”这是整条学习路线里最重要的一步。我的建议是给自己的每个阶段设置一个“讲得出来”标准能不用 PPT把一个概念讲给完全不懂的朋友听能在没有官方示例代码的情况下从零写出一个最小训练脚本能在运行失败时根据报错信息定位到具体模块。如果只看视频永远不知道自己卡在哪里。只有写代码、调 bug、看 loss 曲线才会暴露盲区。7. 常见问题与排查方法问题现象可能原因排查方式解决方案视频听得懂但自己写代码无从下手缺少“从零实现”的训练不要直接看答案尝试默写训练循环从线性回归、逻辑回归这类最小模型开始练公式看不懂想放弃把数学门槛看得过高区分“理解直觉”和“推导证明”先理解概念再补数学不要一步到位PyTorch 安装后 GPU 不可用CUDA 版本与 PyTorch 不匹配打印torch.cuda.is_available()和 CUDA 版本按官网命令重新安装对应版本训练 loss 不下降学习率设置不当、数据未归一化先打印第一个 batch 的 loss调整学习率检查预处理MNIST 准确率很低数据预处理、模型定义问题抽样检查数据检查输出形状逐层打印模型输出对比教程强化学习训练不稳定奖励稀疏、超参数敏感画 reward 曲线看趋势降低学习率增加训练轮数换稳定算法大模型加载占用显存过大权重精度太高查看模型参数大小使用量化版本或改用 API 服务本地部署失败依赖版本冲突、缺少编译工具看完整错误日志重新创建虚拟环境按官方环境要求安装有一个通用排查原则先看完整报错再搜错误消息而不是直接改代码。很多情况下错误信息里已经写明了是缺少某个依赖、某两个库版本不兼容还是路径不对。8. 学习过程中的误区与工程建议8.1 误区一把“刷课”当成学习最典型的例子是一天看 10 个小时视频笔记记了厚厚一本但一行代码没写过。这样的学习最多只能维持三天的“获得感”。真正的建议是“看一节练一节”课程讲到线性回归当天就写一个最小线性回归实验讲到反向传播就打印每一层的梯度形状观察数值变化。8.2 误区二数学基础不足就不敢开始很多人学过微积分、概率论、线性代数但到了机器学习中发现公式符号都认识连起来就不知道在说什么。这很正常。学习时不要把推导放在第一位而是先建立概念直觉。比如“梯度下降”可以理解为下山问题当前位置沿着最陡的方向迈一步反复多次就能到达谷底。先理解这个画面再看数学公式会轻松很多。8.3 误区三每个方向都浅尝辄止今天看两节机器学习明天看到大模型火又去学 Prompt后天又觉得强化学习有意思。结果几个月过去每个方向都只看了开头。更稳的做法是在这套课程的一个完整周期内把主线固定下来。大模型、强化学习、CV、NLP 都是主线上的节点而不是随时跳转的分支。8.4 工程建议一写实验日志不需要高大上的工具一个 Markdown 文件就行。记录日期、学习内容、代码运行结果、遇到的问题、解决方法。三个月后回头翻你会发现很多“当时卡了两天”的问题其实只是某个参数写错了。这个日志也是你未来写技术博客、整理项目经验的第一手材料。8.5 工程建议二建立可复用的代码模板学完前三个阶段后可以把自己的训练循环整理成一个简单模板。以后做图像分类、文本分类、强化学习实验时只需要替换数据和模型部分。这样既能提高效率也能加深对框架的理解。8.6 工程建议三大模型阶段要有成本意识到了大模型阶段实验成本不再是“零”。调用在线 API 需要消耗额度本地推理需要显存和电费。建议每次实验前列一个成本清单这个实验是否必要能不能用更小的数据集先验证能不能用量化模型降低资源消耗这不是小气而是工程师的基本素养。8.7 安全与合规提醒在线 API 的密钥不能提交到公开仓库含个人隐私或业务敏感信息的数据不能随意发送给第三方模型服务开源模型要看清许可协议区分研究使用和商用场景生产环境接入大模型需要先在小流量、可控环境下验证输出质量并准备回滚方案。9. 总结把收藏列表变成本周计划回到开头的问题以前学的机器学习还有用吗答案是肯定的。大模型并没有推翻机器学习的基础反而让基础更值钱。谁对损失函数、过拟合、神经网络结构、训练稳定性理解得越透谁在大模型时代就越能快速定位问题、设计实验、评估效果。李宏毅机器学习系列课程提供了一个完整且友好的知识框架现在缺的只是“行动”。建议你把这篇文章当作一份本周计划来用第一步创建 Python 虚拟环境第二步跑通 5.1 节的线性回归代码第三步写下第一篇实验日志。不要急着看完所有视频先把第一个实验的 loss 曲线跑出来。那一刻你就算正式进入这个领域了。