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

序言

深度学习作为人工智能领域的重要分支,其核心在于表示学习( 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.mzph.cn/news/880804.shtml

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

相关文章

netty之基础aio,bio,nio

前言 在Java中,提供了一些关于使用IO的API,可以供开发者来读写外部数据和文件,我们称这些API为Java IO。IO是Java中比较重要知识点,且比较难学习的知识点。并且随着Java的发展为提供更好的数据传输性能,目前有三种IO共…

Go基础学习06-Golang标准库container/list(双向链表)深入讲解;延迟初始化技术;Element;List;Ring

基础介绍 单向链表中的每个节点包含数据和指向下一个节点的指针。其特点是每个节点只知道下一个节点的位置,使得数据只能单向遍历。 示意图如下: 双向链表中的每个节点都包含指向前一个节点和后一个节点的指针。这使得在双向链表中可以从前向后或从后…

无人机之数据提取篇

一、无人机平台与传感器 无人机是进行数据采集的基础设施,其稳定性、可靠性、灵活性和负载能力直接影响到数据采集的效果。根据实际需求,需选择适合的无人机类型,如固定翼无人机适合大范围、长时间的数据采集,而多旋翼无人机则更适…

HTML基础用法介绍一

VS code 如何快速生成HTML骨架注释是什么?为什么要写注释?注释的标签是什么?标题标签段落标签换行标签与水平线标签 (都是单标签)文本格式化标签图片标签超链接标签音频标签视频标签 🚘正片开始 VS code 如何快速生成…

基于Spring框架的分层解耦详解

博客主页:誓则盟约系列专栏:Java Web关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Java Web 三层架构: Java Web可以大致被分为三层架构:…

成都睿明智科技有限公司抖音电商服务靠谱吗?

在这个电商风起云涌的时代,抖音作为短视频直播的超级流量池,正深刻改变着人们的购物习惯。无数商家蜂拥而至,渴望在这片蓝海中找到属于自己的岛屿。而提及抖音电商服务,成都睿明智科技有限公司无疑是一个备受瞩目的名字。那么&…

Linux 进程的基本概念及描述

目录 0.前言 1. 什么是进程 1.1 进程的定义与特性 1.2 进程与线程的区别 2.描述进程 2.1 PCB (进程控制块) 2.2 task_struct 3.查看进程 3.1 查看进程信息 3.1.1 /proc 文件系统 3.1.2 ps 命令 3.1.2 top 和 htop 命令 3.2 获取进程标识符 3.2.1使用命令获取PID 3.2.2 使用C语言…

加密与安全_HTOP 一次性密码生成算法

文章目录 HOTP 的基础原理HOTP 的工作流程HOTP 的应用场景HOTP 的安全性安全性增强措施Code生成HOTP可配置项校验HOTP可拓展功能计数器(counter)计数器在客户端和服务端的作用计数器的同步机制客户端和服务端中的计数器表现服务端如何处理计数器不同步计…

AIGC学习笔记—minimind详解+训练+推理

前言 这个开源项目是带我的一个导师,推荐我看的,记录一下整个过程,总结一下收获。这个项目的slogan是“大道至简”,确实很简。作者说是这个项目为了帮助初学者快速入门大语言模型(LLM),通过从零…

vue3学习记录-computed

vue3学习记录-computed 1.为什么要用computed2.使用方法2.1 基本实例2.2 可写计算属性 1.为什么要用computed 写个购物车的案例 <script setup> import { ref, reactive,computed } from "vue" const tableData reactive([{ name: 商品1, price: 10, num: 1…

3. 轴指令(omron 机器自动化控制器)——>MC_MoveRelative

机器自动化控制器——第三章 轴指令 5 MC_MoveRelative变量▶输入变量▶输出变量▶输入输出变量 功能说明▶指令详情▶时序图▶重启运动指令▶多重启动运动指令▶异常 MC_MoveRelative 指定自指令当前位置起的移动距离&#xff0c;进行定位。 指令名称FB/FUN图形表现ST表现MC…

JVM(HotSpot):字符串常量池(StringTable)

文章目录 一、内存结构图二、案例讲解三、总结 一、内存结构图 JDK1.6 JDK1.8 我们发现&#xff0c;StringTable移入了Heap里面。所以&#xff0c;应该想到&#xff0c;StringTable将受到GC管理。 其实&#xff0c;1.6中&#xff0c;在方法区中的时候&#xff0c;也是受GC管…

从底层理解为什么常量区中的代码不能被修改?

目录 前言&#xff1a;一、了解虚拟地址二、页表映射三、常量区不能被修改的原理四、常量区不可修改的意义 前言&#xff1a; 平时我们在编写代码时都会用到或遇到所谓的常量区或者不可修改的代码&#xff0c;比如说用双引号包起来字符串&#xff08;“Hello World”&#xff…

微服务SpringSession解析部署使用全流程

目录 1、SpringSession简介 2、实现session共享的三种方式 1、修改Tomcat配置文件 2、Nginx负载均衡策略 3、redis统一存储 0、准备工作 1、本地服务添加依赖 2、修改本地服务配置文件 3、添加application.properties文件 4、添加nacos - redis配置 5、修改本地项目…

Linux启动mysql报错

甲方公司意外停电&#xff0c;所有服务器重启后&#xff0c;发现部署在Linux上的mysql数据库启动失败.再加上老员工离职&#xff0c;新接手项目&#xff0c;对Linux系统了解不多&#xff0c;解决起来用时较多&#xff0c;特此记录。 1.启动及报错 1.1 启动语句1 启动语句1&a…

全站最详细的Python环境配置步骤

1、官网下载IDE JetBrains下载 2、IDE下载、安装步骤 这里展示的是如何在Windows上下载、安装Pycharm工具&#xff0c;Linux的步骤类似。 2.1、选择开发者工具 选择开发者工具 2.2、选择Pycharm 选择Pycharm 2.3、选择下载 选择下载 2.4、选择社区版 一般而言&#xff…

基于SpringBoot+Vue的留守儿童爱心网站系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

MyBatis的注入问题

对之前文章的补充&#xff1a;MyBatis中的#{}与${}注入问题----原文链接 前言&#xff1a; MyBatis是一个流行的Java持久层框架&#xff0c;用于将对象与数据库中的数据进行映射。然而&#xff0c;如果不当使用&#xff0c;MyBatis也可能受到诸如SQL注入这类的安全问题的影响。…

解决VRM格式模型在Unity中运行出现头发乱飞等问题

1、问题 通过VRoidStudio制作导出的vrm格式的模型&#xff0c;放在unity中使用时&#xff0c;一运行就会出现头发乱飞&#xff0c;没有自然下垂的问题 2、解决方法 将模型下的secondary中的所有VRM Spring Bone脚本中的Drag Force改为1&#xff0c;Hit Radius改为0 修改后…

JAVA笔记 | 实际上用到的策略模式(可直接套用)

自己开发中用到了策略模式&#xff0c;这样写不一定是最好的&#xff0c;但是满足了业务场景跟使用要求&#xff0c;做个笔记&#xff0c;下次有用到可以快速复习跟套用 假设使用场景&#xff1a;有几只宠物&#xff0c;猫跟狗等&#xff0c;要求他们做各种动作&#xff0c;比如…