Skip to content

神经网络与深度学习

前言

神经网络是 AI 革命的引擎。 从 ChatGPT 的语言理解到自动驾驶的图像识别,背后都是神经网络在工作。它不是魔法,而是一套精巧的数学框架——通过大量数据"学习"出输入到输出的映射关系。理解它的基本原理,能帮你更好地使用和调试 AI 工具。

这篇文章会带你学什么?

学完这章后,你将获得:

  • 核心概念:理解神经元、层、前向传播、反向传播的基本原理
  • 网络类型:了解 CNN、RNN、Transformer 等主流架构的特点和适用场景
  • 训练过程:明白模型是如何从数据中"学习"的
  • 关键技巧:掌握过拟合、学习率、正则化等实用概念
  • 发展脉络:了解从感知机到大语言模型的演进历程
章节内容核心概念
第 1 章从神经元到网络感知机、激活函数、前向传播
第 2 章网络如何学习损失函数、梯度下降、反向传播
第 3 章主流网络架构CNN、RNN、Transformer
第 4 章训练的艺术过拟合、正则化、超参数调优
第 5 章发展历程与前沿从感知机到 GPT

1. 从神经元到网络

单个神经元

神经网络的最小单元是神经元(Neuron)。它模拟了生物神经元的工作方式:接收多个输入信号,加权求和,通过激活函数产生输出。

输入 x1 ──→ ×w1 ──┐
输入 x2 ──→ ×w2 ──┼──→ Σ(加权求和) + b(偏置) ──→ f(激活函数) ──→ 输出
输入 x3 ──→ ×w3 ──┘

数学表达:y = f(w₁x₁ + w₂x₂ + w₃x₃ + b)

神经元工作原理
调整输入和权重,观察神经元的输出变化
输入 × 权重
0.5
×
0.8
=0.40
-0.3
×
1.2
=-0.36
0.7
×
-0.5
=-0.35
加权求和 + 偏置(0.1)
-0.21
激活函数: Sigmoid
0.4477
0.1

激活函数:为什么需要非线性?

如果没有激活函数,无论多少层神经元叠加,最终都等价于一个线性变换(矩阵乘法)。激活函数引入非线性,让网络能学习复杂的模式。

激活函数公式特点常用场景
ReLUmax(0, x)简单高效,训练快隐藏层的默认选择
Sigmoid1/(1+e⁻ˣ)输出 0~1二分类输出层
Tanh(eˣ-e⁻ˣ)/(eˣ+e⁻ˣ)输出 -1~1RNN 中常用
Softmaxeˣᵢ/Σeˣⱼ输出概率分布多分类输出层

从神经元到网络

把多个神经元组织成,多个层串联起来,就构成了神经网络:

输入层          隐藏层1        隐藏层2        输出层
(特征)         (提取低级特征)   (提取高级特征)   (预测结果)

 x1 ──→  [○ ○ ○ ○] ──→ [○ ○ ○] ──→  [○ ○]
 x2 ──→  [○ ○ ○ ○] ──→ [○ ○ ○] ──→  猫/狗
 x3 ──→  [○ ○ ○ ○] ──→ [○ ○ ○]
概念说明
输入层接收原始数据(图片像素、文本向量等)
隐藏层中间处理层,层数越多网络越"深"(深度学习的"深")
输出层产生最终预测(分类概率、回归值等)
前向传播数据从输入层逐层流向输出层的过程

为什么叫"深度"学习?

传统机器学习通常只有 1-2 层。当隐藏层数量增加到几十甚至上百层时,就叫"深度"学习。更深的网络能学习更抽象的特征:第一层学边缘,第二层学纹理,第三层学部件,更深的层学到"这是一只猫"。


2. 网络如何学习

神经网络的"学习"本质上是一个优化问题:找到一组权重(w)和偏置(b),使得网络的预测尽可能接近真实答案。

训练三步曲

1. 前向传播:输入数据,得到预测结果
2. 计算损失:用损失函数衡量预测与真实值的差距
3. 反向传播:根据损失,计算每个权重的梯度,更新权重

重复以上步骤,直到损失足够小

损失函数:衡量"错得有多离谱"

损失函数(Loss Function)量化了预测值和真实值之间的差距。训练的目标就是最小化损失。

损失函数公式简述适用场景
MSE(均方误差)预测值与真实值差的平方的均值回归问题
Cross-Entropy(交叉熵)-Σ y·log(ŷ)分类问题
Binary Cross-Entropy交叉熵的二分类版本二分类问题

梯度下降:找到最低点

想象你站在一座山上,蒙着眼睛要走到最低点。你能做的就是摸一下脚下的坡度,然后往下坡方向走一步。这就是梯度下降。

损失值

  │    ╱╲
  │   ╱  ╲      ← 当前位置
  │  ╱    ╲    ↙ 沿梯度方向下降
  │ ╱      ╲╱   ← 局部最小值
  │╱            ╲╱  ← 全局最小值
  └──────────────→ 权重值
概念说明
梯度损失函数对每个权重的偏导数,指示"往哪个方向调整能减少损失"
学习率每一步走多远。太大会跳过最低点,太小会收敛太慢
批量大小每次用多少样本计算梯度。全量太慢,单样本太抖,小批量(mini-batch)是折中

反向传播:链式法则的胜利

反向传播(Backpropagation)是计算梯度的高效算法。它利用微积分的链式法则,从输出层开始,逐层向后计算每个权重对损失的贡献。

前向传播:输入 → 隐藏层1 → 隐藏层2 → 输出 → 损失
反向传播:损失 → 输出 → 隐藏层2 → 隐藏层1 → 更新所有权重

直觉理解反向传播

把神经网络想象成一条流水线。产品(预测)出了问题(损失大),你需要从最后一道工序开始往回查,看每道工序(每层权重)对最终问题贡献了多少,然后按贡献大小调整。贡献大的多调,贡献小的少调。


3. 主流网络架构

不同类型的数据需要不同的网络架构。选对架构,事半功倍。

神经网络常见层类型
点击查看各层的作用和参数
全连接层
每个神经元与上一层所有神经元相连。最基础的层类型,用于学习输入特征的组合。
units(神经元数)activation(激活函数)
分类、回归任务的输出层,以及简单特征提取
Dense(128, activation="relu")

3.1 CNN(卷积神经网络)

CNN 是处理图像的王者。核心思想:用小的卷积核在图像上滑动,提取局部特征。

输入图像 → [卷积层→激活→池化] × N → 全连接层 → 输出
  28×28      提取边缘/纹理/形状        分类结果
特点说明
局部连接每个神经元只看一小块区域,而非整张图
参数共享同一个卷积核在整张图上复用,大幅减少参数
平移不变性猫在图片左边还是右边,都能识别
层级特征浅层学边缘,深层学语义

代表模型:LeNet、AlexNet、VGG、ResNet、EfficientNet

3.2 RNN(循环神经网络)

RNN 专为序列数据设计。它的隐藏状态会传递到下一个时间步,让网络具有"记忆"能力。

时间步 t1    时间步 t2    时间步 t3
 "我"  ──→   "喜欢"  ──→  "猫"
  ↓           ↓           ↓
 [h1]  ──→  [h2]   ──→  [h3] ──→ 输出
  ↑           ↑           ↑
 隐藏状态在时间步之间传递(记忆)
变体解决的问题核心机制
原始 RNN基础序列建模简单循环连接
LSTM长序列梯度消失遗忘门、输入门、输出门
GRULSTM 参数太多简化为重置门和更新门
双向 RNN只能看到过去同时从前往后和从后往前处理

LSTM 的门控机制

LSTM 的精妙之处在于三个"门":遗忘门决定丢弃哪些旧记忆,输入门决定存入哪些新信息,输出门决定输出哪些内容。就像你读一本书,会选择性地记住重要情节、忘掉无关细节。

3.3 Transformer:注意力就是一切

2017 年 Google 发表的 "Attention Is All You Need" 论文提出了 Transformer,彻底改变了 AI 领域。它用自注意力机制替代了循环结构,是 GPT、BERT、Claude 等大模型的基础。

输入序列 → 嵌入 + 位置编码 → [多头注意力 → 前馈网络] × N → 输出

                          每个词都能"看到"所有其他词
优势说明
并行计算不像 RNN 必须逐步处理,Transformer 可以并行处理整个序列
长距离依赖任意两个位置之间直接建立联系,不受距离限制
可扩展性模型越大、数据越多,效果越好(Scaling Law)

自注意力的直觉:读"小猫坐在垫子上,因为很累"这句话时,"它"需要关注"小猫"才能理解含义。自注意力让模型学会这种关联——为序列中的每对词计算一个"相关性分数"。

常见神经网络架构
点击查看不同网络架构的特点和应用
前馈神经网络(FNN)
1958
最基础的神经网络结构,数据从输入层经过隐藏层到输出层,单向流动,没有循环。每一层的每个神经元与下一层的所有神经元相连(全连接)。
网络结构
输入层 隐藏层 ×N 输出层
典型应用
分类回归函数逼近
核心思想:通过多层非线性变换,将输入映射到输出。层数越多,能表达的函数越复杂。

4. 训练的艺术

有了好的架构还不够,训练过程中有很多"坑"需要避开。

4.1 过拟合 vs 欠拟合

问题表现原因解决方案
过拟合训练集表现好,测试集表现差模型太复杂,"背答案"而非学规律正则化、Dropout、数据增强、早停
欠拟合训练集和测试集都表现差模型太简单,学不到规律增加模型容量、训练更久、更好的特征
误差

  │ ╲  训练误差          测试误差  ╱
  │  ╲                          ╱
  │   ╲─────────────────╱
  │    欠拟合 ← 最佳点 → 过拟合
  └──────────────────────────→ 模型复杂度

4.2 关键超参数

超参数是训练前需要人为设定的参数(不是模型自己学的):

超参数作用常见范围调优建议
学习率每步更新的幅度1e-5 ~ 1e-1最重要的超参数,通常从 1e-3 开始
批量大小每次训练用多少样本16 ~ 512越大训练越稳定,但需要更多显存
训练轮数(Epoch)遍历整个数据集的次数10 ~ 100+配合早停法,验证集不再提升就停
优化器梯度更新策略Adam、SGDAdam 是默认选择,SGD+动量适合精调

4.3 正则化技巧

防止过拟合的常用手段:

技巧原理使用方式
Dropout训练时随机关闭部分神经元通常 p=0.1~0.5
权重衰减在损失函数中加入权重大小的惩罚L2 正则化,λ=1e-4
数据增强对训练数据做随机变换(翻转、裁剪、旋转)图像任务必备
早停法验证集损失不再下降时停止训练patience=5~10
Batch Normalization标准化每层的输入分布加速收敛,有轻微正则化效果

训练的经验法则

  1. 先用小数据集跑通整个流程,确认代码没 bug
  2. 从已有的预训练模型开始微调,而非从零训练
  3. 学习率是最值得花时间调的超参数
  4. 如果训练损失不下降,先检查数据和代码,再怀疑模型

5. 发展历程与前沿

神经网络的发展经历了几次"寒冬"和"复兴",每次突破都源于关键的技术创新。

年代里程碑关键突破
1958感知机(Perceptron)第一个神经网络模型,只能处理线性问题
1986反向传播算法让多层网络的训练成为可能
1998LeNet(CNN)卷积网络在手写数字识别上大获成功
2012AlexNet深度 CNN 在 ImageNet 上碾压传统方法,深度学习爆发
2014GAN(生成对抗网络)两个网络对抗训练,能生成逼真图像
2017Transformer"Attention Is All You Need",注意力机制取代 RNN
2018BERT预训练+微调范式,NLP 全面突破
2020GPT-31750 亿参数,展示了大模型的涌现能力
2022ChatGPTRLHF 对齐技术,AI 进入大众视野
2023+多模态大模型GPT-4V、Claude 等,同时理解文本和图像

当前趋势

方向说明
大模型(LLM)参数量从亿级到万亿级,涌现出推理、编程等能力
多模态同一个模型处理文本、图像、音频、视频
高效微调LoRA、QLoRA 等技术让普通开发者也能微调大模型
AI Agent让大模型使用工具、规划任务、自主完成复杂目标
小模型蒸馏用大模型的知识训练小模型,在端侧部署

对开发者的启示

你不需要从零训练神经网络。现代 AI 开发更多是调用 API(如 OpenAI、Claude API)或微调预训练模型(如用 Hugging Face)。但理解底层原理能帮你更好地选择模型、设计 prompt、诊断问题。


总结

核心概念一句话总结
神经元加权求和 + 激活函数,网络的最小计算单元
前向传播数据从输入层逐层流向输出层,产生预测
反向传播从损失出发,逐层计算梯度,更新权重
CNN卷积核提取局部特征,图像处理的首选
RNN/LSTM循环连接保持记忆,处理序列数据
Transformer自注意力并行处理,大模型的基础架构
过拟合模型"背答案",用正则化、Dropout 等手段防止
迁移学习站在巨人肩膀上,用预训练模型微调解决新问题

延伸阅读