pytorch-AutoEncoders

news2024/12/30 3:15:03

目录

  • 1. 监督学习&无监督学习
    • 1.1 监督学习
    • 1.2 无监督学习
    • 1.3 为什么需要无监督学习
  • 2. AutoEncoders
  • 3. Auto Encoders loss function
  • 4. PCA VS Auto Encoders
  • 5. Auto Encoders的变种
    • 5.1 Denoising Auto Encoders
    • 5.2 Dropout AutoEncoders
    • 5.3 Adversarial AutoEncoders
    • 5.4 Variational Auto Encoder

1. 监督学习&无监督学习

1.1 监督学习

分类和回归都属于监督学习,即数据集需要人的参与,比如:数据标定、分类,因此受人的主观影响较大。
在这里插入图片描述

1.2 无监督学习

下图展示了三大机器学习方向的数据量,增强学习最少,其次是监督学习,大部分数据是无标注无监督学习
在这里插入图片描述

1.3 为什么需要无监督学习

  • 降维
  • 预处理
    比如:把224x224的数据降维为64x64
  • 可视化
    降维后,进行数据可视化
    https://projector.tensorflow.org/
  • 从无监督数据中发现数据的分布、形态,方便后续train
  • 压缩、去噪、超分辨率

2. AutoEncoders

auto encoder 就是重建自己,它的输入和输出维度相同,如下图:输入和输出都是784,中间都是隐藏层,过程分三步,encoder、code和decode,decode是encode的反过程。code可以看作数据暂存,可升维也可降维,下图处理手写数字识别图片,code降到了2维
在这里插入图片描述

3. Auto Encoders loss function

如下图:MSE和cross Entropy loss函数也是适合auto encoder的
cross Entropy用于binary 0,1输入。
在这里插入图片描述

4. PCA VS Auto Encoders

大部分数据是非线性的,PCA 属于线性变化,而Auto Encoders得意于神经网络的非线性,因此效果要比PCA更好。
如下图:
在这里插入图片描述

5. Auto Encoders的变种

5.1 Denoising Auto Encoders

为了防止像素级重建时,网络记住像素值,通常会在样本数据中增加一些噪声,这样才能记住更高级别的特征。
如下图:可以看出加了噪声后,重建后的效果还是不错的。
在这里插入图片描述

5.2 Dropout AutoEncoders

drop是在train的时候,删除掉一些网络连接,以防止over fitting,而在测试的时候又恢复全部网络连接。
如下图:
绿色柱状图标识dropout与loss之间的关系,蓝色标识dropout与accuracy之间的关系,可以看出dropout为0时,全连接loss最小,但是accuracy却不是最大的,说明可能出现了over fitting,dropout=0.2时,accuracy最大,说明dropout在一定程度上防止overfitting
在这里插入图片描述

5.3 Adversarial AutoEncoders

AutoEncoders的hidden code数据存在类似下图的一种分布,随着epoch的增加数据越靠近下方,而这种分布并不符合常见的分布形态,所以人为希望均值=0,方差为某个值,使得在生成时,h从[-1,1]属于某种分布,为了解决这个问题,Adversarial 加入一个discriminator网络用来验证真实的z分布是否与z`一致,如果相差不大输出一个real,否则输出一个Fake

在这里插入图片描述

在这里插入图片描述

5.4 Variational Auto Encoder

VAE = Variational Auto Encoder,变分自编码器。是一种常见的生成模型,属于无监督学习的范畴。它能够学习一个函数/模型,使得输出数据的分布尽可能的逼近原始数据分布,其基本思路是:把一堆真实样本通过编码器网络变换成一个理想的数据分布,然后这个数据分布再传递给一个解码器网络,得到一堆生成样本,生成样本与真实样本足够接近的话,就训练出了一个VAE模型.

下图中的公式,前半部分计算的是重建误差,可以理解为MSE或者是Cross Entropy,而后半部分KL是散度的公式,主要是计算q分布与p分布的相似度。
那么公式的目标就是重建误差越小越好,q和p的分布越接近越好。
在这里插入图片描述

下图中1表示pq两种分布,2表示两种分布的重叠程度,重叠度越高,值越低,3表示的KL值,同样是两种分布越接近值越小,反之越大。
在这里插入图片描述
下图是计算重建误差max likelihood 公式的两个常用方法,MSE和cross Entropy
在这里插入图片描述
计算KL的公式
在这里插入图片描述
在这里插入图片描述
下图表示VAE的一个过程,AE过程是输入x->h->x值一一对应;VAE是输入->N分布->x,也就说值不是一一对应的了,所以需要在N分布中sample出一个值,变为x->h->x`一一对应。
那么有一个问题是sample操作不可微,所以有个小技巧就是将N(μ,σ 2 ^2 2)分布表达为
在这里插入图片描述在这里插入图片描述
使得μ和σ即变得可导,又保留了原来的分布特性,因为不关心ε ,从而忽略掉ε
在这里插入图片描述
在这里插入图片描述
VAE网络,隐藏层是一个分布,z值从分布中sample得到
在这里插入图片描述
AE与VAE的对比,发现VAE还是要好一些
在这里插入图片描述

生成模型
VAE学习的是分布,通过从q(h)分布sample不同的h值,就可以做生成模型
在这里插入图片描述
下图是通过VAE和GAN生成的二次元图像
在这里插入图片描述

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

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

相关文章

使用 Python构建 Windows 进程管理器应用程序

在这篇博客中,我们将探讨如何使用 wxPython 构建一个简单的 Windows 进程管理器应用程序。这个应用程序允许用户列出当前系统上的所有进程,选择和终止进程,并将特定进程保存到文件中以供将来加载。 C:\pythoncode\new\manageprocess.py 全部…

打击盗版,禁止盗版软件联网!电脑下载了不安全的“软件”,怎么禁止它联网?这三种方法最常用!

数字化时代,盗版软件的泛滥不仅侵犯了软件开发者的知识产权,还严重威胁到用户的网络安全和数据安全。当不慎在电脑上下载了不安全的盗版软件时,如何有效地禁止其联网,成为保护个人或企业信息、系统安全的重要一环。 本文将为您介…

Qt框架学习04——元对象系统

元对象系统) 1. RTTI 概念2. 元对象系统2.1 元对象的概念2. 2 使用元对象系统获取类信息 总结: 1. RTTI 概念 Runtime Type Identification运行时类型识别typeid() 2. 元对象系统 2.1 元对象的概念 用来记录类的原始信息的对象称之为元对象用于继承于…

LLMs之Leaderboard:Gorilla的简介、安装和使用方法、案例应用之详细攻略

LLMs之Leaderboard:Gorilla的简介、安装和使用方法、案例应用之详细攻略 导读:2023 年5月 24 日,UC伯克利等发布Gorilla。该工作针对LLM有效调用API工具的问题,提出了一种检索式微调语言模型的新方法Gorilla,并构建了相…

WPF篇(15)-Expander折叠控件+MediaElement媒体播放器

Expander折叠控件 Expander也是一个内容控件,它有一个标题属性和内容属性。 Expander类的定义 public class Expander : HeaderedContentControl {public static readonly DependencyProperty ExpandDirectionProperty;public static readonly DependencyPropert…

3D DRAM 集成 AI 处理:一项可能取代现有 HBM 的新技术

NEO 半导体公司,一家专注于 3D DRAM 和 3D NAND 内存的公司,最近推出了其最新的 3D X-AI 芯片技术,这项技术有可能取代目前在 AI GPU 加速器中使用的高带宽内存 (HBM)。 据报道,这款 3D DRAM 集成了 AI 处理能力,能够在…

AI预测福彩3D采取888=3策略+和值012路或胆码测试8月17日新模型预测第59弹

经过近60期的测试,当然有很多彩友也一直在观察我每天发的预测结果,得到了一个非常有价值的信息,那就是9码定位的命中率非常高,58期一共只错了5次,这给喜欢打私房菜的朋友提供了极高价值的预测结果~当然了,大…

【SQL】科目种类

目录 题目 分析 代码 题目 表: Teacher ------------------- | Column Name | Type | ------------------- | teacher_id | int | | subject_id | int | | dept_id | int | ------------------- 在 SQL 中,(subject_id, dept_id) 是该表的主键。 该表…

PIP-INTEL:一款多功能OSINT开源情报与数据收集工具

关于PIP-INTEL PIP-INTEL是一款功能强大的工具,专为 OSINT(开源情报)和网络情报收集活动而设计。它将各种开源工具整合到一个用户友好的界面中,简化了研究人员和网络安全专业人员的数据收集和分析流程。 功能特性 PIP-INTEL利用…

【Python】高效的Web自动化测试利器—Python+Playwright快速上手自动化实战指南(限时开放)

文章目录 前言一.playwright是什么二.python引入playwright1.安装2.playwright命令行参数3.playwright codegen自动生成代码4.Chrome和Chromium有什么关系? 三.基本概念1. 无头浏览器(Headless Browser)2.同步和异步模式操作playwright2.1.同…

Java流程控制03:Switch选择结构

视频链接:Java流程控制05:Switch选择结构_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV12J41137hu?p37&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 Java 中的 switch 选择结构是一种控制流程语句,它允许程序根据一个变量…

JVM动态字节码注入工具-Byteman

Byteman是一个字节码操作工具,它使得在加载时或在应用程序运行时更改Java应用程序的操作变得简单。它无需重写或重新编译原始程序即可工作。实际上,Byteman甚至可以用来修改Java代码,这些代码构成了Java虚拟机的一部分,比如String…

商用自动油炸机流水线 鸡米花油炸设备的优势;

油炸机的优势主要包括操作简单、一机多用、油水分离、大容量油缸、过滤残渣设置、自动出料设置、智能控制面板、材质优良。 操作简单‌:油炸机操作简单,可单人操作,保证了操作人员的身体健康,无油烟,减少了厨房的污染。…

TinyWebserver的复现与改进(6):定时器处理非活动连接

如果客户端长时间没有动作,会占用了许多连接资源,严重影响服务器的性能。因此需要通过实现一个服务器定时器,处理这种非活跃连接,释放连接资源。 定时器处理流程 SIGALARM触发:整个流程开始于一个 SIGALARM 信号&…

Golang基于DTM的分布式事务TCC实战

Golang基于DTM的分布式事务SAGA实战-CSDN博客 源代码:https://github.com/Ssummer520/dtm-gin 代码在宿主机运行 docker network:bridge docker安装,安装成功后可以访问http://localhost:36789/ 打开dtm事务web-ui docker run -itd --name dtm -p 36789:36789 -p…

阿布吞的基础使用——Ubuntu

Ubuntu是Linux系统的发行版,Linux操作系统中比较流行的一个版本,广泛用于个人电脑、服务器和嵌入式设备。今天来简单讲解一下Ubuntu的基础使用。 1. 桌面环境 登录:安装完成后,启动计算机,输入用户名和密码登录到 Ub…

基于springboot的车辆违章信息管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

【CMake】学习笔记1

文章目录 1. CMake概述2. 编写一个简单的CMakeLists.txt2.1注释2.1.1 注释行2.1.2 块注释 2.1 只有源文件 3. CMake中set使用set 基本使用set指定使用C标准set指定输出路径 4. 搜索文件 1. CMake概述 CMake 是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟…

【安全与管理并重】揭秘公司老板如何平衡信任与效率,利用非授权监控软件优化管理!

企业面临着前所未有的竞争压力,同时还需要确保内部管理的有效性和数据的安全性。如何在信任与效率之间找到平衡点,成为了许多公司老板关注的重点。安企神软件作为一款集数据防泄密、行为监控与流程化管理于一体的综合性解决方案,为企业提供了…

SpringCloud集成XXL-JOB定时任务

项目场景: XXL-JOB是一个分布式任务调度平台,它能够帮助开发者轻松地实现任务的定时执行、任务调度和任务管理 接入步骤 下载XXL-JOB压缩包 链接: xxl-job XXL-JOB做为子模块 将压缩包解压,项目二级新建目录xxl-job,放入目录…