深度学习自编码器 - 随机编码器和解码器篇
序言
在深度学习领域,自编码器作为一种无监督学习技术,凭借其强大的特征表示能力,在数据压缩、去噪、异常检测及生成模型等多个方面展现出独特魅力。其中,随机编码器和解码器作为自编码器的一种创新形式,进一步拓宽了其应用边界。随机编码器通过引入随机性,如噪声注入或概率性映射,使得编码过程不再拘泥于固定的转换规则,而是能够捕捉数据中的潜在随机性和多样性。这一特性对于处理复杂多变的现实世界数据尤为关键,因为它允许模型在编码时保留更多的不确定性信息,为后续处理或生成任务提供丰富的素材。
随机编码器和解码器(Stochastic Encoders and Decoders)
-
自编码器仅仅是一个前馈网络,可以使用与传统前馈网络相同的损失函数和输出单元。
-
如
深度网络现代实践 - 深度前馈网络之基于梯度的学习篇 - 其他的输出类型
中描述,设计前馈网络的输出单元和损失函数普遍策略是定义一个输出分布 p ( y ∣ x ) p(\boldsymbol{y}\mid\boldsymbol{x}) p(y∣x) 并最小化负对数似然 − log p ( y ∣ x ) -\log p(\boldsymbol{y}\mid\boldsymbol{x}) −logp(y∣x)。在这种情况下, y \boldsymbol{y} y 是关于目标的向量(如类标)。 -
在自编码器中, x \boldsymbol{x} x 既是输入也是目标。
- 然而,我们仍然可以使用与之前相同的架构。
- 给定一个隐藏编码 h \boldsymbol{h} h,我们可以认为解码器提供了一个条件分布 p model ( x ∣ h ) p_{\text{model}}(\boldsymbol{x}\mid\boldsymbol{h}) pmodel(x∣h)。
- 接着我们根据最小化 − log p decoder ( x ∣ h ) -\log p_{\text{decoder}}(\boldsymbol{x}\mid\boldsymbol{h}) −logpdecoder(x∣h) 来训练自编码器。
- 损失函数的具体形式视 p decoder p_{\text{decoder}} pdecoder 的形式而定。
- 就传统的前馈网络来说,我们通常使用线性输出单元参数化高斯分布的均值(如果 x \boldsymbol{x} x 是实的)。
- 在这种情况下,负对数似然对应均方误差准则。
- 类似地,二值 x \boldsymbol{x} x 对应参数由 sigmoid \text{sigmoid} sigmoid单元确定的Bernoulli 分布,离散的 x \boldsymbol{x} x 对应 softmax \text{softmax} softmax分布等等。
- 为了便于计算概率分布,我们通常认为输出变量与给定 h \boldsymbol{h} h 是条件独立的,但一些技术(如混合密度输出)可以解决输出相关的建模。
-
为了更彻底地区别之前看到的前馈网络,我们也可以将编码函数 ( encoding function \text{encoding function} encoding function) f ( x ) f(x) f(x) 的概念推广为编码分布 ( encoding distribution \text{encoding distribution} encoding distribution) p encoder ( h ∣ x ) p_{\text{encoder}}(\boldsymbol{h}\mid\boldsymbol{x}) pencoder(h∣x),如
图例1
中所示。- 以及一个随机解码器:
p decoder ( x ∣ h ) = p model ( x ∣ h ) p_{\text{decoder}}(\boldsymbol{x}\mid\boldsymbol{h})=p_{\text{model}}(\boldsymbol{x}\mid\boldsymbol{h}) pdecoder(x∣h)=pmodel(x∣h) — 公式1 \quad\textbf{---\footnotesize{公式1}} —公式1
- 以及一个随机解码器:
-
一般情况下, 编码器和解码器的分布没有必要与一个唯一的联合分布 p model ( x ∣ h ) p_{\text{model}}(\boldsymbol{x}\mid\boldsymbol{h}) pmodel(x∣h) 的条件分布相容。 Alain et al. (2015) \text{Alain et al. (2015)} Alain et al. (2015) 指出将编码器和解码器作为去噪自编码器训练,能使它们渐近地相容(有足够的容量和样本)。
- 图例1:随机自编码器的结构,其中编码器和解码器包括一些噪声注入,而不是简单的函数。
-
随机自编码器的结构,其中编码器和解码器包括一些噪声注入,而不是简单的函数。
-
说明:
- 这意味着可以将它们的输出视为来自分布的采样(对于编码器是 p encoder ( h ∣ x ) p_{\text{encoder}}(\boldsymbol{h}\mid\boldsymbol{x}) pencoder(h∣x),对于解码器是 p decoder ( x ∣ h ) p_{\text{decoder}}(\boldsymbol{x}\mid\boldsymbol{h}) pdecoder(x∣h)。
-
总结
- 随机编码器和解码器的引入,为深度学习自编码器家族增添了新的活力与可能性。它们不仅增强了自编码器处理复杂数据的能力,还促进了生成模型的发展,使得生成的数据样本更加自然、多样。通过随机性的巧妙运用,这些模型能够在保持数据主要特征的同时,有效模拟真实世界中的不确定性,为图像生成、文本创作乃至更广泛的AI创作领域开辟了新路径。
- 未来,随着技术的不断进步和算法的优化,随机自编码器有望在更多领域展现其独特价值,推动人工智能技术的持续创新与发展。
往期内容回顾
深度学习自编码器 - 引言篇
深度学习自编码器 - 欠完备自编码器篇
深度学习自编码器 - 正则自编码器篇
深度网络现代实践 - 深度前馈网络之基于梯度的学习篇
相关文章:

深度学习自编码器 - 随机编码器和解码器篇
序言 在深度学习领域,自编码器作为一种无监督学习技术,凭借其强大的特征表示能力,在数据压缩、去噪、异常检测及生成模型等多个方面展现出独特魅力。其中,随机编码器和解码器作为自编码器的一种创新形式,进一步拓宽了…...
Spring IoC DI
Spring 框架的核心是其控制反转(IoC,Inversion of Control)和依赖注入(DI,Dependency Injection)机制。这些概念是为了提高代码的模块化和灵活性,进而简化开发和测试过程。下面将详细介绍这两个…...

[数据集][目标检测]无人机飞鸟检测数据集VOC+YOLO格式6647张2类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):6647 标注数量(xml文件个数):6647 标注数量(txt文件个数):6647 标注…...

Vue 中 watch 的使用方法及注意事项
前言 Vue 的 Watch 是一个非常有用的功能,它能够监听 Vue 实例数据的变化并执行相应的操作。本篇文章将详细介绍 Vue Watch 的使用方法和注意事项,让你能够充分利用 Watch 来解决 Vue 开发中的各种问题。 1. Watch 是什么? 1.1 Watch 的作…...

情指行一体化平台建设方案和必要性-———未来之窗行业应用跨平台架构
一、平台建设必要性 以下是情指行一体化平台搭建的一些必要性: 1. 提高响应速度 - 实现情报、指挥和行动的快速协同,大大缩短从信息获取到决策执行的时间,提高对紧急情况和突发事件的响应效率。 2. 优化资源配置 - 整合各类资源信…...

窗口框架frame(HTML前端)
一.窗口框架 作用:将网页分割为多个HTML页面,即将窗口分为多个小窗口,每个小窗口可以显示不同的页面,但是在浏览器中是一个完整的页面 基本语法 <frameset cols"" row""></frameset><frame…...

51单片机——数码管
一、数码管原理图 我们发现,总共有8个数码管。 它们的上面接8个LED,用来控制选择哪个数码管。例如要控制第三个数码管,就让LED6为0,其他为1,那LED又接到哪呢? 二、LED 由图可以看出,这个一个1…...
`re.compile(r“(<.*?>)“)` 如何有效地从给定字符串中提取出所有符合 `<...>` 格式的引用
regexp re.compile(r"(<.*?>)") 这行代码是在Python中使用正则表达式的一个示例,具体含义如下: re.compile(): 这个函数来自Python的 re(正则表达式)模块,用于将一个正则表达式模式编译成一个正则表…...

算法打卡:第十一章 图论part01
今日收获:图论理论基础,深搜理论基础,所有可达路径,广搜理论基础(理论来自代码随想录) 1. 图论理论基础 (1)邻接矩阵 邻接矩阵存储图,x和y轴的坐标表示节点的个数 优点…...
为C#的PetaPoco组件增加一个批量更新功能(临时表模式)
总有一些数据是需要批量更新的,并且更新的字段,每个数据都不一样。 为了实现这样一个功能,写了这样一个方法: using System.Linq.Expressions; using System.Reflection; using System.Text; using NetRube.Data; using PetaPoc…...

Spring实战——入门讲解
博客主页: 南来_北往 系列专栏:Spring Boot实战 Spring介绍 Spring实战的入门讲解主要涵盖了Spring框架的基本概念、核心功能以及应用场景。以下是关于Spring实战入门的具体介绍: Spring框架概述:Spring是一个轻量级的Java开发框架…...

MTK芯片机型的“工程固件” 红米note9 5G版资源预览 写入以及改写参数相关步骤解析
小米机型:小米5 小米5x 米6 米6x 米8 米9 米10系列 米11系列 米12系列 mix mix2 mix2s mix3 max max2 max3 note3 8se 9se cc9系列 米play 平板系列等分享 红米机型:红米note4 红米note4x 红米note5 红米note6 红米note7 红米note8 红米note8pro 红米s2 红米note7pro 红米…...

[Golang] Context
[Golang] Context 文章目录 [Golang] Context什么是context创建context创建根context创建context context的作用并发控制context.WithCancelcontext.WithDeadlinecontext.WithTimeoutcontext.WithValue 什么是context Golang在1.7版本中引入了一个标准库的接口context…...
【JAVA集合总结-壹】
文章目录 synchronized 的实现原理以及锁优化?ThreadLocal原理,使用注意点,应用场景有哪些?synchronized和ReentrantLock的区别?说说CountDownLatch与CyclicBarrier 区别Fork/Join框架的理解为什么我们调用start()方法…...
Mysql梳理7——分页查询
目录 7、分页查询 7.1 背景 7.2 实现规则 分页原理 7.3 使用 LIMIT 的好处 7、分页查询 7.1 背景 背景1:查询返回的记录太多了,查看起来很不方便,怎么样能够实现分页查询呢? 背景2:表里有 4 条数据,…...

智能制造与工业互联网公益联播∣企企通副总经理杨华:AI的浪潮下,未来智慧供应链迭代方向
近两年在IT圈子里面,AI毫无疑问是最火的一个词语,最近的ChatGPT、文心一言、通义千问,从千亿参数到万亿参数,再往前就是Sora文生视频异军突起... 在人工智能的浪潮下,AI之于供应链的价值体现在哪些地方?其发…...

《深度学习》—— 卷积神经网络(CNN)的简单介绍和工作原理
文章目录 一、卷积神经网络的简单介绍二、工作原理(还未写完)1.输入层2.卷积层3.池化层4.全连接层5.输出层 一、卷积神经网络的简单介绍 基本概念 定义:卷积神经网络是一种深度学习模型,通常用于图像、视频、语音等信号数据的分类和识别任务。其核心思想…...

数据结构:线性表
1、线性表概述 1.1线性表的定义 线性表(list):零个或多个数据元素的有限序列。 简单地来说,我们可以用下面这张图来描述一个线性表: 1.2 线性表的存储结构 1.2.1顺序存储结构——顺序表 顺序表是将数据全部存储到…...
Ansible PlayBook实践案例
一、PlayBook介绍 1.什么是playbook playbook 顾名思义,即剧本,现实生活中演员按照剧本表演,在 ansible 中,由被控计算机表演,进行安装,部署应用,提供对外的服务等,以及组织计算机处理各种各样…...

Tomcat后台弱口令部署war包
1.环境搭建 cd /vulhub/tomcat/tomcat8 docker-compose up -d 一键启动容器 2.访问靶场 点击Manager App tomcat8的默认用户名和密码都是tomcat进行登录 3.制作war包 先写一个js的一句话木马 然后压缩成zip压缩包 最后修改后缀名为war 4.在网站后台上传war文件 上传war文件…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...

Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...