Appearance
深度学习基础
深度学习是大模型的基础,本章节介绍神经网络的基本概念和工作原理。
1. 神经网络基础
1.1 感知机
感知机是神经网络的基本单元,模拟生物神经元的工作原理。
python
# 简单感知机实现
import numpy as np
def perceptron(inputs, weights, bias):
# 加权求和
weighted_sum = np.dot(inputs, weights) + bias
# 激活函数(阶跃函数)
return 1 if weighted_sum > 0 else 01.2 前馈神经网络
网络结构:
- 输入层:接收原始数据
- 隐藏层:提取特征表示
- 输出层:产生最终结果
全连接网络:每一层的每个神经元都与下一层的所有神经元相连
2. 激活函数
激活函数为神经网络引入非线性,使其能够拟合复杂函数。
2.1 常用激活函数
Sigmoid:将输入映射到[0,1]区间
pythondef sigmoid(x): return 1 / (1 + np.exp(-x))ReLU:修正线性单元,计算高效,缓解梯度消失问题
pythondef relu(x): return np.maximum(0, x)Tanh:双曲正切函数,将输入映射到[-1,1]区间
pythondef tanh(x): return (np.exp(x) - np.exp(-x)) / (np.exp(x) + np.exp(-x))
2.2 GELU
GELU(Gaussian Error Linear Unit)是大模型中常用的激活函数
python
def gelu(x):
return 0.5 * x * (1 + np.tanh(np.sqrt(2/np.pi) * (x + 0.044715 * x**3)))3. 反向传播与梯度下降
3.1 损失函数
- 均方误差(MSE):回归问题python
def mse_loss(y_true, y_pred): return np.mean((y_true - y_pred) ** 2)
- **交叉熵损失**:分类问题
```python
def cross_entropy_loss(y_true, y_pred):
return -np.mean(y_true * np.log(y_pred) + (1 - y_true) * np.log(1 - y_pred))3.2 梯度下降
python
# 简单梯度下降实现
def gradient_descent(params, gradients, learning_rate):
for i in range(len(params)):
params[i] -= learning_rate * gradients[i]
return params3.3 优化器变体
- SGD(随机梯度下降):每次使用单个样本更新
- Adam:结合动量和自适应学习率,大模型训练常用python
# PyTorch中的Adam优化器使用 import torch.optim as optim optimizer = optim.Adam(model.parameters(), lr=1e-4)
4. 常见神经网络架构
4.1 CNN(卷积神经网络)
核心组件:
- 卷积层:特征提取
- 池化层:降维
- 全连接层:分类
应用:图像识别、计算机视觉
4.2 RNN(循环神经网络)
结构特点:处理序列数据,具有记忆能力
变体:
- LSTM:长短期记忆网络
- GRU:门控循环单元
4.3 Transformer
- 核心创新:自注意力机制
- 优势:并行计算能力强,可处理长序列
- 应用:大语言模型的基础架构
5. 模型训练流程
5.1 完整训练循环
python
epochs = 10
batch_size = 32
for epoch in range(epochs):
for batch in dataloader:
# 前向传播
outputs = model(inputs)
loss = criterion(outputs, targets)
# 反向传播
optimizer.zero_grad()
loss.backward()
# 参数更新
optimizer.step()
# 验证
val_loss = evaluate(model, val_dataloader)
print(f'Epoch {epoch+1}/{epochs}, Train Loss: {loss.item():.4f}, Val Loss: {val_loss:.4f}')5.2 防止过拟合
正则化:
- L1正则化:权重稀疏化
- L2正则化:权重衰减
Dropout:训练时随机失活部分神经元
python# PyTorch中的Dropout层 dropout = nn.Dropout(p=0.5)早停:监控验证损失,停止过拟合
6. 学习建议
- 从简单开始:先实现简单的神经网络
- 理解数学原理:掌握反向传播的推导
- 实践为主:使用PyTorch或TensorFlow构建模型
- 可视化学习:使用可视化工具理解网络结构
7. 推荐资源
在线课程:
- 吴恩达《深度学习专项课程》
- Fast.ai《Practical Deep Learning for Coders》
书籍:
- 《深度学习》(花书)
- 《动手学深度学习》
实践项目:
- MNIST手写数字识别
- 简单图像分类器
深度学习是大模型的基础,掌握这些概念后,你将能够更好地理解大模型的工作原理。