深度学习之特征提取
前言
深度学习就是把输入转换成一个高维的向量,之后利用这个向量去完成分类、回归等任务。
深度学习特征工程知识图谱

1. 特征提取的本质
核心目标:将原始数据→高维语义特征向量
监督驱动:标签决定特征提取方向
典型架构:
AlexNet:首个深度CNN突破
VGG:统一卷积核设计
ResNet:残差学习框架
2. 无监督学习三大范式
| 方法 | 原理 | 典型应用 |
|---|---|---|
| 对比学习 | 拉近正样本距离,推远负样本 | SimCLR、MoCo |
| 生成对抗网络 | 生成器-判别器博弈,生成逼真数据 | 图像生成、风格迁移 |
| 自编码器 | 重构输入数据,学习有效特征表示 | MAE、VAE |
这个表格总结了三种主要的自监督学习方法及其关键特征和应用场景。每种方法都利用未标记的数据来训练模型学习有用的特征表示,这些特征表示可以用于多种下游任务,如分类、聚类和生成任务。
-
对比学习:通过正样本对和负样本对的设计,让模型学习区分相似和不相似的样本,从而提取有用的特征。
-
生成对抗网络(GAN):通过生成器和判别器的对抗训练,模型学习生成新的数据,同时学习数据的特征表示。
-
自编码器:通过重构输入数据,模型学习到数据的有效特征表示,这在特征提取和降维中特别有用。
3. 关键技术创新
CycleGAN:跨域转换的双向一致性约束
MAE:掩码自编码实现高效预训练
特征解耦:分离内容与风格特征
语音:内容vs说话人特征
图像:物体vs纹理特征
4. 自监督学习优势
数据效率:利用海量未标注数据
迁移能力:预训练模型适配下游任务
典型流程:
无标注预训练 → 少量标注微调 → 目标任务
无监督学习
对比学习

SimSiam(Simple Framework for Contrastive Learning of Visual Representations)是一种用于无监督学习的对比学习方法,旨在通过对比学习框架学习图像的特征表示。SimSiam 的核心思想是通过对比正样本对(即同一个图像的不同增强版本)和负样本(即不同图像的增强版本)来学习特征表示,从而使得模型能够捕捉到图像的内在结构。
SimSiam 的核心思想
SimSiam 的目标是学习图像的特征表示,使得同一个图像的不同增强版本在特征空间中更接近,而不同图像的增强版本在特征空间中更远离。这种方法不需要标签信息,因此属于无监督学习。
SimSiam 的关键组件
1. 数据增强
SimSiam 使用数据增强技术生成正样本对。具体来说,对于每个输入图像,SimSiam 会生成两个不同的增强版本,这两个版本被称为正样本对。常见的数据增强技术包括随机裁剪、颜色失真、高斯模糊等。
2. 对比学习框架
SimSiam 通过对比学习框架来训练模型。具体来说,模型的目标是最小化正样本对之间的距离,同时最大化负样本之间的距离。这可以通过对比损失函数(如 InfoNCE 损失)来实现。
3. 无监督学习
SimSiam 是一种无监督学习方法,不需要标签信息。它通过对比学习框架学习图像的特征表示,使得模型能够捕捉到图像的内在结构。
SimSiam 的训练过程
1. 数据准备
对于每个输入图像,生成两个不同的增强版本,形成正样本对。
2. 特征提取
使用一个编码器(通常是一个卷积神经网络,如 ResNet)提取输入图像的特征表示。
3. 对比学习
通过对比损失函数(如 InfoNCE 损失)来训练模型。具体来说:
-
正样本对:同一个图像的不同增强版本,目标是最小化它们之间的距离。
-
负样本:不同图像的增强版本,目标是最大化它们之间的距离。
4. 无监督训练
SimSiam 不需要标签信息,因此属于无监督学习。通过对比学习框架,模型可以学习到图像的特征表示,使得同一个图像的不同增强版本在特征空间中更接近,而不同图像的增强版本在特征空间中更远离。
SimSiam 的优势
-
简单高效:SimSiam 的框架相对简单,易于实现和训练。
-
无监督学习:不需要标签信息,适用于大规模无标签数据集。
-
特征表示质量高:通过对比学习,SimSiam 可以学习到高质量的特征表示,适用于多种下游任务(如分类、聚类等)。
SimSiam 的应用场景
SimSiam 主要用于无监督学习中的特征提取。通过学习图像的特征表示,SimSiam 可以应用于以下场景:
-
图像分类:通过微调预训练的模型,可以提高分类任务的性能。
-
聚类:学习到的特征表示可以用于聚类任务,将相似的图像分到同一类别。
-
迁移学习:学习到的特征表示可以迁移到其他任务,提高模型的泛化能力。
总结
SimSiam 是一种无监督学习的对比学习方法,通过对比正样本对和负样本来学习图像的特征表示。SimSiam 的核心思想是通过数据增强生成正样本对,通过对比学习框架训练模型,使得同一个图像的不同增强版本在特征空间中更接近,而不同图像的增强版本在特征空间中更远离。SimSiam 的优势在于其简单高效,适用于大规模无标签数据集,可以学习到高质量的特征表示,适用于多种下游任务。
生成对抗网络
GAN 总体逻辑
生成对抗网络(GAN,Generative Adversarial Networks)是一种深度学习模型,它包含两个主要部分:生成器(Generator)和判别器(Discriminator)。GAN 的目的是通过生成器生成逼真的数据,同时判别器尝试区分生成的数据和真实数据。两者在训练过程中相互竞争,从而提高生成数据的质量。
GAN 的工作原理
-
生成器:接收随机噪声作为输入,尝试生成与真实数据分布相似的数据。

-
判别器:接收生成的数据和真实数据,尝试区分两者。

-
对抗训练:生成器和判别器通过对抗训练相互竞争,生成器学习生成更逼真的数据,判别器学习更准确地区分真假数据。

GAN 的优势
-
数据生成:GAN 可以生成新的数据实例,如图像、音频等,这在数据增强、数据合成等方面非常有用。
-
风格迁移:GAN 可以用于风格迁移任务,如将一种艺术风格应用到另一幅图像上。
-
多样性:GAN 能够生成多样化的数据,增加数据集的多样性。
GAN 的缺点
数据非配对问题
在传统的 GAN 中,生成器的目标是生成逼真的数据,而判别器的目标是区分生成的数据和真实数据。然而,GAN 通常需要成对的训练数据,即每个生成的图像都有一个对应的真图像。在实际应用中,成对的训练数据往往难以获取,这限制了 GAN 的应用范围。
信息丢失问题
生成器在生成数据时,可能会丢失一些重要的信息。例如,生成器可能只关注某些特征,而忽略其他特征,导致生成的数据不完整或不准确。
作弊问题
生成器可能会找到一些“捷径”来欺骗判别器,而不是真正学习数据的分布。例如,生成器可能通过添加噪声或模糊来生成图像,而不是生成高质量的数据。这种现象被称为“作弊”。
Cycle-GAN
循环一致性(Cycle Consistency)

核心要求:
- 翻译要地道(对抗损失)
- 来回翻译保持原意(循环一致性)
CycleGAN 引入了循环一致性约束,确保生成器的转换是可逆的。具体来说:
-
如果将一个域 A 的图像
x转换为域 B 的图像y,然后再将y转换回域 A 的图像x',那么x'应该尽可能接近原始图像x。 -
同理,如果将一个域 B 的图像
y转换为域 A 的图像x,然后再将x转换回域 B 的图像y',那么y'应该尽可能接近原始图像y。
循环一致性约束通过以下方式解决 GAN 的问题:
-
解决数据非配对问题:CycleGAN 不需要成对的训练数据,因为循环一致性约束确保了生成器的转换是可逆的。
-
减少信息丢失:循环一致性约束确保生成器在转换过程中保留了重要的信息,因为生成器必须能够将转换后的图像还原回原始图像。
-
防止作弊:循环一致性约束迫使生成器生成高质量的数据,而不是通过“作弊”来欺骗判别器。
双向转换能力

CycleGAN 引入了两个生成器:
-
G:将域 A 的图像转换为域 B 的图像。 -
F:将域 B 的图像转换为域 A 的图像。
这种双向转换能力不仅提高了生成数据的质量,还确保了生成器的转换是可逆的。通过双向转换,生成器必须学习到两个域之间的双向映射关系,从而生成更高质量的数据。
图像转换的具象例子
案例:苹果变橘子
| 原始数据 | 转换过程 | 结果验证 |
|---|---|---|
| 苹果照片→ | 生成器G:苹果→橘子 | 橘子要逼真(骗过判别器) |
| 生成的橘子→ | 生成器F:橘子→苹果 | 变回的苹果≈原苹果 |
关键验证:
- 假橘子和真实橘子混在一起难以区分
- 苹果→橘子→苹果 几乎不变形
双生成器的必要性
- 生成器G专注学习"如何变形成目标风格"
- 生成器F专注学习"如何恢复原始特征"
- 互相监督,避免乱改内容
为什么 CycleGAN 有效?
-
无需成对数据:CycleGAN 不需要成对的训练数据,这在实际应用中非常有用,因为成对的训练数据往往难以获取。
-
循环一致性:通过循环一致性约束,确保生成器的转换是可逆的,从而减少信息丢失,防止作弊。
-
双向转换能力:通过引入两个生成器,确保生成器学习到两个域之间的双向映射关系,从而生成更高质量的数据。
生成式自监督学习
生成式自监督学习提供了一种框架,特征分离是目标,而自编码器是实现这些目标的常见工具
核心思想
生成式自监督学习的核心思想是让模型自己生成训练数据的一部分,然后使用这些生成的数据来训练模型。这种方法通常涉及到重构任务,即模型需要学习如何从输入数据中提取特征,以便能够重建或生成原始输入。
关键组件
-
编码器(Encoder):将输入数据编码成一种紧凑的表示形式。

-
解码器(Decoder):从编码表示中重建原始数据。
-
损失函数:通常涉及到重构误差,即输入数据和重建数据之间的差异。
常见方法
自编码器(Autoencoder):一种简单的生成式自监督学习方法,其中模型被训练来最小化输入和输出之间的差异。
变分自编码器(Variational Autoencoder, VAE):通过引入随机性来学习更丰富的特征表示。
对比学习(Contrastive Learning):通过对比相似和不相似的样本来学习特征表示。
生成对抗网络(GAN):虽然GAN 主要用于生成任务,但它也可以用于自监督学习,通过生成器和判别器的对抗训练来学习特征。
优势
-
无需标签:不需要外部标签信息,适用于标签获取成本高或不可行的情况。
-
特征学习:能够学习到数据的有用特征表示,这些特征可以迁移到其他任务,如分类、检测等。
-
灵活性:可以应用于各种类型的数据,如图像、文本、音频等。
挑战
-
评估困难:由于缺乏标签,评估生成式自监督学习的性能可能更加困难,通常需要设计特定的评估指标或依赖于定性任务的表现。
-
训练稳定性:某些生成式自监督模型可能难以训练,特别是当涉及到复杂的数据分布时。
总结
生成式自监督学习是一种强大的自监督学习方法,它通过让模型自己生成训练数据的一部分来学习数据的特征表示。这种方法在处理无标签数据时特别有用,可以学习到的特征表示可以迁移到多种下游任务。
特征分离

相关文章:
深度学习之特征提取
前言 深度学习就是把输入转换成一个高维的向量,之后利用这个向量去完成分类、回归等任务。 深度学习特征工程知识图谱 1. 特征提取的本质 核心目标:将原始数据→高维语义特征向量 监督驱动:标签决定特征提取方向 典型架构: …...
Gurobi 并行计算的一些问题
最近尝试用 gurobi 进行并行计算,即同时用多个 cpu 核计算 gurobi 的 model,但是发现了不少问题。总体来看,gurobi 对并行计算的支持并不是那么好。 gurobi 官方对于并行计算的使用在这个网址,并有下面的大致代码: i…...
堆、栈、最小堆
堆是什么 结构属性 堆是一棵完全二叉树,即除最后一层外,其他层节点均填满,且最后一层节点从左到右连续分布。 排序属性: 根据类型不同,堆分为: 最大堆(Max-Heap) :每…...
基于 Spring AI 的 HIS 系统智能化改造
【Spring AI 的背景与现状】 Spring AI 是 Spring 生态里整的一个新活儿,专门给开发者提供搞 AI 驱动的应用的工具和框架。虽然 Spring AI 已经鼓捣了挺长时间,但截至现在(2025年2月),它还没正式发布。不过࿰…...
React进阶之前端业务Hooks库(五)
前端业务Hooks库 Hooks原理useStateuseEffect上述问题useState,useEffect 复用的能力练习:怎样实现一套React过程中的hooks状态 & 副作用Hooks原理 不能在循环中、条件判断、子函数中调用,只能在函数最外层去调用useEffect 中,deps 为空,执行一次useState 使用: imp…...
常见锁类型介绍
下面结合代码详细介绍 Mutex、RW Lock、Futex、自旋锁、信号量、条件变量 和 synchronized,并分析它们的适用场景、特点以及为什么这些锁适用于特定场景。我们将从锁的实现机制和性能特点出发,解释其适用性。 1. Mutex(互斥锁) 代…...
Java中,Scanner和System.out超时的解决方法及原理
ACM 模式的原理 在输入输出的时候,会先将输入输出的东西放在一个文件里,这个文件也叫做 IO 设备 为什么 Scanner 会慢 new 一个 Scanner ,在 Scanner 里面调用 next 的时候,程序会直接访问 IO 设备。在调用一个 next 的时候&…...
一种数据高效具身操作的原子技能库构建方法
25年1月来自京东、中科大、深圳大学、海尔集团、地平线机器人和睿尔曼智能科技的论文“An Atomic Skill Library Construction Method for Data-Efficient Embodied Manipulation”。 具身操控是具身人工智能领域的一项基本能力。尽管目前的具身操控模型在特定场景下表现出一定…...
云创智城YunCharge 新能源二轮、四轮充电解决方案(云快充、万马爱充、中电联、OCPP1.6J等多个私有单车、汽车充电协议)之新能源充电行业系统说明书
云创智城YunCharge 新能源充电行业系统说明书 ⚡官方文档 ⚡官网地址 1. 引言 随着全球环境保护和能源危机的加剧,新能源汽车行业得到了快速发展,充电基础设施建设也随之蓬勃发展。新能源充电行业系统旨在提供高效、便捷的充电服务,满足电…...
JVM垃圾回收器深度底层原理分析与知识体系构建
一、垃圾回收的基本步骤 标记(Marking) 从GC Roots(如虚拟机栈、方法区静态变量、本地方法栈等)出发,遍历对象引用链,标记所有可达对象为存活对象,未被标记的则视为垃圾。此阶段需暂停用户线程&…...
30.[前端开发-JavaScript基础]Day07-数组Array-高阶函数-日期Date-DOM
JavaScript的DOM操作 (一) 1 什么是DOM? 认识DOM和BOM 深入理解DOM 2 认识DOM Tree DOM Tree的理解 3 DOM的整体结构 DOM的学习顺序 DOM的继承关系图 document对象 4 节点、元素导航 节点(Node)之间的导航&…...
IP、网关、子网掩码、DNS 之间的关系详解
IP、网关、子网掩码、DNS 之间的关系详解 在计算机网络中,IP、网关、子网掩码和 DNS 是几个关键概念,它们协同工作,共同保障网络通信的顺畅。本文将详细探讨它们之间的关系。 一、IP 地址 IP 地址是网络中设备的唯一标识,如同现…...
【Day50 LeetCode】图论问题 Ⅷ
一、图论问题 Ⅷ 1、dijkstra算法 堆优化 采用堆来优化,适合节点多的稀疏图。代码如下: # include<iostream> # include<vector> # include<list> # include<queue> # include<climits>using namespace std;class myco…...
结构体介绍及内存大小分配问题
结构体 一.结构体的介绍1.1结构体的声明1.2匿名结构体1.3结构的自引用1.4使用 typedef 简化结构体类型名 二.结构体内存对齐2.1内存对齐规则2.2结构体内存对齐原因2.3修改默认对齐数 在 C 语言中,结构体(struct)是一种用户自定义的数据类型&a…...
halcon 条形码、二维码识别、opencv识别
一、条形码 函数介绍 create_bar_code_model * 1.创建条码读取器的模板 * 参数一:通用参数的名称,针对条形码模型进行调整。默认值为空 * 参数二:针对条形码模型进行调整 * 参数三:条形码模型的句柄。 create_bar_code_model (…...
Vue框架的使用 搭建打包 Vue的安全问题(Xss,源码泄露)
前言 什么是Vue? Vue是轻量级的js框架 可以帮助我们一键构造网站,打包app程序等 Vue的基本使用 1、构造框架并启用 新建一个 目录 使用终端切换到当前的目录 创建vue项目 第一个弹出使用语法我们选择是 剩下的全选择否 发现创建好了 接着进行…...
Java+SpringBoot+Vue+数据可视化的音乐推荐与可视化平台(程序+论文+讲解+安装+调试+售后)
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望帮助更多的人。 系统介绍 在互联网技术以日新月异之势迅猛发展的浪潮下,5G 通信技术的普及、云计算能力…...
day2 - SpringBoot框架开发技术
主要内容 1. SpringBoot简介 2. 构建springboot工程 3. springboot接口返回json 4. springboot热部署 5. springboot资源属性配置 6. springboot整合模板引擎 7. springboot异常处理 8. springboot整合MyBatis 9. springboot整合redis 10. springboot整合定时任务 11. springbo…...
Flash-03
1-问题:Flash软件画两个图形,若有部分重合则变为一个整体 解决方法1:两个图形分属于不同的图层 解决方法2:将每个图形都转化为【元件】 问题2:元件是什么? 在 Adobe Flash(现在称为 Adobe Anim…...
新建菜单项的创建之CmpGetValueListFromCache函数分析
第一部分: PCELL_DATA CmpGetValueListFromCache( IN PHHIVE Hive, IN PCACHED_CHILD_LIST ChildList, OUT BOOLEAN *IndexCached, OUT PHCELL_INDEX ValueListToRelease ) 0: kd> dv KeyControlBlock 0xe1…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...


