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

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

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


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


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


CSDN独家 | 全网首发 | Pytorch深度学习·理论篇(2023版)目录


本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲解与分析,通过将深度学习知识与Pytorch的高效结合,帮助各位新入门的读者理解深度学习各个模板之间的关系,这些均是在Pytorch上实现的,可以有效的结合当前各位研究生的研究方向,设计人工智能的各个领域,是经过一年时间打磨的精品专栏!

https://v9999.blog.csdn.net/article/details/127587345

欢迎大家订阅(2023版)理论篇

以下为2021版原文~~~~


7f78657665ea42c4bba1b6255c51a379.png


1 无监督学习模型的概述


在监督训练中,模型能根据预测结果与标签差值来计算损失,并向损失最小的方向进行收敛。


在无监督训练中,无法通过样本标签为模型权重指定收敛方向,这就要求模型必须有自我监督的功能。


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


比较典型的两个神经网络是自编码神经网络和对抗神经网络:


①自编码神经网络:把数据当作标签来指定收敛方向。


②对抗神经网络:一般会使用两个或多个子模型同时进行训练,利用多个模型之间的关系来达到互相监督的效果。


2 自编码神经网络


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


0c1c4cd7220640dd9a8600ec0e9b1927.png


2.1 自编码神经网络的结构


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


b110adaa8691461fb853166a756b1b20.png


  • 从输入层高维特征样本到低维特征的过程称为编码,经网络称为编码器;


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


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


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


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


d2540dd9cba647f5bd86667b62df032a.png


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


在训练过程中,用真始的输入数据与重构的解码数据一起执行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 条件变分自编码神经网络的原理


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

目录
相关文章
|
1月前
|
机器学习/深度学习 数据可视化 算法
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
神经常微分方程(Neural ODEs)是深度学习领域的创新模型,将神经网络的离散变换扩展为连续时间动力系统。本文基于Torchdyn库介绍Neural ODE的实现与训练方法,涵盖数据集构建、模型构建、基于PyTorch Lightning的训练及实验结果可视化等内容。Torchdyn支持多种数值求解算法和高级特性,适用于生成模型、时间序列分析等领域。
194 77
PyTorch生态系统中的连续深度学习:使用Torchdyn实现连续时间神经网络
|
25天前
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
143 62
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
|
2月前
|
机器学习/深度学习 搜索推荐 PyTorch
基于昇腾用PyTorch实现传统CTR模型WideDeep网络
本文介绍了如何在昇腾平台上使用PyTorch实现经典的WideDeep网络模型,以处理推荐系统中的点击率(CTR)预测问题。
210 66
|
1月前
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
72 9
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
|
2月前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
323 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
|
3月前
|
机器学习/深度学习 算法 PyTorch
基于Pytorch Gemotric在昇腾上实现GraphSage图神经网络
本文详细介绍了如何在昇腾平台上使用PyTorch实现GraphSage算法,在CiteSeer数据集上进行图神经网络的分类训练。内容涵盖GraphSage的创新点、算法原理、网络架构及实战代码分析,通过采样和聚合方法高效处理大规模图数据。实验结果显示,模型在CiteSeer数据集上的分类准确率达到66.5%。
|
4月前
|
机器学习/深度学习 运维 安全
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
金融交易网络与蛋白质结构的共同特点是它们无法通过简单的欧几里得空间模型来准确描述,而是需要复杂的图结构来捕捉实体间的交互模式。传统深度学习方法在处理这类数据时效果不佳,图神经网络(GNNs)因此成为解决此类问题的关键技术。GNNs通过消息传递机制,能有效提取图结构中的深层特征,适用于欺诈检测和蛋白质功能预测等复杂网络建模任务。
160 2
图神经网络在欺诈检测与蛋白质功能预测中的应用概述
|
3月前
|
机器学习/深度学习 Serverless 索引
分类网络中one-hot编码的作用
在分类任务中,使用神经网络时,通常需要将类别标签转换为一种合适的输入格式。这时候,one-hot编码(one-hot encoding)是一种常见且有效的方法。one-hot编码将类别标签表示为向量形式,其中只有一个元素为1,其他元素为0。
92 2
|
4月前
|
SQL 存储 安全
网络安全与信息安全概述####
本文探讨了网络安全(Cybersecurity)和信息安全(Information Security)的基本概念及其差异,重点介绍了网络安全漏洞、加密技术及安全意识在信息保护中的重要性。本文旨在通过深入分析这些关键技术和策略,提升对信息安全整体性的理解,帮助读者在数字化时代更好地应对信息安全挑战。 ####
|
5月前
|
机器学习/深度学习 存储 自然语言处理
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)

热门文章

最新文章