The Hessian Penalty: A Weak Prior for Unsupervised Disentanglement
概
disentagle a function 究竟是什么不是很了解, 仅仅关于此方法如何运用二阶信息做一个记录. 其目的是显然的, 就是希望生成器输入的隐变量所调节的特征是独立的.

如图 逐渐增加\(z_6\), 其生成图片由外轮廓变成实物, 但不加hessian penalty的GAN似乎缺少一种严格的划分.
主要内容
hessian penalty的目的就是希望令hessian矩阵的非对角线元素小(最好为0).
标量情况
任意函数\(G:\mathbb{R}^d \rightarrow \mathbb{R}\). 其hessian矩阵\(H\)的元素为
H_{ij} = \frac{\partial^2G}{\partial z_i \partial z_j},
\]
假设其非对角线元素为0, 即
H_{ij} = \frac{\partial}{\partial z_j} (\frac{\partial G}{\partial z_i}) = 0, \quad i \not =j
\]
这意味着, \(G\)关于\(z_i\)的导函数不含\(z_j\), 即与\(z_j\)无关(倘若在考虑定义域内(1.5)均满足), 这说明, 调节\(z_j\)对调节\(z_i\)导致\(G\)的变化没有影响.
为求目标(1.5), 添加如下hessian penalty:
\mathcal{L}_H (G) = \sum_{i=1}^d \sum_{j\not= i}^d H_{ij}^2.
\]
向量情况
此时\(G: \mathbb{R}^d \rightarrow \mathbb{R}^p\), 设\(x_i=(G(z))_i\), \(H_i\)是\(x_i\)关于\(z\)的hessian矩阵, 则
\mathcal{L}_H (G) = \max_i \mathcal{L}_{H_i} (G).
\]
实际上别的比如\(\mathrm{mean}\)也是可以的, 但是作者实验发现用\(\max\)最好.
处于实际(计算量)的考量
如果输入的维度很大的话, 想要直接计算hessian矩阵是不容易的, 作者采用的是一种采样加逼近的方式, 首先
定理1: \(Var_v (v^THv)=2\sum_{i=1}^d\sum_{j\not=i}^d H_{ij}^2\).
其中\(v\)是Rademacher vectors, 即\(v\)的每个元素独立同分布于伯努利分布(\(p=1/2\)).
故只需用\(v^THv\)的经验方差来替换\(\mathcal{L}_H (G)\)就可以了.
注: 生成器的输入很少, 感觉用不到这个啊.
然后再来看怎么估计一次\(v^THv\), 便是很直接的中心差分
v^THv \approx \frac{1}{\epsilon^2} [G(z+\epsilon v) - 2G(z) + G(z-\epsilon v)].
\]
应用到生成模型中
此思想仅仅运用于训练生成器
\mathcal{L}_G = \mathbb{E}_{x \sim p _z(z)} [f(1-D(G(z)))] + \lambda \cdot \mathbb{E}_{z \sim p_z(z)} [\mathcal{L}_H(G)].
\]
代码
The Hessian Penalty: A Weak Prior for Unsupervised Disentanglement的更多相关文章
- A Statistical View of Deep Learning (V): Generalisation and Regularisation
A Statistical View of Deep Learning (V): Generalisation and Regularisation We now routinely build co ...
- Deep Learning 学习笔记——第9章
总览: 本章所讲的知识点包括>>>> 1.描述卷积操作 2.解释使用卷积的原因 3.描述pooling操作 4.卷积在实践应用中的变化形式 5.卷积如何适应输入数据 6.CNN ...
- BAYESIAN STATISTICS AND CLINICAL TRIAL CONCLUSIONS: WHY THE OPTIMSE STUDY SHOULD BE CONSIDERED POSITIVE(转)
Statistical approaches to randomised controlled trial analysis The statistical approach used in the ...
- iOS深入学习之Weak关键字介绍
iOS深入学习之Weak关键字介绍 前言 从大二的开始接触OC就用到了weak属性修饰词,但是当时只是知道如何去用这个关键字:防止循环引用.根本没有深入地去了解它. 在刚来北京的时候面试过程中也常常考 ...
- Unsupervised Learning and Text Mining of Emotion Terms Using R
Unsupervised learning refers to data science approaches that involve learning without a prior knowle ...
- spring remoting源码分析--Hessian分析
1. Caucho 1.1 概况 spring-remoting代码的情况如下: 本节近分析caucho模块. 1.2 分类 其中以hession为例,Hessian远程服务调用过程: Hessian ...
- @property中的copy.strong.weak总结
1.NSString类型的属性为什么用copy NSString类型的属性可以用strong修饰,但会造成一些问题,请看下面代码 #import "ViewController.h" ...
- weak和nonull
weak和nonull是相互排斥的,所以weak和null不能同时使用,如下图:
- spring与hessian整合例
spring与hessian的简单应用实现例: 开发环境:window7 64,jdk8,tomcat8,spring4.2.5,hessian4.0 开发语言:java hessianServer端 ...
随机推荐
- JDBC01 获取数据库连接
概述 Java Database Connectivity(JDBC)直接访问数据库,通用的SQL数据库存取和操作的公共接口,定义访问数据库的标准java类库(java.sql,javax.sql) ...
- day13 装饰器与语法糖
day13 装饰器与语法糖 一.装饰器 1.什么是装饰器 装饰器就是装饰别人的工具,具体是指为被装饰者添加新功能 装饰器->函数 被装饰者->函数 2.为何要用装饰器 装饰器的核心思想:( ...
- 【Git项目管理】Git分支 - 远程分支
远程分支 远程引用是对远程仓库的引用(指针),包括分支.标签等等. 你可以通过 git ls-remote (remote) 来显式地获得远程引用的完整列表,或者通过 git remote show ...
- LINUX 安装增强 前置安装文件
yum install kernel yum install kernel-devel yum install gcc yum install make
- Linux学习 - 压缩解压命令
一." .gz "压缩文件 1 压缩语法 gzip [文件] 2 解压语法 gunzip [压缩文件] 3 注 gzip只能压缩文件 gzip不保留原文件 二." . ...
- Python @函数装饰器及用法(超级详细)
函数装饰器的工作原理是怎样的呢?假设用 funA() 函数装饰器去装饰 funB() 函数,如下所示: #funA 作为装饰器函数 def funA(fn): #... fn() # 执行传入的fn参 ...
- centos部署代码仓库gitlab
目录 一.简介 二.程序部署 部署gitlab 汉化gitlab 三.设置管理员密码 网页方式 指令方式 一.简介 GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托 ...
- 07- Vue3 UI Framework - Switch 组件
为了更好的提升用户体验,我们这里再做一个很常用的开关组件 switch 返回阅读列表点击 这里 需求分析 开始之前我们先做一个简单的需求分析 switch 组件应分为选中/未被选中,两种状态 可以通过 ...
- typeScript基本概念
我一直认为学习是知识的累加,而前端技术也是进步的.所以学习的重点就是,'它有什么不同,它好在哪里'.这要求我们必须结合之前的经验和知识去学习一门新技术,而不是无情的复制粘贴机器. 首先,ts的官方定义 ...
- proxy跨域
跨域 浏览器访问非同源的网址时,会被限制访问,出现跨域问题. 解决方案: 1.response 添加 header(CORS) 2.JSONP 方式 3.全局对象+iframe (1)document ...