文章目录
- [1. 神经网络基本原理](#1. 神经网络基本原理)
-
- [1.1. 什么是神经网络](#1.1. 什么是神经网络)
- [1.2. 核心思想](#1.2. 核心思想)
- [2. 基础组件](#2. 基础组件)
- [3. 前向传播(Forward Propagation)](#3. 前向传播(Forward Propagation))
- [4. 反向传播(Backpropagation)](#4. 反向传播(Backpropagation))
- [5. 激活函数对比](#5. 激活函数对比)
- [6. 网络架构类型](#6. 网络架构类型)
- [7. 优化策略](#7. 优化策略)
- [8. Python示例(PyTorch)](#8. Python示例(PyTorch))
- [9. 超参数调优](#9. 超参数调优)
- [10. 应用场景](#10. 应用场景)
- [11. 前沿方向](#11. 前沿方向)
- [12. 总结](#12. 总结)
1. 神经网络基本原理
1.1. 什么是神经网络
神经网络(Neural Networks,简称NN)是一类模仿生物神经系统的数学模型,用于处理和解决各种类型的任务,如分类、回归、模式识别等。神经网络属于机器学习领域的一个重要分支,特别是在深度学习(Deep Learning)中起到了核心作用。
1.2. 核心思想
神经网络是一种受生物神经元启发的多层非线性模型,通过堆叠可学习的权重层和激活函数,实现对复杂数据的表示与预测。
其核心能力来自:
-
层次化特征提取:浅层捕捉局部/低级特征(如边缘),深层组合为高级语义(如物体)。
-
端到端学习:通过梯度反向传播自动优化所有参数。
2. 基础组件
组件 | 作用 | 常见实现 |
---|---|---|
神经元(Neuron) | 计算加权输入+偏置,通过激活函数输出。 | z = w T x + b , a = σ ( z ) z = w^T x + b, \, a = \sigma(z) z=wTx+b,a=σ(z) |
权重(Weights) | 连接神经元,决定特征重要性。 | 矩阵 W ∈ R m × n W \in \mathbb{R}^{m \times n} W∈Rm×n |
激活函数 | 引入非线性,使网络能拟合任意函数。 | ReLU, Sigmoid, Tanh, Softmax |
损失函数 | 量化预测与真实值的差距,指导参数更新。 | MSE(回归), Cross-Entropy(分类) |
优化器 | 调整权重更新的方向和步长。 | SGD, Adam, RMSprop |
3. 前向传播(Forward Propagation)
数据从输入层逐层传递至输出层:
输入层 → h 1 = σ ( W 1 x + b 1 ) \text{输入层} \rightarrow \mathbf{h}_1 = \sigma(W_1 \mathbf{x} + \mathbf{b}_1) 输入层→h1=σ(W1x+b1)
隐藏层 → h l = σ ( W l h l − 1 + b l ) \text{隐藏层} \rightarrow \mathbf{h}l = \sigma(W_l \mathbf{h}{l-1} + \mathbf{b}_l) 隐藏层→hl=σ(Wlhl−1+bl)
输出层 → y ^ = f ( W L h L − 1 + b L ) \text{输出层} \rightarrow \hat{\mathbf{y}} = f(W_L \mathbf{h}_{L-1} + \mathbf{b}_L) 输出层→y^=f(WLhL−1+bL)
-
σ \sigma σ:激活函数(如ReLU)。
-
f f f:输出层激活函数(如Softmax用于多分类)
4. 反向传播(Backpropagation)
通过链式法则计算损失对每层权重的梯度,从输出层回溯至输入层:
∂ L ∂ W l = ∂ L ∂ h l ⋅ ∂ h l ∂ W l \frac{\partial \mathcal{L}}{\partial W_l} = \frac{\partial \mathcal{L}}{\partial \mathbf{h}_l} \cdot \frac{\partial \mathbf{h}_l}{\partial W_l} ∂Wl∂L=∂hl∂L⋅∂Wl∂hl
- 关键步骤:
*- 计算输出层误差 δ L = ∇ y ^ L ⊙ f ′ ( z L ) \delta_L = \nabla_{\hat{y}} \mathcal{L} \odot f'(\mathbf{z}_L) δL=∇y^L⊙f′(zL)。
-
- 反向传播误差: δ l = ( W l + 1 T δ l + 1 ) ⊙ σ ′ ( z l ) \delta_l = (W_{l+1}^T \delta_{l+1}) \odot \sigma'(\mathbf{z}_l) δl=(Wl+1Tδl+1)⊙σ′(zl)。
-
- 计算梯度: ∇ W l L = δ l h l − 1 T \nabla_{W_l} \mathcal{L} = \delta_l \mathbf{h}_{l-1}^T ∇WlL=δlhl−1T。
5. 激活函数对比
函数 | 公式 | 优点 | 缺点 |
---|---|---|---|
Sigmoid | 1 1 + e − x \frac{1}{1 + e^{-x}} 1+e−x1 | 输出在(0,1),适合概率 | 梯度消失,非零中心化 |
Tanh | e x − e − x e x + e − x \frac{e^x - e^{-x}}{e^x + e^{-x}} ex+e−xex−e−x | 零中心化,梯度更强 | 仍存在梯度消失 |
ReLU | max ( 0 , x ) \max(0, x) max(0,x) | 计算快,缓解梯度消失 | 神经元"死亡"问题 |
LeakyReLU | max ( α x , x ) \max(\alpha x,x) max(αx,x) | 解决ReLU死亡问题( α = 0.01 \alpha=0.01 α=0.01) | 需调参 |
Softmax | e z i ∑ j e z j \frac{e^{z_i}}{\sum_j e^{z_j}} ∑jezjezi | 多分类输出概率归一化 | 仅用于输出层 |
6. 网络架构类型
类型 | 结构特点 | 应用场景 |
---|---|---|
全连接网络(FCN) | 每层神经元与下一层全连接 | 小规模结构化数据(如表格数据) |
卷积网络(CNN) | 局部连接+权重共享,捕捉空间特征 | 图像、视频处理 |
循环网络(RNN) | 时序递归结构,处理序列依赖 | 自然语言、时间序列预测 |
Transformer | 自注意力机制,并行处理长序列 | 大语言模型(LLM)、多模态任务 |
7. 优化策略
-
参数初始化:
- Xavier初始化: W ∼ N W \sim \mathcal{N} W∼N(0, 2 n i n + n o u t ) \sqrt{\frac{2}{{n_{in}} + n_{out}}}) nin+nout2 )
- He初始化(ReLU适用): 2 n i n \sqrt{\frac{2}{n_{in}}} nin2
-
正则化:
- L2正则化:损失函数中加入 λ ∥ W ∥ 2 \lambda \|W\|^2 λ∥W∥2
- Dropout:训练时随机屏蔽神经元(比例通常0.2~0.5)
-
批归一化(BatchNorm):
- 对每层输入归一化: x ^ = x − μ σ 2 + ϵ \hat{x} = \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} x^=σ2+ϵ x−μ,加速训练。
8. Python示例(PyTorch)
python
import torch
import torch.nn as nn
import torch.optim as optim
# 定义网络
class MLP(nn.Module):
def __init__(self, input_dim, hidden_dim, output_dim):
super().__init__()
self.layers = nn.Sequential(
nn.Linear(input_dim, hidden_dim),
nn.ReLU(),
nn.Linear(hidden_dim, output_dim),
nn.Softmax(dim=1)
)
def forward(self, x):
return self.layers(x)
# 训练流程
model = MLP(input_dim=784, hidden_dim=128, output_dim=10)
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
for epoch in range(10):
optimizer.zero_grad()
outputs = model(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
9. 超参数调优
-
学习率(lr):尝试对数尺度(如0.1, 0.01, 0.001)。
-
批大小(batch_size):通常32~256,内存允许下越大越稳定。
-
网络深度/宽度:根据任务复杂度调整(如ResNet可达1000层)。
10. 应用场景
-
计算机视觉:图像分类(CNN)、目标检测(YOLO)。
-
自然语言处理:机器翻译(Transformer)、情感分析(RNN)。
-
强化学习:游戏AI(AlphaGo)、机器人控制。
11. 前沿方向
-
自监督学习:利用无标签数据预训练(如对比学习)。
-
神经架构搜索(NAS):自动化设计网络结构。
-
可解释性:可视化注意力机制(如Grad-CAM)。
12. 总结
神经网络通过层次化非线性变换实现强大的函数拟合能力,其成功依赖于:
-
架构设计(如CNN处理图像、Transformer处理文本)。
-
优化技术(如Adam、Dropout)。
-
大规模数据与算力支撑(GPU/TPU)。