热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

Pytorch神经网络实战学习笔记_29无监督学习模型(一):自编码神经网络+变分自编码神经网络+条件变分自编码神经网络

1无监督学习模型的概述在监督训练中,模型能根据预测结果与标签差值来计算损失,并向损失最小的方向进行收敛。在无监督训练中,无法通过样本标签为模型权重指定收敛方向,这就要求模型必须有自
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 条件变分自编码神经网络的原理

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


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
  • 读手语图像识别论文笔记2
    文章目录一、前言二、笔记1.名词解释2.流程分析上一篇快速门:读手语图像识别论文笔记1(手语识别背景和方法)一、前言一句:“做完了&#x ... [详细]
  • cs231n Lecture 3 线性分类笔记(一)
    内容列表线性分类器简介线性评分函数阐明线性分类器损失函数多类SVMSoftmax分类器SVM和Softmax的比较基于Web的可交互线性分类器原型小结注:中文翻译 ... [详细]
  • OCR:用字符识别方法将形状翻译成计算机文字的过程Matlab:商业数学软件;CUDA:CUDA™是一种由NVIDIA推 ... [详细]
author-avatar
丹丹2502857623
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有