深度学习自编码器 - 分布式表示篇

news2024/11/18 21:34:30

序言

深度学习作为人工智能领域的重要分支,其核心在于表示学习( Representation Learning \text{Representation Learning} Representation Learning),尤其是分布式表示( Distributed Representation \text{Distributed Representation} Distributed Representation)。这一领域的兴起,源于对人类大脑处理信息方式的深刻洞察与模仿。表示学习旨在通过模型参数,以有效的方式表示观测样本,从而简化问题处理的难度。而分布式表示,则进一步强调了数据特征的分散与协作,使得深度学习模型能够更加灵活地捕捉和表达复杂数据的内在结构。

分布式表示

  • 分布式表示的概念——由很多元素组合的表示,这些元素之间可以设置成可分离的——是表示学习最重要的工具之一。

    • 分布式表示非常强大,因为他们能用具有 k k k个值的 n n n 个特征去描述 k n k^n kn 个不同的概念。
    • 正如我们看到的,具有多个隐藏单元的神经网络和具有多个潜变量的概率模型都利用了分布式表示的策略。
    • 我们现在再介绍一个观察结果。
    • 许多深度学习算法基于的假设是,隐藏单元能够学习表示出解释数据的潜在因果因子,就像深度学习之表示学习 - 半监督解释因果关系篇中讨论的一样。
    • 这种方法在分布式表示上是自然的,因为表示空间中的每个方向都对应着一个不同的潜在配置变量的值。
  • n n n 维二元向量是一个分布式表示的示例,有 2 n 2^n 2n 种配置,每一种都对应输入空间中的一个不同区域,如图例1所示。

    • 这可以与符号表示相比较,其中输入关联到单一符号或类别。
    • 如果字典中有 n n n 个符号,那么可以想象有 n n n 个特征监测器,每个特征探测器监测相关类别的存在。
    • 在这种情况下,只有表示空间中 n n n 个不同配置才有可能在输入空间中刻画 n n n 个不同的区域,如图例2所示。
    • 这样的符号表示也被称为 one-hot \text{one-hot} one-hot表示,因为它可以表示成各位排斥的 n n n 维二元向量(其中只有一位是激活的)。
    • 符号表示是更广泛的非分布式表示类中的一个具体示例,可以包含很多条目,但是每个条目没有显著意义的单独控制作用。
  • 以下是基于非分布式表示的学习算法的示例:

    • 聚类算法,包含 k k k-均值算法:每个输入点恰好分配到一个类别。
    • k k k-最近邻算法:给定一个输入,一个或几个模板或原型样本与之关联。在 k > 1 k > 1 k>1的情况下,每个输入都使用多个值来描述,但是它们不能彼此分开控制,因此这不能算真正的分布式表示。
    • 决策树:给定输入时,只有一个叶节点(和从根到该叶节点路径上的点)是被激活的。
    • 高斯混合体和专家混合体:模板(聚类中心)或专家关联一个激活的程度。和 k k k-最近邻算法一样,每个输入用多个值表示,但是这些值不能轻易地彼此分开控制。
    • 具有高斯核 (或其他类似的局部核)的核机器:尽管每个 “支持向量’’ 或模板
      样本的激活程度是连续值,但仍然会出现和高斯混合体相同的问题。
    • 基于 n − gram n-\text{gram} ngram的语言或翻译模型:根据后缀的树结构划分上下文集合(符号序列)。例如,一个叶节点可能对应于最后两个单词 w 1 w_1 w1 w 2 w_2 w2。树上的每个叶节点分别估计单独的参数(有些共享也是可能的)。
  • 对于这些非分布式算法中的部分而言,有些输出并非是恒定的,而是在相邻区域之间内插。参数(或样本)的数量和它们能够定义区域的数量之间保持线性关系。

  • 将分布式表示和符号表示区分开来的一个重要概念是,由不同概念之间的共享属性而产生的泛化。

    • 作为纯符号, ‘‘猫’’ 和 ‘‘狗’’ 之间的距离和任意其他两种符号的距离一样。
    • 然而,如果将它们与有意义的分布式表示相关联,那么关于猫的很多特点可以推广到狗,反之亦然。
    • 例如,我们的分布式表示可能会包含诸如 ‘‘具有皮毛’’或 ‘‘腿的数目’’ 这类在 ‘‘猫’’ 和 ‘‘狗’’ 的嵌入上具有相同值的项。
    • 正如深度学习应用 - 自然语言处理(NLP)篇 - 神经语言模型所讨论的,作用于单词分布式表示的神经语言模型比其他直接对单词 one-hot \text{one-hot} one-hot表示进行操作的模型泛化得更好。
    • 分布式表示具有丰富的相似性空间,语义上相近的概念(或输入)在距离上接近,这是纯粹的符号表示所缺少的特点。
  • 在学习算法中使用分布式表示何时以及为什么具有统计优势?

    • 当一个明显复杂的结构可以用较少参数紧致地表示时,分布式表示具有统计上的优点。
    • 一些传统的非分布式学习算法仅仅在平滑假设的情况下能够泛化,也就是说如果 u ≈ v u \approx v uv,那么学习到的目标函数 f f f 通常具有 f ( u ) ≈ f ( v ) f(u) \approx f(v) f(u)f(v) 的性质。
    • 有许多方法来形式化这样一个假设,但其结果是如果我们有一个样本 ( x , y ) (x, y) (x,y),并且我们知道 f ( x ) ≈ y f(x) \approx y f(x)y,那么我们可以选取一个估计 f ^ \hat{f} f^ 近似地满足这些限制,并且当我们移动到附近的输入 x + ϵ x + \epsilon x+ϵ 时, f ^ \hat{f} f^尽可能少地发生改变。
    • 显然这个假设是非常有用的,但是它会遭受维数灾难:学习出一个能够在很多不同区域上增加或减少很多次的 目标函 数 注 1 目标函数^{注1} 目标函1,我们可能需要至少和可区分区域数量一样多的样本。
    • 可以将每一个区域视为一个类别或符号:通过让每个符号(或区域)具有单独的自由度,我们可以学习出从符号映射到值的任意解码器。
    • 然而,这不能推广到新区域的新符号上。
  • 如果我们幸运的话,除了平滑之外,目标函数可能还有一些其他规律。例如,具有最大池化的卷积网络 可以不考虑对象在图像中的位置(即使对象的空间变换不对应输入空间的平滑变换),而识别出对象。

  • 让我们检查分布式表示学习算法的一个特殊情况,它通过对输入的线性函数进行阀值处理来提取二元特征。

    • 该表示中的每个二元特征将 R d \mathbb{R}^d Rd 分成一对半空间,如图例1所示。
    • n n n 个相应半空间的指数级数量的交集确定了该分布式表示学习器能够区分多少区域。
    • 空间 R d \mathbb{R}^d Rd 中的 n n n 个超平面的排列组合能够生成多少区间?
    • 通过应用关于超平面交集的一般结果 ( Zaslavsky, 1975 \text{Zaslavsky, 1975} Zaslavsky, 1975),我们发现 ( Pascanu et al., 2014b \text{Pascanu et al., 2014b} Pascanu et al., 2014b) 这个二元特征表示能够区分的空间数量是: ∑ j = 0 d ( n j ) = O ( n d ) \sum\limits_{j=0}^d(\begin{matrix}n\\j\end{matrix})=O(n^d) j=0d(nj)=O(nd) — 公式1 \quad\textbf{---\footnotesize{公式1}} 公式1
    • 因此,我们会发现关于输入大小呈指数级增长,关于隐藏单元的数量呈多项式级增长。
  • 这提供了分布式表示泛化能力的一种几何解释: O ( n d ) O(n^d) O(nd) 个参数(空间 R d \mathbb{R}^d Rd 中的 n n n个线性阀值特征)能够明确表示输入空间中 O ( n d ) O(n^d) O(nd) 个不同区域。

    • 如果我们没有对数据做任何假设,并且每个区域使用唯一的符号来表示,每个符号使用单独的参数去识别 R d \mathbb{R}^d Rd 中的对应区域,那么指定 O ( n d ) O(n^d) O(nd) 个区域需要 O ( n d ) O(n^d) O(nd) 个样本。
    • 更一般地,我们对分布式表示中的每个特征使用非线性的、可能连续的特征提取器,代替线性阀值单元,更加有利于体现分布式表示的优势。
    • 在这种情况下,如果带有 k k k 个参数的参数化变换可以学习输入空间中的 r r r 个区域( k ≪ r k \ll r kr),如果学习这样的表示有助于感兴趣的任务,那么我们可以将这种方式潜在地推广到比非分布式情景更好的表示,我们只需要 O ( r ) O(r) O(r) 个样本来获得相同的特征,并将输入空间相关联地划分成 r r r 个区域。
    • 使用较少的参数来表示模型意味着我们只需拟合较少的参数,因此只需要更少的训练样本去获得良好的泛化。
  • 另一个解释基于分布式表示的模型泛化能力更好的说法是,尽管能够明确地编码这么多不同的区域,但它们的容量仍然是很有限的。

    • 例如,线性阀值单元神经网络的 VC \text{VC} VC维仅为 O ( w log ⁡ w ) O(w \log w) O(wlogw),其中 w w w 是权重的数目 ( Sontag, 1998 \text{Sontag, 1998} Sontag, 1998)。
    • 这种限制出现的原因是,虽然我们可以为表示空间分配非常多的唯一码,但是我们不能完全使用所有的码空间,也不能使用线性分类器学习出从表示空间 h \boldsymbol{h} h 到输出 y \boldsymbol{y} y 的任意函数映射。
    • 因此使用与线性分类器相结合的分布式表示传达了一种先验信念,待识别的类在 h \boldsymbol{h} h代表的潜在因果因子的函数下是线性可分的。
    • 我们通常想要学习类别,例如所有绿色对象的图像集合,或是所有汽车图像集合,但不会是需要非线性 XOR \text{XOR} XOR逻辑的类别。
    • 例如,我们通常不会将数据划分成所有红色汽车和绿色卡车作为一个集合,所有绿色汽车和红色卡车作为另一个集合。
  • 到目前为止讨论的想法都是抽象的,但是它们可以通过实验验证。

    • Zhou et al.(2015) \text{Zhou et al.(2015)} Zhou et al.(2015) 发现,在 ImageNet \text{ImageNet} ImageNet Places \text{Places} Places基准数据集上训练的深度卷积网络中的隐藏单元学习到的特征通常是可以解释的,对应人类自然分配的标签。
    • 在实践中,隐藏单元并不能总是学习出具有简单语言学名称的事物,但有趣的是,这些会在计算机视觉深度网络的顶层附近出现。
    • 这些特征的共同之处在于,我们可以想象学习其中的每个特征不需要知道所有其他特征的所有配置。
    • Radford et al. (2015) \text{Radford et al. (2015)} Radford et al. (2015) 发现生成模型可以学习人脸图像的表示,在表示空间中的不同方向捕获不同的潜在变化因素。
    • 图例3展示表示空间中的一个方向对应着该人是男性还是女性,而另一个方向对应着该人是否戴着眼镜。这些特征都是自动发现的,而非先验固定的。
    • 没有必要为隐藏单元分类器提供标签:只要该任务需要这样的特征,梯度下降就能在感兴趣的目标函数上自然地学习出语义上有趣的特征。
    • 我们可以学习出男性和女性之间的区别,或者是眼镜的存在与否,而不必通过涵盖所有这些值组合的样本来表征其他 n − 1 n − 1 n1个特征的所有配置。
    • 这种形式的统计可分离性质能够泛化到训练期间从未见过的新人的特征。

  • 注1:一般来说,我们可能会想要学习一个函数,这个函数在指数级数量区域的值都是不同的:在 d d d-维空间中,为了区分每一维,至少有两个不同的值。我们想要函数 f f f 区分这 2 d 2^d 2d 个不同的区域,需要 O ( 2 d ) O(2^d) O(2d) 量级的训练样本

  • 图例1:图示基于分布式表示的学习算法如何将输入空间分割成多个区域。
    • 图示基于分布式表示的学习算法如何将输入空间分割成多个区域
      在这里插入图片描述

    • 说明:

      • 这个例子具有二元变量 h 1 h_1 h1 h 2 h_2 h2 h 3 h_3 h3
      • 每个特征通过为学习到的线性变换设定输出阀值而定义。
      • 每个特征将 R 2 \mathbb{R}^2 R2 分成两个半平面。令 h i + h_i^+ hi+ 表示输入点 h i = 1 h_i = 1 hi=1 的集合; h i − h_i^- hi 表示输入点 h i = 0 h_i = 0 hi=0 的集合。
      • 在这个图示中,每条线代表着一个 h i h_i hi 的决策边界,对应的箭头指向边界的 h i + h_i^+ hi+ 区域。
      • 整个表示在这些半平面的每个相交区域都指定一个唯一值。
      • 例如,表示值为 [ 1 , 1 , 1 ] ⊤ [1, 1, 1]^\top [1,1,1] 对应着区域 h 1 + ∩ h 2 + ∩ h 3 + h_1^+\cap h_2^+\cap h_3^+ h1+h2+h3+
      • 可以将以上表示和图例2中的非分布式表示进行比较。
      • 在输入维度是 d d d 的一般情况下,分布式表示通过半空间(而不是半平面)的交叉分割 R d \mathbb{R}^d Rd
      • 具有 n n n 个特征的分布式表示给 O ( n d ) O(n^d) O(nd) 个不同区域分配唯一的编码,而具有 n n n 个样本的最近邻算法只能给 n n n 个不同区域分配唯一的编码。
      • 因此, 分布式表示能够比非分布式表示多分配指数级的区域。
      • 注意并非所有的 h \boldsymbol{h} h 值都是可取的(这个例子中没有 h = 0 \boldsymbol{h}= 0 h=0),在分布式表示上的线性分类器不能向每个相邻区域分配不同的类别标识;甚至深度线性阀值网络的 VC \text{VC} VC维只有 O ( w log ⁡ w ) O(w \log w) O(wlogw)(其中 w w w 是权重数目) ( Sontag, 1998 \text{Sontag, 1998} Sontag, 1998)。
      • 强表示层和弱分类器层的组合是一个强正则化项。
      • 试图学习 ‘‘人’’ 和 ‘‘非人’’ 概念的分类器不需要给表示为 ‘‘戴眼镜的女人’’ 和 ‘‘没有戴眼镜的男人’’ 的输入分配不同的类别。
      • 容量限制鼓励每个分类器关注少数几个 h i h_i hi,鼓励 h \boldsymbol{h} h 以线性可分的方式学习表示这些类别。

  • 图例2:图示最近邻算法如何将输入空间分成不同区域。
    • 图示最近邻算法如何将输入空间分成不同区域
      在这里插入图片描述

    • 说明:

      • 最近邻算法是一个基于非分布式表示的学习算法的示例。
      • 不同的非分布式算法可以具有不同的几何形状,但是它们通常将输入空间分成区域, 每个区域具有不同的参数。
      • 非分布式方法的优点是,给定足够的参数,它能够拟合一个训练集,而不需要复杂的优化算法。
      • 因为它直接为每个区域独立地设置不同的参数。
      • 缺点是,非分布式表示的模型只能通过平滑先验来局部地泛化,因此学习波峰波谷多于样本的复杂函数时,该方法是不可行的。
      • 和分布式表示对比,可以参照图例1

  • 图例3:以上生成模型学习分布式表示,能够从戴眼镜的概念中区分性别的概念。
    • 以上生成模型学习分布式表示,能够从戴眼镜的概念中区分性别的概念
      在这里插入图片描述

    • 说明:

      • 如果我们从一个戴眼镜的男人的概念表示向量开始,然后减去一个没戴眼镜的男人的概念表示向量,最后加上一个没戴眼镜的女人的概念表示向量,那么我们会得到一个戴眼镜的女人的概念表示向量。
      • 生成模型将所有这些表示向量正确地解码为可被识别为正确类别的图像。
      • 图片转载许可自 Radford et al. (2015) \text{Radford et al. (2015)} Radford et al. (2015)

总结

  • 深度学习中的表示学习,特别是分布式表示,为人工智能的发展注入了新的活力。通过模拟人脑对信息的逐级抽象和分布式处理机制,深度学习模型能够自动从大量数据中提取出有用的特征表示,进而实现高效的分类、回归和信息检索等任务。分布式表示不仅提高了模型的泛化能力,还降低了计算复杂度,使得深度学习在图像识别、语音识别、自然语言处理等领域取得了显著进展。
  • 未来,随着技术的不断进步和应用场景的持续拓展,深度学习之表示学习及分布式表示有望为人类带来更多惊喜和突破。

往期内容回顾

深度学习之表示学习 - 半监督解释因果关系篇
深度学习应用 - 自然语言处理(NLP)篇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2166590.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【JUC并发编程系列】深入理解Java并发机制:高效并发背后的守护者(八、线程池的秘密)

文章目录 【JUC并发编程系列】深入理解Java并发机制:高效并发背后的守护者(八、线程池的秘密)1. 线程池基础知识1.1 什么是线程池1.2 为什么要使用线程池1.3 线程池使用场景1.4 线程池有哪些作用 2. 线程池基本用法2.1 线程池的创建方式2.2 线程池底层是如何实现复用…

前端vuex

需要共享的数据适合存储到vuex中 state基本使用 如果开启strict严格模式,直接修改上图的age会报错提示。不能在组件中直接修改state

“永辉优品”会是中国零售的答案吗?

投资者这么快就“看懂”名创优品的豪赌了? 9月25日,永辉超市继续一字涨停,而令人意外的是,名创优品也反弹近8%。 随着名创优品于9月23日晚间在港交所公告,以62.7亿人民币收购永辉超市29.4%的股权,两家公司…

数据科学的核心工具箱:全面解析pandas、matplotlib.pyplot与scipy.stats在复杂数据分析流程中的应用

在当今数据驱动的世界中,Python已成为数据分析和科学计算的首选语言。 而 pandas 、 matplotlib.pyplot 和 scipy.stats 这三个库则是数据科学家和分析师武器库中 的三把利剑。 1. pandas 数据处理的瑞士军刀 pandas 库是 Python数据分析 的基石,它…

Distilabel合成数据生成框架简明教程

Distilabel 是一个用于合成数据和 AI 反馈的框架,适用于需要基于经过验证的研究论文的快速、可靠和可扩展的管道的工程师。 NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 -…

SpringCloud~

帮你轻松入门SpringCloud~ 1 微服务概述 1.1什么是微服务 如idea中使用maven建立的一个个moudle,它具体是使用SpringBoot开发的一个小模块,专业的事交给专业的模块来做,每个模块完成一个具体的任务或功能。 1.2 什么是微服务架构 它将单一应用…

MyBatis 动态 SQL 使用指南

MyBatis 是一个流行的持久层框架,它通过 XML 或注解将接口方法与 SQL 映射在一起。动态 SQL 是 MyBatis 的一大特性,它使得构建灵活的查询变得简单。本文将通过一个 User 表的示例,介绍 MyBatis 中常用的动态 SQL 方法。 1. 什么是动态 SQL&…

飞驰云联亮相电子半导体数智化年会 获”数据交换领域最佳厂商”

2024年9月20日,“2024第二届电子半导体/智能制造数智化年会暨品牌出海论坛”于上海隆重开幕,Ftrans飞驰云联作为国内领先的数据安全交换厂商,应邀携半导体全场景产品和解决方案亮相此次峰会。会上进行了“智象奖”评选,Ftrans飞驰…

sql中的regexp与like区别

sql中的regexp与like区别 1、REGEXP2、LIKE3、区别与选择 💖The Begin💖点点关注,收藏不迷路💖 1、REGEXP 用途:高级字符串匹配,使用正则表达式。特点:灵活性强,能进行复杂模式匹配…

Java项目实战II基于Java+Spring Boot+MySQL的汽车销售网站(文档+源码+数据库)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在数字化时…

【iOS】引用计数(一)

【iOS】引用计数 文章目录 【iOS】引用计数前言ARC与MRC什么是引用计数的机制内存管理的思考方式自己生成的对象非自己生成的对象不再需要自己持有就释放无法释放非自己持有的对象 autorelease小结 前言 笔者最近开始学习了一下有关于引用计数的内容,写这篇博客来简…

自动驾驶规划算法(一):A*算法原理和代码(c++与python)

1. A*算法简介 A*算法(A-star algorithm)诞生于1968年,由彼得哈特(Peter Hart)、尼尔森尼尔森(Nils Nilsson)和伯特拉波特(Bertram Raphael)三位计算机科学家提出。它的…

[机器学习]04-逻辑回归(python)-03-API与癌症分类案例讲解

逻辑回归(Logistic Regression) 的一API 介绍 关于如何配置模型中的优化器、正则化和惩罚项。 1. 逻辑回归 API 在 Scikit-learn 中,逻辑回归可以通过如下方式定义: from sklearn.linear_model import LogisticRegression ​ …

C嘎嘎入门篇:类和对象(1)

前言: 小编在之前讲述了C的部分入门基础,读者朋友一定要掌握好那些,因为C的学习和C有点不同,C的知识都是比较连贯的,所以我们学好了前面才可以学习后面的内容,本篇文章小编将会讲述C真正的入门篇&#xff1…

爬虫逆向学习(九):记录一个集cookie、请求参数、请求体、响应文本加密的站点反爬

此分享只用于学习用途,不作商业用途,若有冒犯,请联系处理 反爬前置信息 站点:aHR0cHM6Ly96d2Z3LmNxLmdvdi5jbi9pY2l0eS9pY2l0eS9lbmdpbmVlcmluZy9uYXZpZ2F0aW9u 接口:/icity/api-v2/cq.app.icity.engineering.Engine…

vue3组件通信(组合式API)

vue3组件通信(组合式API) vue3组件通信,采用组合式API。选项式API,参看官网 Vue3组件通信和Vue2的区别: 移出事件总线,使用mitt代替。 vuex换成了pinia。把.sync优化到了v-model里面了。把$listeners所…

fo-dicom开源库,深入理解项目的模块化设计

前言 DICOM(Digital Imaging and Communications in Medicine)是医学图像和相关信息的国际标准,广泛应用于医学影像领域。FO-DICOM是一个开源的DICOM库,提供了丰富的功能和模块,用于处理DICOM数据、实现DICOM网络通信…

16.面试算法-树的层次遍历与相关面试题

1. 树的层次遍历与相关面试题 1.1 层次遍历简介 广度优先在面试里出现的频率非常高,但是相对简单,题目也比较少,常见的题目也就七八道。 广度优先又叫层次遍历,基本过程如下: 层次遍历就是从根节点开始&#xff0c…

【STM32】 TCP/IP通信协议(1)

一、前言 TCP/IP是干啥的?它跟SPI、IIC、CAN有什么区别?它如何实现stm32的通讯?如何去配置?为了搞懂这些问题,查询资料可解决如下疑问: 1.为什么要用以太网通信? 以太网(Ethernet) 是指遵守 IEEE 802.3 …

【mbti课堂】计算机系统的六个层次与指令系统

课件:可以从 6 个层次分析和看待计算机系统的基本组成。 指令系统层处在硬件系统和软 件系统之间, 是硬、 软件之间的接口部分, 对两部分都有重要影响。 硬件系统用于实现每条指令的功能, 解决指令之间的衔接关系; 软件…