当前位置: 首页 > news >正文

机器学习复习

机器学习复习重点

第五章

1、常见激活函数及其适用场景

1. Sigmoid 函数
  • 表达式:(g(z) = \frac{1}{1 + e^{-z}})

  • 使用场景

    • 二分类问题的输出层,用于将输出转换为概率值(取值范围 (0,1))1。
    • 早期神经网络的隐藏层,但因梯度饱和问题在深度网络中逐渐被替代。
2. Tanh 函数
  • 表达式:(g(z) = \frac{e^{z} - e{-z}}{e{z} + e^{-z}})

  • 使用场景

    • 部分需要将输出归一化到 (-1,1) 的场景,如自然语言处理中的某些特征映射。
3. ReLU 函数
  • 表达式:(g(z) = \max(0, z))

  • 使用场景

    • 深度神经网络的默认选择,如 CNN、RNN 等,因其训练速度快且梯度回流效果好2。
    • 解决了 Sigmoid 和 Tanh 的梯度消失问题,广泛应用于隐藏层。
4. Leaky ReLU 函数
  • 表达式:(g(z) = \max(\epsilon z, z))((\epsilon)为小正数,如 0.01)

  • 使用场景

    • 改进 ReLU 的 “死亡区域” 问题,适用于 ReLU 表现不佳的深层网络。
5. GELU 函数
  • 表达式:(Gelu(x) = x \cdot P(X \leq x))((X \sim N(0,1)))

  • 使用场景

    • Transformer 模型(如 BERT、RoBERTa)的隐藏层激活函数3。
6. Swish 函数
  • 特点:自门控激活函数(如(g(z) = z \cdot \sigma(z)))。

  • 使用场景

    • 与 Transformer 结合使用,在大型预训练模型中表现优异3。
7. 恒等函数(Identity Function)
  • 表达式:(g(z) = z)

  • 使用场景

    • 残差网络(Residual Network)中的恒等映射,用于构建跳跃连接4。
    • 不需要引入非线性的场景,如某些线性变换层。
总结
  • 二分类概率输出:优先选 Sigmoid。
  • 深度网络隐藏层:首选 ReLU,若存在 “死亡神经元” 问题可尝试 Leaky ReLU。
  • Transformer 模型:常用 GELU 或 Swish。
  • 残差连接:使用恒等函数保持信息直连。

2、激活函数设计动机

1. 引入非线性特性,增强模型表达能力
  • 线性网络的局限性:若神经网络仅使用线性变换(如恒等函数),无论网络层数多少,其整体映射仍为线性函数,只能处理线性可分问题。例如,线性激活函数无法解决 “异或运算” 等非线性问题56。
  • 非线性的价值:激活函数通过引入非线性变换(如 Sigmoid、ReLU 等),使神经网络能够逼近任意复杂的非线性函数。万能逼近定理表明,含非线性激活函数的单隐层网络即可逼近任意连续函数78。
2. 解决梯度消失问题,优化训练过程
  • 早期激活函数的缺陷:Sigmoid 和 Tanh 在输入绝对值较大时,梯度趋近于 0(梯度饱和),导致深层网络训练困难(梯度无法有效回传)1。
  • ReLU 的改进:其在正数区域的梯度恒为 1,显著缓解了梯度消失问题,加速了深层网络的训练2。
3. 适配特定任务需求,提升模型性能
  • 概率输出需求:Sigmoid 将输出压缩至 (0,1),天然适合二分类任务的概率预测3。
  • 计算效率优化:ReLU 的线性分段特性((\max(0, z)))避免了指数运算,计算速度远高于 Sigmoid 和 Tanh,适合大规模模型2。
  • 深层网络稳定性:GELU、Swish 等激活函数通过平滑非线性特性,在 Transformer 等深层架构中提升了模型的泛化能力4。
4. 理论与实践的平衡
  • 通用逼近能力:激活函数只需满足非线性、有界且连续(如 ReLU、Tanh),即可使网络具备通用逼近能力,无需依赖特定函数形式9。
  • 工程实用性:例如,Batch Normalization 通过标准化输入分布,配合激活函数(如 ReLU)可避免其进入饱和区域,进一步优化训练稳定性10

3、神经网络梯度消失的原因及应对策略

一、梯度消失的原因
  1. 激活函数的梯度饱和特性
    • Sigmoid 和 Tanh 的缺陷:当输入绝对值较大时,这两个函数的梯度趋近于 0(如 Sigmoid 在(z>5)或(z<-5)时,梯度(g’(z) \approx 0))。在深层网络中,梯度通过链式法则反向传播时,每经过一层激活函数就会乘以一个接近 0 的梯度,导致梯度逐层衰减,最终趋近于 01。
    • 数学本质:反向传播中,梯度计算需乘以激活函数的导数。若导数长期处于低水平,梯度会指数级衰减。例如,假设每层梯度乘以 0.5,10 层后梯度将衰减为初始值的(0.5^{10} \approx 0.1%)。
  2. 深层网络的链式传播累积效应
    • 即使激活函数导数不为 0,深层网络中梯度需经过多层传递,每一层的权重和导数相乘可能导致整体梯度消失。例如,若每层权重矩阵的范数小于 1,多层相乘后梯度会迅速衰减。
二、应对策略
  1. 替换激活函数为非饱和类型
    • ReLU 及其变体:ReLU 在正数区域的梯度恒为 1,避免了梯度饱和问题,显著改善深层网络的梯度回流2。其变体 Leaky ReLU 通过为负数区域提供小梯度(如(\epsilon=0.01)),解决了 “死亡神经元” 问题3。
    • GELU/Swish:常用于 Transformer 模型,通过平滑非线性特性平衡表达能力和梯度传递效率4。
  2. 优化网络结构设计
    • 残差连接(Residual Network):通过恒等映射(F(x) + x),使梯度可直接跳过中间层回传,缓解深层网络的梯度消失5。
    • 批归一化(Batch Normalization):通过标准化中间层输入,避免激活函数进入饱和区域,同时稳定梯度传播9。具体步骤包括计算批量均值、方差并归一化,再通过(\gamma)和(\beta)调整输出8。
  3. 改进优化算法
    • 自适应学习率方法:如 RMSprop、Adam 通过动态调整学习率,缓解梯度消失导致的训练停滞。例如,RMSprop 使用指数加权移动平均计算梯度平方,抑制学习率衰减过快6。
    • 动量(Momentum):模拟物理动量累积,减少梯度方向震荡,加速收敛。例如,Momentum 通过(v_t = \gamma v_{t-1} + \eta g_t)累积历史梯度,使参数更新更稳定7。

4、空间不变性cnn如何实现

  • 生物学启发的层级结构:受猫视觉皮层神经元研究的启发,CNN 通过模拟 “简单细胞” 到 “复杂细胞” 的层级组织实现空间不变性。简单细胞对特定位置和方向的线条敏感,而复杂细胞对线条方向不敏感,这种层级结构使网络能从局部特征逐步提取更抽象、对位置变化不敏感的高层特征。
  • 卷积操作的局部连接与参数共享
    • 局部特征提取:卷积层通过滤波器(如 4×4 大小的权重矩阵)对输入图像的局部区域(如 4×4 像素块)进行滑动窗口操作,提取边缘、纹理等局部特征。每次滑动仅连接局部区域,保留空间结构信息。
    • 参数共享机制:同一滤波器的参数在所有空间位置共享,即同一特征检测器可应用于图像的不同位置,避免重复学习相同特征,从而对特征的位置变化产生不变性。
  • 池化层的不变性增强
    • 最大池化为主:通过选取局部区域的最大值,保留最显著特征,忽略特征的具体位置偏移。例如,当物体在图像中轻微移动时,池化层仍能捕获到相同的关键特征。
    • 多滤波器协同:结合多个不同滤波器提取的特征,池化层可进一步学习对旋转、缩放等变换的不变性。如多个检测不同方向 “5” 的滤波器,经最大池化后可对 “5” 的旋转产生不变性。

第六章-1

1、YOLO网络划分 非最大抑制

网络划分
  1. 输入图像划分逻辑
  • 网格划分方式:将输入图像划分为 (G \times G) 的网格(如 YOLOv1 中 (S=7),即 7×7 网格),每个网格单元负责预测中心落在该单元内的物体。例如,若物体中心坐标落在某个网格中,该网格即负责检测该物体。
  • 设计目的:通过网格划分将检测问题转化为网格级别的回归任务,简化模型对物体位置的定位逻辑。
  1. 网格单元的预测输出
  • 每个网格的预测参数

    :每个网格单元通过 CNN 预测 k个边界框(Anchor Boxes),每个边界框包含 5 个核心参数:

    • (p_c):检测到物体的概率;
    • ((b_x, b_y)):边界框中心相对于网格左上角的偏移量(通过 Sigmoid 函数归一化到 [0,1]);
    • ((b_w, b_h)):边界框宽高相对于图像的归一化值(通过除以图像尺寸实现);
    • 此外,每个网格还输出 p 个类别概率(如 VOC 数据集为 20 类),形成 (G \times G \times k \times (5+p)) 的输出张量。
非最大抑制
  1. NMS 的核心目标
  • 消除同一物体的重复边界框预测,保留置信度最高、定位最准确的边界框。
  1. NMS 的执行步骤
  • 步骤 1:筛选置信度阈值:首先丢弃预测概率低于阈值(如 0.6)的边界框。

  • 步骤 2:迭代选择与抑制

    • 对每个类别,选取当前置信度最高的边界框作为基准;
    • 计算该基准框与其他同类别框的交并比(IoU),若 IoU ≥ 0.5,则丢弃这些重叠框;
    • 重复上述过程,直至所有边界框处理完毕。
  1. NMS 的数学与可视化说明
  • IoU 计算:通过公式 (IoU(B_p, B_a) = \frac{B_p \cap B_a}{B_p \cup B_a}) 量化边界框重叠度,当 IoU ≥ 0.5 时视为 “重复检测”。

  • 示例流程

    1. 初始生成多个边界框,如对 “泰迪熊” 的检测框置信度为 0.9978;
    2. 选择置信度最高的框,移除所有与它 IoU≥0.5 的同类别框;
    3. 最终保留唯一的高置信度边界框。

第六章-2

1、RNN如何实现建模标准

文档中提到序列建模需满足四大设计标准:

  1. 处理可变长度序列:适应不同长度的输入序列(如不同长度的句子)。
  2. 跟踪长期依赖:捕捉序列中相隔较远的元素间的依赖关系。
  3. 保持顺序信息:保留序列中元素的时序顺序(如单词顺序)。
  4. 跨序列共享参数:降低模型复杂度,提高泛化能力。

第七章

1、n-grom,原理,短板、

一、n-gram 模型原理
  1. 核心定义

    • n-gram 指连续的 n 个词组成的序列,是语言模型中用于建模语言概率分布的基本单元。

    • 示例

      • unigram(一元组):单个词,如 “the”“students”。
      • bigram(二元组):两个连续词,如 “the students”“students opened”。
      • trigram(三元组):三个连续词,如 “the students opened”。
  2. 概率计算逻辑

    • 基于语料库统计 n-gram 的出现频率,通过条件概率预测下一个词。数学表达式为: (P(x{(t+1)}|x{(t)},…,x^{(t-n+2)}) \approx \frac{count(x{(t+1)},x{(t)},…,x{(t-n+2)})}{count(x{(t)},…,x^{(t-n+2)})})
    • 实例:若语料库中 “students opened their” 出现 1000 次,其中 “students opened their books” 出现 400 次,则: (P(books|students opened their) = \frac{400}{1000} = 0.4)
二、n-gram 模型的核心假设
  1. 马尔可夫假设
    • 假设下一个词仅依赖于前面的 n-1 个词,而非整个历史语境,即: (P(x{(t+1)}|x{(t)},…,x^{(1)}) = P(x{(t+1)}|x{(t)},…,x^{(t-n+2)}))
    • 目的:简化计算复杂度,避免因历史过长导致的参数爆炸问题。
三、n-gram 模型的主要短板
  1. 稀疏性问题

    • 问题 1

      :若某 n-gram 在语料库中未出现,其概率被判定为 0,导致预测失效。

      • 解决方案:平滑(Smoothing),如给所有 n-gram 的计数加一个小常数(如拉普拉斯平滑),避免零概率。
    • 问题 2

      :若 n-1 gram 未出现,无法计算任何后续词的概率。

      • 解决方案:回退(Backoff),即降低 n 的层级,如从 4-gram 回退到 3-gram 或 2-gram。
  2. 存储与计算复杂度问题

    • 存储负担:需存储所有出现过的 n-gram 计数,语料库越大,模型存储需求呈指数增长。例如,一个 1.7 million 词的语料库可能需要存储大量 n-gram 统计量。
    • 计算效率:当 n 较大时,查询和更新计数的计算成本高,尤其在处理长文本时效率低下。
  3. 长距离依赖建模不足

    • 受限于 n 的大小(通常 n≤5),无法捕捉超过 n-1 个词的长距离语义依赖。例如,无法理解 “the man who…opened their…” 中 “man” 与 “their” 的指代关系。
  4. 语义泛化能力弱

    • 仅基于词频统计,不考虑词义和上下文语义,无法区分多义词的不同含义(如 “bank” 在 “river bank” 和 “bank account” 中的差异)。
四、总结

n-gram 模型通过简单的统计方法实现语言建模,但其核心假设(马尔可夫性)和依赖词频统计的特性,导致其在稀疏性、长距离依赖和语义理解上存在天然缺陷。这些短板推动了后续神经网络语言模型(如 RNN、Transformer)的发展,后者通过分布式表示和注意力机制缓解了上述问题。

2、transformer

一、Transformer 核心公式
  1. 自注意力机制(Self-Attention)
    • 步骤 1:生成查询(Q)、键(K)、值(V) 对每个词向量 (x_i),通过权重矩阵计算:(q_i = W^Q x_i, \quad k_i = W^K x_i, \quad v_i = W^V x_i) 批量矩阵形式:(Q = XW^Q, \quad K = XW^K, \quad V = XW^V) (对应段落:、)
    • 步骤 2:计算注意力分数 词 i 对词 j 的注意力分数为:(e_{ij} = q_i \cdot k_j) 批量形式:(E = QK^T) (对应段落:、)
    • 步骤 3:缩放点积注意力(Scaled Dot-Product Attention) 引入缩放因子 (\sqrt{d_k}) 避免梯度消失:(\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V) (对应段落:、)
  2. 多头注意力(Multi-Head Attention) 将自注意力并行计算 h 次,拼接结果后线性投影:$(\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \dots, \text{head}_h)W^O) $ 其中单个头的计算为:(\text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)) (对应段落:、)
  3. 前馈网络(Feed Forward Layer) 对注意力输出应用两层线性变换,激活函数为 ReLU:(\text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2) (对应段落:)
  4. 位置编码(Positional Encoding) 采用正弦余弦函数注入位置信息:(\begin{align*} PE_{(pos, 2i)} &= \sin\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right) \ PE_{(pos, 2i+1)} &= \cos\left(\frac{pos}{10000^{2i/d_{\text{model}}}}\right) \end{align*}) (对应段落:、)
二、编解码结构
  1. 编码器(Encoder)

    • 核心组件

      :由 6 层相同模块堆叠,每层包含:

      1. 多头自注意力(Multi-Head Self-Attention):每个词关注所有词的上下文。
      2. 前馈网络(Feed Forward):增强特征表达能力。
      3. 残差连接与层归一化(Add & Norm):(\text{LayerNorm}(x + \text{Attention}(x)))
    • 输入处理:词嵌入 + 位置编码(、)。 (对应段落:、、)

  2. 解码器(Decoder)

    • 核心组件

      :由 6 层相同模块堆叠,每层包含:

      1. 掩码多头自注意力(Masked Multi-Head Self-Attention):禁止关注未来词(见掩码机制)。
      2. 编码器 - 解码器注意力(Encoder-Decoder Attention):解码器关注编码器输出。
      3. 前馈网络与层归一化:结构同编码器。
    • 输出处理:最终通过线性层和 Softmax 生成词概率分布(、)。 (对应段落:、、)

三、掩码机制(Masking)
  1. 掩码自注意力(Masked Self-Attention)

    • 目的:防止解码器在训练时 “偷看” 未来词,确保自回归生成逻辑。

    • 实现方式

      • 在计算注意力分数后,将未来位置((j \geq i))的分数设为 (-\infty),使 Softmax 后权重为 0:(e_{ij} = \begin{cases} q_i \cdot k_j, & j < i \ -\infty, & j \geq i \end{cases})
      • 矩阵示例:生成上三角全为 (-\infty) 的掩码矩阵(、)。 (对应段落:、、)
  2. 填充掩码(Padding Mask)

    • 目的:处理不同长度序列时,忽略填充符(如 [PAD])的影响。
    • 实现方式:将填充位置的注意力分数设为 (-\infty),避免模型关注无意义字符()。

GPT

维度GPT-1GPT-2GPT-3
参数规模117M1.5B175B
训练数据量800M 词(BooksCorpus)40GB(网页文本)570GB(多源混合)
学习模式预训练 + 微调零样本提示少样本 / 上下文学习
关键技术基础 Transformer 解码器层归一化位置调整稀疏注意力、提示工程
任务适应性需特定任务调整通用提示泛化无需调整即可处理多任务
代表性能力文本生成、情感分析长文本连贯性提升推理、代码、跨模态理解

第八章

自监督学习的分类和应用

自监督学习(Self-supervised Learning)可分为自关联自监督学习(Auto-associative Self-supervised Learning)对比自监督学习(Contrastive Self-supervised Learning) 两类,其应用覆盖自然语言处理(NLP)和计算机视觉(CV)等领域,具体如下:

一、自关联自监督学习(AaSSL)

(一)核心思想

通过训练神经网络重构或重现输入数据,利用数据自身生成监督信号。

(二)应用场景

  1. 自然语言处理(NLP)
    • 语言模型任务:包括中心词预测、邻居词预测、自回归语言建模(如纠正 “Nothing is is impossible” 为 “Nothing is impossible”)、掩码语言建模(预测 [MASK] 位置的词汇)。
    • 句子级任务:下一句预测(判断句子是否连续)、句子顺序预测(还原正确语序)、句子排列预测(处理打乱的段落)🔶1-259🔶。
    • 其他任务:表情符号预测(根据文本内容生成合适表情)、空缺句子生成(补全文档中缺失的句子)。
  2. 计算机视觉(CV)
    • 图像重建与增强:图像颜色化(将灰度图转为彩色)、超分辨率(提升图像清晰度)、图像修复(填补图像缺失区域)。
    • 视觉理解任务:图像拼图(还原打乱的图像块)、上下文预测(根据中心补丁推断周边内容)、几何变换识别(判断图像旋转角度)。
    • 自动标签生成:通过聚类为无标签图像生成类别标签。
二、对比自监督学习(CSSL)

(一)核心思想

通过学习 “拉近” 相似样本的特征表示、“推远” 不同样本的特征表示,构建有效的特征空间。

(二)应用场景

  1. 视觉表示学习:如 SimCLR 框架,通过数据增强(如裁剪、旋转)生成正样本对,学习图像的通用特征表示,提升下游任务(如分类、检测)的性能。
  2. 自然语言处理(NLP):如 SimCSE 模型,通过 dropout 生成句子的不同表示作为正样本,或利用标签数据(如蕴含、矛盾关系)构建正负样本对,学习语义相似的句子嵌入。

第九章

强化学习是一种机器学习方法,涉及智能体与环境的交互,环境会提供数值奖励信号,目标是让智能体学习如何采取行动以最大化奖励。以下是其关键概念及应用的详细介绍:

1、强化学习的定义,state,action,reward还有应用

关键概念
  • State(状态)

    :表示智能体在某一时刻对环境的观察,包含了做出决策所需的所有信息。例如:

    • 在 Cart-Pole 问题中,状态包括杆子的角度、角速度、小车的位置和水平速度。
    • 玩 Atari 游戏时,状态是游戏画面的原始像素输入(如最后 4 帧的 84×84 灰度图像)。
    • 机器人 locomotion 中,状态为关节的角度和位置。
  • Action(动作)

    :智能体在某个状态下可以采取的操作。例如:

    • Cart-Pole 问题中,动作为对小车施加向左或向右的水平力。
    • Atari 游戏中,动作是游戏控制(如左、右、上、下)。
    • 网格世界中,动作包括上、下、左、右移动。
  • Reward(奖励)

    :环境对智能体动作的反馈,是智能体学习的目标信号。例如:

    • Cart-Pole 问题中,若杆子保持直立,每时间步获得 + 1 奖励。
    • Atari 游戏中,奖励为每时间步的分数增减。
    • 网格世界中,每次状态转移有 - 1 的负奖励,目标是尽快到达终止状态。
应用领域
  • 游戏与博弈

    • Atari 游戏:如《Breakout》,智能体通过原始像素输入学习最优操作,以获得最高分数。
    • AlphaGo:结合监督学习和强化学习,通过策略梯度和蒙特卡洛树搜索,击败围棋世界冠军。
  • 机器人控制

    • Cart-Pole 平衡:控制小车使杆子保持直立,延长生存时间。
    • 机器人 locomotion:学习关节扭矩控制,使机器人向前移动。
  • 决策与优化

    • 网格世界导航:智能体学习在网格中选择最优路径,以最少动作到达终止状态。
    • 图像分类:如循环注意力模型(RAM),通过选择性 “瞥见” 图像区域,提高计算效率和分类准确性。

2、马尔科夫过程和策略

马尔科夫决策过程(Markov Decision Processes, MDP)

定义与核心性质

  • 数学形式化:MDP 是强化学习问题的数学建模框架,其核心基于马尔科夫性质 —— 当前状态完全表征世界的状态,未来状态仅依赖当前状态和动作,与历史无关。

  • 组成要素

    • 状态空间(𝒮):所有可能状态的集合。
    • 动作空间(𝒜):智能体可执行的所有动作的集合。
    • 奖励函数(ℛ):给定状态 - 动作对的奖励分布。
    • 转移概率(ℙ):给定当前状态和动作时,下一状态的概率分布。
    • 折扣因子(γ):用于权衡未来奖励的重要性,取值范围 [0,1]。

交互流程

  1. 初始化:环境采样初始状态 s 0 ∼ p ( s 0 ) s_0 \sim p(s_0) s0p(s0)

  2. 循环交互

    • 智能体选择动作 (a_t)。
    • 环境采样奖励 s 0 ∼ p ( s 0 ) s_0 \sim p(s_0) s0p(s0)
    • 环境采样下一状态 s t + 1 ∼ P ( ⋅ ∣ s t , a t ) s_{t+1} \sim P(\cdot | s_t, a_t) st+1P(st,at)
    • 智能体接收奖励和新状态。
  3. 终止条件:当任务成功 / 失败等条件满足时结束。

策略(Policy)

定义与作用

  • 本质:策略 (\pi) 是从状态空间到动作空间的函数,指定智能体在每个状态下应采取的动作。
  • 目标:寻找最优策略 (\pi^*),最大化累积折扣奖励的期望: p i ∗ = arg ⁡ max ⁡ π E [ ∑ t ≥ 0 γ t r t ∣ π ] pi^* = \arg\max_\pi \mathbb{E}\left[\sum_{t \geq 0} \gamma^t r_t | \pi\right] pi=argmaxπE[t0γtrtπ]

类型与优化

  • 参数化策略:通过参数 (\theta) 定义策略族 (\Pi = {\pi J ( θ ) = E [ ∑ t ≥ 0 γ t r t ∣ π θ ] J(\theta) = \mathbb{E}\left[\sum_{t \geq 0} \gamma^t r_t | \pi_\theta\right] J(θ)=E[t0γtrtπθ]最大化。

  • 优化方法

    • 策略梯度(Policy Gradients):通过梯度上升直接优化策略参数,如 REINFORCE 算法利用蒙特卡洛采样估计梯度: ∇ θ J ( θ ) ≈ ∑ t ≥ 0 r ( τ ) ∇ θ log ⁡ π θ ( a t ∣ s t ) \nabla_\theta J(\theta) \approx \sum_{t \geq 0} r(\tau) \nabla_\theta \log \pi_\theta(a_t | s_t) θJ(θ)t0r(τ)θlogπθ(atst)
    • Actor-Critic 算法:结合策略网络(Actor)和价值网络(Critic),通过优势函数 A π ( s , a ) = Q π ( s , a ) − V π ( s ) A^{\pi}(s, a) = Q^{\pi}(s, a) - V^{\pi}(s) Aπ(s,a)=Qπ(s,a)Vπ(s) 指导策略更新。

3、Q-learning

一、Q-learning 的核心定义

Q-learning 是强化学习中的一种无模型(Model-Free)学习方法,目标是通过估计状态 - 动作对的价值函数 (Q(s, a)),找到最优策略。其核心思想是:学习在状态 s 下执行动作 a 后,能获得的期望累积折扣奖励

二、数学基础:贝尔曼方程(Bellman Equation)

Q-learning 的理论基础是贝尔曼最优方程,用于定义最优 Q 值函数 (Q^(s, a)):(Q^(s, a) = \mathbb{E}{s’ \sim \mathcal{E}}\left[r + \gamma \max{a’} Q^*(s’, a’) \mid s, a\right])

  • 直觉:当前状态 - 动作对的价值等于即时奖励 r 加上下一状态 (s’) 所有可能动作的最大期望价值(乘以折扣因子 (\gamma))。
三、算法流程与关键技术
  1. 价值函数近似 直接计算所有状态 - 动作对的 Q 值不现实,因此使用函数近似器(如神经网络)估计 (Q(s, a; \theta) \approx Q^*(s, a)),称为 Q-network。例如:

    • 输入:状态 s(如 Atari 游戏的 84×84×4 帧图像)。
    • 输出:各动作的 Q 值,如 (Q(s, a_1), Q(s, a_2), \dots, Q(s, a_{|A|}))。
  2. 损失函数与训练

    • 目标值:(y_i = \mathbb{E}{s’ \sim \mathcal{E}}\left[r + \gamma \max{a’} Q(s’, a’; \theta_{i-1}) \mid s, a\right])
    • 损失函数:均方误差(MSE)(L_i(\theta_i) = \mathbb{E}_{s, a \sim \rho(\cdot)}\left[(y_i - Q(s, a; \theta_i))^2\right])
    • 梯度更新:(\nabla_{\theta_i} L_i(\theta_i) = \mathbb{E}\left[r + \gamma \max_{a’} Q(s’, a’; \theta_{i-1}) - Q(s, a; \theta_i)\right] \nabla_{\theta_i} Q(s, a; \theta_i))
  3. 经验回放(Experience Replay)

    • 问题:连续样本高度相关,导致训练不稳定。

    • 解决方案

      • 存储 transitions ((s_t, a_t, r_t, s_{t+1})) 到回放缓冲区。
      • 随机采样小批量数据训练,降低样本相关性,提高数据效率。
  4. 探索与利用平衡

    • ε- 贪婪策略:以概率 (\varepsilon) 随机选择动作(探索),否则选择当前 Q 值最大的动作(利用)。

4、深度学习流程

一、Q-learning 中的深度学习实现流程
1. Q-network 架构设计与初始化
  • 网络结构

    :以 Atari 游戏为例,Q-network 通常包含卷积层和全连接层,如:

    • 输入:预处理后的状态(如 84×84×4 的灰度图像序列)。
    • 卷积层:16 个 8×8 卷积核(步长 4)、32 个 4×4 卷积核(步长 2)。
    • 全连接层:256 个节点,输出各动作的 Q 值(如 4-18 维)。
  • 初始化:随机初始化网络权重 θ。

2. 状态预处理
  • 对原始输入(如图像)进行灰度转换、下采样和裁剪,降低维度并提取关键特征。
3. 交互与数据收集
  • ε- 贪婪策略:以概率 ε 随机选择动作(探索),否则选择 Q 值最大的动作(利用)。
  • 存储过渡样本:将每次交互的状态、动作、奖励、下一状态存入经验回放缓冲区 D。
4. 经验回放与模型训练
  • 随机采样:从回放缓冲区中随机抽取小批量样本(如 32-64 个过渡样本)。
  • 目标值计算:根据贝尔曼方程计算目标 Q 值 (y_i = r + \gamma \max_{a’} Q(s’, a’; \theta_{i-1}))。
  • 损失函数:均方误差 (L_i(\theta_i) = \mathbb{E}[(y_i - Q(s, a; \theta_i))^2])。
  • 梯度更新:通过反向传播更新网络参数,减小预测 Q 值与目标值的差距。
5. 迭代优化
  • 重复交互、采样、训练过程,直至 Q-network 收敛到近似最优 Q * 函数。
二、策略梯度中的深度学习应用流程
1. 策略网络参数化
  • 定义参数化策略 (\pi_\theta(a|s)),如使用神经网络(如 RNN)表示策略,输入状态,输出动作概率分布。
2. 奖励期望与梯度计算
  • 目标函数:最大化累积折扣奖励的期望 (J(\theta) = \mathbb{E}\left[\sum_{t \geq 0} \gamma^t r_t | \pi_\theta\right])。
  • 梯度估计:使用 REINFORCE 算法通过蒙特卡洛采样估计梯度:(\nabla_\theta J(\theta) \approx \sum_{t \geq 0} r(\tau) \nabla_\theta \log \pi_\theta(a_t | s_t)) 其中 (r(\tau)) 为轨迹总奖励。
3. 方差 reduction 技术
  • 引入基线函数 (b(s_t))(如状态价值函数 (V^\pi(s_t))),减少梯度估计方差:(\nabla_\theta J(\theta) \approx \sum_{t \geq 0}\left(\sum_{t’ \geq t} \gamma^{t’-t} r_{t’} - b(s_t)\right) \nabla_\theta \log \pi_\theta(a_t | s_t)) 。
4. Actor-Critic 算法流程
  • Actor(策略网络):根据当前状态输出动作,参数为 θ。
  • Critic(价值网络):估计 Q 值或状态价值,参数为 φ,指导 Actor 更新。
  • 联合优化:通过优势函数 (A^\pi(s, a) = Q^\pi(s, a) - V^\pi(s)) 调整策略参数。
三、典型案例:Atari 游戏的深度 Q-learning 流程
  1. 输入处理

    • 将 210×160 像素的游戏画面裁剪、灰度转换为 84×84 图像,堆叠 4 帧作为状态输入。
  2. Q-network 推理

    • 前向传播计算所有动作的 Q 值,选择 Q 值最大的动作(ε- 贪婪策略)。
  3. 经验存储

    • 记录每次动作的过渡样本 ((\phi_t, a_t, r_t, \phi_{t+1})) 到回放缓冲区。
  4. 批量训练

    • 随机采样样本,计算目标 Q 值并更新网络参数,迭代优化。
四、AlphaGo 中的深度学习整合流程
  1. 策略网络预训练

    • 用监督学习从专业棋局中学习落子策略(初始策略网络)。
  2. 强化学习优化

    • 通过自我对弈,使用策略梯度更新策略网络,奖励为胜负结果(+1/-1)。
  3. 价值网络训练

    • 学习评估棋局状态的价值,作为 Critic 指导策略优化。
  4. 蒙特卡洛树搜索(MCTS)

    • 结合策略网络和价值网络,通过树搜索选择最优落子动作。
五、关键公式与标记引用
  1. 贝尔曼最优方程:(Q^(s, a) = \mathbb{E}{s’ \sim \mathcal{E}}\left[r + \gamma \max{a’} Q^(s’, a’) \mid s, a\right]) (对应段落:)
  2. 策略梯度估计:(\nabla_\theta J(\theta) \approx \sum_{t \geq 0} r(\tau) \nabla_\theta \log \pi_\theta(a_t | s_t)) (对应段落:)
  3. 优势函数:(A^\pi(s, a) = Q^\pi(s, a) - V^\pi(s)) (对应段落:)

5、policy gredient目标和定义

一、核心定义

策略梯度是强化学习中直接优化策略参数的方法,通过参数化策略函数 (\pi_\theta(a|s)) 表示智能体在状态 s 下选择动作 a 的概率分布。其核心思想是:通过计算奖励对策略参数的梯度,利用梯度上升法找到使期望奖励最大化的策略参数

二、数学形式化定义
  1. 参数化策略族 定义含参数 (\theta) 的策略族 (\Pi = {\pi_\theta, \theta \in \mathbb{R}^m}),其中 (\pi_\theta(a|s)) 表示在状态 s 下选择动作 a 的概率。
  2. 目标函数(奖励期望) 对于策略 (\pi_\theta),其目标是最大化累积折扣奖励的期望:(J(\theta) = \mathbb{E}{\tau \sim p(\tau;\theta)}\left[\sum{t \geq 0} \gamma^t r_t\right]) 其中 (\tau = (s_0, a_0, r_0, s_1, \dots)) 为轨迹,(p(\tau;\theta)) 是策略 (\pi_\theta) 生成轨迹的概率,(\gamma) 为折扣因子。
三、核心目标

寻找最优参数 (\theta^),使得目标函数 (J(\theta)) 最大化:(\theta^ = \arg\max_\theta J(\theta))

6、讲一下方差问题分析,如何选择baseline

一、方差问题分析
1. 高方差的根源

策略梯度方法(如 REINFORCE)的梯度估计直接依赖轨迹总奖励 (r(\tau)),而 (r(\tau)) 受初始状态、环境随机性等因素影响,导致梯度估计波动大。例如:

  • 若某条轨迹因偶然因素获得高奖励,梯度会错误地强化所有相关动作的概率,即使部分动作对奖励无贡献。
  • 原始梯度估计式 (\nabla_\theta J(\theta) \approx \sum_{t \geq 0} r(\tau) \nabla_\theta \log \pi_\theta(a_t|s_t)) 中,(r(\tau)) 的随机性导致梯度方差高。
2. 信用分配难题

轨迹总奖励无法准确反映单个动作的贡献。例如:

  • 若轨迹最终成功,所有动作都会被 “奖励”,但实际可能只有部分动作是关键的;反之,失败轨迹中的某些动作可能并非错误。
二、基线(Baseline)的作用与选择
1. 基线的核心作用

引入基线函数 (b(s_t)) 以降低梯度估计方差,同时保持期望不变。公式如下:(\nabla_\theta J(\theta) \approx \sum_{t \geq 0} \left(\sum_{t’ \geq t} \gamma^{t’-t} r_{t’} - b(s_t)\right) \nabla_\theta \log \pi_\theta(a_t|s_t))

  • 原理:减去基线后,仅当动作的累积奖励高于平均水平时才强化其概率,避免因整体奖励偏高而盲目更新。
2. 基线的具体选择方法
  • 常数移动平均奖励 最简单的基线是所有轨迹奖励的常数移动平均值:(b = \frac{1}{N} \sum_{i=1}^N \sum_{t’ \geq 0} \gamma^{t’} r_{t’}^{(i)}) 该方法通过平滑历史奖励减少方差。
  • 状态价值函数 (V^\pi(s_t)) 更优的基线是状态价值函数,即从状态 (s_t) 出发的期望累积奖励:(V^\pi(s_t) = \mathbb{E}\left[\sum_{t’ \geq t} \gamma^{t’-t} r_{t’} \mid s_t, \pi\right])
    • 优势:结合优势函数 (A^\pi(s, a) = Q^\pi(s, a) - V^\pi(s)),可量化动作相对于状态平均价值的优劣,进一步降低方差。
    • 实现:通过 Critic 网络(如 Q-learning 中的价值函数估计)学习 (V^\pi(s_t))。
三、关键公式与段落引用
  1. 原始梯度估计(高方差)(\nabla_\theta J(\theta) \approx \sum_{t \geq 0} r(\tau) \nabla_\theta \log \pi_\theta(a_t|s_t)) (对应段落:)
  2. 带基线的梯度估计(\nabla_\theta J(\theta) \approx \sum_{t \geq 0} \left(\sum_{t’ \geq t} \gamma^{t’-t} r_{t’} - b(s_t)\right) \nabla_\theta \log \pi_\theta(a_t|s_t)) (对应段落:)
  3. 优势函数与基线的关系(A^\pi(s, a) = Q^\pi(s, a) - V^\pi(s)) (对应段落:)
四、总结:基线选择的核心原则
  • 无偏性:基线 (b(s_t)) 需满足 (\mathbb{E}[b(s_t)] = \mathbb{E}\left[\sum_{t’ \geq t} \gamma^{t’-t} r_{t’}\right]),确保梯度期望不变。
  • 相关性:基线应与状态相关(如 (V^\pi(s_t))),以有效过滤与动作无关的奖励波动。
  • 可学习性:在 Actor-Critic 算法中,基线常通过神经网络(Critic)动态学习,适应复杂环境。

第十章

1、支持向量机的summary内容和函数选择动机

支持向量机(SVM)总结内容
  1. 核心思想:最大间隔分类器

    • 目标是在特征空间中找到一个超平面,使得其与最近的训练样本(支持向量)之间的间隔最大化,从而提升模型的泛化能力。
    • 硬间隔:适用于线性可分数据,要求所有样本严格满足分类约束。
    • 软间隔:引入松弛变量 (\xi_i) 和正则化参数 C,允许少量样本分类错误,平衡间隔大小与分类误差。
  2. 优化问题与对偶解法

    • 原问题:最小化 (\frac{1}{2}|w|^2),约束为 (y_i(w^\top x_i + b) \geq 1)。
    • 对偶问题:通过拉格朗日乘数法转化为关于拉格朗日乘子 (\alpha_i) 的优化问题,降低计算复杂度,并自然引入核技巧。
    • 支持向量判定:仅当 (\alpha_i > 0) 时,样本为支持向量,决定分类超平面。
  3. 核技巧:处理非线性问题

    • 通过非线性映射 (\Phi(x)) 将数据映射到高维特征空间,使数据线性可分,避免显式高维计算,通过核函数 (K(x_i, x_j) = \Phi(x_i)^\top \Phi(x_j)) 计算内积。

    • 常见核函数

      • 线性核:(K(x_i, x_j) = x_i^\top x_j),适用于高维线性可分数据(如文本分类)。
      • 多项式核:(K(x_i, x_j) = (1 + x_i^\top x_j)^d),处理多项式关系。
      • 高斯核(RBF):(K(x_i, x_j) = \exp(-\gamma|x_i - x_j|^2)),适用于低维非线性数据(如生物特征)。
  4. 损失函数与优化特性

    • 使用铰链损失(Hinge Loss):(\max(0, 1 - y_i f(x_i))),仅惩罚分类错误或边缘内的样本,保证优化问题的凸性,易找到全局最优解。
函数选择动机
  1. 核函数选择动机

    • 数据线性可分性:若数据在原始空间线性可分,选线性核,计算效率高(如文档分类中高维词向量)。

    • 非线性复杂度

      :若数据非线性关系复杂,选高斯核或多项式核,将数据映射到高维空间。例如:

      • 高斯核适用于样本量中等、特征维度较低的场景(如图像识别),可灵活捕捉局部模式。
      • 多项式核适用于已知数据服从多项式关系的场景,但计算复杂度随次数 d 升高。
    • 计算效率与维度:线性核时间复杂度低,适用于高维数据(如文本);高斯核需调节参数 (\gamma),避免过拟合。

  2. 正则化参数 C 的作用

    • C

      控制分类错误与间隔大小的权衡:

      • C 小:允许更多分类错误,追求大间隔,泛化能力强,但可能欠拟合。
      • C 大:严格约束分类错误,间隔变小,可能过拟合(如 (C \to \infty) 时退化为硬间隔)。
  3. 损失函数(铰链损失)的优势

    • 稀疏性:仅支持向量影响模型,减少计算量。
    • 凸性:优化问题为凸优化,避免局部最优解,保证算法稳定性。

2、朴素贝叶斯如何训练,如何处理连续特征,假设高斯分布

训练过程

在这里插入图片描述

连续特征的处理

在这里插入图片描述

3、AdaBoot内容,summary,如何实现动态采样

内容

在这里插入图片描述

在这里插入图片描述

4、决策树衡量指标,基本原理

一、决策树的基本原理(文件间接体现)
  1. 作为弱分类器的角色
    • 在集成学习中,决策树(尤其是 “决策树桩”,即单层决策树)常作为基学习器。例如,Adaboost 算法中的弱分类器 (h_t(x)) 可由决策树桩实现,其本质是通过单一特征的阈值划分数据(如判断 “特征值是否大于阈值”),输出二分类结果((-1) 或 (+1))。
    • 基本逻辑:通过特征分裂将样本空间划分为不同区域,每个区域对应一个预测类别,形成树状结构。
  2. 构建逻辑(隐含于集成学习流程)
    • 决策树通过递归选择最优特征和分裂点,将数据集划分为纯度更高的子节点,直至满足停止条件(如叶子节点样本数小于阈值、纯度达到上限等)。
    • 在集成学习中,决策树作为弱分类器时,通常被简化为浅层结构(如树桩),以保证 “弱学习能力”(即分类效果略优于随机猜测),便于后续集成优化。
二、可能的衡量指标(基于集成学习上下文推断)

文件中未直接提及决策树的分裂指标(如信息增益、基尼指数),但结合集成学习中对 “弱分类器” 的要求,可推断决策树在分裂时可能关注以下目标:

  1. 纯度提升
    • 分裂特征的选择需使子节点样本的类别纯度(如同一类别样本占比)高于父节点,从而提升分类准确性。
    • 例如,在 Adaboost 中,弱分类器 (h_t(x)) 的目标是在当前样本权重分布下,最小化分类错误率 (\epsilon_t),这等价于寻找使分裂后错误率最低的特征和阈值。
  2. 错误率(集成学习中的关键指标)
    • 在 Adaboost 中,弱分类器的权重 (\alpha_t) 由错误率 (\epsilon_t) 计算((\alpha_t = \frac{1}{2} \ln \frac{1-\epsilon_t}{\epsilon_t})),反映分裂后的分类效果。这表明决策树作为弱分类器时,其分裂质量通过错误率衡量。

相关文章:

  • 企业网站建设市场报价b2b电子商务平台排名
  • 如何搭建一个自己上传视频的网站百度指数分析工具
  • 网站管理员权限怎么设置seo描述快速排名
  • 邢台网站制作多少钱网站提交
  • 网站搭建中单页面企业网站建设原则是
  • 上饶专业做网站建设自助建站系统源码
  • 自动驾驶数据特征提取实战:用Python打开智能驾驶的新视角
  • C++包管理工具:conan2使用教程
  • 在vscode中,Python程序的内置对象、关键字、自定义函数名/类名、字符串进行着色,说明分别是什么颜色?
  • ant+Jmeter+jenkins接口自动化,如何实现把执行失败的接口信息单独发邮件?
  • Jenkins Pipeline 与 Python 脚本之间使用环境变量通信
  • Flutter 百题斩#8 | 说说 State 抽象类持有的成员变量
  • Flutter MobX 响应式原理与实战详解
  • cocos2 本地根据文本内容生成二维码
  • Docker安装Arroyo流处理引擎
  • Deepin Linux如何安装Terminus终端教程
  • RAG入门课程-学习笔记
  • 矩阵题解——螺旋矩阵【LeetCode】
  • Class00.2线性代数
  • rules写成动态
  • 解决npm安装依赖报错ERESOLVE unable to resolve dependency tree
  • excel中vba开发工具
  • C语言基础回顾与Objective-C核心类型详解
  • 15个AI模拟面试平台 和 简历修改 / 真人面试平台
  • 【服务器】服务器选型设计
  • windows 怎么下载yarn安装包并将下载的yarn文件移动到全局目录并添加执行权限?