机器学习复习
机器学习复习重点
第五章
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、神经网络梯度消失的原因及应对策略
一、梯度消失的原因
- 激活函数的梯度饱和特性
- Sigmoid 和 Tanh 的缺陷:当输入绝对值较大时,这两个函数的梯度趋近于 0(如 Sigmoid 在(z>5)或(z<-5)时,梯度(g’(z) \approx 0))。在深层网络中,梯度通过链式法则反向传播时,每经过一层激活函数就会乘以一个接近 0 的梯度,导致梯度逐层衰减,最终趋近于 01。
- 数学本质:反向传播中,梯度计算需乘以激活函数的导数。若导数长期处于低水平,梯度会指数级衰减。例如,假设每层梯度乘以 0.5,10 层后梯度将衰减为初始值的(0.5^{10} \approx 0.1%)。
- 深层网络的链式传播累积效应
- 即使激活函数导数不为 0,深层网络中梯度需经过多层传递,每一层的权重和导数相乘可能导致整体梯度消失。例如,若每层权重矩阵的范数小于 1,多层相乘后梯度会迅速衰减。
二、应对策略
- 替换激活函数为非饱和类型
- ReLU 及其变体:ReLU 在正数区域的梯度恒为 1,避免了梯度饱和问题,显著改善深层网络的梯度回流2。其变体 Leaky ReLU 通过为负数区域提供小梯度(如(\epsilon=0.01)),解决了 “死亡神经元” 问题3。
- GELU/Swish:常用于 Transformer 模型,通过平滑非线性特性平衡表达能力和梯度传递效率4。
- 优化网络结构设计
- 残差连接(Residual Network):通过恒等映射(F(x) + x),使梯度可直接跳过中间层回传,缓解深层网络的梯度消失5。
- 批归一化(Batch Normalization):通过标准化中间层输入,避免激活函数进入饱和区域,同时稳定梯度传播9。具体步骤包括计算批量均值、方差并归一化,再通过(\gamma)和(\beta)调整输出8。
- 改进优化算法
- 自适应学习率方法:如 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网络划分 非最大抑制
网络划分
- 输入图像划分逻辑
- 网格划分方式:将输入图像划分为 (G \times G) 的网格(如 YOLOv1 中 (S=7),即 7×7 网格),每个网格单元负责预测中心落在该单元内的物体。例如,若物体中心坐标落在某个网格中,该网格即负责检测该物体。
- 设计目的:通过网格划分将检测问题转化为网格级别的回归任务,简化模型对物体位置的定位逻辑。
- 网格单元的预测输出
-
每个网格的预测参数
:每个网格单元通过 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)) 的输出张量。
非最大抑制
- NMS 的核心目标
- 消除同一物体的重复边界框预测,保留置信度最高、定位最准确的边界框。
- NMS 的执行步骤
-
步骤 1:筛选置信度阈值:首先丢弃预测概率低于阈值(如 0.6)的边界框。
-
步骤 2:迭代选择与抑制
:
- 对每个类别,选取当前置信度最高的边界框作为基准;
- 计算该基准框与其他同类别框的交并比(IoU),若 IoU ≥ 0.5,则丢弃这些重叠框;
- 重复上述过程,直至所有边界框处理完毕。
- NMS 的数学与可视化说明
-
IoU 计算:通过公式 (IoU(B_p, B_a) = \frac{B_p \cap B_a}{B_p \cup B_a}) 量化边界框重叠度,当 IoU ≥ 0.5 时视为 “重复检测”。
-
示例流程
:
- 初始生成多个边界框,如对 “泰迪熊” 的检测框置信度为 0.9978;
- 选择置信度最高的框,移除所有与它 IoU≥0.5 的同类别框;
- 最终保留唯一的高置信度边界框。
第六章-2
1、RNN如何实现建模标准
文档中提到序列建模需满足四大设计标准:
- 处理可变长度序列:适应不同长度的输入序列(如不同长度的句子)。
- 跟踪长期依赖:捕捉序列中相隔较远的元素间的依赖关系。
- 保持顺序信息:保留序列中元素的时序顺序(如单词顺序)。
- 跨序列共享参数:降低模型复杂度,提高泛化能力。
第七章
1、n-grom,原理,短板、
一、n-gram 模型原理
-
核心定义
-
n-gram 指连续的 n 个词组成的序列,是语言模型中用于建模语言概率分布的基本单元。
-
示例
:
- unigram(一元组):单个词,如 “the”“students”。
- bigram(二元组):两个连续词,如 “the students”“students opened”。
- trigram(三元组):三个连续词,如 “the students opened”。
-
-
概率计算逻辑
- 基于语料库统计 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 模型的核心假设
- 马尔可夫假设
- 假设下一个词仅依赖于前面的 n-1 个词,而非整个历史语境,即: (P(x{(t+1)}|x{(t)},…,x^{(1)}) = P(x{(t+1)}|x{(t)},…,x^{(t-n+2)}))
- 目的:简化计算复杂度,避免因历史过长导致的参数爆炸问题。
三、n-gram 模型的主要短板
-
稀疏性问题
-
问题 1
:若某 n-gram 在语料库中未出现,其概率被判定为 0,导致预测失效。
- 解决方案:平滑(Smoothing),如给所有 n-gram 的计数加一个小常数(如拉普拉斯平滑),避免零概率。
-
问题 2
:若 n-1 gram 未出现,无法计算任何后续词的概率。
- 解决方案:回退(Backoff),即降低 n 的层级,如从 4-gram 回退到 3-gram 或 2-gram。
-
-
存储与计算复杂度问题
- 存储负担:需存储所有出现过的 n-gram 计数,语料库越大,模型存储需求呈指数增长。例如,一个 1.7 million 词的语料库可能需要存储大量 n-gram 统计量。
- 计算效率:当 n 较大时,查询和更新计数的计算成本高,尤其在处理长文本时效率低下。
-
长距离依赖建模不足
- 受限于 n 的大小(通常 n≤5),无法捕捉超过 n-1 个词的长距离语义依赖。例如,无法理解 “the man who…opened their…” 中 “man” 与 “their” 的指代关系。
-
语义泛化能力弱
- 仅基于词频统计,不考虑词义和上下文语义,无法区分多义词的不同含义(如 “bank” 在 “river bank” 和 “bank account” 中的差异)。
四、总结
n-gram 模型通过简单的统计方法实现语言建模,但其核心假设(马尔可夫性)和依赖词频统计的特性,导致其在稀疏性、长距离依赖和语义理解上存在天然缺陷。这些短板推动了后续神经网络语言模型(如 RNN、Transformer)的发展,后者通过分布式表示和注意力机制缓解了上述问题。
2、transformer
一、Transformer 核心公式
- 自注意力机制(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) (对应段落:、)
- 多头注意力(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)) (对应段落:、)
- 前馈网络(Feed Forward Layer) 对注意力输出应用两层线性变换,激活函数为 ReLU:(\text{FFN}(x) = \max(0, xW_1 + b_1)W_2 + b_2) (对应段落:)
- 位置编码(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*}) (对应段落:、)
二、编解码结构
-
编码器(Encoder)
-
核心组件
:由 6 层相同模块堆叠,每层包含:
- 多头自注意力(Multi-Head Self-Attention):每个词关注所有词的上下文。
- 前馈网络(Feed Forward):增强特征表达能力。
- 残差连接与层归一化(Add & Norm):(\text{LayerNorm}(x + \text{Attention}(x)))
-
输入处理:词嵌入 + 位置编码(、)。 (对应段落:、、)
-
-
解码器(Decoder)
-
核心组件
:由 6 层相同模块堆叠,每层包含:
- 掩码多头自注意力(Masked Multi-Head Self-Attention):禁止关注未来词(见掩码机制)。
- 编码器 - 解码器注意力(Encoder-Decoder Attention):解码器关注编码器输出。
- 前馈网络与层归一化:结构同编码器。
-
输出处理:最终通过线性层和 Softmax 生成词概率分布(、)。 (对应段落:、、)
-
三、掩码机制(Masking)
-
掩码自注意力(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) 的掩码矩阵(、)。 (对应段落:、、)
-
-
填充掩码(Padding Mask)
- 目的:处理不同长度序列时,忽略填充符(如 [PAD])的影响。
- 实现方式:将填充位置的注意力分数设为 (-\infty),避免模型关注无意义字符()。
GPT
维度 | GPT-1 | GPT-2 | GPT-3 |
---|---|---|---|
参数规模 | 117M | 1.5B | 175B |
训练数据量 | 800M 词(BooksCorpus) | 40GB(网页文本) | 570GB(多源混合) |
学习模式 | 预训练 + 微调 | 零样本提示 | 少样本 / 上下文学习 |
关键技术 | 基础 Transformer 解码器 | 层归一化位置调整 | 稀疏注意力、提示工程 |
任务适应性 | 需特定任务调整 | 通用提示泛化 | 无需调整即可处理多任务 |
代表性能力 | 文本生成、情感分析 | 长文本连贯性提升 | 推理、代码、跨模态理解 |
第八章
自监督学习的分类和应用
自监督学习(Self-supervised Learning)可分为自关联自监督学习(Auto-associative Self-supervised Learning) 和对比自监督学习(Contrastive Self-supervised Learning) 两类,其应用覆盖自然语言处理(NLP)和计算机视觉(CV)等领域,具体如下:
一、自关联自监督学习(AaSSL)
(一)核心思想
通过训练神经网络重构或重现输入数据,利用数据自身生成监督信号。
(二)应用场景
- 自然语言处理(NLP)
- 语言模型任务:包括中心词预测、邻居词预测、自回归语言建模(如纠正 “Nothing is is impossible” 为 “Nothing is impossible”)、掩码语言建模(预测 [MASK] 位置的词汇)。
- 句子级任务:下一句预测(判断句子是否连续)、句子顺序预测(还原正确语序)、句子排列预测(处理打乱的段落)🔶1-259🔶。
- 其他任务:表情符号预测(根据文本内容生成合适表情)、空缺句子生成(补全文档中缺失的句子)。
- 计算机视觉(CV)
- 图像重建与增强:图像颜色化(将灰度图转为彩色)、超分辨率(提升图像清晰度)、图像修复(填补图像缺失区域)。
- 视觉理解任务:图像拼图(还原打乱的图像块)、上下文预测(根据中心补丁推断周边内容)、几何变换识别(判断图像旋转角度)。
- 自动标签生成:通过聚类为无标签图像生成类别标签。
二、对比自监督学习(CSSL)
(一)核心思想
通过学习 “拉近” 相似样本的特征表示、“推远” 不同样本的特征表示,构建有效的特征空间。
(二)应用场景
- 视觉表示学习:如 SimCLR 框架,通过数据增强(如裁剪、旋转)生成正样本对,学习图像的通用特征表示,提升下游任务(如分类、检测)的性能。
- 自然语言处理(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]。
交互流程
-
初始化:环境采样初始状态 s 0 ∼ p ( s 0 ) s_0 \sim p(s_0) s0∼p(s0)。
-
循环交互
:
- 智能体选择动作 (a_t)。
- 环境采样奖励 s 0 ∼ p ( s 0 ) s_0 \sim p(s_0) s0∼p(s0)。
- 环境采样下一状态 s t + 1 ∼ P ( ⋅ ∣ s t , a t ) s_{t+1} \sim P(\cdot | s_t, a_t) st+1∼P(⋅∣st,at)。
- 智能体接收奖励和新状态。
-
终止条件:当任务成功 / 失败等条件满足时结束。
策略(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[∑t≥0γ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[∑t≥0γ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(θ)≈∑t≥0r(τ)∇θlogπθ(at∣st)。
- 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))。
三、算法流程与关键技术
-
价值函数近似 直接计算所有状态 - 动作对的 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|}))。
-
损失函数与训练
- 目标值:(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))
-
经验回放(Experience Replay)
-
问题:连续样本高度相关,导致训练不稳定。
-
解决方案
:
- 存储 transitions ((s_t, a_t, r_t, s_{t+1})) 到回放缓冲区。
- 随机采样小批量数据训练,降低样本相关性,提高数据效率。
-
-
探索与利用平衡
- ε- 贪婪策略:以概率 (\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 流程
-
输入处理
:
- 将 210×160 像素的游戏画面裁剪、灰度转换为 84×84 图像,堆叠 4 帧作为状态输入。
-
Q-network 推理
:
- 前向传播计算所有动作的 Q 值,选择 Q 值最大的动作(ε- 贪婪策略)。
-
经验存储
:
- 记录每次动作的过渡样本 ((\phi_t, a_t, r_t, \phi_{t+1})) 到回放缓冲区。
-
批量训练
:
- 随机采样样本,计算目标 Q 值并更新网络参数,迭代优化。
四、AlphaGo 中的深度学习整合流程
-
策略网络预训练
:
- 用监督学习从专业棋局中学习落子策略(初始策略网络)。
-
强化学习优化
:
- 通过自我对弈,使用策略梯度更新策略网络,奖励为胜负结果(+1/-1)。
-
价值网络训练
:
- 学习评估棋局状态的价值,作为 Critic 指导策略优化。
-
蒙特卡洛树搜索(MCTS)
:
- 结合策略网络和价值网络,通过树搜索选择最优落子动作。
五、关键公式与标记引用
- 贝尔曼最优方程:(Q^(s, a) = \mathbb{E}{s’ \sim \mathcal{E}}\left[r + \gamma \max{a’} Q^(s’, a’) \mid s, a\right]) (对应段落:)
- 策略梯度估计:(\nabla_\theta J(\theta) \approx \sum_{t \geq 0} r(\tau) \nabla_\theta \log \pi_\theta(a_t | s_t)) (对应段落:)
- 优势函数:(A^\pi(s, a) = Q^\pi(s, a) - V^\pi(s)) (对应段落:)
5、policy gredient目标和定义
一、核心定义
策略梯度是强化学习中直接优化策略参数的方法,通过参数化策略函数 (\pi_\theta(a|s)) 表示智能体在状态 s 下选择动作 a 的概率分布。其核心思想是:通过计算奖励对策略参数的梯度,利用梯度上升法找到使期望奖励最大化的策略参数。
二、数学形式化定义
- 参数化策略族 定义含参数 (\theta) 的策略族 (\Pi = {\pi_\theta, \theta \in \mathbb{R}^m}),其中 (\pi_\theta(a|s)) 表示在状态 s 下选择动作 a 的概率。
- 目标函数(奖励期望) 对于策略 (\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))。
三、关键公式与段落引用
- 原始梯度估计(高方差)(\nabla_\theta J(\theta) \approx \sum_{t \geq 0} r(\tau) \nabla_\theta \log \pi_\theta(a_t|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)) (对应段落:)
- 优势函数与基线的关系(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)总结内容
-
核心思想:最大间隔分类器
- 目标是在特征空间中找到一个超平面,使得其与最近的训练样本(支持向量)之间的间隔最大化,从而提升模型的泛化能力。
- 硬间隔:适用于线性可分数据,要求所有样本严格满足分类约束。
- 软间隔:引入松弛变量 (\xi_i) 和正则化参数 C,允许少量样本分类错误,平衡间隔大小与分类误差。
-
优化问题与对偶解法
- 原问题:最小化 (\frac{1}{2}|w|^2),约束为 (y_i(w^\top x_i + b) \geq 1)。
- 对偶问题:通过拉格朗日乘数法转化为关于拉格朗日乘子 (\alpha_i) 的优化问题,降低计算复杂度,并自然引入核技巧。
- 支持向量判定:仅当 (\alpha_i > 0) 时,样本为支持向量,决定分类超平面。
-
核技巧:处理非线性问题
-
通过非线性映射 (\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)),适用于低维非线性数据(如生物特征)。
-
-
损失函数与优化特性
- 使用铰链损失(Hinge Loss):(\max(0, 1 - y_i f(x_i))),仅惩罚分类错误或边缘内的样本,保证优化问题的凸性,易找到全局最优解。
函数选择动机
-
核函数选择动机
-
数据线性可分性:若数据在原始空间线性可分,选线性核,计算效率高(如文档分类中高维词向量)。
-
非线性复杂度
:若数据非线性关系复杂,选高斯核或多项式核,将数据映射到高维空间。例如:
- 高斯核适用于样本量中等、特征维度较低的场景(如图像识别),可灵活捕捉局部模式。
- 多项式核适用于已知数据服从多项式关系的场景,但计算复杂度随次数 d 升高。
-
计算效率与维度:线性核时间复杂度低,适用于高维数据(如文本);高斯核需调节参数 (\gamma),避免过拟合。
-
-
正则化参数 C 的作用
-
C
控制分类错误与间隔大小的权衡:
- C 小:允许更多分类错误,追求大间隔,泛化能力强,但可能欠拟合。
- C 大:严格约束分类错误,间隔变小,可能过拟合(如 (C \to \infty) 时退化为硬间隔)。
-
-
损失函数(铰链损失)的优势
- 稀疏性:仅支持向量影响模型,减少计算量。
- 凸性:优化问题为凸优化,避免局部最优解,保证算法稳定性。
2、朴素贝叶斯如何训练,如何处理连续特征,假设高斯分布
训练过程
连续特征的处理
3、AdaBoot内容,summary,如何实现动态采样
内容
4、决策树衡量指标,基本原理
一、决策树的基本原理(文件间接体现)
- 作为弱分类器的角色
- 在集成学习中,决策树(尤其是 “决策树桩”,即单层决策树)常作为基学习器。例如,Adaboost 算法中的弱分类器 (h_t(x)) 可由决策树桩实现,其本质是通过单一特征的阈值划分数据(如判断 “特征值是否大于阈值”),输出二分类结果((-1) 或 (+1))。
- 基本逻辑:通过特征分裂将样本空间划分为不同区域,每个区域对应一个预测类别,形成树状结构。
- 构建逻辑(隐含于集成学习流程)
- 决策树通过递归选择最优特征和分裂点,将数据集划分为纯度更高的子节点,直至满足停止条件(如叶子节点样本数小于阈值、纯度达到上限等)。
- 在集成学习中,决策树作为弱分类器时,通常被简化为浅层结构(如树桩),以保证 “弱学习能力”(即分类效果略优于随机猜测),便于后续集成优化。
二、可能的衡量指标(基于集成学习上下文推断)
文件中未直接提及决策树的分裂指标(如信息增益、基尼指数),但结合集成学习中对 “弱分类器” 的要求,可推断决策树在分裂时可能关注以下目标:
- 纯度提升
- 分裂特征的选择需使子节点样本的类别纯度(如同一类别样本占比)高于父节点,从而提升分类准确性。
- 例如,在 Adaboost 中,弱分类器 (h_t(x)) 的目标是在当前样本权重分布下,最小化分类错误率 (\epsilon_t),这等价于寻找使分裂后错误率最低的特征和阈值。
- 错误率(集成学习中的关键指标)
- 在 Adaboost 中,弱分类器的权重 (\alpha_t) 由错误率 (\epsilon_t) 计算((\alpha_t = \frac{1}{2} \ln \frac{1-\epsilon_t}{\epsilon_t})),反映分裂后的分类效果。这表明决策树作为弱分类器时,其分裂质量通过错误率衡量。