自回归模型-2
概述
在自回归模型-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)生成的真实样本
可用之处:
- 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) xnew∼Pθ(x1,...,xn)
- Density Estimation, p θ ( x n e w ) p_\theta(x_{new}) pθ(xnew)越低,说明 x n e w x_{new} xnew异常
- 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的方式具体,取决于任务需求:
- 如果我们对整个联合分布(Joint distribution)都感兴趣的,然后learn整个distribution,再去计算想要的conditional distribution。
- 如果我们仅仅是想做一个prediction,即conditional的,就不太需要计算整个Joint distribution,对真实分布的approximation就不用太精细。
- 如果我们对模型的结构很感兴趣,如知识图谱、因果推理这种,就可能需要更精细的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)=x0∼p(x)∑p(x0)logq(x0)p(x0)=∫p(x)logq(x)p(x)dx=Ex0∼p(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θ)=θargmin∫pdata(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=1∑Nlogpθ(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=1∏npneural(xi∣pa(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=1∏mPθ(x(j))=j=1∏mi=1∏npneural(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=1∑mi=1∑nlogpneural(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学得参数,从而获得了整个联合分布的模型
- 最后再从联合分布中计算任务需求的条件分布