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 条件变分自编码神经网络的原理

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

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

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

    1 对抗神经简介 1.1 对抗神经网络的基本组成 1.1.1 基本构成 对抗神经网络(即生成式对抗网络,GAN)一般由两个模型组成: 生成器模型(generator):用于合成与真实样本相差无几的模拟 ...

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

    图神经网络(Graph Neural Network,GNN)是一类能够从图结构数据中学习特征规律的神经网络,是解决图结构数据(非欧氏空间数据)机器学习问题的最重要的技术. 1 图神经网络的基础知识 ...

  3. 【Pytorch神经网络理论篇】 13 深层卷积神经网络介绍+池化操作+深层卷积神经网络实战

    1 深层卷积神经网络概述 1.1 深层卷积神经网络模型结构图 1.1.1 深层卷积神经网络的正向结构构成剖析 输入层,将每个像素作为一个特征节点输入网络. 卷积层:由多个滤波器组合而成. 池化层:将卷 ...

  4. 【Pytorch神经网络理论篇】 07 激活函数+Sigmoid+tanh+ReLU+Swish+Mish+GELU

    ①激活函数:主要通过加入非线性因素,你不线性模型表达能力不足的缺陷,因为神经网络中的数学基础是处处可微分的函数,故要求激活函数也应该保证数据的输入与输出是可微分. ②激活函数可以分为饱和激活函数与不饱 ...

  5. 【Pytorch神经网络理论篇】 20 神经网络中的注意力机制

    注意力机制可以使神经网络忽略不重要的特征向量,而重点计算有用的特征向量.在抛去无用特征对拟合结果于扰的同时,又提升了运算速度. 1 注意力机制 所谓Attention机制,便是聚焦于局部信息的机制,比 ...

  6. 【Pytorch神经网络理论篇】 27 图神经网络DGL库:简介+安装+卸载+数据集+PYG库+NetWorkx库

    DGL库是由纽约大学和亚马逊联手推出的图神经网络框架,支持对异构图的处理,开源相关异构图神经网络的代码,在GCMC.RGCN等业内知名的模型实现上也取得了很好的效果. 1 DGL库 1.1 DGL库的 ...

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

    1 散度在无监督学习中的应用 在神经网络的损失计算中,最大化和最小化两个数据分布间散度的方法,已经成为无监督模型中有效的训练方法之一. 在无监督模型训练中,不但可以使用K散度JS散度,而且可以使用其他 ...

  8. 【Pytorch神经网络理论篇】 19 循环神经网络训练语言模型:语言模型概述+NLP多项式概述

    1 语言模型 循环神经网络模型可以对序列片段进行学习,找到样本间的顺序特征.这个特性非常适合运用在语言处理方向. 1.1 语言模型简介 语言模型包括文法语言模型和统计语言模型,一般指统计语言模型. 1 ...

  9. 【Pytorch神经网络理论篇】 12 卷积神经网络实现+卷积计算的图解

    1 卷积神经网络接口 1.1 卷积接口介绍 torch.nn.functional.conv1d:实现按照1个维度进行的卷积操作,常用于处理序列数据. torch.nn.functional.conv ...

最新文章

  1. 基于Struct的云和租房系统(简单房屋出租)
  2. hdu3001(三进制状压)
  3. 【Paper】论文中定义、定理、引理、证明分别的含义
  4. 转:3d max 2013 安装教程,凭着一种互联网精神提供给广大朋友
  5. 搜索---广度优先遍历、深度优先遍历、回溯法
  6. 相关插件在项目中使用参考
  7. 【字符串全排列】LeetCode 567. Permutation in String
  8. [杂谈]逗比的语录?
  9. 今日头条 Android ‘秒‘ 级编译速度优化
  10. 用计算机控制人造卫星和导弹发射,用计算机控制人造卫星和导弹的发射,按计算机应用的分类,它应属于什么...
  11. python画大对勾_多种方法告诉你!Word如何在方框中打对勾√和叉叉×
  12. 鲍春健:从“走进客户”奔向“成为客户”
  13. RK3399 Android7.1如何查看屏幕分辨率
  14. 每日新闻早报简报 资讯12条 新闻早知道
  15. 小豹子带你看源码:Java 线程池(二)实例化
  16. java lodop打印_[Java教程]LODOP打印插件
  17. 如何编写Java单元测试(TC)?
  18. 字节跳动终面:35K,18薪,什么时候能入职?
  19. Android drawable快速实现竖向ProgressBar
  20. sheel脚本 centos7环境 自动安装 zeppelin

热门文章

  1. Android应用开发—RecyclerView绘制蒙层
  2. 先来先服务算法的特点
  3. TensorFolw 报错
  4. Linux 监控命令之 netstat
  5. 清华大学《操作系统》(二十):死锁和进程通信
  6. 【机器学习】opencv-人脸识别
  7. Hive报错:Error: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000)
  8. Linux: shell命令 eval (有图有代码有真相!!!)
  9. mysql操作常用技巧
  10. 软件架构阅读笔记(引)