STATS385
Lecture04: Convnets from First Principles: Generative Models, Dynamic Programming & EM
- 为什么我们需要深度学习乃至机器学习?因为对于目标识别这样的任务来说充满了许多纷芜繁杂的困难(nuisance variation),它们影响传感器的输入但是并不影响物体的类别。那如何解决这些问题呢?建立一个有选择性的、不变性的和适应多任务的物体表示,这就是机器学习的Holy Grail——学习一种不相关的把这些变数分解出来的表示,而深度学习就是其中的一种深度处理特征的方法。
- 深度学习获得成功的领域:目标识别、风格迁移、手写字符生成;
不成功的领域:自然图像生成、自动驾驶由路边物体和天气导致的交通事故、小目标透明目标识别、抽象后的目标识别、近景下的目标识别、非传统视角下的目标识别、严重遮挡下的目标识别 - 对理论的迫切需要
具体需要解决的理论问题
- 其实关于深度学习的理论已经有一些工作了
其中scattering network在上次课中已经有过介绍了 从生成式模型的角度来理解CNN
CNN已经有许多结构,但是一些关键的运算和优化准则是相同的:卷积、max pooling、ReLU、skip connection、batch normalization、dropout、noise、data augmentation、交叉熵/NLL/重建误差/互信息目标函数等
下面我们构建这样一个生成式模型,我们的策略是- 捕捉前面提到的那些nuisance variation
- 把前向传播过程视为隐变量的MAP inference,得到生成式分类器
- 加上判别式松弛条件,得到判别式分类器
- 通过batch hard EG算法进行学习,也即SGD反向传播训练
- 用新的生成式模型解决深度CNN的局限,方法包括:自顶向下infernece、从无标记数据中学习、超参数优化
如果我们成功了的话
- 我们就能搞懂那些隐式的(关于CNN的)先验知识
- 同时从无标记和有标记数据中学习
- 原则上可以实现自顶向下的fine-scale任务的inference
- 系统地设计新模型、改善模型性能和弥补缺陷的方法
- 对于学习结构参数的模型选择方法
- 等等等等
如果我们能够找到一种这样一种从底层上阐述CNN的生成式模型,我们就能从原理上解决其现有的局限从而超越CNN!(这不正是大家梦寐以求的吗?)
接下来老师介绍了他们的一项工作Semi-Supervised Learning with the Deep Rendering Mixture Model。render是计算机图形学中的概念,指的是利用计算机中的模型生成图像,deep rendering mixture model就是由一个隐变量经过重重运算得到一幅图像的模型,如下图所示,A中显示的是整体的抽象模型,B中显示的是transpose convolution生成图像过程中的一层,C中是每层的操作和隐变量的表示。
根据该模型生成图像,再将图像输入一个factor graph和CNN
首先讨论shallow rendering mixture model,这实际上模仿了稀疏编码,其过程是- 确定字典的mask a a
- 确定每个元素的权重 即factor
- 确定render的位置,即fine-scale position g g
- render the image path ,于是
I=Λ(c,g)(a⊙z)+noise=MaskaΛ(c,g)z+noise
I
=
Λ
(
c
,
g
)
(
a
⊙
z
)
+
n
o
i
s
e
=
M
a
s
k
a
Λ
(
c
,
g
)
z
+
n
o
i
s
e
定理:RMM inference实际上就是一个卷积层。max-sum(factor graph中的) inference就是卷积层;要想实现平移不变性就要用卷积层;对 a a 和进行max-marginalizing就会导致ReLU和max-pooling
其次看Deep Rendering Mixture Model(DRMM),由单层RMM的函数可知 μcg=Λgμc(L)=∏iΛ(i)g(i)μc(L),I∼N(μc(L),σ21D(0)) μ c g = Λ g μ c ( L ) = ∏ i Λ g ( i ) ( i ) μ c ( L ) , I ∼ N ( μ c ( L ) , σ 2 1 D ( 0 ) ) 。隐含的nuisance variable控制了多个长度尺度的相关性(???);inference自然而然就成了CNN;训练可以采用EM算法(我没学好)。最终这统一了CNN上的有监督、无监督和半监督学习。
由于RMM是一个稀疏编码器,因此DRMM的每一层都是一个稀疏编码器。render的过程包括:- 选择一个fine-scale location t t
- 从字典中选择单词 a a <script type="math/tex" id="MathJax-Element-2517">a</script>
- render
- 从动态规划的角度理解CNN
- 半监督学习