DNN:从神经元数学原理到现代深度学习架构
DNN(Deep Neural Network,深度神经网络)是现代人工智能最基础、最重要的模型体系之一。
CNN解决了空间结构数据的问题,RNN解决了序列数据的问题,而Transformer进一步解决了长距离依赖和大规模并行计算问题。
但它们的共同基础仍然是:
神经元 + 线性变换 + 非线性激活 + 损失函数 + 反向传播 + 梯度下降。
因此,真正理解DNN,是理解CNN、RNN、Transformer、LLM乃至现代Agent模型底层训练机制的重要基础。
一、DNN到底是什么?
DNN:
Deep Neural Network
中文:
深度神经网络
最简单的神经网络:
Input
↓
Output
而DNN:
Input
↓
Hidden Layer
↓
Hidden Layer
↓
Hidden Layer
↓
Output
这里的核心概念是:
存在多个隐藏层。
因此:
Shallow Neural Network
通常指隐藏层较少的网络。
而:
Deep Neural Network
则通过多层网络逐渐学习更加复杂的特征。
二、DNN解决的核心问题
假设我们要预测:
用户是否会购买商品?
输入:
年龄
收入
访问次数
停留时间
历史购买次数
设备类型
地区
可以表示:
x = [age, income, visits, duration, purchases, ...]
传统程序可能写:
if income > X
and visits > Y
and purchases > Z:
buy
问题是:
人工很难写出复杂的数据规律。
DNN的思路是:
Data
↓
Neural Network
↓
自动学习规律
↓
Prediction
也就是说:
DNN通过数据自动学习输入与输出之间的复杂非线性映射。
数学上:
y = f(x)
DNN希望学习:
fθ(x)
其中:
θ = 所有需要学习的参数
三、DNN最基本的组成:神经元
一个神经元可以表示:
x1 ──w1──┐
x2 ──w2──┤
x3 ──w3──┤
↓
Σ + bias
↓
Activation
↓
y
数学公式:
z = w1x1 + w2x2 + w3x3 + b
也可以写成:
z = wᵀx + b
然后经过激活函数:
a = f(z)
所以一个神经元实际上就是:
Linear Transformation
+
Non-linear Activation
四、Weight到底是什么?
Weight是模型需要学习的参数。
例如:
x1 = 年龄
x2 = 收入
x3 = 购买次数
模型可能学习:
w1 = 0.2
w2 = 0.7
w3 = 1.8
意味着:
购买次数
对最终结果的影响可能比:
年龄
更大。
训练过程中,模型不断调整:
w1
w2
w3
...
最终找到一组比较合适的参数。
五、Bias是什么?
神经元:
z = wᵀx
可能无法灵活调整。
因此加入:
b
变成:
z = wᵀx + b
Bias可以理解成:
对神经元输出进行额外偏移。
六、DNN最重要的结构:Layer
一个Layer可以包含大量Neuron。
例如:
Input Layer
↓
[ x1 x2 x3 x4 ]
↓
Hidden Layer
[ ○ ○ ○ ○ ○ ○ ]
↓
Hidden Layer
[ ○ ○ ○ ○ ]
↓
Output
[ ○ ]
如果:
Input = 10
Hidden1 = 128
Hidden2 = 64
Output = 1
那么:
10
↓
128
↓
64
↓
1
就是一个典型DNN。
七、Fully Connected Layer
DNN中最常见的层:
Fully Connected Layer
PyTorch:
nn.Linear()
例如:
nn.Linear(10, 128)
表示:
10 inputs
↓
128 neurons
参数数量:
10 × 128 + 128
即:
1408
其中:
10 × 128
是Weight。
128
是Bias。
八、DNN的矩阵表示
如果:
x
是输入向量:
x ∈ R^n
Weight:
W ∈ R^(m×n)
那么:
z = Wx + b
输出:
z ∈ R^m
这就是DNN最核心的计算。
例如:
Input:
10
Weight:
128 × 10
Output:
128
九、为什么需要“深度”?
假设只有一层:
x
↓
Linear
↓
y
本质上还是:
y = Wx + b
这是线性模型。
如果连续堆叠:
x
↓
Linear
↓
Linear
↓
Linear
↓
y
如果中间没有激活函数:
W3(W2(W1x))
最终仍然可以合并成:
W'x
也就是说:
单纯增加Linear层并不会产生真正的深度表达能力。
因此必须加入非线性激活函数。
十、Activation Function为什么重要?
核心结构:
Linear
↓
Activation
↓
Linear
↓
Activation
例如:
z1 = W1x + b1
a1 = ReLU(z1)
z2 = W2a1 + b2
a2 = ReLU(z2)
于是模型变成:
y = f(W2 f(W1x + b1) + b2)
由于:
f()
是非线性的,网络才能表达复杂函数。
十一、ReLU:最经典的激活函数
ReLU:
ReLU(x) = max(0, x)
例如:
-3 → 0
-1 → 0
0 → 0
2 → 2
5 → 5
PyTorch:
nn.ReLU()
ReLU的优势:
计算简单
梯度传播相对稳定
训练速度快
因此长期成为深度学习中的经典激活函数。
十二、Sigmoid
Sigmoid:
σ(x) = 1 / (1 + e^-x)
输出范围:
(0, 1)
因此特别适合:
Binary Classification
例如:
Spam = 0.95
可以理解为:
95% probability
但是Sigmoid在深层网络中容易出现:
Vanishing Gradient
因此隐藏层通常不再首选Sigmoid。
十三、Tanh
Tanh:
tanh(x)
输出范围:
(-1, 1)
相比Sigmoid:
中心在0附近
因此在一些传统RNN网络中比较常见。
但在现代深度网络中:
ReLU
GELU
SiLU
更加常见。
十四、GELU
Transformer和现代深度学习模型中常见:
GELU
GELU可以理解为一种更加平滑的激活函数。
Transformer类模型中常见:
Linear
↓
GELU
↓
Linear
例如:
nn.GELU()
十五、DNN的完整前向传播
假设:
Input
↓
Linear
↓
ReLU
↓
Linear
↓
ReLU
↓
Linear
↓
Output
数学:
z1 = W1x + b1
a1 = ReLU(z1)
z2 = W2a1 + b2
a2 = ReLU(z2)
z3 = W3a2 + b3
最终:
ŷ = z3
这就是:
Forward Propagation
即:
前向传播。
十六、Loss:模型怎么知道自己错了?
模型预测:
ŷ
真实值:
y
我们需要衡量:
ŷ 和 y 差多少?
因此定义:
Loss Function
例如回归:
MSE
分类:
Cross Entropy
十七、Mean Squared Error
MSE:
MSE = 1/n Σ(y - ŷ)²
例如:
真实值:
10
预测:
8
误差:
2
平方:
4
预测:
10
则:
Loss = 0
因此:
Loss越小,说明模型预测通常越接近目标。
十八、Cross Entropy
分类问题中经常使用:
Cross Entropy Loss
假设真实类别:
Cat
模型:
Cat = 0.9
Dog = 0.1
Loss较低。
如果:
Cat = 0.01
Dog = 0.99
Loss非常高。
因此模型会通过Loss获得反馈:
Prediction
↓
Loss
↓
Gradient
↓
Weight Update
十九、DNN真正的学习过程:反向传播
DNN最重要的机制之一:
Backpropagation
完整过程:
Input
↓
Forward
↓
Prediction
↓
Loss
↓
Backward
↓
Gradient
↓
Optimizer
↓
Update Weight
二十、什么是Gradient?
Gradient表示:
Loss对于某个参数变化的敏感程度。
例如:
Loss = f(w)
梯度:
dLoss / dw
如果:
gradient > 0
说明增加w可能导致Loss增加。
如果:
gradient < 0
说明增加w可能使Loss下降。
所以模型可以根据梯度调整参数。
二十一、Gradient Descent
最简单的更新公式:
w_new = w_old - η * gradient
其中:
η = Learning Rate
例如:
w = 10
gradient = 2
learning_rate = 0.1
更新:
w_new
=
10 - 0.1 × 2
=
9.8
不断重复:
Forward
↓
Loss
↓
Gradient
↓
Update
最终寻找一个Loss较低的位置。
二十二、Learning Rate为什么非常重要?
Learning Rate:
η
决定:
每次参数走多远。
太大:
Loss
↑
│ /\ /\
│ /\ / \ / \
└────────────────→
模型可能:
震荡
发散
太小:
Loss下降非常慢
因此:
Learning Rate
是训练DNN最重要的超参数之一。
二十三、SGD
最经典优化器:
Stochastic Gradient Descent
基本公式:
w = w - η∇L
PyTorch:
optimizer = torch.optim.SGD(
model.parameters(),
lr=0.01
)
二十四、Momentum
SGD可能:
上下震荡
Momentum引入历史梯度:
velocity
大致思想:
当前方向
+
历史运动方向
类似:
一个带惯性的优化过程。
这样可以帮助模型更快地沿正确方向前进。
二十五、Adam
现代深度学习中非常常用:
Adam
Adam结合了:
Momentum
+
Adaptive Learning Rate
PyTorch:
optimizer = torch.optim.Adam(
model.parameters(),
lr=0.001
)
DNN实验中:
Adam
通常是非常好的起点。
二十六、Batch是什么?
假设有:
1,000,000
训练数据。
不可能每次把100万个样本全部送入GPU。
因此划分:
Batch
例如:
Batch Size = 32
每次训练:
32 samples
然后:
Next Batch
二十七、Epoch是什么?
一个Epoch表示:
整个训练数据集完整训练一次。
例如:
Dataset = 32000
Batch = 32
那么:
32000 / 32
= 1000 steps
一个Epoch:
1000 iterations
如果训练:
50 epochs
那么:
50000 iterations
二十八、Batch Size如何影响训练?
Batch太小:
Gradient Noise
↑
GPU利用率可能较低
Batch太大:
显存消耗
↑
Generalization可能变化
因此需要根据:
GPU Memory
Dataset
Model
Learning Rate
进行调整。
二十九、Overfitting:DNN最常见的问题
训练集:
Accuracy = 99.9%
测试集:
Accuracy = 75%
这说明模型:
记住了训练数据,却没有很好地学习一般规律。
这就是:
Overfitting
三十、如何解决Overfitting?
常见方法:
Data Augmentation
Dropout
Weight Decay
Early Stopping
More Data
Simpler Model
BatchNorm
核心目标:
让模型学习规律,而不是记忆训练样本。
三十一、Dropout
假设隐藏层:
○ ○ ○ ○ ○ ○ ○ ○
训练过程中随机关闭:
○ × ○ ○ × ○ × ○
这样可以减少:
神经元之间过度依赖。
PyTorch:
nn.Dropout(0.5)
表示训练过程中大约50%的激活被随机丢弃。
三十二、Weight Decay
Weight Decay通常对应L2正则化思想。
目标函数:
Loss_total
=
Loss_data
+
λ Σw²
这样可以惩罚过大的权重。
PyTorch:
optimizer = torch.optim.AdamW(
model.parameters(),
lr=1e-3,
weight_decay=1e-4
)
现代深度学习中:
AdamW
非常常见。
三十三、Batch Normalization
BatchNorm可以对中间激活进行归一化。
大致:
x
↓
Normalize
↓
Scale
↓
Shift
公式:
x̂ = (x - μ) / √(σ² + ε)
y = γx̂ + β
其中:
γ
β
也是可以学习的参数。
三十四、为什么BatchNorm有帮助?
它可以:
稳定激活分布
↓
改善训练
↓
加快收敛
↓
一定程度减少对初始化的敏感性
CNN中:
Conv
↓
BatchNorm
↓
ReLU
非常经典。
三十五、LayerNorm
Transformer中更加常见:
LayerNorm
它和BatchNorm的归一化维度不同。
简单理解:
BatchNorm
→ 关注Batch维度上的统计
LayerNorm
→ 关注单个样本内部的特征维度
因此:
CNN
→ BatchNorm很常见
Transformer
→ LayerNorm / RMSNorm很常见
三十六、DNN参数初始化
如果所有参数:
W = 0
会出现:
Symmetry Problem
不同神经元会学习到相同的东西。
因此通常需要:
Random Initialization
常见:
Xavier Initialization
He Initialization
三十七、Xavier Initialization
适合:
Sigmoid
Tanh
核心思想是:
控制不同层之间的激活和梯度方差。
避免:
激活越来越大
或者:
激活越来越小
三十八、He Initialization
对于:
ReLU
通常使用:
He Initialization
PyTorch:
nn.init.kaiming_normal_()
核心目的是保持深层网络中:
Variance
相对稳定。
三十九、Vanishing Gradient
深层DNN中可能出现:
Gradient
↓
越来越小
↓
0
于是:
前面的Layer
几乎无法学习。
这就是:
Vanishing Gradient
常见原因:
Sigmoid
Tanh
Network太深
初始化不合理
解决方式包括:
ReLU
Better Initialization
BatchNorm
Residual Connection
四十、Exploding Gradient
另一种情况:
Gradient
↓
越来越大
↓
∞
导致训练:
NaN
或者:
Loss突然爆炸
常用:
Gradient Clipping
Better Initialization
Normalization
Lower Learning Rate
PyTorch:
torch.nn.utils.clip_grad_norm_(
model.parameters(),
max_norm=1.0
)
四十一、为什么Residual Connection可以解决深层网络问题?
传统:
x
↓
Layer
↓
Layer
↓
Layer
↓
y
Residual:
┌───────────────┐
│ │
x ─────┼→ Layers ──────┤
│ ↓
└──────────────→+
↓
y
数学:
y = F(x) + x
这样梯度可以沿着:
Identity Path
直接传播。
这也是:
ResNet能够训练很深网络的重要原因。
四十二、DNN与CNN是什么关系?
CNN可以理解成:
针对空间数据优化过的神经网络。
普通DNN:
Input
↓
Linear
↓
Linear
↓
Output
CNN:
Image
↓
Convolution
↓
Feature Map
↓
Pooling
↓
Convolution
↓
Output
核心区别:
DNN
→ Fully Connected
CNN
→ Local Connectivity + Parameter Sharing
四十三、DNN与RNN是什么关系?
RNN针对:
序列数据。
例如:
我
喜欢
学习
AI
RNN:
x1 → RNN → h1
↓
x2 → RNN → h2
↓
x3 → RNN → h3
↓
x4 → RNN → h4
而DNN没有这种天然的:
Temporal Dependency
四十四、DNN与Transformer是什么关系?
Transformer中的核心组件:
Attention
+
Feed Forward Network
+
Normalization
+
Residual
其中:
Feed Forward Network
本质上就是一个特殊的DNN:
Linear
↓
Activation
↓
Linear
例如:
x
↓
Linear
↓
GELU
↓
Linear
↓
Output
所以:
DNN并没有消失,而是成为Transformer内部的重要组成部分。
四十五、Transformer中的FFN到底是什么?
经典Transformer:
Input
↓
Self-Attention
↓
Add & Norm
↓
FFN
↓
Add & Norm
FFN:
FFN(x)
=
W2 · Activation(W1x + b1) + b2
这实际上就是:
两层DNN
例如:
Hidden Size = 4096
4096
↓
16384
↓
4096
这也是为什么理解DNN之后,再学习Transformer会容易很多。
四十六、LLM中的DNN在哪里?
一个Transformer Block:
Transformer Block
│
┌─────────────┴─────────────┐
↓ ↓
Self Attention FFN
↓ ↓
Linear Linear
↓ ↓
└─────────────┬─────────────┘
↓
Residual
↓
Norm
其中FFN就是:
DNN
因此一个LLM并不是完全不同于传统神经网络的神秘系统。
它仍然建立在:
Linear
Activation
Gradient
Backpropagation
Optimization
这些基础机制之上。
四十七、用PyTorch实现一个完整DNN
下面实现一个简单的分类网络。
import torch
import torch.nn as nn
class DNN(nn.Module):
def __init__(self, input_dim, num_classes):
super().__init__()
self.network = nn.Sequential(
nn.Linear(input_dim, 256),
nn.BatchNorm1d(256),
nn.ReLU(),
nn.Dropout(0.2),
nn.Linear(256, 128),
nn.BatchNorm1d(128),
nn.ReLU(),
nn.Dropout(0.2),
nn.Linear(128, 64),
nn.ReLU(),
nn.Linear(64, num_classes)
)
def forward(self, x):
return self.network(x)
结构:
Input
↓
Linear 256
↓
BatchNorm
↓
ReLU
↓
Dropout
↓
Linear 128
↓
BatchNorm
↓
ReLU
↓
Dropout
↓
Linear 64
↓
ReLU
↓
Output
四十八、DNN训练代码
model = DNN(
input_dim=100,
num_classes=10
)
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.AdamW(
model.parameters(),
lr=1e-3,
weight_decay=1e-4
)
训练:
for epoch in range(10):
model.train()
for x, y in dataloader:
optimizer.zero_grad()
output = model(x)
loss = criterion(output, y)
loss.backward()
optimizer.step()
print(
f"epoch={epoch}, loss={loss.item():.4f}"
)
这几行代码实际上浓缩了整个深度学习训练机制:
zero_grad()
↓
Forward
↓
Loss
↓
Backward
↓
Optimizer Step
四十九、为什么要zero_grad()?
PyTorch默认会:
累积Gradient。
例如:
loss.backward()
计算:
∂Loss/∂W
之后Gradient会保存在:
parameter.grad
如果下一次不清理:
Gradient_previous
+
Gradient_current
所以训练循环通常:
optimizer.zero_grad()
然后:
loss.backward()
五十、DNN的计算图
现代深度学习框架核心思想之一是:
Computational Graph
例如:
x
↓
W1x+b1
↓
ReLU
↓
W2x+b2
↓
Loss
PyTorch会记录这些操作。
当执行:
loss.backward()
就可以沿着计算图反向计算:
∂Loss/∂W2
∂Loss/∂W1
∂Loss/∂b2
∂Loss/∂b1
这就是:
Automatic Differentiation
五十一、DNN训练的完整生命周期
一个生产级DNN项目通常不是:
写模型
↓
训练
而是:
Data Collection
↓
Data Cleaning
↓
Feature Engineering
↓
Train / Validation / Test
↓
Model Design
↓
Initialization
↓
Training
↓
Evaluation
↓
Hyperparameter Tuning
↓
Model Export
↓
Inference
↓
Monitoring
五十二、Train / Validation / Test
数据通常分成:
Training Set
Validation Set
Test Set
例如:
70% Training
15% Validation
15% Test
Training:
学习参数
Validation:
选择模型和超参数
Test:
最终评估
不能用Test数据不断调整模型,否则会产生:
Data Leakage
五十三、DNN中的超参数
需要人工决定:
Learning Rate
Batch Size
Epoch
Hidden Size
Number of Layers
Dropout
Weight Decay
Optimizer
Activation
这些叫:
Hyperparameters
而:
Weight
Bias
是模型自己学习的:
Parameters
这是两个非常重要的概念。
五十四、DNN为什么容易过拟合?
假设:
Dataset
= 10000 samples
而模型:
100 million parameters
模型拥有非常强的表达能力。
于是可能:
训练集
99.99%
测试集
70%
因此模型容量:
Model Capacity
必须和数据量匹配。
五十五、DNN的模型容量
通常:
Layers ↑
Hidden Units ↑
Parameters ↑
意味着模型容量增加。
但是:
Capacity ↑
不代表:
Generalization ↑
可能出现:
Underfitting
↓
Good Fit
↓
Overfitting
五十六、Underfitting
训练集表现就不好:
Train Accuracy = 60%
Test Accuracy = 58%
说明:
模型甚至没有学好训练数据。
可能原因:
模型太简单
训练不足
Learning Rate不合理
Feature不足
五十七、Overfitting
训练:
99%
测试:
70%
说明:
模型过度拟合训练数据。
可以尝试:
更多数据
Data Augmentation
Dropout
Weight Decay
Early Stopping
降低模型复杂度
五十八、DNN为什么不是万能的?
传统DNN最大的特点:
Fully Connected
这也意味着它对输入结构缺乏先验。
对于图像:
Pixel
如果Flatten:
Image
↓
Vector
↓
DNN
会丢失大量:
Spatial Relationship
因此:
Image
→ CNN
更加合理。
对于:
Sequence
则通常使用:
RNN / Transformer
五十九、DNN最适合什么数据?
DNN非常适合:
Tabular Data
Structured Data
Feature Vectors
Classification
Regression
Ranking
例如:
用户年龄
收入
交易次数
点击次数
信用评分
可以:
Feature Vector
↓
DNN
↓
Prediction
六十、DNN在推荐系统中的应用
例如推荐系统:
User Features
+
Item Features
+
Context
↓
Embedding
↓
DNN
↓
Click Probability
例如:
User
├── Age
├── Gender
├── History
└── Location
Item
├── Category
├── Price
└── Brand
经过Embedding后:
User Vector
+
Item Vector
+
Context Vector
送入DNN:
DNN
↓
CTR Prediction
这类架构在推荐系统中非常常见。
六十一、DNN在风控中的应用
例如:
Transaction
↓
Feature Engineering
↓
DNN
↓
Risk Score
输入:
交易金额
交易时间
用户历史
设备
IP
地点
账户行为
输出:
Risk = 0.93
然后:
Risk > Threshold
触发:
Block
Review
MFA
六十二、DNN与传统机器学习的区别
传统机器学习:
Raw Data
↓
Feature Engineering
↓
ML Model
↓
Prediction
DNN:
Raw / Processed Data
↓
Neural Network
↓
Representation Learning
↓
Prediction
最大的区别之一:
DNN可以同时学习Representation和Prediction。
这也是深度学习的重要优势。
六十三、DNN、CNN、RNN、Transformer的统一理解
可以把它们理解成:
Neural Network
│
┌──────────────┼──────────────┐
↓ ↓ ↓
DNN CNN RNN
│ │ │
Fully Connected Spatial Sequence
│ │ │
└──────────────┼──────────────┘
↓
Transformer
│
Self-Attention
│
↓
LLM
但从底层计算来看,它们仍然共享:
Tensor
+
Parameter
+
Forward
+
Loss
+
Gradient
+
Backpropagation
+
Optimizer
六十四、DNN是理解LLM的基础
一个现代LLM虽然拥有:
几十亿
甚至数千亿
参数,但底层仍然是大量:
Linear Layer
+
Activation
+
Normalization
+
Attention
+
Residual
例如Transformer FFN:
4096
↓
16384
↓
4096
就是一个非常典型的DNN结构。
因此:
理解DNN的矩阵计算、参数、梯度和优化机制,是深入理解LLM训练原理的基础。
六十五、从DNN到现代AI的技术演进
整个深度学习技术可以大致理解为:
Perceptron
↓
MLP
↓
DNN
↓
CNN
↓
RNN
↓
LSTM / GRU
↓
Attention
↓
Transformer
↓
BERT / GPT
↓
LLM
↓
Multimodal Model
↓
Agent
每一次架构升级,本质上都是在解决前一代网络的某种限制。
六十六、DNN最值得掌握的十大概念
如果准备AI Engineer或者算法面试,我建议至少掌握:
1. Neuron
2. Linear Layer
3. Activation Function
4. Forward Propagation
5. Loss Function
6. Backpropagation
7. Gradient Descent
8. Optimizer
9. Normalization
10. Regularization
进一步:
11. Initialization
12. Vanishing Gradient
13. Exploding Gradient
14. Residual Connection
15. Batch / Epoch
16. Learning Rate
17. Overfitting
18. Generalization
19. Computational Graph
20. Automatic Differentiation
六十七、DNN最核心的一条公式
如果把DNN压缩成一个公式:
a₀ = x
z₁ = W₁a₀ + b₁
a₁ = σ(z₁)
z₂ = W₂a₁ + b₂
a₂ = σ(z₂)
...
zL = WLaL-1 + bL
最终:
ŷ = fθ(x)
训练目标:
minθ L(fθ(x), y)
使用梯度下降:
θ ← θ - η∇θL
这几行数学公式基本就是DNN训练的核心。
六十八、从工程师角度理解DNN
如果你有Java/Spring Boot等传统软件开发背景,可以把DNN类比成一个复杂的参数化计算系统:
Input
↓
Layer
↓
Transformation
↓
Layer
↓
Transformation
↓
Output
传统软件:
Developer
↓
编写规则
↓
Program
↓
Output
深度学习:
Developer
↓
设计Network
↓
Training Data
↓
Optimization
↓
Learned Parameters
↓
Model
↓
Prediction
最本质的区别:
传统软件的规则主要由程序员编写;DNN的规则主要通过数据和优化算法学习。
六十九、DNN真正改变了什么?
传统程序:
Rules + Data
↓
Output
机器学习:
Data + Labels
↓
Learning Algorithm
↓
Model
深度学习:
Raw Data
↓
Representation Learning
↓
Prediction
因此DNN最大的贡献并不是:
“用了很多层神经网络。”
而是:
让机器能够通过多层非线性变换自动学习越来越抽象的表示。
七十、总结:真正理解DNN
最终可以用下面这张图理解DNN:
DNN
│
┌────────────┴────────────┐
↓ ↓
Forward Pass Training
│ │
↓ ↓
Linear Layer Loss
│ │
↓ ↓
Activation Gradient
│ │
↓ ↓
Hidden Layer Backprop
│ │
↓ ↓
Prediction Optimizer
│
↓
Update Weight
而DNN与现代AI的关系:
DNN
│
├── CNN
│ └── Computer Vision
│
├── RNN
│ └── Sequence
│
└── Transformer
├── BERT
├── GPT
├── LLM
└── Multimodal AI
所以学习DNN最重要的不是背诵:
ReLU公式
Adam公式
BatchNorm公式
而是建立一个完整的因果链:
为什么需要Layer?
↓
为什么需要Activation?
↓
为什么需要Loss?
↓
为什么需要Gradient?
↓
为什么需要Backpropagation?
↓
为什么需要Optimizer?
↓
为什么会出现Vanishing Gradient?
↓
为什么需要Normalization?
↓
为什么需要Residual Connection?
↓
为什么最终出现CNN、RNN、Transformer?
一旦这条链真正理解清楚,后面学习:
CNN
RNN
LSTM
Attention
Transformer
BERT
GPT
LLM
Vision-Language Model
就不再是孤立的技术点,而会变成一条完整的深度学习技术演进路线。
DNN是现代深度学习的“通用计算骨架”,而CNN、RNN、Transformer则是在这个骨架之上针对不同数据结构设计出来的专用架构。