自回归模型-1
概述
- 本章符号多注意一下,有点小变化。
- 本章都在描述如何对联合分布建模 p ( x , y ) p(x,y) p(x,y)的过程,即Representation的过程,以及如何评估evaluate这个建模分布,并没有提及怎么Learning建模过程中涉及的参数,这放在自回归模型-2中
- 由于真正对联合分布建模的时候,x,y都是随机变量,故而只需讨论 p ( X ) = p ( x 1 , . . . , x n ) p(X)=p(x_1,...,x_n) p(X)=p(x1,...,xn)即可,毕竟只需要令 x n = y x_n=y xn=y即可。
一、Autoregressive Model
我们有的是数据
x
i
∼
P
d
a
t
a
x_i\sim P_{data}
xi∼Pdata,需要对拟合真实分布
P
d
a
t
a
P_{data}
Pdata的模型分布
P
θ
P_\theta
Pθ进行Representation.
具体学习过程:
- 从represent好的模型分布 P θ P_\theta Pθ进行Generation,得 x ^ \hat x x^;
- 度量分布距离 d ( P d a t a , P θ ) d(P_{data},P_\theta) d(Pdata,Pθ),或者度量采样的样本距离 d ( x d a t a , x ^ ) d(x_{data},\hat x) d(xdata,x^),进行Inference推断模型参数 θ \theta θ
- Learning,即通过何种方式进行参数更新,怎么learn的问题
给定一个具体的任务,如MNIST中的手写数字二值图分类,从Generative的角度进行Represent,并在Inference中Learning
下面先介绍:
- 描述如何对这个MINST任务建模 p ( X , Y ) p(X,Y) p(X,Y)(Representation)
1.1 对MNIST任务建模
对于一张pixel为 28 × 28 28\times28 28×28大小的图片,令 x 1 x_1 x1表示第一个pixel的随机变量, x 1 ∈ { 0 , 1 } x_1\in\{0,1\} x1∈{0,1},需明确:
-
任务目标:学习一个模型分布 p ( x 1 , . . . , x 784 ) , x ∈ { 0 , 1 } p(x_1,...,x_{784}),x\in\{0,1\} p(x1,...,x784),x∈{0,1},使采样时 x ∼ p θ ( X ) x\sim p_\theta(X) x∼pθ(X),x是一个logits数字的概率高(还没分类呢)
-
模型假设:
p ( x 1 , . . . , x 784 ) = p C P T ( x 1 ; α 1 ) p l o g i t ( x 2 ∣ x 1 ; α 2 ) ⋯ p l o g i t ( x n ∣ x 1 , . . . x n − 1 ; α n ) p(x_1,...,x_{784})=p_{CPT}(x_1;\alpha^1)p_{logit}(x_2|x_1;\alpha^2)\cdots p_{logit}(x_n|x_1,...x_{n-1};\alpha^n) p(x1,...,x784)=pCPT(x1;α1)plogit(x2∣x1;α2)⋯plogit(xn∣x1,...xn−1;αn)
-
先利用参数 α 1 \alpha_1 α1参数化 p C P T ( x 1 ; α 1 ) p_{CPT}(x_1;\alpha^1) pCPT(x1;α1),如 p C P T ( X 1 = 1 ; α 1 ) = α 1 p_{CPT}(X_1=1;\alpha^1)=\alpha^1 pCPT(X1=1;α1)=α1, p C P T ( X 1 = 0 ; α 1 ) = 1 − α 1 p_{CPT}(X_1=0;\alpha^1)=1-\alpha^1 pCPT(X1=0;α1)=1−α1
-
基于前面的变量 x 1 x_1 x1,利用参数 α 2 \alpha_2 α2参数化 p l o g i t ( x 2 ∣ x 1 ; α 2 ) p_{logit}(x_2|x_1;\alpha^2) plogit(x2∣x1;α2),如 p l o g i t ( X 2 = 1 ∣ x 1 ; α 2 ) = σ ( α 0 2 + α 1 2 x 1 ) p_{logit}(X_2=1|x_1;\alpha^2)=\sigma(\alpha^2_0+\alpha_1^2x_1) plogit(X2=1∣x1;α2)=σ(α02+α12x1)
-
基于前面的变量 x 1 , x 2 x_1,x_2 x1,x2,利用参数 α 3 \alpha_3 α3参数化 p l o g i t ( x 3 ∣ x 1 , x 2 ; α 3 ) p_{logit}(x_3|x_1,x_2;\alpha^3) plogit(x3∣x1,x2;α3),如 p l o g i t ( X 3 = 1 ∣ x 1 , x 2 ; α 3 ) = σ ( α 0 3 + α 1 3 x 1 + α 2 3 x 2 ) p_{logit}(X_3=1|x_1,x_2;\alpha^3)=\sigma(\alpha^3_0+\alpha^3_1x_1+\alpha^3_2x_2) plogit(X3=1∣x1,x2;α3)=σ(α03+α13x1+α23x2)
以此类推,第 i i i个pixel取决于前 i − 1 i-1 i−1个pixel,这种特性称作AutoRegressive,自回归即
x ^ i = p ( X i = 1 ∣ x 1 , . . . , x i − 1 ; α i ) = σ ( α 0 i + ∑ j = 1 i − 1 α j i x j ) \hat x_i=p(X_i=1|x_1,...,x_{i-1};\alpha^i)=\sigma(\alpha_0^i+\sum_{j=1}^{i-1}\alpha_j^ix_j) x^i=p(Xi=1∣x1,...,xi−1;αi)=σ(α0i+j=1∑i−1αjixj)这样建模的参数量有 1 + 2 + ⋯ + n ≈ n 2 2 1+2+\cdots+n\approx \frac{n^2}{2} 1+2+⋯+n≈2n2
- 模型分布:
评估(Evaluate)模型分布:
p
(
X
1
=
0
,
X
2
=
1
,
X
3
=
1
)
=
(
1
−
x
^
1
)
×
x
^
2
×
x
^
3
p(X_1=0,X_2=1,X_3=1)=(1-\hat x_1)\times\hat x_2\times\hat x_3
p(X1=0,X2=1,X3=1)=(1−x^1)×x^2×x^3
从模型分布采样:
x
ˉ
1
∼
p
(
x
1
)
x
ˉ
2
∼
p
(
x
2
∣
x
1
=
x
ˉ
1
)
x
ˉ
3
∼
p
(
x
3
∣
x
1
=
x
ˉ
1
,
x
2
=
x
ˉ
2
)
⋯
\bar x_1\sim p(x_1)\\ \bar x_2\sim p(x_2|x_1=\bar x_1)\\ \bar x_3\sim p(x_3|x_1=\bar x_1,x_2=\bar x_2)\cdots
xˉ1∼p(x1)xˉ2∼p(x2∣x1=xˉ1)xˉ3∼p(x3∣x1=xˉ1,x2=xˉ2)⋯
目前基于这种模型假设形成的representation,称作FVSBN(Fully Visible Sigmoid Belief Network),图大致如下:
1.2 FVSBN模型扩展NADE
上述的FVSBN,
x
^
i
\hat x_i
x^i是分布
p
(
X
i
=
1
∣
x
1
,
.
.
.
,
x
i
−
1
;
α
i
)
p(X_i=1|x_1,...,x_{i-1};\alpha^i)
p(Xi=1∣x1,...,xi−1;αi)的观测值,即由随机变量直接生成,完全可观测Fully Visible,Sigmoid则是对线性化随机变量
σ
(
α
0
i
+
∑
j
=
1
i
−
1
α
j
i
x
j
)
\sigma(\alpha_0^i+\sum_{j=1}^{i-1}\alpha_j^ix_j)
σ(α0i+∑j=1i−1αjixj)的激活函数。
对FVSBN,进行隐层hidden layer扩展,称为NADE(Neural Autoregressive Density Estimation),图如下:
x
^
i
=
p
(
x
i
∣
x
1
,
…
,
x
i
−
1
)
=
σ
(
α
i
h
i
+
b
i
)
h
i
=
σ
(
W
x
<
i
+
c
i
)
x
^
i
=
σ
(
α
i
σ
(
W
x
<
i
+
c
i
)
+
b
i
)
\hat x_i=p(x_i|x_1,\dots,x_{i-1})=\sigma(\alpha_ih_i+b_i)\\ h_i=\sigma(Wx_{<i}+c_i)\\ \hat x_i=\sigma(\alpha_i\sigma(Wx_{<i}+c_i)+b_i)
x^i=p(xi∣x1,…,xi−1)=σ(αihi+bi)hi=σ(Wx<i+ci)x^i=σ(αiσ(Wx<i+ci)+bi)
其中
α
i
,
b
i
,
c
i
,
W
\alpha_i,b_i,c_i,W
αi,bi,ci,W均为参数,具体看下图:
若
h
i
∈
R
d
,
则
α
i
,
b
i
∈
R
d
,
c
i
∈
R
d
,
W
∈
R
d
×
n
h_i\in R^d,则\alpha_i,b_i\in R^d,c_i\in R^d,W\in R^{d\times n}
hi∈Rd,则αi,bi∈Rd,ci∈Rd,W∈Rd×n,因此evaluation
p
(
x
1
,
.
.
.
,
x
n
)
p(x_1,...,x_n)
p(x1,...,xn)的复杂度为
O
(
n
d
)
O(nd)
O(nd).
1.3 任务复杂度扩展RNADE(Random NADE)
上述NADE的任务背景是每个pixel均为二值变量 x i ∈ { 0 , 1 } x_i\in\{0,1\} xi∈{0,1},现在先扩展到256个值的变量 x i ∈ { 0 , 1 , . . . , 255 } x_i\in\{0,1,...,255\} xi∈{0,1,...,255},再扩展到连续变量如 x i ∼ N ( u i , σ i ) x_i \sim N(u_i,\sigma_i) xi∼N(ui,σi).
- 多项式分布
先看看256个值的变量 x i x_i xi,自然想到用多项式分布categorical distribution,即 x i ∼ C a t ( p i 1 , . . . , p i 256 ) x_i\sim Cat(p_i^1,...,p_i^{256}) xi∼Cat(pi1,...,pi256),对于第 i i i个随机变量服从一个多项分布 C a t Cat Cat,其参数为 p i k , k = 1 , . . . , 256 p_i^k,k=1,...,256 pik,k=1,...,256
在NADE中有:
x ^ i = p ( x i ∣ x 1 , … , x i − 1 ) = σ ( α i h i + b i ) h i = σ ( W x < i + c i ) x ^ i = σ ( α i σ ( W x < i + c i ) + b i ) \hat x_i=p(x_i|x_1,\dots,x_{i-1})=\sigma(\alpha_ih_i+b_i)\\ h_i=\sigma(Wx_{<i}+c_i)\\ \hat x_i=\sigma(\alpha_i\sigma(Wx_{<i}+c_i)+b_i) x^i=p(xi∣x1,…,xi−1)=σ(αihi+bi)hi=σ(Wx<i+ci)x^i=σ(αiσ(Wx<i+ci)+bi)
因此RNADE有:
p ( x i ∣ x 1 , … , x i − 1 ) = C a t ( p i 1 , . . . , p i 256 ) ( 1 ) x ^ i = ( p i 1 , . . . , p i 256 ) = s o f t m a x ( X i h i + b i ) ( 2 ) h i = σ ( W x < i + c i ) ( 3 ) p(x_i|x_1,\dots,x_{i-1})=Cat(p_i^1,...,p_i^{256})\quad (1)\\ \hat x_i=(p_i^1,...,p_i^{256})=softmax(X_ih_i+b_i)\quad (2)\\ h_i=\sigma(Wx_{<i}+c_i)\quad (3) p(xi∣x1,…,xi−1)=Cat(pi1,...,pi256)(1)x^i=(pi1,...,pi256)=softmax(Xihi+bi)(2)hi=σ(Wx<i+ci)(3)
解释一下:
(
1
)
(1)
(1):利用Autoregressive来建模联合分布,第
i
i
i个随机变量的分布condition on前
i
−
1
i-1
i−1个随机变量的值,并服从一个多项式分布
C
a
t
Cat
Cat(离散情况下的数量)
(
2
)
(2)
(2):一个观测值
x
^
i
\hat x_i
x^i的多项式分布参数
p
i
1
,
.
.
.
,
p
i
256
p_i^1,...,p_i^{256}
pi1,...,pi256来自隐层输出
X
i
h
i
+
b
i
X_ih_i+b_i
Xihi+bi的softmax
(
3
)
(3)
(3):一个隐层的输入
h
i
h_i
hi与前面
i
−
1
i-1
i−1个随机变量有关
(最想说的还是,该建模过程,通过假设分布,模型最后的输出拟合的是分布参数,采样观测值的分布,而并不是观测值本身)
- 高斯分布
连续变量的情况下,最容易想到的就是高斯分布了。根据上面的流程,看看建模过程是怎样的representation
p ( x i ∣ x 1 , … , x i − 1 ) = ∑ j = 1 K 1 K N ( x i ; u i j , σ i j ) ( 1 ) x ^ i = ( u i 1 . . . , u i K , σ i 1 , . . . , σ i K ) = f ( h i ) ( 2 ) h i = σ ( W x < i + c i ) ( 3 ) p(x_i|x_1,\dots,x_{i-1})=\sum_{j=1}^K\frac{1}{K}N(x_i;u_i^j,\sigma_i^j)\quad (1)\\ \hat x_i=(u_i^1...,u_i^K,\sigma_i^1,...,\sigma_i^K)=f(h_i)\quad (2)\\ h_i=\sigma(Wx_{<i}+c_i)\quad (3) p(xi∣x1,…,xi−1)=j=1∑KK1N(xi;uij,σij)(1)x^i=(ui1...,uiK,σi1,...,σiK)=f(hi)(2)hi=σ(Wx<i+ci)(3)
解释一下:
(
1
)
(1)
(1):利用Autoregressive来建模联合分布,第
i
i
i个随机变量的分布condition on前
i
−
1
i-1
i−1个随机变量的值,并服从由K个高斯分布组成的混合高斯分布
(
2
)
(2)
(2):一个观测值
x
^
i
\hat x_i
x^i的混合高斯分布参数
(
u
i
1
.
.
.
,
u
i
K
,
σ
i
1
,
.
.
.
,
σ
i
K
)
(u_i^1...,u_i^K,\sigma_i^1,...,\sigma_i^K)
(ui1...,uiK,σi1,...,σiK)来自经过函数
f
f
f映射的隐层输出
X
i
h
i
+
b
i
X_ih_i+b_i
Xihi+bi
(
3
)
(3)
(3):一个隐层的输入
h
i
h_i
hi与前面
i
−
1
i-1
i−1个随机变量有关
二、 以Autoregressive看Autoencoder与RNN
2.1 Autoregressive 的Autoencoder
上述提到的FVSBN、NADE、RNADE在建模联合分布时,都假设了第
i
i
i个随机变量的分布condition on前
i
−
1
i-1
i−1个随机变量的值,并服从一个假设分布。
实际上自回归Autoregressive的意思,是指这堆随机变量之间组成一个DAG图,即在Deep Generative Model (1)中提过,随机变量之间存在条件独立性的约束,并不存在环(那存在环咋办,后续再说?)
我们看看Autoencoder的图,与RNADE想比,随机变量
x
1
,
x
2
,
x
3
x_1,x_2,x_3
x1,x2,x3之间并无条件独立性假设,而且值输入一次,1个pass,就可以得到三个观测值
x
^
1
,
x
^
2
,
x
^
3
\hat x_1,\hat x_2,\hat x_3
x^1,x^2,x^3,但是RNADE的
n
n
n个观测值
x
^
1
,
x
^
2
.
.
.
x
^
n
\hat x_1,\hat x_2...\hat x_n
x^1,x^2...x^n,需要值输入n次,n个pass,因为第
i
i
i个观测值取决于前
i
−
1
i-1
i−1个随机变量
x
1
,
x
2
,
.
.
.
,
x
i
−
1
x_1,x_2,...,x_{i-1}
x1,x2,...,xi−1的值。
下面简要介绍一下Autoregressive的AutoEncoder,最主要的就是在随机变量之间施加条件独立性假设,具体做法就是通过Masks,如下图:
通过固定一个Mask来实现输入层随机变量与隐层之间的条件独立性假设,从而使得输出层的分布参数形成的分布如
p
(
x
3
∣
x
2
)
p(x_3|x_2)
p(x3∣x2)带有了Autoregressive的特性。具体可参见这篇文章。
MADE: Masked Autoencoder for Distribution Estimation 2015 jmlr
2.2 带有Autoregressive特性的RNN
在上面的模型FVSBN,NADE,RNADE中,建模时有一个问题,即
p
(
x
t
∣
x
1
:
t
−
1
;
α
t
)
p(x_t|x_{1:t-1};\alpha^t)
p(xt∣x1:t−1;αt)随着变量个数或者序列长度t的增多,Hitory即
x
1
:
t
−
1
x_{1:t-1}
x1:t−1一直在变长,造成计算量剧增。
Idea:解决这个histroy随序列变长的问题,就是从一开始就存储一个对History信息进行浓缩的Summary,并且每一次变长都更新这个Summary,就不需要每次都计算一遍历史信息了。
- Summary update: h t + 1 = t a n h ( W h h h t + W x h x t + 1 ) h_{t+1}=tanh(W_{hh}h_t+W_{xh}x_{t+1}) ht+1=tanh(Whhht+Wxhxt+1)
- Prediction: o t + 1 = W h y h t + 1 o_{t+1}=W_{hy}h_{t+1} ot+1=Whyht+1
- Summary Initalization: h 0 = b 0 h_0=b_0 h0=b0
解释一下:
4. 第t+1时刻的Summary = tanh(第t时刻的Summary+第t+1时刻的输入)
5. 第t+1时刻的观测值observation = 第t+1时刻的Summary的变换
6. 初始化Summary
一个为什么RNN自带Autoregressive的例子:
- 假设随机变量 x i ∈ { h , e , l , o } x_i\in\{h,e,l,o\} xi∈{h,e,l,o},使用one-hot编码
- Autoregressive: p ( X ) = p ( X 1 = h , X 2 = e , X 3 = l , X 4 = l , X 5 = o ) = p ( x 1 = h ) p ( x 2 = e ∣ x 1 = h ) … p ( X 5 = o ∣ X 1 = h , X 2 = e , X 3 = l , X 4 = l ) p(X)=p(X_1=h,X_2=e,X_3=l,X_4=l,X_5=o)=p(x_1=h)p(x_2=e|x_1=h)\dots p(X_5=o|X_1=h,X_2=e,X_3=l,X_4=l) p(X)=p(X1=h,X2=e,X3=l,X4=l,X5=o)=p(x1=h)p(x2=e∣x1=h)…p(X5=o∣X1=h,X2=e,X3=l,X4=l)
当然除此以外,随机变量 x i x_i xi的取值可以是word,bi word,也是character,在图像中则为pixel,于是有Pixel RNN,Pixel CNN这样的模型,采用AutoRegressive建模的方式与上述差异不大。
三、 Pixel RNN与Pixel CNN
主要对Image的pixel进行Autoregressive的角度,看看Pixel RNN与Pixel CNN的大致原理,顺便回顾下Autoregressive的Generative Model对一个问题的建模过程。
3.1 Pixel RNN
对于一张彩色的图片,假设随机变量条件独立性的顺序ordering,如
x
1
,
x
2
,
.
.
.
x
n
2
x_1,x_2,...x_{n^2}
x1,x2,...xn2。Autoregressive总有一个ordering,毕竟条件独立性嘛~
- 先研究变量 x i x_i xi的取值,因为是彩色图片,所以一个pixel的 x i x_i xi除了离散的256个灰度值,还有三个通道(R,G,B),所以 x i ∈ { 0 , 1 , . . . , 255 , R , G , B } x_i\in \{0,1,...,255,R,G,B\} xi∈{0,1,...,255,R,G,B}
- 联合分布有 p ( x 1 , . . . , x n 2 ) = p ( x 1 ; α 1 ) p ( x 2 ∣ x 1 ; α 2 ) ⋯ p ( x n 2 ∣ x 1 , . . . , x n 2 − 1 ; α n 2 ) p(x_1,...,x_{n^2})=p(x_1;\alpha^1)p(x_2|x_1;\alpha^2)\cdots p(x_{n^2}|x_1,...,x_{n^2-1};\alpha^{n^2}) p(x1,...,xn2)=p(x1;α1)p(x2∣x1;α2)⋯p(xn2∣x1,...,xn2−1;αn2)
- 对其建模
p ( x t ∣ x 1 , . . . , x t − 1 ; α t ) = p ( x t R ∣ x 1 : t − 1 ) p ( x t G ∣ x 1 : t − 1 , x t R ) p ( x t B ∣ x 1 : t − 1 , x t R , x t G ) p(x_t|x_1,...,x_{t-1};\alpha^t)=p(x_t^R|x_{1:t-1})p(x_t^G|x_{1:t-1},x_t^R)p(x_t^B|x_{1:t-1},x_t^R,x_t^G) p(xt∣x1,...,xt−1;αt)=p(xtR∣x1:t−1)p(xtG∣x1:t−1,xtR)p(xtB∣x1:t−1,xtR,xtG)其中 p ( x t R ∣ x 1 : t − 1 ) , p ( x t G ∣ x 1 : t − 1 , x t R ) , p ( x t B ∣ x 1 : t − 1 , x t R , x t G ) p(x_t^R|x_{1:t-1}),p(x_t^G|x_{1:t-1},x_t^R),p(x_t^B|x_{1:t-1},x_t^R,x_t^G) p(xtR∣x1:t−1),p(xtG∣x1:t−1,xtR),p(xtB∣x1:t−1,xtR,xtG)均服从一个多项式分布,即 C a t ( p R , G , B 1 , . . . , p R , G , B 256 ) Cat(p_{R,G,B}^1,...,p_{R,G,B}^{256}) Cat(pR,G,B1,...,pR,G,B256) - 对于历史信息
x
1
:
t
−
1
x_{1:t-1}
x1:t−1的处理采用RNN的形式,大致原理如下图所示
解释一下大意: - 最底层的context即 x 1 : t − 1 x_{1:t-1} x1:t−1的历史信息值,作为conditon
- 中间层的R condition on x 1 : t − 1 x_{1:t-1} x1:t−1,即 p ( x t R ∣ x 1 : t − 1 ) p(x_t^R|x_{1:t-1}) p(xtR∣x1:t−1)
- 中间层与顶层的G condition on x 1 : t − 1 , x t R x_{1:t-1},x_t^R x1:t−1,xtR即 p ( x t G ∣ x 1 : t − 1 , x t R ) p(x_t^G|x_{1:t-1},x_t^R) p(xtG∣x1:t−1,xtR)
这三层的意思,是因为使用RNN来避免重复计算历史信息,即进行Summray的update。而Mask的作用在于,限制层间信息传输是服从条件独立性的,区别于Fully Connected。
3.2 Pixel CNN
- Pixel CNN与Pixel RNN的区别
- Pixel RNN对联合分布的条件独立性假设是
p
(
x
t
∣
x
1
,
.
.
.
,
x
t
−
1
;
α
t
)
p(x_t|x_1,...,x_{t-1};\alpha^t)
p(xt∣x1,...,xt−1;αt)
Pixel CNN对联合分布的条件独立性假设是 p ( x t ∣ x n e i g h b o r h o o d ; α t ) p(x_t|x_{neighborhood};\alpha^t) p(xt∣xneighborhood;αt) - 如上图所示,对第 i i i个pixel的预测,condition on 邻居pixel时,是Pixel CNN;condition on 历史信息 x 1 : i − 1 x_{1:i-1} x1:i−1的pixels时,是Pixel RNN;
- Pixel CNN与Pixel RNN比效果相当,但计算速度更快。
- 两者共同点
- 共同的地方就是把随机变量的取值 { 0 , 1 , . . . , 255 , R , G , B } \{0,1,...,255,R,G,B\} {0,1,...,255,R,G,B}分为 { 0 , 1 , . . . , 255 } \{0,1,...,255\} {0,1,...,255}与 { R , G , B } \{R,G,B\} {R,G,B}两个部分进行处理
- 对conditon on通道
{
R
,
G
,
B
}
\{R,G,B\}
{R,G,B}的
{
0
,
1
,
.
.
.
,
255
}
\{0,1,...,255\}
{0,1,...,255}采用的都是多项式分布建模,对通道建模处理相同,即
p ( x t ∣ x 1 , . . . , x t − 1 ; α t ) = p ( x t R ∣ x 1 : t − 1 ) p ( x t G ∣ x 1 : t − 1 , x t R ) p ( x t B ∣ x 1 : t − 1 , x t R , x t G ) p(x_t|x_1,...,x_{t-1};\alpha^t)=p(x_t^R|x_{1:t-1})p(x_t^G|x_{1:t-1},x_t^R)p(x_t^B|x_{1:t-1},x_t^R,x_t^G) p(xt∣x1,...,xt−1;αt)=p(xtR∣x1:t−1)p(xtG∣x1:t−1,xtR)p(xtB∣x1:t−1,xtR,xtG) - 实现条件独立性的顺序即condition on的做法,都是采用固定的mask进行,对于Pixel CNN选neighborhood的操作,如下图:
具体细节可参见
Pixel RNN 2016 CVPR
四、小总结
Autoregressive Model还有在Adversarial Attacks和Anomaly Detect中的应用如2018年的PixelDefend,对抗样本和异常样本输入到训练好的模型分布
p
θ
(
x
)
p_\theta(x)
pθ(x)中对的概率是非常低的,因此可以检测出来。
偷个懒(逃~
详情可见CS236