本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。
一. 人工智能、机器学习与深度学习的关系
1.1 概念层次解析
- 人工智能(AI) :使机器模拟人类智能的广义领域机器学习(ML) :通过数据驱动的方法让系统自动改进性能深度学习(DL) :基于多层神经网络的机器学习子领域
关系示意图:
人工智能 ⊃ 机器学习 ⊃ 深度学习
二. PyTorch环境配置
2.1 Conda环境管理
# 创建虚拟环境 conda create -n pytorch_env python=3.9 # 激活环境 conda activate pytorch_env # 安装PyTorch(根据CUDA版本选择) conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia # GPU版本 conda install pytorch torchvision torchaudio cpuonly -c pytorch # CPU版本
2.2 验证安装
import torch print(torch.__version__) # 输出:2.0.1 print(torch.cuda.is_available()) # 输出:True(GPU可用时)
三. 数学基础与张量操作
3.1 标量、向量、张量
代码示例:张量创建与操作
# 创建张量 x = torch.empty(2, 3) # 未初始化 y = torch.zeros(2, 3, dtype=torch.int32) z = torch.randn(2, 3) # 标准正态分布 # 数学运算 a = torch.tensor([[1,2],[3,4]], dtype=torch.float32) b = torch.tensor([[5,6],[7,8]], dtype=torch.float32) print(a + b) # 逐元素加法 print(a @ b.T) # 矩阵乘法
四. 数据预处理与线性代数
4.1 数据标准化
from torchvision import transforms transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) # 应用到数据集 dataset = datasets.CIFAR10(..., transform=transform)
4.2 线性代数核心操作
# 矩阵分解 A = torch.randn(3, 3) U, S, V = torch.svd(A) # 奇异值分解 # 特征值计算 eigenvalues = torch.linalg.eigvalsh(A) # 张量缩并 tensor = torch.einsum('ijk,jl->ikl', a, b)
五. 神经网络基础
5.1 神经元数学模型
- wi:权重bb:偏置(提供平移能力)ff:激活函数
代码示例:单神经元实现
class Neuron(nn.Module): def __init__(self, input_dim): super().__init__() self.linear = nn.Linear(input_dim, 1) self.activation = nn.Sigmoid() def forward(self, x): return self.activation(self.linear(x)) neuron = Neuron(3) output = neuron(torch.tensor([0.5, -1.2, 0.8]))
六. 模型训练全流程
6.1 训练要素定义
6.2 典型训练循环
model = nn.Sequential( nn.Linear(784, 128), nn.ReLU(), nn.Linear(128, 10) ) criterion = nn.CrossEntropyLoss() optimizer = torch.optim.Adam(model.parameters(), lr=0.001) for epoch in range(10): for inputs, labels in train_loader: optimizer.zero_grad() outputs = model(inputs.view(-1, 784)) loss = criterion(outputs, labels) loss.backward() optimizer.step() print(f'Epoch {epoch+1}, Loss: {loss.item():.4f}')
七. 激活函数与反向传播
7.1 常见激活函数对比
7.2 反向传播数学原理
链式法则示例:
其中 z=∑wixi+bz=∑wixi+b,y=f(z)y=f(z)
代码示例:手动实现反向传播
x = torch.tensor(2.0, requires_grad=True) y = torch.tensor(3.0) w = torch.tensor(1.0, requires_grad=True) b = torch.tensor(0.5, requires_grad=True) # 前向计算 z = w * x + b loss = (z - y)**2 # 反向传播 loss.backward() print(w.grad) # 输出:4.0 (∂loss/∂w = 2*(wx + b - y)*x = 2*(2+0.5-3)*2 = 4)
注:本文代码基于PyTorch 2.0+版本实现,运行前需安装:
pip install torch torchvision matplotlib
更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。