当前位置: 首页 > news >正文

自编码器(一)

        其实自编码器也可以算是自监督学习的一环,因 此我们可以再简单回顾一下自监督学习的框架。如图1.1所示,首先你有大量的没有标注的 数据,用这些没有标注的数据,你可以去训练一个模型,你必须设计一些不需要标注数据的 任务,比如说做填空题或者预测下一个词元等等,这个过程就是自监督学习,有时也叫做预训 练。用这些不用标注数据的任务学完一个模型以后,它可能本身没有什么作用,比如BERT 模型只能做填空题,GPT模型只能够把一句话补完,但是你可以把它用在其他下游的任务里 面。

图1.1 自监督学习框架

        在有BERT 或者GPT模型之前,其实有一个更古老的,不需要用标注数据的任务,就 叫做自编码器,所以你也可以把自编码器看作是一种自监督学习的预训练方法。当然可能不 是所有人都会同意这个观点,有人可能会说这个自编码器,不算是自监督学习。因为这个自编 码器是早在2006 年就有的概念,然后自监督学习是2019年才有这个词汇,所以他们认为自 编码器不算是自监督学习的一环。这个都是见仁见智的问题,这种名词定义的问题,我们就不 用太纠结在这个地方,从自监督学习,即不需要用标注数据来训练这个角度来看,自编码器我 们可以认为它算是自监督学习中的一种方法,它就跟填空或者预测接下来的词元是很类似的 概念,只是用的是另外一种不一样的思路。

         自编码器的原理,以图像为例,如图1.2所示,假设我们有非常大量的图片,在自编码器 里面有两个网络,一个叫做编码器,另外一个叫做解码器,它们是不同的两个网络。编码器把 一张图片读进来,它把这张图片变成一个向量,编码器可能是很多层的卷积神经网络(CNN), 把一张图片读进来,它的输出是一个向量,接下来这个向量会变成解码器的输入。而解码器会 产生一张图片,所以解码器的网络架构可能会像是GAN里面的生成器,它是比如11个向量 输出一张图片。

图1.2   自编码器的流程

          训练的目标是希望编码器的输入跟解码器的输出越接近越好。换句话说,假设你把图片 看作是一个很长的向量的话,我们就希望这个向量跟解码的输出,这个向量,这两个向量他们的距离越接近越好,也有人把这件事情叫做重构(reconstruction)。因为我们就是把一张 图片,压缩成一个向量,接下来解码器要根据这个向量,重建出原来的图片,希望原输入的结 果跟重建后的结果越接近越好。讲到这里读者可能会发现说,这个概念其实跟前面讲的Cycle GAN 模型是类似的。

        在做Cycle GAN 的时候,我们会需要两个生成器,第一个生成器把X域的图片转到Y 域,另外一个生成器把Y域的图片转回来,然后希望最原先的图片跟转完两次后的图片越接 近越好。那这边编码器和解码器,也就是这个自编码器的概念,跟CycleGAN其实是一模一 样的,都是希望所有的图片经过两次转换以后,要跟原来的输出越接近越好,而这个训练的过 程,完全不需要任何的标注数据,你只需要收集到大量的图片,你就可以做这个训练。因此它 是一个无监督学习的方法,跟自监督学习系列中预训练的做法一样,你完全不需要任何的标 注数据。那像这样子这个编码器的输出,有时候我们叫它嵌入。嵌入也称为表示或编码,因为 编码器是一个编码,所以这个有人把这个向量叫做编码,这些其实指的都是同一件事情。

        怎么把训练好的自编码器用在下游的任务里面呢?常见的用法就是把原来的图片可以看 成是一个很长的向量,但这个向量太长了不好处理,这是把这个图片丢到编码器以后,输出 另外一个向量,这个向量我们会让它比较短,比如说只有10维或者100维。接着拿这个新的 向量来做接下来的任务,也就是图片不再是一个很高维度的向量,它通过编码器的压缩以后, 变成了一个低维度的向量,我们再拿这个低维度的向量,来做接下来想做的事情,这就是自编 码器用在下游任务的常见做法。

        由于通常编码器的输入是一个维度非常高的向量,而其输出也就是我们的嵌入(也称为 表示或编码),其是一个非常低维度的向量。比如输入是100×100的图片,100×100那就是 1 万维的向量。如果是RGB那就是3万维的向量,但是通常编码器我们会设得很小,比如说 10、100 这样的量级,所以这个这边会有一个特别窄的部分,本来输入是很宽的,输出也是很 宽的,但是中间特别窄,因此这一段就叫做瓶颈。而编码器做的事情,是把本来很高维度的东 西,转成低维度的东西,把高维度的东西转成低维度的东西又叫做降维。                

相关文章:

自编码器(一)

其实自编码器也可以算是自监督学习的一环,因 此我们可以再简单回顾一下自监督学习的框架。如图1.1所示,首先你有大量的没有标注的 数据,用这些没有标注的数据,你可以去训练一个模型,你必须设计一些不需要标注数据的 任…...

Spring Cloud(Kilburn 2022.0.2版本)系列教程(五) 服务网关(SpringCloud Gateway)

Spring Cloud(Kilburn 2022.0.2版本)系列教程(五) 服务网关(SpringCloud Gateway) 一、服务网关 1.1 什么是网关 在微服务架构中,服务网关是一个至关重要的组件。它作为系统的入口,负责接收客户端的请求,并将这些请求路由到相应的后端服务…...

40分钟学 Go 语言高并发:Go程序性能优化方法论

Go程序性能优化方法论 一、性能指标概述 指标类型关键指标重要程度优化目标CPU相关CPU使用率、线程数、上下文切换⭐⭐⭐⭐⭐降低CPU使用率,减少上下文切换内存相关内存使用量、GC频率、对象分配⭐⭐⭐⭐⭐减少内存分配,优化GC延迟指标响应时间、处理延…...

一文解析Kettle开源ETL工具!

ETL(Extract, Transform, Load)工具是用于数据抽取、转换和加载的软件工具,用于支持数据仓库和数据集成过程。Kettle作为传统的ETL工具备受用户推崇。本文就来详细说下Kettle。 一、Kettle是什么? Kettle 是一款开源的 ETL&#x…...

Tomcat新手成长之路:安装部署优化全解析(上)

文章目录 1.Tomcat简介2.Tomcat原理架构2.1.总体架构2.2.连接器2.2.1.具体功能2.2.2.IO模型2.2.3.逻辑处理流程2.2.4.内部处理流程 2.3.容器2.4.启动过程2.5.请求过程 3.Tomcat适用场景4.Tomcat与其他Web容器对比5.Tomcat安装和启动5.1.Java环境变量5.2.系统服务5.3.启动关闭 6…...

跟我学C++中级篇——通信的数据的传递形式

一、通信的数据传递 在开发程序中,无可避免的会进行数据的传递。这种传递方式有很多种,字节流、消息、Json、参数以及对象甚至可能的方法。那么在传递这些数据时,如何正确的采用更合适的方法,就成为了一个设计的首选的问题。 二…...

C语言 qsort及应用

qsort及应用 qsort:快速排序函数,需要引用stdlib.h文件. void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )(const void *, const void *) ); 参数: base:需要排序的数组 num:数据个数(数组长度) width:每个数据的字节数(sizeof(数据类型)) compa…...

【C语言】连接陷阱探秘(4):检查外部类型

目录 一、外部类型概述 1.1. 外部类型的重要性 1.2. 外部类型在C语言中的使用 1.3. 注意事项 二、常见的外部类型陷阱 2.1. 结构体和联合体的大小不匹配 2.1.1. 示例代码 2.1.2. 正确的做法 2.2. 枚举类型的值不匹配 2.3. 函数签名不一致 2.3.1. 函数签名不一致的问…...

打造双层环形图:基础与高级渐变效果的应用

在数据可视化领域,环形图因其独特的展示方式而广受欢迎。今天,我们将通过ECharts库来创建一个具有双层渐变效果的高级环形图。本文将详细介绍如何实现这种视觉效果。 1. 环形图基础 首先,我们需要了解环形图的基本构成。环形图由内外两个圆…...

【Git】Git 完全指南:从入门到精通

Git 完全指南:从入门到精通 Git 是现代软件开发中最重要的版本控制工具之一,它帮助开发者高效地管理项目,支持分布式协作和版本控制。无论是个人项目还是团队开发,Git 都能提供强大的功能来跟踪、管理代码变更,并保障…...

【mac】mac自动定时开关机和其他常用命令,管理电源设置的工具pmset

一、操作步骤 1、打开终端 2、pmset 是用于管理电源设置的强大工具,我们将使用这个命令 (1)查询当前任务 pmset -g sched查看到我当前的设置是 唤醒电源开启在 工作日的每天早上8点半 上班时不用手动开机了 (2)删…...

【Leecode】Leecode刷题之路第62天之不同路径

题目出处 62-不同路径-题目出处 题目描述 个人解法 思路: todo代码示例:(Java) todo复杂度分析 todo官方解法 62-不同路径-官方解法 方法1:动态规划 思路: 代码示例:(Java&…...

基于深度学习的手势识别算法

基于深度学习的手势识别算法 概述算法原理核心逻辑效果演示使用方式参考文献 概述 本文基于论文 [Simple Baselines for Human Pose Estimation and Tracking[1]](ECCV 2018 Open Access Repository (thecvf.com)) 实现手部姿态估计。 手部姿态估计是从图像或视频帧集中找到手…...

helm部署golang服务

Helm 是 Kubernetes 的一个包管理工具,类似于 Linux 中的 apt 或 yum。它使得在 Kubernetes 上部署和管理应用程序变得更加简单和高效。 安装 https://get.helm.sh/helm-v3.16.3-linux-amd64.tar.gz具体版本号可以在github上看到最新的版本号,然后替换上面链接来获取。gith…...

DreamCamera2相机预览变形的处理

最近遇到一个问题,相机更换了摄像头后,发现人像角度顺时针旋转了90度,待人像角度正常后,发现 预览时图像有挤压变形,最终解决。在此记录 一人像角度的修改 先放示意图 设备预览人像角度如图1所示,顺时针旋…...

Mysql误删表中数据与误删表的恢复方法

查看数据库是否开启binlog日志 mysql> show variables like %log_bin%; ------------------------------------------------------------------------ | Variable_name | Value | ------------------------------------…...

lapack、blas、solver库的区别和联系

LAPACK、BLAS、Solver 库 是数值计算领域的重要组成部分,它们各自的功能和设计目标有所不同,但也存在密切的联系。 1. 概述 库主要功能设计目标BLAS提供基础的线性代数操作,如向量运算、矩阵-向量乘法、矩阵-矩阵乘法等。提供高度优化的基础线性代数操作,作为更高级库的底层…...

deepin 安装 chrome 浏览器

deepin 安装 chrome 浏览器 最近好多小伙伴儿和我说 deepin 无法安装最新的谷歌浏览器 其实是因为最新的 谷歌浏览器 其中的一个依赖需要提前安装 提前安装依赖然后再安装谷歌浏览器就可以了 安装 fonts-liberationsudo apt -y install fonts-liberation安装 chrome 浏览器sudo…...

永久免费的PDF万能水印删除工具

永久免费的PDF万能水印删除工具 1.简介 PDF万能水印删除工具,可以去除99.9%的PDF水印。例如:XObject水印(含图片水印)、文本水印、绘图水印/曲线水印、注释水印、工件水印、剪切路径水印等等。本软件是永久免费,无有…...

Linux网络——NAT/代理服务器

一.NAT技术 1.NAT IP转换 之前我们讨论了, IPv4 协议中, IP 地址数量不充足的问题,NAT 技术就是当前解决 IP 地址不够用的主要手段, 是路由器的一个重要功能。 NAT 能够将私有 IP 对外通信时转为全局 IP. 也就是一种将私有 IP 和全局IP 相互转化的技术方法: 很…...

大米中的虫子检测-检测储藏的大米中是否有虫子 支持YOLO,VOC,COCO格式标注,4070张图片的数据集

大米中的虫子检测-检测储藏的大米中是否有虫子 支持YOLO,VOC,COCO格式标注,4070张图片的数据集 数据集分割 4070总图像数 训练组 87% 3551图片 有效集 9% 362图片 测试集 4% 157图片 预处理 自动定向…...

基于Java的小程序电商商城开源设计源码

近年来电商模式的发展越来越成熟,基于 Java 开发的小程序电商商城开源源码,为众多开发者和企业提供了构建个性化电商平台的有力工具。 基于Java的电子商城购物平台小程序的设计在手机上运行,可以实现管理员;首页、个人中心、用户…...

node.js基础学习-fs模块-文件操作(六)

一、前言 fs模块是 Node.js 内置的文件系统(File System)模块,它提供了一系列用于与文件系统进行交互的方法。通过fs模块,可以对文件或目录进行读取、写入、删除、重命名、查询状态等操作,这使得 Node.js 能够很好地处…...

设计模式:11、迭代器模式(游标)

目录 0、定义 1、迭代器模式的四种角色 2、迭代器模式的UML类图 3、示例代码 4、迭代器的next()方法与集合的get(int index)方法的效率对比(LinkedList为例) 0、定义 提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象…...

Oracle SCN与时间戳的映射关系

目录 一、基本概述 二、相关操作 三、参考文档 一、基本概述 Oracle 数据库中的 SYS.SMON_SCN_TIME 表是一个关键的内部表,主要用于记录过去时间段中SCN与具体的时间戳之间的映射关系。这种映射关系可以帮助用户将 SCN 值转换为可读性更强的时间戳,从而…...

【广告投放系统】头条可视化投放平台vue3+element-plus+vite落地历程和心得体会

前言 hallo,又是许久未见,昨天也是正式把公司内部的广告投放平台暂时落地,我也即将离开待了两年多的地方。言归正传,由于头条广告后台的升级改版,因此为了满足内部投放需求,做了一个可视化的投放平台&…...

Gazebo插件相机传感器(可订阅/camera/image_raw话题)

在仿真环境中使用相机传感器,通常需要结合Gazebo插件来实现。Gazebo是一个功能强大的机器人仿真工具,支持多种传感器模型,包括相机。下面是如何在Gazebo中使用相机传感器的详细步骤。 1. 修改Xacro文件以包含Gazebo插件 首先,修…...

华三(HCL)和华为(eNSP)模拟器共存安装手册

接上章叙述,解决同一台PC上同时部署华三(HCL)和华为(eNSP)模拟器。原因就是华三HCL 的老版本如v2及以下使用VirtualBox v5版本,可以直接和eNSP兼容Oracle VirtualBox,而其他版本均使用Oracle VirtualBox v6以上的版本,…...

信息学奥赛一本通 1448:【例题1】电路维修 | 洛谷 P4667 [BalticOI 2011 Day1] Switch the Lamp On 电路维修

【题目链接】 ybt 1448:【例题1】电路维修 洛谷 P4667 [BalticOI 2011 Day1] Switch the Lamp On 电路维修 【题目考点】 1. 双端队列广搜(0-1BFS) 【解题思路】 整个电路是由一个个的正方形的电路元件组成,每个正方形有四个…...

k8s删除网络组件错误

k8s集群删除calico网络组件重新部署flannel网络组件,再部署pod后出现报错不能分配ip地址 plugin type"calico" failed (add): error getting ClusterInformation: connection is unauthorized: Unauthorized 出现该问题是因为删除网络组件后,网…...

网站建设要学哪些软件有哪些内容/百度地图疫情实时动态

本篇文章是我学习UE4的笔记 学习地址如下 本文出现的英语单词: Spawn 生成 添加淡入淡出效果 一个是在小球的蓝图类里面,添加游戏开始的淡入效果 一个是在失败的蓝图类里添加一个淡出效果 具体的蓝图类如下图所示 主要是要先获取到camera palyer 就是目前的摄像机. 然…...

个人网站备案描述/今天的三个新闻

线程Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元。更多方法:start 线程准备就绪,等待CPU调度setName 为线程设置名称getName 获取线程名称setDaemon 设置为后台线程或前台线程(默认&…...

嘉兴优化网站哪家好/如何提高网站搜索排名

复习Python的第三十九天 习题 44 : 给你的游戏打分 从现在开始你要学会“自给自足”,以前是我牵着你前行,以后就得靠你自己了。 一开始你会觉得很困难并且很不习惯,但只要坚持下去,你就会培养出自己解决问题的能力。 你还会找出…...

wordpress屏蔽右键f12/cpu优化软件

前段时间花时间看了大半的《High Performance JavaScript》这本书啊,然后就开始忙项目了,庆幸最忙的一周已经熬过去了。由于空不出时间,这个月写的学习笔记也不多,忙完最苦X的一周,这两天晚上也算是挑灯夜读了…终于是…...

动漫wordpress主题下载/个人网站该怎么打广告

1.学习目标 (1)每个周按时完成老师布置的任务。 (2)认真听老师讲课,不懂的私下要做功课。 (3)老师留的问题,下来认真思考。 2.关于企业级应用和互联网应用的差别: &#…...

电镀加工技术支持 东莞网站建设/在线观看的seo综合查询

2013-08-02 14:06 9826人阅读 评论(2) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载。 总结一下java 时间戳和PHP时间戳 的转换问题: 由于精度不同,导致长度不一致,直接转换错误。 JAVA时间戳长度…...