PaperNotes(13)-Conditional Image Generation with PixelCNN Decoders

conditional Image generation with PixelCNN Decoders


ICML的best paper

pixel cnn 属于完全可见的信念网络,需要对 概率密度 建模。给定图像数据x,想要对概率分布p(x)建模。概率分布p(x)可以看做,每一像素分布同时作用结果的一个联合分布。一个特征是这些像素之间存在紧密的关联关系,常见的建模方法是使用此前的像素作为条件来建模当前的像素的条件分布。使用链式法则将联合分布p(x)分解成一维度分布的乘积。

给定每个像素xix_ixi的条件概率(其条件是此前所见到的所有像素(x1,x2,...,xi−1)(x_1,x_2,...,x_{i-1})(x1,x2,...,xi1)) 那么整张图的联合概率/条件似然 = 所有像素条件概率的乘积。
p(x)=∏i=1n2p(xi∣x1,...,xi−1)p(x)=\prod_{i=1}^{n^2}p(x_i|x_1,...,x_{i-1})p(x)=i=1n2p(xix1,...,xi1)

然后最大化似然来优化概率模型中的参数。众多自回归模型用的都是条件分布连成构造联合分布的建模方式,不同点为条件分布建模方式不同。本文用的是masked卷积网络对之前的像素进行卷积操作,来建模条件分布。

对于每个位置网络都会生成一个256维度的像素值,通过true lable像素值,最小化交叉熵,来得到生成结果。(最小化交叉熵,最小化KL散度,最大似然这三种东西是等价的)就是有N×N×3个网络

文章强调的卷积使得训练时每个像素可以同时进行预测,但测试时只能顺序进行生成。

gated convolutional layers

文章后面介绍了所用的门控的卷积层。之前的pixelRNN 的性能 优于 pixelCNN 的一个主要原因是:LSTM使得网络的每一层可以获取之前像素的整个邻居区域。另一个优点,多种门控单元使得可以建模更加复杂的模型。

conditional PixelCNN

条件 PixelCNN : 给定高层次的图像描述作为latent vector h 建模条件分布为p(x∣h)p(x|h)p(xh):
p(x∣h)=∏i=1n2p(xi∣x1,..,xi−1,h)p(x|h)=\prod_{i=1}^{n^2}p(x_i|x_1,..,x_{i-1},h)p(xh)=i=1n2p(xix1,..,xi1,h)

其实就是在每层的特征后接一个条件向量信息。

(图像是二维时,作者使用了grid LSTM ,
盲点:预测下一个像素时,没有用到之前所有的信息,
两个方向上的卷积,垂直和水平
为了避免看到将来的像素,他们使用带掩膜的卷积)

1.Pixel CNN, Wavenet, GCNN笔记:https://zhuanlan.zhihu.com/p/25299749
2.【2017CS231n】第十三讲:生成模型(PixelRNN/PixelCNN,变分自编码器,生成对抗网络):https://blog.csdn.net/poulang5786/article/details/80766498
3.如何比较PixelCNN与DCGAN两种Image generation方法?:https://www.zhihu.com/question/54414709
4.《Conditional Image Generation with PixelCNN Decoders》之Pixcel CNN—gated Pixcel CNN 阅读笔记:https://blog.csdn.net/Jasminexjf/article/details/82499513?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242
5.图片生成模型——gated pixelCNN:https://blog.csdn.net/like_red/article/details/79192374#commentBox

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

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

相关文章

Expression : invalid operator 解决方法

从技术上说,用于排序关联容器的比较函数必须在它们所比较的对象上定义一个“严格的弱序化(strict weak ordering)”。(传给sort等算法的比较函数也有同样的限制),就是两个对象比大小或先后的规则,比如两个 string对象比大小的规则…

leetcode23 合并K个排序链表

合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 思路:把初始的每一个链表当成数组中的一个数,做…

Xcode LaunchImage 载入界面大小设置

iPhone Portrait iOS 8-Retina HD 5.5 (12422208) @3x iPhone Portrait iOS 8-Retina HD 4.7 (7501334) @2x iPhone Portrait iOS 7,8-2x (640960) @2x iPhone Portrait iOS 7,8-Retina 4 (6401136) @2x iPhone Portrait iOS 5,6-1x (320480) @1x iPhone Portrait iO…

leetcode237 删除链表中的节点(你意想不到的做法,注意细节)

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 -- head [4,5,1,9],它可以表示为: 示例 1: 输入: head [4,5,1,9], node 5 输出: [4,1,9] 解释: 给定你链…

cppcheck值得注意的一些筛选项

使用完cppcheck进行C代码检测之后,可能筛选起来很麻烦,一般常见的优化有 emptiness,就是当你使用stl的时候,最好用empty替代size 还有就是 leak

C++(19)--自定义Array,vector练习

自定义Array,vector1.自定义Array2.自定义vector《老九学堂C课程》《C primer》学习笔记。《老九学堂C课程》详情请到B站搜索《老九零基础学编程C入门》-------------简单的事情重复做,重复的事情用心做,用心的事情坚持做(老九君)---------------1.自定义…

让cocos2dx支持并通过arm64 编译

为了要支持64位,请把这个文件直接替换到对应的lib目录下,本来是需要改neton_matrix_impl.c里的宏定义, 在 platform/ios/EAGLVIEW.mm中 在neon_matrix_impl.c中修改 #if defined(__ARM_NEON__) 为#if defined(_ARM_ARCH_7) 还有 third_party目录下的curl的支持。

springboot——概述

Spring Boot 介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计⽬的是⽤来简化新 Spring 应⽤ 初始搭建以及开发过 程,该框架使⽤了特定的⽅式来进⾏配置,从⽽使开发⼈员不再需要定义样板化的配置。 默认配置了很多框架的使⽤⽅式…

C++(20)--类型自动转换

类型自动转换1.C内置类型转换2.实现自定义类的类型转换《老九学堂C课程》《C primer》学习笔记。《老九学堂C课程》详情请到B站搜索《老九零基础学编程C入门》 -------------简单的事情重复做,重复的事情用心做,用心的事情坚持做(老九君)---------------…

关于遍历linux的文件目录的坑- readdir

去年给公司写了一个配置服务器,目的是解决运维的工作量太大,而且传送服务器需要的配置文件需要脚本传送到各个服(每个服ip不一样,需要scp),然后再刷新通知各个GameServer,中间有没有传送失败并不得知,而且维护相当麻烦,所以我写了这个服务器,所有区服的配置都在这里边…

终于,我读懂了所有Java集合——sort

Collections.sort 事实上Collections.sort方法底层就是调用的Arrays.sort方法,而Arrays.sort使用了两种排序方法,快速排序和优化的归并排序。 快速排序主要是对那些基本类型数据(int,short,long等)排序, 而归并排序用于…

PRML(1)--绪论(上)多项式曲线拟合、概率论

PRML绪论1.1 多项式曲线拟合1.1.1 问题描述1.1.2 最小化平方和误差1.1.3 多项式阶数确定1.1.4 有趣问题--高阶模型为什么效果不好1.1.4 数据集规模对模型的影响1.1.5 参数正则化缓解过拟合问题1.2 概率论1.2.1离散型随机变量1.2.2 连续型随机变量1.2.3 期望和方差1.2.4 贝叶斯概…

大数加减乘

如标题&#xff0c;不解释。 加 #include<stdio.h> #include<string.h> int main() {char a[1000],b[1000];int i,s[1000],len1,len2,len,j;while(scanf("%s%s",a,b)!EOF) //用字符数组来储存数{for(i0;i<1000;i)s[i]0;len1strlen(a);len2strlen(b…

在GCC和Visual Studio中使用hash_map

熟悉STL或熟悉ACM/ICPC的话&#xff0c;其中的set, map, multiset, multimap一定用过无数次了&#xff0c;它们都是用平衡二叉树&#xff08;红黑树&#xff09;实现的&#xff0c;复杂度为O(lgn)。我们也知道set, map可以通过哈希来实现&#xff0c;复杂度只有O(1)&#xff0c…

C++(21)--Astah uml 画C++类图

Astah uml 画C类图1.安装2.使用《老九学堂C课程》《老九学堂C课程》详情请到B站搜索《老九零基础学编程C入门》-------------简单的事情重复做&#xff0c;重复的事情用心做&#xff0c;用心的事情坚持做(老九君)--------------- ASTAH&#xff1a;类图工具&#xff0c;用于理…

redis3.0.0 集群安装详细步骤

Redis集群部署文档(centos6系统) &#xff08;要让集群正常工作至少需要3个主节点&#xff0c;在这里我们要创建6个redis节点&#xff0c;其中三个为主节点&#xff0c;三个为从节点&#xff0c;对应的redis节点的ip和端口对应关系如下&#xff09; 127.0.0.1:7000 127.0.0.1:7…

Redis集群添加节点

Redis集群添加节点 1&#xff1a;首先把需要添加的节点启动 cd /usr/local/cluster/ mkdir 7006 cp /usr/local/cluster/redis.conf /usr/local/cluster/7006/ cd /usr/local/cluster/7006/ vi redis.conf ##修改redis.conf中的port参数的值为7006 redis-server redis.c…

PRML(2)--绪论(下)模型选择、纬度灾难、决策论、信息论

PRML绪论1.3 模型选择1.4 纬度灾难1.5 决策论1.5.1最小错误分率1.5.2最小化期望损失1.5.3拒绝选项1.5.4推断和决策1.5.5 回归问题的损失函数1.6 信息论1.3 模型选择 模型过复杂会造成过拟合问题&#xff0c;需要通过一些技术来降低模型的复杂度。 就最大似然而言&#xff0c;可…

leetcode112 路径总和

给定一个二叉树和一个目标和&#xff0c;判断该树中是否存在根节点到叶子节点的路径&#xff0c;这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树&#xff0c;以及目标和 sum 22&#xff0c; 5 / \ …

关于游戏架构设计的一些整理吧

一个大型的网落游戏服务器应该包含几个模块:网络通讯,业务逻辑,数据存储,守护监控(不是必须),其中业务逻辑可能根据具体需要,又划分为好几个子模块。 这里说的模块可以指一个进程,或者一个线程方式存在,本质上就是一些类的封装。