2深度学习基础知识

2深度学习基础知识

一、深度学习基础回顾

1. 传统机器学习 vs. 深度学习

维度 传统机器学习 深度学习
特征处理 人工设计 自动学习
模型复杂度 浅层结构 深层非线性架构
数据需求 小规模有效 大数据驱动
计算成本 极高 (依赖GPU)
可解释性 低 (黑盒模型)
适用领域 结构化数据/简单模式 非结构化数据 (图像、语音、文本)

2. 人工智能层次结构

  • 人工智能 (AI):具备人类智能水平的系统。
  • 机器学习 (ML):能够从数据中自动学习规则的算法。
  • 深度学习 (DL):使用多层神经网络的机器学习技术。
  • 大语言模型 (LLM):用于解析和生成类似人类语言文本的深度神经网络。

二、PyTorch 与 张量基础

1. PyTorch 框架特点

  • 前身是 Torch,使用 Python 重写。
  • 核心优势 :灵活、支持动态计算图、支持 GPU 加速、环境优先。

2. 张量的维度

张量是一个多维数组,方向称为 ,阶数称为维数

  • 0-d (标量) :一个类别(如 1.0)。

  • 1-d (向量) :一个特征向量(如 [1.0, 2.7, 3.4])。

  • 2-d (矩阵) :一个样本特征矩阵。

  • 3-d :RGB图片(宽 ×\times× 高 ×\times× 通道)。

  • 4-d :图片批量(批量大小 ×\times× 宽 ×\times× 高 ×\times× 通道)。

  • 5-d :视频批量(批量大小 ×\times× 时间 ×\times× 宽 ×\times× 高 ×\times× 通道)。

3.访问数组中的元素

创建数组
访问数组中的元素

3. PyTorch 数据操作

  • 导入import torch (注意不是 import pytorch)。
  • 创建
    • torch.arange(12):生成 0-11 的向量。
    • torch.zeros((2, 3, 4)) / torch.ones((2, 3, 4)):全 0 或全 1。
    • torch.randn(3, 4):标准正态分布(均值 0,方差 1)。
    • torch.tensor([[...]]):通过 Python 列表显式创建。
  • 属性访问
    • x.shape:查看形状。
    • x.numel():查看元素总数。
    • x.reshape(3, 4):改变形状但不改变值和数量。
  • 连接
    • torch.cat((X, Y), dim=0):按行拼接。
    • torch.cat((X, Y), dim=1):按列拼接。

4. 广播机制------ 重点

​ 广播机制是PyTorch中的一种自动扩展张量形状的机制,使得两个不同形状的张量可以进行逐元素操作。当两个张量的形状不完全匹配时,PyTorch会自动将较小的张量**"广播"**到与较大张量相同的形状,以便进行逐元素操作。

  1. 从后向前比较形状:从张量的最后一个维度开始,向前逐个维度比较。
  2. 维度兼容:如果两个张量在某个维度上的大小相等,或者其中一个张量在该维度上的大小为1,则这两个张量在该维度上是兼容的。
  3. 扩展维度:如果两个张量在某个维度上不兼容,则PyTorch会自动将大小为1的维度扩展为与另一个张量相同的大小。
  4. 如果两个张量在任何维度上都不兼容(即大小既不相等,也不为1),则无法进行广播,PyTorch会抛出错误。



第三部分:数据预处理

1. 典型流程

  1. 读取数据 :通常使用 Pandas 库 pd.read_csv()
  2. 处理缺失值 (NaN)
    • 插值inputs.fillna(inputs.mean()) 用均值填充。
    • 删除:直接去掉含有缺失值的行或列。
  3. 类别值转换
    • 使用 pd.get_dummies(inputs, dummy_na=True) 将类别转为 One-hot 编码。
  4. 转为张量格式
    • torch.tensor(df.values)
    • 深度学习惯例 :通常使用 float32 提高计算速度。

第四部分:线性代数与计算

1. 矩阵运算

  • 按元素运算+, -, *, /, **
  • 哈达玛积A * B,符号为 ⊙\odot⊙,对应元素相乘。
  • 点积torch.dot(x, y),对应元素乘积之和。
  • 矩阵-向量积torch.mv(A, x)
  • 矩阵-矩阵乘法torch.mm(A, B),即线性代数中的矩阵乘法。
  • 转置A.T
  • 对称矩阵 :满足 A=ATA = A^TA=AT。

2. 降维与非降维求和

  • X.sum():所有元素求和,变为标量。
  • X.sum(axis=0):沿行求和,消除第 0 维。
  • X.sum(axis=1, keepdims=True):保持轴数不变(利于后续广播)。
  • X.mean():平均值。
  • X.cumsum(axis=0):累积总和(不降维)。

3. 范数 ------ 向量/矩阵的"长度"

  • L2L_2L2 范数 :元素平方和的平方根 ∥x∥2=∑xi2\|x\|_2 = \sqrt{\sum x_i^2}∥x∥2=∑xi2 。
  • L1L_1L1 范数 :元素绝对值之和 ∥x∥1=∑∣xi∣\|x\|_1 = \sum |x_i|∥x∥1=∑∣xi∣。
  • 弗罗贝尼乌斯范数 :矩阵元素平方和的平方根 ∥X∥F=∑∑xij2\|X\|F = \sqrt{\sum \sum x{ij}^2}∥X∥F=∑∑xij2 。

第五部分:微积分与自动微分

1. 导数与梯度

  • 梯度 :将导数拓展到向量。对于 y=f(x)y = f(\mathbf{x})y=f(x),梯度 ∇xy\nabla_{\mathbf{x}}y∇xy 是一个包含所有偏导数的向量。
  • 链式法则 :dydx=dydududx\frac{dy}{dx} = \frac{dy}{du} \frac{du}{dx}dxdy=dudydxdu。

2. 计算图

  • 深度学习将代码分解为操作子,并表示为有向无环图
  • 正向传播 (Forward):执行图计算,存储中间结果。
  • 反向传播 (Backward):从结果出发,逆向执行图以计算梯度。

3. PyTorch 自动求导步骤

  1. 设置属性:x = torch.tensor([...], requires_grad=True)
  2. 定义函数:y = f(x)
  3. 反向传播:y.backward()
  4. 获取梯度:x.grad

第六部分:线性神经网络

1. 回归vs. 分类

  • 回归:输出连续变量(如房价预测、身高预测)。
  • 分类:输出离散变量/概率分布(如图像分类、文本分类)。

2. 线性回归模型

  • 假设 :自变量与因变量存在线性关系 y=wTx+by = \mathbf{w}^T\mathbf{x} + by=wTx+b。
  • 噪声假设:假设噪声遵循正态分布。
  • 模型组成
    • 权重 (Weights) :w1,w2,...w_1, w_2, \dotsw1,w2,...
    • 偏差 (Bias) :bbb。

3. 损失函数

用于量化实际值 yyy 与预测值 y^\hat{y}y^ 之间的差距。

  • 平方损失

    l(y,y^)=12(y−y^)2l(y, \hat{y}) = \frac{1}{2}(y - \hat{y})^2l(y,y^)=21(y−y^)2

  • 训练目标:在整个训练集上最小化损失均值。

相关推荐
九.九6 小时前
ops-transformer:AI 处理器上的高性能 Transformer 算子库
人工智能·深度学习·transformer
春日见6 小时前
拉取与合并:如何让个人分支既包含你昨天的修改,也包含 develop 最新更新
大数据·人工智能·深度学习·elasticsearch·搜索引擎
恋猫de小郭6 小时前
AI 在提高你工作效率的同时,也一直在增加你的疲惫和焦虑
前端·人工智能·ai编程
deephub7 小时前
Agent Lightning:微软开源的框架无关 Agent 训练方案,LangChain/AutoGen 都能用
人工智能·microsoft·langchain·大语言模型·agent·强化学习
偷吃的耗子7 小时前
【CNN算法理解】:三、AlexNet 训练模块(附代码)
深度学习·算法·cnn
大模型RAG和Agent技术实践7 小时前
从零构建本地AI合同审查系统:架构设计与流式交互实战(完整源代码)
人工智能·交互·智能合同审核
老邋遢7 小时前
第三章-AI知识扫盲看这一篇就够了
人工智能
互联网江湖7 小时前
Seedance2.0炸场:长短视频们“修坝”十年,不如AI放水一天?
人工智能
PythonPioneer7 小时前
在AI技术迅猛发展的今天,传统职业该如何“踏浪前行”?
人工智能
冬奇Lab7 小时前
一天一个开源项目(第20篇):NanoBot - 轻量级AI Agent框架,极简高效的智能体构建工具
人工智能·开源·agent