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

机器之心整理

作者:Ruslan Salakhutdinov

参与:Smith

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

一、稀疏编码(Sparse Coding)

1. 稀疏编码的概念

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

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

满足:

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

2. 稀疏编码的训练

为输入图像片段;

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

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

交替性优化:

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

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

3. 稀疏编码的测试过程

  • 输入为一个新图像片段 x* , 和 K 个可学习的基;
  • 输出为一个图像片段 x* 的稀疏表达 a(sparse representation)。

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

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

4. 稀疏编码的相关解释

  • a 是稀疏,且过完备(over-complete)的表征;
  • 编码函数 a = f(x) 是 x 的隐函数和非线性函数;
  • 而重构(解码)函数 x' = g(a) 是线性且显性的。

二、自编码器(Autoencoder)

1. 自编码器结构

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

2. 自编码器范例

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

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

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

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

3. 其它自编码模型

  • 如果隐蔽层(hidden layer)和输出层是线性的,它将会对隐单元(hidden units)进行学习,这些隐单元是数据的线性方程,并且可以使方差最小化。这 K 个隐单元将会像前 K 个主成分(first k principal components)一样,覆盖相同的空间。这些权重矢量可能不是正交的。
  • 对于非线性隐单元的情况来说,我们会利用 PCA(Principal Component Analysis)的非线性泛化(nonlinear generalization)来进行处理。
  • 和限制性玻尔兹曼机(Restricted Boltzmann Machines)相关。

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

在训练过程中:

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

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

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

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

  • 第一行:从测试数据集中随机采样;
  • 第二行:用 30 维的自编码器进行重构得到的结果;
  • 第三行:用 30 维的 PCA 进行重构得到的结果。

本文为机器之心原创,转载请联系本公众号获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2017-07-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Hadoop数据仓库

HAWQ + MADlib 玩转数据挖掘之(十二)——模型评估之交叉验证

一、交叉验证概述         机器学习技术在应用之前使用“训练+检验”的模式,通常被称作“交叉验证”,如图1所示。 ? 图1 1. 预测模型的稳定性    ...

1.7K7
来自专栏IT派

深度学习中的基础线代知识-初学者指南

导语:在经过一天之后,我们的活动人数已经达到40人了,感谢大家对小编的支持,同时在本文末附上前一天的众筹榜单。希望能跟小伙伴们度过愉快的6天! ? 上过 Jer...

3436
来自专栏Petrichor的专栏

深度学习: Softmax 函数

该函数 是重要的 深度学习目标函数,也是 Sigmoid函数 的一种 推广。可转换为交叉熵误差 (CE) 。

2922
来自专栏阮一峰的网络日志

理解矩阵乘法

大多数人在高中,或者大学低年级,都上过一门课《线性代数》。这门课其实是教矩阵。 ? 刚学的时候,还蛮简单的,矩阵加法就是相同位置的数字加一下。 ? 矩阵减法也类...

3627
来自专栏机器学习算法工程师

你必须要知道CNN模型:ResNet

作者:叶 虎 编辑:张 欢 PART 01 ResNet简介 引言 深度残差网络(Deep residual network, ResNet)的提出是CNN...

7857
来自专栏AI2ML人工智能to机器学习

矩阵分解 (乘法篇)

前面我们在矩阵分解 (加法篇)里面分析的加法下的矩阵分解。 这里我们来看看乘法下矩阵分解的要点。

1461
来自专栏专知

【干货】深入理解变分自编码器

【导读】自编码器是一种非常直观的无监督神经网络方法,由编码器和解码器两部分构成,自编码器近年来很受研究人员的欢迎。本文是机器学习工程师Jeremy撰写的一篇非常...

5045
来自专栏机器学习入门

深度学习系列(1):感知机

深度学习系列(1):感知机 前言 小论文总算告一段落了,近期开始深度学习了,跟着Hinton神经网络公开课边看边总结。视频参考链接如下:https://www....

2318
来自专栏PPV课数据科学社区

机器学习系列:(四)从线性回归到逻辑回归---续篇

欢迎小伙伴们回来继续学习,本篇内容是连着上一篇 “机器学习系列:(四)从线性回归到逻辑回归”文章。 多类分类 现实中有很多问题不只是分成两类,许多问题都需要分成...

3136
来自专栏机器学习和数学

[高大上的DL] Activation function (激活函数)的初步认识

今天简单认识一下什么激活函数以及都有那些激活函数。说到激活函数这里有几个比较容易混淆的概念,比如Pooling池化和Sampling采样,loss functi...

3408

扫码关注云+社区

领取腾讯云代金券