【AI绘图学习笔记】生成函数

news2024/9/25 19:22:05

生成模型学习笔记

(文章中大部分内容从网上学习笔记中摘录,推荐阅读原文,吴恩达深度学习课程笔记暂时停更一段时间,学习AI绘图原理是为了搞定毕业设计,等忙完再回头把基础补完,推荐读物《深度学习》花书)

文章目录

  • 生成模型综述
  • 监督学习下的生成模型
    • 贝叶斯公式
    • 朴素贝叶斯算法
  • 非监督学习下的生成模型
    • 极大似然法
    • 经验分布函数
    • 构建生成模型
    • 自回归网络
    • 完全可见置信网络


生成模型综述

生成模型综述(川陀学者)
什么是生成模型

生成模型(generative model)描述的是这一类的模型:我们接收了从分布 p d a t a p_{data} pdata取样的若干样本构成我们的训练集,我们的模型会学习到一个模拟这一分布的概率分布 ,在有些情况下,我们可以直接的估计概率分布 p m o d e l p_{model} pmodel,如下图所示的密度概率分布模型:
在这里插入图片描述有些情况,我们需要从 P m o d e l P_{model} Pmodel中生成一些样本,如下图所示训练数据为ImageNet中的样本,训练的生成模型可以生成以假乱真的图片:
在这里插入图片描述
为什么要研究生成模型

那么研究生成模型的意义何在呢?尤其是对于非直接密度估计而只能从模型中生成样本的一类情况,特别是对于图像,这类模型只能提供更多的图像,而我们并不缺少海量的图像。

主要原因如下:

  • 这是对我们能够表示和操控高维概率分布的能力的有效检验。
  • 我们可以将生成模型结合到强化学习(reinforcement learning)中,例如对于model-based RL可用生成模型来模拟可能发生的未来情况,以便RL算法进行规划(planning),例如这篇论文[1610.00696] Deep Visual Foresight for Planning Robot Motion。
  • 生成模型可以用有损失(部分样本无标记)的数据进行训练,进行半监督学习(semi-supervised learning),降低了我们获得数据样本的难度。
  • 生成模型可以处理多峰值(multi-modal)的输出。对于很多任务,一个输入可能对应多个可能的输出,一些传统的机器学习模型只能学到一种输出而无法学习多种可能的输出。
  • 还有一些任务需要产生看起来真实的样本。如由低分辨率图片产生高分辨率图片,图像转换等等。
    在这里插入图片描述
    (输入低分辨率图片,生成模型产生接近原分辨率的图片。)

在这里插入图片描述
(从街道轮廓图生成真实图,从卫星图片生成地图,从草图生成真实图片)


监督学习下的生成模型

监督学习是学习一个模型,然后利用该模型对给定的输入预测相应的输出,我们可将模型写成函数形式 Y = f ( x ) Y =f(x) Y=f(x) 或条件概率分布形式 p ( Y ∣ X ) p(Y|X) p(YX) ,并根据条件概率分布的计算方式将其分为判别模型和生成模型。


贝叶斯公式

先验概率:P(Y),即Y发生的概率,但是与其他事件是否发生无关。
在这里插入图片描述


朴素贝叶斯算法

在这里插入图片描述

通过对训练集学习从而得到先验概率分布 p ( Y ) p(Y) p(Y)和条件概率分布 p ( X ∣ Y ) p(X|Y) p(XY),从而计算出联合概率分布 p ( X , Y ) p(X,Y) p(X,Y)


非监督学习下的生成模型

根据前两节,生成模型意味着对输入特征X和标签信息Y的联合分布进行建模,无监督学习意味着不存在标签信息,则在无监督生成模型中,希望对输入特征X的概率密度函数 p ( X ) p(X) p(X)建模。假设存在一个由N个训练样本 { x ( 1 ) , x ( 2 ) , . . . , x ( N ) } \lbrace x^{(1)} , x^{(2)},... , x^{(N)} \rbrace {x(1),x(2),...,x(N)}构成的训练集(N足够大),则可以使用训练集训练一个概率模型 p θ ( X ) p_θ(X) pθ(X),训练完成后,概率模型 p θ ( X ) p_θ(X) pθ(X)应接近于X的概率密度函数 p ( X ) p(X) p(X),接着我们就可以从概率模型 p θ ( X ) p_θ(X) pθ(X)中采样来“生成”样本了。

在这里插入图片描述


极大似然法

极大似然法
最大似然法与最大后验概率估计
在生成模型中,概率密度函数 p ( x ) p(x) p(x)一直扮演着核心的位置。对于一批从 p d a t a ( x ) p_{data}(x) pdata(x)中独立采样得到的训练样本集 { x ( 1 ) , x ( 2 ) , . . . , x ( N ) } \lbrace x^{(1)} , x^{(2)},... , x^{(N)} \rbrace {x(1),x(2),...,x(N)},(注意我们要求训练样本集的数据是独立同分布的),我们希望用训练数据来训练一个生成模型 p θ ( x ) p_θ(x) pθ(x),这个生成模型可以显式或隐式地学习到数据的分布 p d a t a ( x ) p_{data}(x) pdata(x)或者 p θ ( x ) p_θ(x) pθ(x)获得的(近似)表达式,即 p d a t a ( x ) ≈ p θ ( x ) p_{data}(x)≈p_θ(x) pdata(x)pθ(x)。接下来在推断过程中,可以通过在上显式或隐式地采样而得到一批样本,并且使获得的样本(近似)符合概率分布 p d a t a ( x ) p_{data}(x) pdata(x)

我们先介绍使用极大似然估计的生成模型,充分理解极大似然原理对理解生成模型有非常重要的意义。需要说明,并不是所有的生成模型都使用极大似然法,有些生成模型默认不使用极大似然法, 但是也可以做一些修改令其使用最大似然法 (GAN就属于这一类)。

极大似然估计是对概率模型参数进行估计的一种方法,例如有一个包含N个样本的数据集 { x ( 1 ) , x ( 2 ) , . . . , x ( N ) } \lbrace x^{(1)} , x^{(2)},... , x^{(N)} \rbrace {x(1),x(2),...,x(N)},数据集中每个样本都是从某个未知的概率分布 p d a t a ( x ) p_{data}(x) pdata(x)中独立采样获得的,若我们已经知道 p θ ( x ) p_θ(x) pθ(x)的形式,但是 p θ ( x ) p_θ(x) pθ(x)的表达式里仍包含未知参数θ,那问题就变成了:如何使用数据集来估算 p θ ( x ) p_θ(x) pθ(x)中的未知参数θ?例如 p θ ( x ) p_θ(x) pθ(x)是一个均值和方差参数还未确定的正态分布,那么如何用样本估计均值和方差的准确数值?

在极大似然法中,首先使用所有样本计算似然函数 L ( θ ) L(θ) L(θ):

L ( θ ∣ x ) = ∏ i = 1 N P θ ( X = x i ∣ θ ) L(θ|x)=\displaystyle\prod^{N}_{i=1} P_θ(X=x^{i}|θ) L(θx)=i=1NPθ(X=xiθ)

极大似然法


经验分布函数

经验分布
如果我们想知道某个随机变量X的分布F,这在一般情况下当然是无法准确知道的,但如果我们手上有它的一些独立同分布的样本,可不可以利用这些样本?一个很简单的办法就是,把这些样本的“频率”近似为随机变量的“概率”
经验分布函数(empirical distribution function):给每个点 1 n \frac {1}{n} n1的概率质量(大概类似n个样本的均匀分布?),得到CDF:

F ^ n ( x ) = ∑ i = 1 n I ( X i ≤   x ) n \hat F_n(x)=\frac {\sum ^n_{i=1} I(X_i \leq \space x) }{n} F^n(x)=ni=1nI(Xi x)

在这里插入图片描述


构建生成模型

生成模型的基本任务是生成样本,例如生成逼真的人脸图片、生成高质量的语音等;当然也可以通过改进生成模型从而实现样本之间的映射转换,例如图像风格迁移、语音增强等。本文将关注前者,其常见范式通常为:生成模型接受随机噪声 z z z作为输入,然后产生输出样本 x x x

由上述过程可知,构建生成模型的核心步骤包括两点:1.如何设计好的建模方式 p ^ θ ( X ) \hat p_θ(X) p^θ(X)?2.如何根据样本从而训练估计模型中的参数 p ^ θ ( X ) \hat p_θ(X) p^θ(X)?对于第一个问题,不同的生成模型各自有所考虑,例如玻尔兹曼机使用基于能量的模型构建了 p ^ θ ( X ) \hat p_θ(X) p^θ(X) ,完全可见置信网络对 p ^ θ ( X ) \hat p_θ(X) p^θ(X) 进行了链式解析等等,而扩散模型创造性地通过扩散过程构建了一个精巧的建模方式;关于第二个问题,显式生成模型使用的训练准则为极大似然法,这里又具体分为两类,第一类是对似然函数本身直接进行优化的精确推断方法(例如流模型,自回归模型);第二类是对似然函数的近似值进行优化的近似推断方法(例如VAE和玻尔兹曼机)。扩散模型使用的训练方法同样为极大似然法,并且其对似然函数的处理方式类似于VAE的近似推断。另外,GAN之类的隐式生成模型首先使用两类样本学习到了 p ^ θ ( X ) \hat p_θ(X) p^θ(X) q ( X ) q(X) q(X) 的距离,然后再以减少距离为目标训练生成模型。


自回归网络

将预测对象按照时间顺序排列起来,构成一个所谓的时间序列,从所构成的一组时间序列的变化规律,推断今后变化的可能性及变化趋势、变化规律,就是时间序列预测法。
  时间序列模型其实也是一种回归模型,其基于的原理是,一方面承认事物发展的延续性,运用过去时间序列的数据统计分析就能推测事物的发展趋势;另一方面又充分考虑到偶然因素影响而产生的随机性,为了消除随机波动的影响,利用历史数据,进行统计分析,并对数据进行适合的处理,进行趋势预测。
  简单来说自回归模型是用自身做回归变量的过程,即利用前期若干时刻的随机变量的线性组合来描述以后某时刻随机变量的线性回归模型,它是时间序列中的一个常见形式。用自己若干时刻的序列值来预测未来某个时刻的序列值。
  
模型: y t ​ = Φ 0 ​ + Φ 1 ​ y t − 1 ​ + Φ 2 ​ y t − 2 ​ + … + Φ p ​ y t − p ​ + ε t ​ y_t​=Φ_0​+Φ_1​y_{t−1​}+Φ_2​y_{t−2}​+…+Φ_p​y_{t−p}​+ε_t​ yt=Φ0+Φ1yt1​+Φ2yt2++Φpytp+εt

自回归模型


完全可见置信网络

完全可见置信网络

在完全可见置信网络中,不存在不可观察的潜在变量,观察变量的概率被链式法则从维度上进行分解,对于n维观察变量x,其概率表达式为:

p ( x ) = ∏ i = 1 N p ( x i ∣ x i − 1 , x i − 2 . . . x 1 ) p(x)=\displaystyle\prod^{N}_{i=1} p(x_i|x_{i-1},x_{i-2}...x_{1}) p(x)=i=1Np(xixi1,xi2...x1)

自回归网络是最简单的完全可见置信网络,其中每一个维度的观察变量 都构成概率模型的一个节点,而这些所有的节点 { x 1 , x 2 . . . x n } \lbrace x_1,x_2...x_n \rbrace {x1,x2...xn}共同构成一个完全有向图,即图中任意两个节点都存在连接关系,如图所示

在这里插入图片描述


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

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

相关文章

我劝你千万不要去做CSGO游戏搬砖项目

尽管童话姐姐本人做CSGO游戏搬砖都快三年了,带的搬砖学员也好几百人了。但今天还是要跟未入行或者还在考虑是否入行的朋友们敲个警钟。 随着做这个的人越来越多,网上关于这个项目的文章,视频,硬广、软广也越来越多。就拿我朋友圈发…

高精度工业检测利器,维视智造BT-12C080双远心镜头

T-12C080 双远心镜头BT-12 系列标准 C 接口双远心镜头,与 1/2″(对角线 8mm)及以下成像靶面工业相机完美搭配,其结构稳定、外观轻巧,大景深,适用于较大视场下的高精度工业检测场景。产品亮点更轻巧与1/2″&…

【Database-01】达梦数据库Docker版下载安装

1、前往达梦数据库官网下载 https://www.dameng.com/1.1、选择数据库 - 数据库产品系 1.2、选择 达梦数据库管理系统(DM8) 1.3、点击试用下载 1.4、注册达梦账户 1.5、选择DM8 Docker镜像 https://www.dameng.com/list_103.html1.6、或者使用以下网址也…

雷达、定位、跟踪等信号处理邻域SCI期刊整理及推荐

雷达邻域SCI期刊整理及推荐:题名、刊物信息、撰写特点、审稿周期及投稿难度总结 定位/跟踪邻域SCI期刊整理及推荐:题名、刊物信息、撰写特点、审稿周期及投稿难度总结 估计/滤波/融合等信号处理邻域SCI期刊整理及推荐:题名、刊物信息、撰写…

Python数据分析与应用 | 数据分析工具Pandas

Pandas的数据结构分析 Pandas中有两个主要的数据结构:Series和DataFrame。 Series,一维的数据结构DataFrame,二维的,表格型的数据结构Series Series是一个类似一维数组的对象,它能够保存任何类型的数据,主要由一组数据和与之相关的索引两部分构成。左边是索引(index)…

树莓派——智能家居第一步

辛辛苦苦配了成功让树莓派开始工作了,开始搞智能家居!大体思路:基于工厂模式,分模块来实现上图分为三部分:主控、外设、控制主控我采用的是树莓派的4b4G版本,外设包括四个区域的灯(我的和上图有…

【Python】特征衍生

特征衍生1. 单变量特征衍生1.1 数据重编码1.2 高阶多项式2. 双变量特征衍生2.1 四则运算2.2 多项式衍生2.2.1 导包 & 数据2.2.2 二阶衍生2.2.3 三阶衍生3. 交叉组合3.1 导包 & 数据3.2 生成衍生列和名称3.3 独热编码1. 单变量特征衍生 1.1 数据重编码 连续变量 标准化…

对程序员来说最重要的小事——整洁代码

文章目录为什么要写整洁代码命名名副其实做有意义的区分类名、方法名函数短小只做一件事注释注释类型好注释坏注释格式目的垂直格式横向格式团队规则总结为什么要写整洁代码 现在阅读这篇博客的你不论是刚入行的新人还是开发了很多年的老鸟一定碰到过"祖传代码"&…

【原创】java+swing+mysql户籍管理系统设计与实现

户籍管理系统感觉跟学生管理系统有些类似,一个是对学生进行信息的管理,一个是对社会人员进行信息管理,难度系数基本一样,今天我们就来介绍一下使用javaswing和mysql进行户籍管理系统的开发。 功能分析: 户籍管理&…

【java 8】方法引用与构造器引用

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

INT3断点和硬件断点

Ollydbg动态调试的时候需要打一些断点,断点分为INT3断点和硬件断点,本文是区分两个断点的文章。 目录 INT3断点 好处 坏处 硬件断点 原理 优点 缺点 INT3断点 OD中使用F2快捷键设置的断点就是INT3断点 打INT3断点的时候,断点处就会被…

Unity学习笔记--在Editor下实现一个有下拉菜单的文件路径记忆功能(保姆级教程)

目录前言需求分析知识前提一、下拉菜单的实现二、选取对应文件夹路径三、写入到.txt文件完整代码前言 最近需要在Unity编辑器下实现一个面板,有一个下拉菜单,其他人可以往这个下拉菜单里面添加一些文件夹路径,保证下次进来的时候能够直接通过…

Linux SPI-NAND 驱动开发指南

文章目录Linux SPI-NAND 驱动开发指南1 概述1.1 编写目的1.2 适用范围1.3 相关人员3 流程设计3.1 体系结构3.2 源码结构3.3 关键数据定义3.3.1 flash 设备信息数据结构3.3.2 flash chip 数据结构3.3.3 aw_spinand_chip_request3.3.4 ubi_ec_hdr3.3.5 ubi_vid_hdr3.4 关键接口说…

webrtc QOS笔记二 音频buffer数据不足生成很多gap的问题

webrtc QOS笔记二 音频buffer数据不足生成很多gap的问题 文章目录webrtc QOS笔记二 音频buffer数据不足生成很多gap的问题记录个iusse. 插入音频数据后,GetAudioInternal 进行操作决策: Normal:正常播放。 Acceleration:变声不变调的减速播放算法。 Pr…

【学习笔记】互联网金融:芝麻信用分的建模过程

学习资料: 数据分析学习随记 | 互联网金融行业2C授信模型(芝麻信用) 1. 背景 互联网金融的本质是风控。 1.1 数据分析师的角色 数据分析师在金融行业基本上有两种角色: 1.1.1 数据建模师 偏算法,但要很懂业务。要求对算法的理解较深&am…

电子标签播种墙方案

一、PTL优势: 二、系统构架: v1.2基站软件管理系统仓库标签v1.4仓库标签三、基站特点: 接收PC下达的操作指令,解析后再通过RF发送给电子标签 无线通讯距离30m无线通信速率200/50kbps网络通信速率10/100 Mbps自定义双向数据通讯协…

接口测试很难?3分钟带你入门接口自动化测试

1、什么是接口? 接口是连接前台和后台的桥梁,前台通过接口调用后端已完成的功能,而无需关注内部的实现细节。借助于接口,可以实现前后台分离,各自完成开发工作后,进行联调,提高工作效率。 2、接…

开学季电容笔怎么选?学生党高性价比电容笔推荐

或许许多人会认为苹果Pencil是无可取代的,但是我认为这压感取决于我们的预算和需求。要是我们对于绘画没有过高的要求的话,其实可以选择使用平替电容笔,而没必要入手apple pencil。为了让你对电容笔有更多的认识,我接下来推荐几款…

Flutter第三方插件objectbox的使用

Flutter基础 demo地址 参考地址 文章目录Flutter基础前言一、demo效果图二、objectbox是什么?三、objectbox的使用1.在pubspec.yaml文件中添加2.执行flutter pub get命令3.创建数据库模型4.执行flutter pub run build_runner build 命令5.如果报错则执行flutter pu…

Renderdoc中一个daraw的API调用以及其作用

分析renderdoc中一个draw调用的api接口,如下是一个draw调用的渲染api的过程,下面来分析一下这几个函数的作用。 PSSetShaderResources、VSSetShader、PSSetShader这三个方法在renderdoc调用过程使用的方法,这三个方法的做法分别如下&#xff…