对抗样本(相关知识整理)

最近在学习接触一些对抗样本的相关知识、论文,整理分享如下。
(未完待续)

1.什么是对抗样本:

在原有真实样本的基础上稍加处理,使原有分类器对其真实类别无法判别;
(比如带了一个面具之后你不认识我了,或者说是批了一个羊皮,你就识别不出来我是一个人了。)
在这里插入图片描述

2.对抗样本有什么用:

对于人脸识别,我带上一个特制眼镜就识别不出来我是谁了;
对于安保摄像识别人的系统,我穿了一个特制衬衫,摄像头就识别不出来我是一个人了。
路标指示牌上我贴了一个贴纸之后,自动驾驶就识别指示牌识别错误了。

3.如何生成对抗样本:

(注意,模型对于图像彩色、灰度、尺寸、压缩、模糊等是具有鲁棒性的)
基本原理就是对于原样本像素值的一个扰动。
在这里插入图片描述
1)测试集角度上样本处理

1、基于像素值的变化

1)FGSM(Fast Gradient Sign Method):

扰动值:设置为模型损失梯度的sign函数,

在经典的FGSM算法中,根据相应的代价梯度方向(符号)对所有的输入像素进行相同程度的正负变化;(我们发现仅仅利用梯度最低和最高的部分像素值同样可以产生有效的对抗样本)

2)DeepFool
扰动处理,直到分类错误(达到目的),停止扰动(计算了到达决策边界的xi的扰动向量,并更新

<think>嗯,用户问的是小样本学习是否需要预训练,以及不需要预训练的实现方式和理论依据。首先,我需要回顾一下小样本学习的定义和常见方法。小样本学习(Few-Shot Learning)旨在通过极少量标注数据快速适应新任务,这在数据稀缺的场景下非常重要。 用户特别提到“不需要预训练”的情况,所以我得先区分哪些方法依赖预训练模型,哪些不依赖。传统的小样本学习方法比如基于度量学习、数据增强、元学习(Meta-Learning)可能不需要预训练,或者至少不依赖于大规模预训练模型。例如,元学习中的MAML(Model-Agnostic Meta-Learning)通过训练模型在多个任务上快速适应新任务,而无需预训练。这时候的理论依据可能是元学习在任务分布上的优化,让模型具备快速泛化的能力。 另外,基于度量学习的方法,比如Prototypical Networks,通过将样本映射到嵌入空间,计算类别原型进行分类。这种方法通常从头训练,不需要预训练,其理论依据是相似性度量和嵌入空间的有效构建。 还有基于数据增强的方法,比如通过生成对抗网络(GAN)生成更多样本,或者使用传统的图像变换来扩充数据,这样即使没有预训练,也能提升模型在小样本情况下的表现。理论依据可能在于数据分布的假设,通过增强数据来覆盖更多的变化,减少过拟合。 不过,用户提供的引用中有提到预训练的特点,比如引用[4]提到预训练通常是无监督的,使用Transformer架构,这可能与小样本学习结合的情况相关。但用户的问题是关于不需要预训练的方法,所以需要排除这些部分,专注于传统方法。 另外,引用[2]提到小样本学习和零样本学习的结合,以及弱监督学习的发展方向,这可能涉及到不需要预训练的多任务学习或迁移学习。例如,零-小样本学习可能利用其他形式的监督信息,如属性或语义描述,而不是依赖预训练模型。 然后,需要整理这些方法的实现方式和理论依据,确保每个点都有文献支持。例如,元学习的理论依据是优化模型在任务分布上的初始参数,使其能够通过少量梯度步骤适应新任务;度量学习则是基于同类样本在嵌入空间中更接近的假设。 可能还需要考虑这些方法的优缺点,比如元学习需要大量的训练任务,而数据增强可能受限于生成样本的质量。同时,实验对比,如引用[3]提到小样本微调优于从零训练,但用户的问题是不需要预训练的情况,所以需要强调那些不依赖预训练的方法的有效性。 最后,确保回答结构清晰,分点说明方法、实现和理论依据,并引用提供的参考文献来支持观点。例如,在元学习部分引用[1]和[2],在度量学习部分引用[5]中的方法,如DeIL可能涉及不同的学习策略。</think>### 小样本学习不需要预训练的实现方式及理论依据 小样本学习(Few-Shot Learning)的目标是通过少量标注数据快速适应新任务,其实现方式**不一定需要预训练**。以下是无需预训练的典型方法及其理论依据: --- #### 一、基于元学习(Meta-Learning)的方法 **实现方式**: 元学习通过模拟多任务学习场景,训练模型在多个任务上快速泛化。例如,模型无关元学习(MAML)通过优化模型参数的初始值,使得其能通过少量梯度更新适应新任务。 **代码示例**: ```python # MAML 的简化实现(基于 PyTorch) def maml_update(model, loss_fn, tasks, inner_lr, outer_lr): for task in tasks: # 内循环:任务内快速适应 adapted_model = copy.deepcopy(model) loss = loss_fn(adapted_model(task.support_data)) gradients = torch.autograd.grad(loss, adapted_model.parameters()) # 更新模型参数 for param, grad in zip(adapted_model.parameters(), gradients): param = param - inner_lr * grad # 外循环:优化初始参数 outer_loss = loss_fn(adapted_model(task.query_data)) outer_loss.backward() optimizer.step() ``` **理论依据**: 元学习的核心是“学会学习”,即通过任务分布的统计规律优化模型初始参数,使其具备对新任务的快速适应能力[^1][^2]。 --- #### 二、基于度量学习(Metric Learning)的方法 **实现方式**: 通过构建样本间的相似性度量,直接在小样本场景中分类。例如,原型网络(Prototypical Networks)为每个类别计算原型(类中心),通过距离度量进行分类。 **数学表达**: $$ c_k = \frac{1}{|S_k|} \sum_{(x_i, y_i) \in S_k} f_\theta(x_i) $$ 其中 $S_k$ 是支持集中第 $k$ 类的样本,$f_\theta$ 是嵌入函数。新样本的预测基于其与各类原型的距离。 **理论依据**: 假设同类样本在嵌入空间中聚集,跨类样本距离较远。这种方法无需预训练,直接优化嵌入函数[^5]。 --- #### 三、基于数据增强的方法 **实现方式**: 通过生成新样本或变换现有样本扩展训练数据。例如,使用图像旋转、裁剪或生成对抗网络(GAN)生成合成数据。 **理论依据**: 数据增强通过引入先验知识(如图像平移不变性)扩充数据分布,缓解过拟合问题。例如,通过几何变换增强图像数据,可提升模型对局部变化的鲁棒性[^2][^3]。 --- #### 四、基于贝叶斯推断的方法 **实现方式**: 利用贝叶斯框架建模参数的不确定性。例如,高斯过程(Gaussian Process)或概率图模型,通过少量样本更新先验分布。 **数学表达**: $$ P(\theta|D) \propto P(D|\theta)P(\theta) $$ 其中 $D$ 是小样本数据,$\theta$ 是模型参数。 **理论依据**: 贝叶斯方法通过先验分布引入领域知识,结合小样本数据更新后验分布,降低对预训练的依赖[^2]。 --- ### 理论总结 无需预训练的小样本学习方法依赖于以下核心思想: 1. **任务分布的归纳偏置**:通过元学习或贝叶斯方法,模型从任务分布中学习通用优化策略。 2. **先验知识注入**:数据增强或度量学习显式引入领域知识(如数据变换规则或相似性度量)。 3. **嵌入空间优化**:直接训练模型将样本映射到可分性强的低维空间,而非依赖预训练特征[^5]。 ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值