无监督学习中的两个非概率模型:稀疏编码与自编码器

简介: 「无监督学习」(Unsupervised Learning)现在已经成为深度学习领域的热点。和「有监督学习」相比,这种方法的最大优势就在于其无须给系统进行明确的标注(label)也能够进行学习。最近,在德国的图宾根,机器学习夏训营(Machine Learning Summer School)正在如火如荼地进行,其中来自 CMU 的 Ruslan Salakhutdinov 教授就带来了很多关于「无监督学习」的精彩内容。今天机器之心给大家分享的正是其课件中有关「无监督学习中的非概率模型」的相关内容,主要介绍了稀疏编码(Sparse Coding)和自编码器(Autoencoder),这两种结构

微信图片_20211129092350.jpg

一、稀疏编码(Sparse Coding)


1. 稀疏编码的概念


稀疏编码最早由 Olshausen 和 Field 于 1996 年提出,用于解释大脑中的初期视觉处理(比如边缘检测)。


目标:给定一组输入数据向量 { x1,x2,...,xN },去学习一组基字典(dictionary of bases):


微信图片_20211129092355.jpg


满足:


微信图片_20211129092357.jpg


其中 ank 的值大部分都为 0,所以称为「稀疏」。每一个数据向量都由稀疏线性权值与基的组合形式来表达。


2. 稀疏编码的训练


微信图片_20211129092404.jpg


为输入图像片段;


微信图片_20211129092407.jpg


为要学习的基字典(dictionary of bases)。


微信图片_20211129092410.jpg


这个表达式的第一项为重构误差项;第二项为稀疏惩罚项。


交替性优化:


1. 固定基字典,求解激活值 a(这是一个标准的 Lasso 问题);

2. 固定激活值 a,优化基字典(凸二次规划问题——convex QP problem)。

3. 稀疏编码的测试过程


  • 输入为一个新图像片段 x* , 和 K 个可学习的基;

  • 输出为一个图像片段 x* 的稀疏表达 a(sparse representation)。


微信图片_20211129092414.jpg


微信图片_20211129092419.jpg


[0, 0, ..., 0.8, ..., 0.3 ..., 0.5, ...] 为系数矩阵,也叫做特征表示(feature representation)。

下图为应用稀疏编码进行图像分类的相关实验结果,该实验是在 Caltech101 物体类别数据集中完成的,并且用经典的 SVM 作为分类算法。


微信图片_20211129092425.jpg


4. 稀疏编码的相关解释


微信图片_20211129092429.jpg


  • a 是稀疏,且过完备(over-complete)的表征;

  • 编码函数 a = f(x) 是 x 的隐函数和非线性函数;

  • 而重构(解码)函数 x' = g(a) 是线性且显性的。


二、自编码器(Autoencoder)


1. 自编码器结构


微信图片_20211129092434.jpg


  • 编码器和解码器内部的详细数据信息至关重要;


2. 自编码器范例


微信图片_20211129092439.jpg


如上图所示,编码器的过滤器(filters)为 W,函数为 Sigmoid 函数,


微信图片_20211129092444.jpg


解码器的过滤器(filters)为 D , 函数为线性回归函数。


这是一个拥有 D 个输入和 D 个输出的自编码器,并且包括 K 个隐单元(hidden units), K<D。给定输入 x,它的重构函数为:


微信图片_20211129092448.jpg


我们可以通过使重构误差(reconstruction error)最小化来决定网络的参数 W 和 D :


微信图片_20211129092451.jpg


3. 其它自编码模型


微信图片_20211129092454.jpg

  • 如果隐蔽层(hidden layer)和输出层是线性的,它将会对隐单元(hidden units)进行学习,这些隐单元是数据的线性方程,并且可以使方差最小化。这 K 个隐单元将会像前 K 个主成分(first k principal components)一样,覆盖相同的空间。这些权重矢量可能不是正交的。

  • 对于非线性隐单元的情况来说,我们会利用 PCA(Principal Component Analysis)的非线性泛化(nonlinear generalization)来进行处理。


微信图片_20211129092457.jpg

  • 和限制性玻尔兹曼机(Restricted Boltzmann Machines)相关。


预测稀疏分解(Predictive Sparse Decomposition):


微信图片_20211129092500.jpg


在训练过程中:


微信图片_20211129092504.jpg


可以看到,这种结构在解码器部分加入了稀疏惩罚项(详见以上关于稀疏编码的内容)。


4. 堆叠式自编码器(Stacked Autoencoder)


微信图片_20211129092507.jpg


这是一种「贪婪」的分层学习。如果我们去掉解码器部分,并且只使用前馈部分,会发现这是一个标准的类似于卷积神经网络的结构,参考下图。可以使用反向传播来对参数进行调校。


微信图片_20211129092510.jpg


5. 深度自编码器结构及其相关实验结果


微信图片_20211129092514.jpg

微信图片_20211129092517.jpg


  • 第一行:从测试数据集中随机采样;

  • 第二行:用 30 维的自编码器进行重构得到的结果;

  • 第三行:用 30 维的 PCA 进行重构得到的结果。微信图片_20211129092521.png
相关文章
|
6月前
|
机器学习/深度学习 自然语言处理 数据可视化
深度探索变分自编码器在无监督特征学习中的应用
【4月更文挑战第20天】 在深度学习领域,无监督学习一直是研究的热点问题之一。本文聚焦于一种前沿的生成模型——变分自编码器(Variational Autoencoder, VAE),探讨其在无监督特征学习中的关键作用与应用潜力。不同于传统的摘要形式,本文将直接深入VAE的核心机制,分析其如何通过引入随机隐变量和重参数化技巧,实现对复杂数据分布的有效建模。文章还将展示VAE在多个实际数据集上的应用结果,验证其作为无监督特征提取工具的有效性和普适性。通过理论与实践的结合,本文旨在为读者提供关于VAE在无监督特征学习领域的全面认识。
|
机器学习/深度学习 存储 算法
神经网络中的量化与蒸馏
本文将深入研究深度学习中精简模型的技术:量化和蒸馏
100 0
|
机器学习/深度学习 存储 算法
如何将 Transformer 应用于时间序列模型
如何将 Transformer 应用于时间序列模型
246 1
|
24天前
|
机器学习/深度学习 调度 知识图谱
TimeDART:基于扩散自回归Transformer 的自监督时间序列预测方法
近年来,深度神经网络成为时间序列预测的主流方法。自监督学习通过从未标记数据中学习,能够捕获时间序列的长期依赖和局部特征。TimeDART结合扩散模型和自回归建模,创新性地解决了时间序列预测中的关键挑战,在多个数据集上取得了最优性能,展示了强大的泛化能力。
59 0
TimeDART:基于扩散自回归Transformer 的自监督时间序列预测方法
|
4月前
|
机器学习/深度学习 PyTorch 算法框架/工具
VQ-VAE:矢量量化变分自编码器,离散化特征学习模型
VQ-VAE 是变分自编码器(VAE)的一种改进。这些模型可以用来学习有效的表示。本文将深入研究 VQ-VAE 之前,不过,在这之前我们先讨论一些概率基础和 VAE 架构。
124 10
|
4月前
|
机器学习/深度学习 算法 PyTorch
使用Pytorch中从头实现去噪扩散概率模型(DDPM)
在本文中,我们将构建基础的无条件扩散模型,即去噪扩散概率模型(DDPM)。从探究算法的直观工作原理开始,然后在PyTorch中从头构建它。本文主要关注算法背后的思想和具体实现细节。
8706 3
|
5月前
|
存储 算法
预训练特征分类器
【6月更文挑战第11天】
36 1
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
论文介绍:探索离散状态空间中的去噪扩散模型
【4月更文挑战第8天】新研究提出离散去噪扩散概率模型(D3PMs),扩展了在图像和音频生成上成功的DDPMs,专注于离散数据如文本和图像分割。D3PMs通过结构化的离散腐败过程改进生成质量,无需将数据转化为连续空间,允许嵌入领域知识。实验显示,D3PMs在字符级文本生成和CIFAR-10图像数据集上表现出色。尽管有局限性,如在某些任务上不及自回归模型,D3PMs的灵活性使其适用于多样化场景。
78 2
论文介绍:探索离散状态空间中的去噪扩散模型
|
6月前
|
机器学习/深度学习 运维 算法
自编码器(Autoencoder)在无监督学习和降维中的应用
自编码器(Autoencoder)在无监督学习和降维中的应用
298 0
自编码器(Autoencoder)在无监督学习和降维中的应用
|
机器学习/深度学习 算法 PyTorch
神经网络知识蒸馏
翻译:《Distilling the knowledge in a neural network》
下一篇
无影云桌面