【Pytorch神经网络理论篇】 22 自编码神经网络:概述+变分+条件变分自编码神经网络

同学你好!本文章于2021年末编写,获得广泛的好评!

故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现,

Pytorch深度学习·理论篇(2023版)目录地址为:

CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲解与分析,通过将深度学习知识与Pytorch的高效结合,帮助各位新入门的读者理解深度学习各个模板之间的关系,这些均是在Pytorch上实现的,可以有效的结合当前各位研究生的研究方向,设计人工智能的各个领域,是经过一年时间打磨的精品专栏!https://v9999.blog.csdn.net/article/details/127587345欢迎大家订阅(2023版)理论篇

以下为2021版原文~~~~

 

1 无监督学习模型的概述

在监督训练中,模型能根据预测结果与标签差值来计算损失,并向损失最小的方向进行收敛。
在无监督训练中,无法通过样本标签为模型权重指定收敛方向,这就要求模型必须有自我监督的功能。

1.1 典型的两个神经网络模型

比较典型的两个神经网络是自编码神经网络和对抗神经网络:
①自编码神经网络:把数据当作标签来指定收敛方向。
②对抗神经网络:一般会使用两个或多个子模型同时进行训练,利用多个模型之间的关系来达到互相监督的效果。

2 自编码神经网络

自编码是一种以重构输入信号为目标的神经网络。无监督学习领域中的一种,可以自动从无标注的数据中学习特征。

2.1 自编码神经网络的结构

自编码由3个神经网络层组成:输入层、隐意层和输出民,其中,输入层的样本也会充当输出层的标签角色,即这个神经网络就是个尽可能复现输入信号的神经网络。

  • 从输入层高维特征样本到低维特征的过程称为编码,经网络称为编码器;
  • 从隐藏层低维特征到高维特征样本的过程称为解码,实现这部分功能的速称为解码器。

2.2 自编码神经网络的计算过程

自编码神经网路本质上是一种输出和输入相等的模型。简单的自编码神经网络结构可以用一个3层的全连接神经网络表示。

2.2.1 简单阐述自编码神经网络的计算

在上图中,输入层与输出层的维度相同,中间层是编码器的输出结果,输出层也可以理解成解码器的输出结果。编码器负责将编入的原始数据编码转换至中间的低维数据,解码器负责将低维度数据解码回原始输入,实现加密解密的过程。

在训练过程中,用真始的输入数据与重构的解码数据一起执行MSE计算,将该计算结果作为损失值来指导模型的收敛方向

自编码神经网络要求输出尽可能等于输入,并且它的隐藏层必须满足一定的稀疏性,通过将隐藏层中后一层比前一层神经元数量少的方式来实现稀疏效果。这相当于的隐藏层对输入进行压缩,并在输出层中解压缩,在整个过程会去失信息,但训练能够使丢失的信息尽量少,最大化地保留其主要特征。

2.3 自编码神经网络的作用与意义

输入的数据在网络模型中会经过一系列特征变换,在输出时还会与输入时一样。虽然这种模型对单个祥本没有意义,但对整体样本集却很有价值。可以很好地学习到该数据集中样本的分布情况,既能将数据集进行压缩,实现提取数据主成分的功熊,又能与数据集的特征拟拟合,实现生成模拟数据的功能。

经过变换过程的中间状态可以输出比原始数据更好的特征描述,这使得自编码有较强的特征学习能力,因此常利用其中间状态的处理结果来进行AI任务的拟合。

2.3.1 自编码与PCA算法

在无监督学习中,常见形式是训练一个编码器将原始数据集编码为一个固定长度的向量,这个向量要保留原始数据尽可能多的重要信息。它通过训练所形成的自动编码器可以捕捉代表输入数据的最主要因素,找到可以代表原信息的主要成分。(如果自编码中的激活函数使用了线性函数,就是PCA模型了。)

2.3.2 自编码与深度学习

编码器的概念在深度学习模型中应用非常广泛,例如,目标识别、语义分割中的骨干网模型,可以理解为一个编码器模型。在分类任务中,输出层之前的网络结构可以理解为一个独立的编码器模型。

2.3.3 自编码神经网络的种类

在基本的自编码之上,又衍生出了一些性能更好的自编码神经网络,例如变分自编码神经网络、条件变分自编码神经网络等。它们的输入和输出不再单纯地着眼于单个样本,而是针对整个样本的分布进行自编码拟合,具有更好的泛化能力。

3 变分自编码神经网络

变分自编码神经网络学习的是样本的规律,该神经网络不但具有重构样本的功能,而且具有仿照样本的功能。

3.1 变分自编码神经网络的解码与编码过程

变分自编码神经网络,在编码过程中改变了样本的分布(变分可理解为改变分布),学习样本的规律就是学习样本的分布。假设我们知道样本的分布函数,就可以从这个函数中随便取出一个样本,然后进行网络解码层前向传导,生成一个新的样本。

3.2 变分自编码神经网络的奥秘

为了得到样本的分布函数,模型的训练目的将是通过增加一个约束项将编码器生成为服从高斯分布的数据集,按照高斯分布均值与方差规则任意取相关的数据,并将该数据输入解码器还原成样本。

4 条件变分自编码神经网络

4.1 变分自编码神经网络的问题

变分自编码神经网络虽然可以生成一个样本,但是只能输出与输入图片相同类别的样本。确切地说,我们并不知道生成的样本属于哪个类别。

4.2 条件变分自编码神经网络的作用

条件变分自编码神经网绛在变分自编码神经网络的基础上进行了优化,可以让模型按照指定的类别生成样本。

4.3 条件变分自编码神经网络的实现

条件变分自编码神经网络在变分自编码神经网络的基础上只进行了一处改动:在训练测试时,加入一个标签向量((one-hot类型)。

4.4 条件变分自编码神经网络的原理

给变分自编码神经网络加了一个条件,让网络学习图片分布时加入了标签因素,这样可以按照标签的数值来生成指定的图片。

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

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

相关文章

【Pytorch神经网络实战案例】13 构建变分自编码神经网络模型生成Fashon-MNST模拟数据

1 变分自编码神经网络生成模拟数据案例说明 变分自编码里面真正的公式只有一个KL散度。 1.1 变分自编码神经网络模型介绍 主要由以下三个部分构成: 1.1.1 编码器 由两层全连接神经网络组成,第一层有784个维度的输入和256个维度的输出;第…

【Pytorch神经网络实战案例】14 构建条件变分自编码神经网络模型生成可控Fashon-MNST模拟数据

1 条件变分自编码神经网络生成模拟数据案例说明 在实际应用中,条件变分自编码神经网络的应用会更为广泛一些,因为它使得模型输出的模拟数据可控,即可以指定模型输出鞋子或者上衣。 1.1 案例描述 在变分自编码神经网络模型的技术上构建条件…

hibernate持久化对象

转载于:https://www.cnblogs.com/jianxin-lilang/p/6440101.html

【Pytorch神经网络理论篇】 23 对抗神经网络:概述流程 + WGAN模型 + WGAN-gp模型 + 条件GAN + WGAN-div + W散度

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

【Pytorch神经网络实战案例】15 WGAN-gp模型生成Fashon-MNST模拟数据

1 WGAN-gp模型生成模拟数据案例说明 使用WGAN-gp模型模拟Fashion-MNIST数据的生成,会使用到WGAN-gp模型、深度卷积GAN(DeepConvolutional GAN,DCGAN)模型、实例归一化技术。 1.1 DCGAN中的全卷积 WGAN-gp模型侧重于GAN模型的训练部分,而DCG…

Android启动过程深入解析

转载自:http://blog.jobbole.com/67931/ 当按下Android设备电源键时究竟发生了什么?Android的启动过程是怎么样的?什么是Linux内核?桌面系统linux内核与Android系统linux内核有什么区别?什么是引导装载程序&#xff1…

【Pytorch神经网络实战案例】16 条件WGAN模型生成可控Fashon-MNST模拟数据

1 条件GAN前置知识 条件GAN也可以使GAN所生成的数据可控,使模型变得实用, 1.1 实验描述 搭建条件GAN模型,实现向模型中输入标签,并使其生成与标签类别对应的模拟数据的功能,基于WGAN-gp模型改造实现带有条件的wGAN-…

Android bootchart(二)

这篇文章讲一下MTK8127开机启动的时间 MTK8127发布版本开机时间大约在20秒左右,如果发现开机时间变长,大部分是因为加上了客户订制的东西,代码累赘太多了。 1、下面看一下MT&#…

Android Camera框架

总体介绍 Android Camera 框架从整体上看是一个 client/service 的架构, 有两个进程: client 进程,可以看成是 AP 端,主要包括 JAVA 代码与一些 native c/c++代码; service 进 程,属于服务端,是 native c/c++代码,主要负责和 linux kernel 中的 camera driver 交互,搜集 li…

【Pytorch神经网络实战案例】17 带W散度的WGAN-div模型生成Fashon-MNST模拟数据

1 WGAN-div 简介 W散度的损失函数GAN-dv模型使用了W散度来替换W距离的计算方式,将原有的真假样本采样操作换为基于分布层面的计算。 2 代码实现 在WGAN-gp的基础上稍加改动来实现,重写损失函数的实现。 2.1 代码实战:引入模块并载入样本-…

【Pytorch神经网络理论篇】 24 神经网络中散度的应用:F散度+f-GAN的实现+互信息神经估计+GAN模型训练技巧

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

【Pytorch神经网络实战案例】18 最大化深度互信信息模型DIM实现搜索最相关与最不相关的图片

图片搜索器分为图片的特征提取和匹配两部分,其中图片的特征提取是关键。将使用一种基于无监督模型的提取特征的方法实现特征提取,即最大化深度互信息(DeepInfoMax,DIM)方法。 1 最大深度互信信息模型DIM简介 在DIM模型…

【Pytorch神经网络实战案例】19 神经网络实现估计互信息的功能

1 案例说明(实现MINE正方法的功能) 定义两组具有不同分布的模拟数据,使用神经网络的MINE的方法计算两个数据分布之间的互信息 2 代码编写 2.1 代码实战:准备样本数据 import torch import torch.nn as nn import torch.nn.fun…

爬虫实战学习笔记_6 网络请求request模块:基本请求方式+设置请求头+获取cookies+模拟登陆+会话请求+验证请求+上传文件+超时异常

1 requests requests是Python中实现HTTP请求的一种方式,requests是第三方模块,该模块在实现HTTP请求时要比urlib、urllib3模块简化很多,操作更加人性化。 2 基本请求方式 由于requests模块为第三方模块,所以在使用requests模块时…

201521123044 《Java程序设计》第01周学习总结

1.本章学习总结 你对于本章知识的学习总结 1.了解了Java的发展史。 2.学习了什么是JVM,区分JRE与JDK,下载JDK。 3.从C语言的.c 到C的 .cpp再到Java的.java,每种语言编译程序各有不同,却有相似之处。 2. 书面作业 **Q1.为什么java程序可以跨平台运行&…

将一个java工程导入到myeclipse应该注意的地方

[原文]http://www.cnblogs.com/ht2411/articles/5471130.html 1. 最好新建一个myeclipse工程,然后从从文件系统导入该工程文件。 原因:很多项目可能是eclipse创建的,或者myeclipse的版本不一致,这样可能导致很多奇怪的现象&#x…

【Pytorch神经网络理论篇】 25 基于谱域图神经网络GNN:基础知识+GNN功能+矩阵基础+图卷积神经网络+拉普拉斯矩阵

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

【Pytorch神经网络基础理论篇】 07 线性回归 + 基础优化算法

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

浅谈命令查询职责分离(CQRS)模式

在常用的三层架构中,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体。在一些业务逻辑简单的系统中可能没有什么问题,但是随着系统逻辑变得复杂,用户增多,这种设计就会出现一些性能问题。…

【Pytorch神经网络实战案例】20 基于Cora数据集实现图卷积神经网络论文分类

1 案例说明(图卷积神经网络) CORA数据集里面含有每一篇论文的关键词以及分类信息,同时还有论文间互相引用的信息。搭建AI模型,对数据集中的论文信息进行分析,根据已有论文的分类特征,从而预测出未知分类的…