【1小时掌握速通深度学习面试8】生成模型-中

目录

28.DBN与DBM 有什么区别?

29.VAE如何控制生成图像的类别?

30.如何修改VAE的损失函数,使得隐藏层的编码是相互解耦的?

31.自回归方法如何应用在生成模型上?

32.原始 VAE存在哪些问题? 有哪些改进方式?

33.如何将VAE与GAN 进行结合?

34.简述IS和FID的原理

35.有哪些问题是属于图像到图像翻译的范畴的? GAN 是如何应用在其中的?


28.DBN与DBM 有什么区别?

DBN是hiton在06年发表在science上的“Reducing the dimensionality of data with neural networks.”这篇文章中提到的方法,具体的细节不做过多阐述, 因为确实很简介,就是简单的叠加RBM,逐层训练后来个最后的fine turn 。方便快捷,而且效果也不错,现在经常用来做一些DNN和CNN的预训练,值得注意的是,hinton在imagenet上的比赛虽然是用的CNN模型,但是就是利用的DBN做的预训练。

重点说下DBM,这是我比较喜欢的一个DL模型。为什么喜欢,因为DBM才是真正的深度RBM模型!

玻尔兹曼机(BM)是一种基于能量的网络(Energy Based Network, EBN)。统计力学中,带有电荷的粒子具有能量,由于电荷间作用力,粒子间会保持一定距离,尽量使得系统整体能量最低。物理学中,能量低意味着稳定。从机器学习的角度,我们只需知道EBN有保持能量最低的趋势即可,玻尔兹曼机也不例外。玻尔兹曼机接受输入,然后尝试识别所有影响这些输入的特征或与这些特征相关的特征。BM通过试图将系统的能量降至最低,来解决上述问题,这是一个生成特征(Generate Features)的无监督学习过程。我们也许可以理解其中一部分生成的特征,但其他的特征仍是个谜。今天深度学习的本质是特征学习,从这一点看,BM过于领先时代了。玻尔兹曼机有个特点--没有输出层!没有输出层的神经网络。意味这什么???

玻尔兹曼机器是没有方向的神经网络!!!

这意味着与ANN,CNN,RNN等你看到过的大部分神经网络不同,BM中信息不会按一定方向流过网络。数据(和能量)在网络中移动,以它喜欢的方式(能量最低)创建代表不同特征的隐藏节点。一旦给BM提供了输入数据,这些数据就会立即被吸收到系统中并成为其中的一部分。 初始化算法后,所有数据和特征被平等对待。我们可以想象BM有多强大,但是因为过于复杂,BM需要非常大的算力支持,而无法Scale。

于是Hinton等人在80年代,提出了受限的玻尔兹曼机(Restricted Boltzmann Machine,RBM),这是一种简化版的BM,禁止同一层的神经相互连接,变的非常简单,大大降低了网络的复杂度。实践证明RBM非常好用,因为它很简单,也经常被作为一个基础的构件应用与其他更为复杂的网络,比如DBN和DBM。

多个RBM堆叠起来,就得到了深度玻尔兹曼机(Deep Boltzmann Machine,DBM)

深度信念网络(Deep Belief Net,DBN)DBM与DBN很类似,都由RBM堆叠而成,但两者存在着本质的差别:整体来看,DBN是有向图(除了最上层的RBM是无向图),DBN巧妙结合了有向图和无向图的生成模型;DBM每相邻的两层都是RBM,是完全的无向图。

DBN由逐层贪心训练得到的RBM叠加起来得到,因为DBN是有向的,所以前层的分布并不依赖于后层,这是由于逐层训练的结果。DBN被用来对深度模型进行预训练,然后再通过反向传播来进行微调(当时算力不够,现在算力强大就一锅炖了),详见Hinton 的论文A fast learning algorithm for deep belief nets(2006)。2012年,他和Alex在ImageNet比赛的冠军算法虽然使用的是CNN,但利用DBN进行了预训练,发明了AlexNet,才引起的工业界的注意,并大力投入,才有了后来深度学习的繁荣。

DBM虽然没有被广泛应用,如果没有记错,在Netflix百万美元大奖冠军模型在推荐系统中应用了DBM,才有了后来的协同过滤,才有了Kaggle,世界上最著名的机器学习比赛平台,后被Google纳入旗下。

RBM,作为一个概率神经网络,当然也可以理解成一个无向图模型,有一点我觉得很重要,那就是连接的无向性,也正是这个性质,才让模型符合了统计力学的各种理论,建立起美妙却虐人的RBM。但是DBN,无疑是一个向计算妥协了的折衷模型。

29.VAE如何控制生成图像的类别?

30.如何修改VAE的损失函数,使得隐藏层的编码是相互解耦的?

Disentangle 的意思是解纠缠,所谓解纠缠,也叫做解耦,就是将原始数据空间中纠缠着的数据变化,变换到一个好的表征空间中,在这个空间中,不同要素的变化是可以彼此分离的。

比如,人脸数据集经过编码器,在潜变量空间Z中,我们就会获得人脸是否微笑、头发颜色、方位角等信息的分离表示,我们把这些分离表示称为Factors。 解纠缠的变量通常包含可解释的语义信息,并且能够反映数据变化中的分离的因子。在生成模型中,我们就可以根据这些分布进行特定的操作,比如改变人脸宽度、添加眼镜等操作。VAE 要做的就是要找到这些隐式的解纠缠变量

31.自回归方法如何应用在生成模型上?

自回归模型(Autoregressive models)

深度神经网络生成算法主要分为三类:

  •     生成对抗网络(Generative Adversarial Network, GAN)
  •     可变自动编码器(Variational Autoencoder, VAE)
  •     自回归模型(Autoregressive models)

32.原始 VAE存在哪些问题? 有哪些改进方式?

VAE 中隐藏层服从高斯分布,AE 中的隐藏层无分布要求训练时,AE 训练得到 Encoder 和 Decoder 模型,而 VAE 除了得到这两个模型,还获得了隐藏层的分布模型(即高斯分布的均值与方差)AE 只能重构输入数据X,而 VAE 可以生成含有输入数据某些特征与参数的新数据。

VAE 与 AE 完全不同,但是从结构上看都含有 Decoder 和 Encoder 过程。VAE 模型比较擅长于生成复杂数据,并且已经被实现并且被应用。我们认为 VAE 模型能够通过隐变量来捕获输入数据中一些隐藏的特征,并且我们利用这些特征生成与输入数据相关但是又不相同的数据,AE 模型只是编码解码,完全不能实现这个功能。

33.如何将VAE与GAN 进行结合?

 VAE视角 : 判别器具有 GAN 的性质, 生成图像更真实, 弥补 VAE 生成图像模糊的缺点。

GAN视角: 需要额外计算 VAE 的重构 loss, 提升了模型的稳定性。

34.简述IS和FID的原理

如何评价GAN网络生成图像的好坏?有两个简单常用的衡量方法,一个是Inception Score(IS),另一个是Frechet Inception Distance(FID)

Inception Score(IS)

评价一个生成模型的好坏,需要从两方面考量:

    生成的图像是否清晰,清晰度高的表示生成图像的质量高;

    生成的图像是否具有多样性,即每个类别生成图像的数目尽可能相等。

35.有哪些问题是属于图像到图像翻译的范畴的? GAN 是如何应用在其中的?

有监督很好理解就是我们训练时采用的训练集是成对图片,Pix2Pix 模型以 GAN 为基础采用端到端架构,其中生成器架构中引入跳连接以便能保留图像潜层结构,其输入是原域图像 x,输出是翻译后的目标域图像 G(x),原域图像和真/伪目标域图像分别结合后作为鉴别器的输入,鉴别器输出分类结果并和生成器产生对抗。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】环形队列实现

目录 前言1. 环形队列概念2. 循环队列实现设计3. 功能实现3.1 定义3.2 初始化3.3 判断队列是否为空3.4 判断队列是否为满3.5 入栈3.6 出栈3.7 获取队头数据3.8 获取队尾数据3.9 销毁 4. 总结5. 完整通过代码 前言 之前我们学习环形链表相关问题,现在我们来看看环形…

抖音爆火的QQ价格评估前端源码

最近抖音很火直播给别人测qq价值多少,这个源码只有前端, 包含激活码验证页,评估页 源码免费下载地址抄笔记 (chaobiji.cn)

流畅的python-学习笔记_符合python风格的对象

对象表示形式 查看对象说明,可以通过__repr__和__str__方法,前者主要用于开发者,后者主要用于用户,这两个方法分别对内置函数repr和str函数提供支持 向量类 备选构造方法 classmethod和staticmethod staticmethod用的不是特别…

力扣每日一练(螺旋矩阵)

54. 螺旋矩阵 - 力扣(LeetCode) 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,…

数据库提权

1.此时实验需要用到的软件: (1)phpStudy该程序包集成最新的ApachePHPMySQL phpMyAdminZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境.该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等.总之学习PHP只需…

STM32——TIMER(定时器)篇

技术笔记! 1. 定时器概述(了解) 1.1 软件定时器原理 使用纯软件(CPU死等)的方式实现定时(延时)功能 缺点:1. 延时不准确 2. CPU死等。 1.2 定时器定时原理 1.…

在Codelab对llama3做Lora Fine tune微调

Unsloth 高效微调大模型的工具,通过Unsloth微调Llama3, Mistral, Gemma 速度提升2-5倍,内存减少70%! Codelab 创建一个jupyter notebook 选择 T4 GPU 安装Fine tune 相关的lib %%capture import torch major_version, minor_version torch…

等保测评—Linux-CentOS标准范例截图

密码输入错误无法登录 用户账户情况包含root、guanli、shenji 查看审计用户权限 身份鉴别: cat /etc/passwd,核查用户名和 UID,是否存在同样的用户名和 UID cat /etc/shadow,查看文件中各用户名状态 , 核查密码一栏为…

day1Qt作业

#include "mywidget.h"MyWidget::MyWidget(QWidget *parent): QWidget(parent) {this->resize(540,415);//窗口大小this->setFixedSize(540,415);//固定窗口大小this->setWindowTitle("QQ");//标题this->setWindowIcon(QIcon("E:\\hqyjap…

获取转转数据,研究完转转请求,tx在算法方面很友好。

本篇文章仅供学习讨论。 文章中涉及到的代码、实例,仅是个人日常学习研究的部分成果。 如有不当,请联系删除。 在研究完阿里的算法以后(其实很难说研究完,还有很多内容没有研究透,只能说暂时告一段落)&…

【CTF Web】XCTF GFSJ0475 get_post Writeup(HTTP协议+GET请求+POST请求)

get_post X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗? 解法 用 Postman 发送一个 GET 请求,提交一个名为a,值为1的变量。 http://61.147.171.105:65402/?a1用 Postman 发送一个 POST 请求,提交一个名为b,值为…

Embeddings原理、使用方法、优缺点、案例以及注意事项

Embeddings是一种将高维数据映射到低维空间的技术,常用于处理自然语言处理(NLP)和计算机视觉(CV)任务。Embeddings可以将复杂的高维数据转换为低维稠密向量,使得数据可以更容易地进行处理和分析。本文将介绍…

国内首发 | CSA大中华区启动《AI安全产业图谱(2024)》调研

在人工智能(AI)技术的快速发展浪潮中,AI安全已成为全球关注的焦点。为应对AI安全带来的挑战,确保AI技术的健康发展,全球范围内的研究机构、企业和技术社区都在积极探索解决方案。 在这一背景下,CSA大中华区…

在2G到4g小区重选过程中,4g频点没有优先级信息,最后UE无法重选到4g,是否正常?

这个确实是老问题了,要翻开GSM 的协议找答案。 GSM cell reselection算法分为cell ranking based和priority based两种方式。cell ranking based 只能从GSM重选到UTRAN;而priority based则可以重选到UTRAN和EUTRA。 根据priority based重选算法的描述&am…

【WP】第一届 “帕鲁杯“ - CTF挑战赛 Web 全解

Web Web-签到 考点:审计py代码 from flask import Flask, request, jsonify import requests from flag import flag # 假设从 flag.py 文件中导入了 flag 函数 app Flask(__name__)app.route(/, methods[GET, POST]) def getinfo():url request.args.get(url)i…

java08基础(值传递和引用传递 类和对象)

目录 一. 值传递和引用传递 1. 值传递 2. 引用传递 二. 面向对象思想 三. 类和对象 1. 类 2. 对象 2.1 使用 2.2 成员变量和局部变量区别 2.3 操作成员方法 2.4 this关键字(初始) 2.5 构造方法 (见java09) 一. 值传递和引用传递 1. 值传递 值传递是指在调用函数时将…

webpack4和webpack5区别1---loader

webpack4处理图片和字体的loader file-loader file-loader的作用是处理webpack中的静态资源文件。File Loader可以将各种类型的文件,如图像、字体、视频等转换为模块并加载到Web应用程序中。它通过import或require语句引入文件资源,并将其放置在输出目…

多链路聚合设备是什么

多链路聚合设备属于通信指挥装备。 乾元通多链路聚合设备,它能够将多个网络链路聚合成一个逻辑链路,以实现高速、稳定、可靠的数据传输。多链路聚合设备的核心技术包括链路聚合、负载均衡、故障切换等,能够智能管理和优化利用不同网络链路&a…

概率论 科普

符号优先级 概率公式中一共有三种符号:分号 ; 、逗号 , 、竖线 | 。 ; 分号代表前后是两类东西,以概率P(x;θ)为例,分号前面是x样本,分号后边是模型参数。分号前的 表示的是这个式子用来预测分布的随机变量x,分号后的…

第一篇:刚接触测试你应该知道什么

欢迎你接触软件测试这一行业。 刚接触它时,你肯定或多或少会有疑惑,我该做什么?大家口口相传的软件测试就是 【点点点】 真的是你日常的工作吗? 那么本文我将陪你一起,对我们刚接触到测试这个工作以后,应该…