深度学习笔记

一、神经网络基础

  1. 本质

    • 嵌套向量函数:y=fn(⋯f2(f1(x))y = f_n(\cdots f_2(f_1(\mathbf{x}))y=fn(f2(f1(x))
    • 激活函数:必须使用非线性函数(如ReLU、Sigmoid),否则多层网络退化为单层线性变换。
  2. 模型数学表达式

    模型类型数学表达式关键说明
    MLPy=f(Wx+b)\mathbf{y} = f(\mathbf{Wx} + \mathbf{b})y=f(Wx+b)W\mathbf{W}W为权重矩阵
    卷积y=f(k∗x+b)\mathbf{y} = f(\mathbf{k} \ast \mathbf{x} + \mathbf{b})y=f(kx+b)∗\ast 表示卷积运算
    RNNHt=f(XtWxh+Ht−1Whh+bh)\mathbf{H}_t = f(\mathbf{X}_t\mathbf{W}_{xh} + \mathbf{H}_{t-1}\mathbf{W}_{hh} + \mathbf{b}_h)Ht=f(XtWxh+Ht1Whh+bh)
    Yt=f(HtWhq+bq)\mathbf{Y}_t = f(\mathbf{H}_t\mathbf{W}_{hq} + \mathbf{b}_q)Yt=f(HtWhq+bq)
    Whh\mathbf{W}_{hh}Whh为循环权重
  3. 深度学习的优势

    • 多层结构避免单层过宽导致的过拟合(Overfitting)
    • 特征提取层级化:浅层学习简单特征 → 深层组合复杂特征
    • 注:最优深度/宽度无严格证明,工程实践依赖实验调参
  4. 可解释性

    授人与鱼不如授人与渔,深度学习的“渔”是人为给出的,是可解释的,但是具体的“鱼”是很难解释的

    • 结构可解释:模型架构与计算机制明确(“渔”)
    • 参数不可解释:训练所得参数的黑盒特性(“鱼”)

二、损失函数与优化

  1. 损失函数设计

    • 核心要求:可导性、凹凸性(避免如绝对值损失)
    • 交叉熵损失:专用于分类任务,仅关注正确类的概率(因one-hot编码中错误类权重为0)
  2. 优化算法

    • 梯度下降xt=xt−1−α∇f(xt−1)\mathbf{x}_t = \mathbf{x}_{t-1} - \alpha \nabla f(\mathbf{x}_{t-1})xt=xt1αf(xt1)
      • 随机梯度下降(SGD):小批量采样
      • 动量法:引入惯性抑制震荡
      • Adam:自适应学习率(推荐默认使用)
    • 凸优化条件
      • 损失函数为凸函数
      • 定义域为凸集
      • 仅限线性回归、Softmax回归等简单模型

三、训练与评估

  1. 数据划分

    数据集用途占比
    训练集模型参数学习~70%
    验证集超参数调优(或K折交叉验证)~15%
    测试集最终性能评估~15%
  2. 模型复杂度

    • 过拟合:模型复杂度过高 → 训练集好、测试集差
    • 欠拟合:模型复杂度过低 → 训练/测试集均差
    • 衡量指标:参数量、VC维(理论难计算)、超参数范围

四、正则化技术

  1. 权重衰减(L1/L2)

    • L2正则化:loss′=loss+λ2∥w∥2\text{loss}' = \text{loss} + \frac{\lambda}{2} \|\mathbf{w}\|^2loss=loss+2λw2
    • 效果:λ→∞⇒w→0\lambda \to \infty \Rightarrow \mathbf{w} \to 0λw0(压缩参数范围)
  2. Dropout

    • 训练时随机丢弃神经元(概率ppp为超参)
    • 测试时使用完整网络(输出乘1−p1-p1p保持期望不变)
  3. 数据增强

    • 加噪声/变换(如旋转图像)提升鲁棒性

五、数值稳定性问题

问题原因解决方案
梯度爆炸深层网络梯度连乘(如ReLU)梯度裁剪(Clamp)
梯度消失梯度连乘值过小(如Sigmoid)改用LSTM/GRU/残差结构

六、卷积神经网络(CNN)

  1. 设计原则

    • 小卷积核多层堆叠 > 大卷积核少层(计算高效且效果近似)
    • 通道数调整:
      • 增加通道:提取更多特征(通常伴随空间下采样)
      • 减少通道:融合特征(如1×1卷积等效全连接层)
  2. 输出尺寸公式
    输出宽=⌊W−K+2PS⌋+1 \text{输出宽} = \left\lfloor \frac{W - K + 2P}{S} \right\rfloor + 1 输出宽=SWK+2P+1

    • WWW: 输入尺寸, KKK: 核大小, PPP: Padding, SSS: Stride
  3. 池化层作用

    • 提升平移不变性(最大池化优先)
    • 位置:通常置于卷积层后

七、循环神经网络(RNN)

  1. 序列建模基础

    • 概率分解:P(x1,…,xT)=∏t=1TP(xt∣x1,…,xt−1)P(x_1,\dots,x_T) = \prod_{t=1}^T P(x_t \mid x_1,\dots,x_{t-1})P(x1,,xT)=t=1TP(xtx1,,xt1)
    • 马尔科夫假设:P(xt∣x1,…,xt−1)≈P(xt∣xt−τ,…,xt−1)P(x_t \mid x_1,\dots,x_{t-1}) \approx P(x_t \mid x_{t-\tau},\dots,x_{t-1})P(xtx1,,xt1)P(xtxtτ,,xt1)
  2. RNN变体

    模型核心机制优势
    GRU更新门(保留历史信息) + 重置门(控制新信息组合)双门控细粒度控制信息流
    LSTM输入门/遗忘门/输出门 + 细胞状态(长期记忆)解决长程依赖问题
    双向RNN并行前向/反向RNN → Ht=[Ht→;Ht←]H_t = [\overrightarrow{H_t}; \overleftarrow{H_t}]Ht=[Ht;Ht]利用未来信息(如填空任务)
  3. 文本处理流程

    原始文本
    小写化/去特殊字符
    词元化 Tokenize
    构建词表 Vocabulary
    映射为数字索引

八、注意力机制与Transformer

  1. 注意力原理

    • QKV模型
      • Query:当前关注点
      • Key:待匹配信息
      • Value:信息内容
    • 计算流程:
      分数 = Softmax( Similarity(Q, K) / √d_k )
      输出 = 分数 × Value
      
  2. 自注意力(Self-Attention)

    • 序列内部特征关联挖掘(Q=K=V=输入Q=K=V=\text{输入}Q=K=V=输入
    • 复杂度:O(n2⋅d)O(n^2 \cdot d)O(n2d)nnn为序列长,ddd为特征维)
  3. Transformer核心

    • 编码器
      • N×(多头注意力 + 前馈网络 + LayerNorm)N \times \text{(多头注意力 + 前馈网络 + LayerNorm)}N×(多头注意力 + 前馈网络 + LayerNorm)
    • 解码器
      • 带掩码的多头注意力(防止未来信息泄露)
      • 编码器-解码器注意力层(Q来自解码器,K/V来自编码器)
    • LayerNorm vs BatchNorm
      类型正则化维度适用场景
      LayerNorm样本内特征变长序列(如NLP)
      BatchNorm跨样本同特征固定长度输入(如图像)
  4. BERT

    • 基于Transformer编码器
    • 预训练任务:掩码语言模型(Masked LM)
    • 迁移学习:冻结主干网络,微调输出层

九、计算图与自动微分

  1. 计算图本质

    • 树形结构:叶节点(输入变量)→ 中间节点(运算)→ 根节点(输出)
    • 反向传播(BP):沿路径链式求导
  2. PyTorch控制

    操作效果
    tensor.detach()断开与计算图的关联
    requires_grad=False不跟踪梯度(视为常量)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值