CS236 Deep Generative Models (3)

概述

自回归模型-1中,只介绍了怎么建模会带有Autoregressive的特性,即 p θ ( x ) p_\theta(x) pθ(x),而并没有去叙述怎么学习参数;在这章会,主要介绍怎么去在Generative Model中去学习参数

一、Maximum Likelihood Learning(MLL)

回顾一下Generative的目标与可用之处。
目标:学习一个联合分布 P θ ( x 1 , x 2 , . . . x n ) P_\theta(x_1,x_2,...x_n) Pθ(x1,x2,...xn),使其逼近真实分布 P ( x ) P(x) P(x)生成的真实样本
可用之处

  1. P θ ( x 1 , . . . , x n ) P_\theta(x_1,...,x_n) Pθ(x1,...,xn)可用来Generation, x n e w ∼ P θ ( x 1 , . . . , x n ) x_{new}\sim P_\theta(x_1,...,x_n) xnewPθ(x1,...,xn)
  2. Density Estimation, p θ ( x n e w ) p_\theta(x_{new}) pθ(xnew)越低,说明 x n e w x_{new} xnew异常
  3. Unsupervised representation Learning,从联合分布中习得一些有用的Features

1.1 Learning的背景

  • P d a t a ( X ) P_{data}(X) Pdata(X):data样本的真实分布
  • P θ ( X ) P_{\theta}(X) Pθ(X):一个构建起来的模型分布,尽可能通过真实分布生成的data样本,去逼近真实分布.
  • Data样本之间服从 i . i . d i.i.d i.i.d

Learning的过程:学习的参数使得模型分布与Data样本真实分布很接近,即 d ( P d a t a ( X ) , P θ ( X ) ) d(P_{data}(X),P_{\theta}(X)) d(Pdata(X),Pθ(X))两者很小,实际上就是对真实分布做approximation

Approximaiton的方式具体,取决于任务需求:

  1. 如果我们对整个联合分布(Joint distribution)都感兴趣的,然后learn整个distribution,再去计算想要的conditional distribution。
  2. 如果我们仅仅是想做一个prediction,即conditional的,就不太需要计算整个Joint distribution,对真实分布的approximation就不用太精细。
  3. 如果我们对模型的结构很感兴趣,如知识图谱、因果推理这种,就可能需要更精细的approximation了。

为什么要讨论approximaiton呢?拿一个 28 × 28 28\times28 28×28的image来说,对每个pixel建模为一个随机变量,一个随机变量取值仅仅为 { 0 , 1 } \{0,1\} {0,1},就有 2 784 2^{784} 2784个分布取值了,要去逼近这个真实分布,那得需要多少样本呀!

而Generative的Autoregressive Model 中的Learning,主要的是第一种approximation,我们都整个joint distribution都很感兴趣。

1.2 距离度量

K L ( p , q ) = ∑ x 0 ∼ p ( x ) p ( x 0 ) l o g p ( x 0 ) q ( x 0 ) = ∫ p ( x ) l o g p ( x ) q ( x ) d x = E x 0 ∼ p ( x ) [ l o g p ( x 0 ) q ( x 0 ) ] KL(p,q)=\sum_{x_0\sim p(x)}p(x_0)log\frac{p(x_0)}{q(x_0)}=\int p(x)log\frac{p(x)}{q(x)}dx=E_{x_0\sim p(x)}\Big[log\frac{p(x_0)}{q(x_0)}\Big] KL(p,q)=x0p(x)p(x0)logq(x0)p(x0)=p(x)logq(x)p(x)dx=Ex0p(x)[logq(x0)p(x0)]

KL散度用来度量真实分布 p ( x ) p(x) p(x)与模型分布 q ( x ) q(x) q(x)之间的距离,即 P d a t a P_{data} Pdata P θ P_\theta Pθ,所以目标为找到一组参数 θ \theta θ使得 K L ( P d a t a , P θ ) KL(P_{data},P_\theta) KL(Pdata,Pθ)最小,公式表述如下:

arg min ⁡ θ K L ( P d a t a , P θ ) = arg min ⁡ θ ∫ p d a t a ( x ) l o g p d a t a ( x ) p θ ( x ) d x = arg min ⁡ θ E p d a t a ( x ) [ l o g p d a t a ( x ) ] − E p d a t a ( x ) [ l o g p θ ( x ) ] = arg max ⁡ θ E p d a t a ( x ) [ l o g p θ ( x ) ] \begin{aligned} \argmin_\theta KL(P_{data},P_\theta)&=\argmin_\theta\int p_{data}(x)log\frac{p_{data}(x)}{p_\theta(x)}dx\\ &=\argmin_\theta E_{p_{data}(x)}\big[logp_{data}(x)\big]-E_{p_{data}(x)}\big[logp_\theta(x)\big]\\ &=\argmax_\theta E_{p_{data}(x)}\big[logp_\theta(x)\big] \end{aligned} θargminKL(Pdata,Pθ)=θargminpdata(x)logpθ(x)pdata(x)dx=θargminEpdata(x)[logpdata(x)]Epdata(x)[logpθ(x)]=θargmaxEpdata(x)[logpθ(x)]

因为 p d a t a ( x ) p_{data}(x) pdata(x)只有数据样本,假设有 { x ( 1 ) , x ( 2 ) , . . . , x ( N ) } \{x^{(1)},x^{(2)},...,x^{(N)}\} {x(1),x(2),...,x(N)},则通过MC Estimation估计期望,即

arg min ⁡ θ K L ( P d a t a , P θ ) = arg max ⁡ θ E p d a t a ( x ) [ l o g p θ ( x ) ] ≈ arg max ⁡ θ 1 N ∑ i = 1 N l o g p θ ( x ( i ) ) 使 ( 用 了 i . i . d 假 设 ) \begin{aligned} \argmin_\theta KL(P_{data},P_\theta) &=\argmax_\theta E_{p_{data}(x)}\big[logp_\theta(x)\big]\\ &\approx \argmax_\theta \frac{1}{N}\sum_{i=1}^N logp_\theta(x^{(i)})使(用了i.i.d假设)\\ \end{aligned} θargminKL(Pdata,Pθ)=θargmaxEpdata(x)[logpθ(x)]θargmaxN1i=1Nlogpθ(x(i))使i.i.d

二、Bayesian Network MLL

2.1 Learning parameters

从上篇文章可知,我们对联合分布建模,假设有n个随机变量,对每个随机变量 x i x_i xi之间的条件独立性用 p a ( x i ) pa(x_i) pa(xi)代表,即满足一个DAG图,称为Bayesian Network,于是一个样本生成式如下:

P θ ( x ) = ∏ i = 1 n p n e u r a l ( x i ∣ p a ( x i ) ; θ i ) P_\theta(x)=\prod_{i=1}^np_{neural}(x_i|pa(x_i);\theta_i) Pθ(x)=i=1npneural(xipa(xi);θi)

假设有数据集 D = { x ( 1 ) , x ( 2 ) , . . . , x ( m ) } D=\{x^{(1)},x^{(2)},...,x^{(m)}\} D={x(1),x(2),...,x(m)},Likelihood函数从上一节知:

L ( θ , D ) = ∏ j = 1 m P θ ( x ( j ) ) = ∏ j = 1 m ∏ i = 1 n p n e u r a l ( x i ( j ) ∣ p a ( x i ( j ) ) ; θ i ) L(\theta,D)=\prod_{j=1}^mP_\theta(x^{(j)})=\prod_{j=1}^m\prod_{i=1}^np_{neural}(x_i^{(j)}|pa(x_i^{(j)});\theta_i) L(θ,D)=j=1mPθ(x(j))=j=1mi=1npneural(xi(j)pa(xi(j));θi)

因此有:

arg max ⁡ θ L ( θ , D ) = arg max ⁡ θ l o g L ( θ ) = arg max ⁡ θ ∑ j = 1 m ∑ i = 1 n l o g p n e u r a l ( x i ( j ) ∣ p a ( x i ( j ) ) ; θ i ) \begin{aligned} \argmax_\theta L(\theta,D)&=\argmax_\theta logL(\theta)\\ &=\argmax_\theta \sum_{j=1}^m\sum_{i=1}^nlogp_{neural}(x_i^{(j)}|pa(x_i^{(j)});\theta_i) \end{aligned} θargmaxL(θ,D)=θargmaxlogL(θ)=θargmaxj=1mi=1nlogpneural(xi(j)pa(xi(j));θi)

可以随机梯度下降更新:

θ t + 1 ← θ t + α t ∇ θ L ( θ t ) \theta^{t+1}\leftarrow \theta ^t +\alpha_t\nabla_\theta L(\theta^t) θt+1θt+αtθL(θt)

2.2 Overfitting

列举一些解决Overfitting的方式:

  • 施加一些hard constraints如Weight Sharing、smaller network等
  • 在objective function中加regularization约束expressive的模型
  • 在held-out的验证集上评估generalization performance

三、小总结

  • 学习的过程确实不难,难的是如何使用Autoregressive Model对问题进行建模的过程(Representation)。
  • P θ ( X ) P_\theta(X) Pθ(X)建模后,应该适合Inference,再根据具体问题,施加一些假设即Prior Knowledge
  • 接着通过Maximum Likelihood Learning学得参数,从而获得了整个联合分布的模型
  • 最后再从联合分布中计算任务需求的条件分布
    pic-1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值