Geometric GAN
概
很有趣, GAN的训练过程可以分成
- 寻找一个超平面区分real和fake;
- 训练判别器, 使得real和fake分得更开;
- 训练生成器, 使得real趋向错分一侧.
主要内容
McGAN
本文启发自McGAN, 在此基础上, 有了下文.
结合SVM
设想, GAN的判别器\(D(x) = S(\langle w, \Phi_{\zeta}(x) \rangle)\), 其中\(S\)是一个激活函数, 常见如sigmoid, 先假设其为identity(即\(D(x)=\langle w, \Phi_{\zeta}(x) \rangle\)).
McGAN 是借助\(\langle w, \Phi_{\zeta}(x)\rangle\)来构建IPM, 并通过此来训练GAN. 但是,注意到, 若将\(\Phi_{\zeta}(x)\)视作从\(x\)中提取出来的特征, 则\(\langle w, \Phi_{\zeta}(x)\rangle\)便是利用线性分类器进行分类,那么很自然地可以将SVM引入其中(训练判别器的过程.
\min_{w, b} & \frac{1}{2} \|w\|^2 + C \sum_i (\xi_i + \xi_i') & \\
\mathrm{subject \: to} & \langle w, \Phi_{\zeta}(x_i) \rangle + b \ge 1-\xi_i & i=1,\ldots, n\\
& \langle w, \Phi_{\zeta}(g_{\theta}(z_i)) \rangle + b \le \xi_i'-1 & i=1,\ldots,n \\
& \xi_i, \xi_i' \ge 0, \: i=1,\ldots,n.
\end{array}
\]
类似于
\min_{w,b} \: R_{\theta}(w,b;\zeta),
\]
其中
\begin{array}{ll}
R_{\theta}(w,b;\zeta) =
& \frac{1}{2C n} \|w\|^2 + \frac{1}{n} \sum_{i=1}^n \max (0, 1-\langle w, \Phi_{\zeta} (x_i) \rangle -b) \\
& + \frac{1}{n} \sum_{i=1}^n \max (0, 1+ \langle w, \Phi_{\zeta}(g_{\theta}(z_i))\rangle+b).
\end{array}
\]
进一步地, 用以训练\(\zeta\):
\min_{w,b,\zeta} \: R_{\theta}(w,b;\zeta).
\]
SVM关于\(w\)有如下最优解
\]
其中\(\alpha_i, \beta_i\)只有对支持向量非零.
定义
\]
为margin上及其内部区域的点.
于是
\begin{array}{ll}
R_{\theta}(w,b;\zeta) = \frac{1}{n} \sum_{i=1}^n \langle w^{SVM}, s_i \Phi_{\zeta} (g_{\theta}(z_i))-t_i \Phi_{\zeta}(x_i) \rangle + \mathrm{constant},
\end{array}
\]
其中
t_i =
\left \{ \begin{array}{ll}
1, & \Phi_{\zeta}(x_i) \in \mathcal{M} \\
0, & \mathrm{otherwise}
\end{array} \right. , \quad
s_i =
\left \{ \begin{array}{ll}
1, & \Phi_{\zeta}(g_{\theta}(z_i)) \in \mathcal{M}\\
0, & \mathrm{otherwise}.
\end{array} \right.
\]
训练\(\zeta\)
于是\(\zeta\)由此来训练
\]
训练\(g_{\theta}\)
就是固定\(w,b,\zeta\)训练\(\theta\).
所以
\]
其中
\]
的
\]
理论分析
\(n \rightarrow \infty\)的时候
定理1: 假设\((D^*,g^*)\)是(24), (25)交替最小化解, 则\(p_{g^*}(x)=p_x(x)\)几乎处处成立, 此时\(R(D^*,G^*)=2\).
注: 假体最小化是指在固定\(g^*\)下, \(R(D^*,g^*)\)最小,在固定\(D^*\)下\(L(D^*,g^*)\)最小.
证明
注:文中附录分析了各种GAN的超平面分割解释, 挺有意思的.
Geometric GAN的更多相关文章
- [转]GAN论文集
really-awesome-gan A list of papers and other resources on General Adversarial (Neural) Networks. Th ...
- 语音合成论文翻译:2019_MelGAN: Generative Adversarial Networks for Conditional Waveform Synthesis
论文地址:MelGAN:条件波形合成的生成对抗网络 代码地址:https://github.com/descriptinc/melgan-neurips 音频实例:https://melgan-neu ...
- (转) How to Train a GAN? Tips and tricks to make GANs work
How to Train a GAN? Tips and tricks to make GANs work 转自:https://github.com/soumith/ganhacks While r ...
- 不要怂,就是GAN (生成式对抗网络) (一)
前面我们用 TensorFlow 写了简单的 cifar10 分类的代码,得到还不错的结果,下面我们来研究一下生成式对抗网络 GAN,并且用 TensorFlow 代码实现. 自从 Ian Goodf ...
- 基本概率分布Basic Concept of Probability Distributions 3: Geometric Distribution
PDF version PMF Suppose that independent trials, each having a probability $p$, $0 < p < 1$, o ...
- geometric median
The geometric median of a discrete set of sample points in a Euclidean space is the point minimizing ...
- Codeforces Round #Pi (Div. 2) C. Geometric Progression map
C. Geometric Progression Time Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...
- nylg 640 Geometric Sum
Geometric Sum 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 Compute (a + a^2 + … + a^n) mod m.(a+a2+…an)m ...
- CodeForces 567C Geometric Progression
Geometric Progression Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I ...
随机推荐
- flink01--------1.flink简介 2.flink安装 3. flink提交任务的2种方式 4. 4flink的快速入门 5.source 6 常用算子(keyBy,max/min,maxBy/minBy,connect,union,split+select)
1. flink简介 1.1 什么是flink Apache Flink是一个分布式大数据处理引擎,可以对有限数据流(如离线数据)和无限流数据及逆行有状态计算(不太懂).可以部署在各种集群环境,对各种 ...
- 【swift】Xcode未响应(卡死、卡住、CPU满载、忙碌、转圈圈)
在尝试了网上的方法,依然没能解决问题,尝试如下: 1.去自己项目的路径,找到<你的项目名.xcodeproj>,点击[显示包内容],删除xcuserdata文件夹 2.去Library,把 ...
- Kotlin 学习(1)
本文出自链接:https://www.jianshu.com/p/ef9584a8ebf8 Kotlin的插件安装: Settings->Plugins->Browse Repositor ...
- @Data 注解引出的 lombok
今天在看代码的时候, 看到了这个注解, 之前都没有见过, 所以就查了下, 发现还是个不错的注解, 可以让代码更加简洁. 这个注解来自于 lombok,lombok 能够减少大量的模板代码,减少了在使用 ...
- HelloWorldDynamic
package mbeanTest; import java.lang.reflect.Method; import javax.management.Attribute; import javax. ...
- Flask + Nginx + uwsgi 部署过程
一.安装Flask 1.itsdangerous tar xvf itsdangerous-0.23.tar.gz cd itsdangerous-0.23/ python setup.py inst ...
- Oracle bulk collect into 的几种用法
bulk collect 和 forall 联合应用写起来显得有些啰嗦,不过为了速度,多写两句又何妨 建立两个临时表 create table T_TEST ( TESTID NUMBER(19) n ...
- html标签设置contenteditable时,去除粘贴文本自带样式
在一个div标签里面加了可编辑的属性,从别的地方复制了一串文本,只想把文本内容存到接口里面,结果发现文本自带的标签和样式都会存进去. $(".session-new-name"). ...
- Docker常用image
MySQL Start a mysql server instance Starting a MySQL instance is simple: docker run -itd --name mysq ...
- ES在项目中的测试
1.application.yml server: port: ${port:40100}spring: application: name: xc-search-servicexuecheng: e ...