【深度学习基础篇08】深度学习与特征:从编码压缩到高效提取
深度学习的核心,是把原始数据编码、压缩、提炼成高维特征向量,再用这些特征完成分类、生成、检测等任务。本文从有监督、无监督、自监督三大范式出发,讲解模型如何自动学习有效特征,并详细介绍 GAN、扩散模型、CycleGAN、对比学习、自编码器等经典特征学习方法,以及它们在食物分类、图像转换、风格迁移等场景的实际应用,最终带你理解:什么是好特征,以及如何让模型学到好特征。
文章目录
深度学习,本质上就是 把我们的输入转换成一个高维向量。你可以把它理解成: 编码、压缩、提炼信息。先把数据变成“好用的特征”,再用这个特征去做分类、回归、检测、生成等各种任务。我们今天研究的目标只有一个:
如何让模型更好地提取特征?
1 有监督学习:标签决定特征方向
有监督学习里,模型朝哪个方向压缩特征,完全由你的标签决定。
- 你告诉模型:这张图是“苹果”,那张是“香蕉”。
- 模型就会自动学习:
哪些像素、边缘、纹理、颜色、形状,能把两类分开。 - 最终学到的特征,天生就有利于分类/识别。
1.1.1 有监督学习的特点
- 优点:任务指向性极强,分类、检测效果好。
- 缺点:极度依赖标注数据,现实中标注又贵又慢。
1.1.2 应用示例
- 食物分类(上一篇项目)
给图片+食物标签 → 模型学会食物特征 → 识别这是汉堡还是面条。 - 猫狗分类
输入图片+标签 → 模型提取耳朵、脸型、纹理特征。 - 人脸识别
人脸图+身份标签 → 模型提取五官、轮廓特征。
2 无监督学习:没有标签,也能学特征
2.1 为什么要无监督学习?
- 现实世界里,99% 的数据都没有标签。
- 人工标注成本高、领域多、标不完。
- 我们希望:只用原始数据,就能学到通用、鲁棒的特征。
2.2 传统机器学习的无监督方法
- PCA(主成分分析)
把高维数据降维,保留最有用的信息方向。 - 聚类(K-Means 等)
把“长得像”的数据聚在一起。
这些都是在没有标签的情况下,自动找数据规律。
3 深度学习中的无监督学习
3.1 生成对抗网络 GAN
3.1.1 核心思想
- 生成器 G:编造数据,努力“骗过”判别器。
- 判别器 D:努力区分“真数据”和“假数据”。
- 两者互相对抗、一起变强。
模型要能生成逼真图片,必须先理解数据的特征结构。
3.1.2 应用示例
- 人脸生成:生成不存在的明星脸、证件照。
- 动漫头像生成:输入文字,自动生成二次元头像。
- 图像超分:把模糊图片变清晰(GAN 提取细节特征)。
- 食物图像增强:把昏暗的菜品图变高清、更有食欲。
现在 GAN 已经慢慢被扩散模型取代,但思想依然重要。
3.2 扩散模型 Diffusion Model
3.2.1 核心思想
- 一步步给图片加噪声,直到变成纯噪声。
- 再让模型学习一步步去掉噪声,还原原图。
- 模型学会了数据分布,也就学会了最本质的特征。
3.2.2 应用示例
- AI 画图:Midjourney、Stable Diffusion。
- 食物图片生成:输入“一碗牛肉面”,直接生成菜品图。
- 图像修复:把破损、遮挡的图片补全。
- 医学图像增强:CT、X光 降噪、补全。
3.3 CycleGAN 无配对图像转换
![![[image-201.png]]](https://i-blog.csdnimg.cn/direct/5a0d6b5f31264941ba86af5a31a1e821.png)
CycleGAN 是深度学习里做 “特征迁移” 最经典、最实用的模型之一,专门解决:
两个不同领域的图像互相转换,但没有成对数据的问题。
3.3.1 CycleGAN 是什么?
CycleGAN = Cycle(循环) + GAN(生成对抗网络)
它的核心能力:
不需要一对一对的数据,就能把一类图转换成另一类图。
比如:
- 马 ↔ 斑马
- 照片 ↔ 油画
- 实拍食物 ↔ 动漫食物
- 白天 ↔ 夜晚
传统 GAN 必须要: - 马图 → 对应的斑马图(成对)
CycleGAN 只需要: - 一堆马图
- 一堆斑马图
不需要一一对应,就能训练!
这就是它为什么工业界、项目里都特别常用。
3.3.2 CycleGAN 的核心结构
CycleGAN 一共有 4 个核心模块:
- G_XY:把 X 域 → Y 域
例:马 → 斑马 - G_YX:把 Y 域 → X 域
例:斑马 → 马 - D_Y:判别器,判断是不是真的 Y 域图片
- D_X:判别器,判断是不是真的 X 域图片
3.3.3 CycleGAN 最关键:循环一致性(Cycle Consistency)
这是 CycleGAN 的灵魂。
思想非常简单:
你把马变成斑马,再把这只斑马变回来,必须还是原来那匹马。
流程:
- 输入一张马图 x
- G_XY 转成斑马:G_XY (x)
- G_YX 再转回马:G_YX (G_XY (x))
- 要求:转回的图 ≈ 原始图 x
公式:
G_YX (G_XY (x)) ≈ x
G_XY (G_YX (y)) ≈ y
为什么要这么做?
- 强制模型只改风格、纹理、颜色
- 不能乱改形状、姿态、结构
- 保证转换是有意义、可还原的特征迁移
![![[image-199.png]]](https://i-blog.csdnimg.cn/direct/bede26cda0e74743a64ed8cc75a081d8.png)
3.3.4 应用示例
- 风格迁移:把照片变成梵高、毕加索画风。
- 食物风格转换:把实拍菜品转换成“动漫美食风”。
- 图像去雾/去雨:把恶劣天气图转换成清晰图。
- 美妆迁移:把一个人的妆容换到另一个人脸上。
4 自监督学习
自监督学习 = 自己给自己造标签,用无标签数据做监督学习。
4.1 对比学习 Contrastive Learning(重点)
4.1.1 核心思想
- 对同一张图片做数据增广(旋转、裁剪、翻转、变形)。
- 让模型认为:
- 同一张图的不同增广版本:要靠得很近
- 不同图片:要离得很远
也就是:
亲近自己,远离别人。
这样学到的特征:
- 鲁棒(不怕旋转、变形、光照变化)
- 通用(可以迁移到很多任务)
- 区分性强(同类近、异类远)
4.1.2 应用示例
- 海量图片预训练:先在几百万无标签图片上预训练。
- 小样本分类:像你的食物分类,样本少,用对比学习预训练后精度暴涨。
- 检索任务:以图搜图,输入一张食物,找出相似菜品。
- 人脸识别:让同一个人的不同姿态、角度、表情特征保持一致。
4.2 生成式自监督学习
![![[image-197.png]]](https://i-blog.csdnimg.cn/direct/392acb4c6cf3411599e18084789ad890.png)
4.2.1 核心思想
给模型“残缺/变化后的数据”,让它还原出原始数据。
要还原成功,模型必须理解数据的结构和特征。![![[image-198.png]]](https://i-blog.csdnimg.cn/direct/2ecb0a9664374fbfa530d78ff874de7e.png)
4.2.2 常见形式
- 灰度图上色:输入黑白图,预测彩色图。
- 图像补全:遮住一块,让模型补出来。
- 文字掩码:遮住一段话里的字,让模型预测(BERT 思路)。
- 视频帧排序:打乱帧顺序,让模型恢复。
4.2.3 应用示例
- 老照片修复、上色
- 食物图片去雾、补全
- 文本理解、情感分析
- 语音识别、语音增强
5 无监督学习完了之后能干嘛?
无监督/自监督训练完,我们会得到一个很强的 Encoder(编码器)。
流程:
- 用大量无标签数据做无监督/自监督训练。
- 得到一个超强特征提取器。
- 在后面加一个简单分类头(全连接层)。
- 用少量标注数据微调。
一句话:
无监督用来做预训练,有监督用来做微调。![![[image-196.png]]](https://i-blog.csdnimg.cn/direct/5f942380b21a4581820b76393fb64b8c.png)
这就是现在所有大模型的标准路线:
- CV:SimCLR、MoCo、MAE
- NLP:BERT、GPT
都是先无监督预训练,再有监督微调。
6 自编码器的特征(经典结构)
自编码器(AutoEncoder)是理解“特征压缩”最简单的模型。
结构:
- Encoder 编码器:把输入 x 压缩成一个向量 z(这就是特征)。
- Decoder 解码器:从 z 尽量还原回 x。
损失函数:
让输入 ≈ 输出
不需要任何标签。
6.1.1 自编码器学到了什么?
- 丢掉噪声
- 保留最核心、最能代表数据的结构
- 中间向量 z,就是最精炼的特征
6.1.2 应用示例
- 数据降维、可视化
- 图像去噪:把有噪声的食物图变干净
- 异常检测:识别不正常的图片、故障检测
- 预训练特征提取:先自监督训练,再做分类
7 特征分离:让特征更好用
我们希望模型学到的特征满足:
- 可区分:同类近,异类远
- 解耦:颜色、形状、姿态、类别互不干扰
- 鲁棒:旋转、光照、噪声不影响
- 通用:能在多个任务上复用
这就叫 特征分离 / 特征解耦(Disentangled Representation)。
示例:人脸特征解耦
- 一个维度管姿态
- 一个维度管表情
- 一个维度管年龄
- 一个维度管身份
特征越“干净、解耦、独立”,
下游任务(分类、检索、生成)效果就越强。
更多推荐


所有评论(0)