从判别式到生成式——深度学习模型学习

对于深度学习的判别式和生成式一直没有很大的理解进步,现在可能有了一定的进步了,先写下来,忝列论坛,希望得到指正。

首先,对于任意一个问题,并没有特殊的模型来适配问题所属的概率密度函数。可能我们举例时喜欢说“假设模型满足正态分布,均匀分布”等等,但是在实际运用中,我们并没有一个特定的已知分布模型来适配整个问题。所以其实,在深度学习问题中,我们往往使用一定的模型,该模型能够符合一部分的函数簇,使得适配的函数在模型所包含的函数簇中。有的书上说“我们会使用某个激活函数来使得模型满足一定的分布”。需要注意的是:我们所说的函数,信号,系统,概率分布,概率密度,分布,其实都指的是函数本身或者函数图像。激励,响应对应着函数的输入和输出。例如,我们使用层级递进卷积来适配数字图像问题,这是利用了图像局部响应和空间不变的特点来寻找特定形状的filter,这样的层级结构能够把握数字图像在一定空间大小上的语义信息和内容信息。利用离散卷积公式写出的整体网络函数就是满足某一些分布的函数簇。再比如,循环神经网络就是在序列的时间轴上把握信息,如果仅观察任意一个rnn block,他所做的不过是对sequence的当前word做仿射变换并激活输出。当然我们可以加上前后的序列信息使其变得具有记忆性,这是后话。正是block在序列上的循环利用使得他被称为Recurrent。

关于样本问题,通常我们总是想知道在给定某个样本的情况下,我们对他的某个标定值是多少。比如给定一幅512x512x3 的RGB图像,我们想了解图像上是猫还是狗。那么,该512x512x3维的张量,其维度就对应着在该尺度下对连续真实世界的一次采样,可以理解为真实世界到512x512x3维的投影。以下概念在该维度下讨论。任意一个图像就是该维度下的一次采样。每个像素就理解为一次采样中的一个维度上的采样值。那么,这幅图像就可以看成是该维度下的一个坐标点,并且有唯一的向量表示。对真实世界的经验观察可以得知:物以类聚人以群分。同样的,大量的被标注以猫或狗的采样分布在这个高维空间中,并且他们较为紧凑的分布在对应的质心周围。因此,卷积操作对于数字图像的处理就是利用形状的空间不变性和层级递进性,在图像的每个位置都检测是否有特定形状,并且利用递进的卷积来形成更高级的形状。从而把图像转换成维数较少的向量。并且,在原始空间中不一定可分的向量,也可以在转换后的向量空间中变得线性可分。

关于模型训练问题。模型的结构设计是一个超参数问题,这关系到对原始问题的经验性建模。不论是VGG还是ResNet,或者ResNext,RegNet,AlexNet等等,都是对模型的数学建模。设计好的模型能模拟一定范围内的函数,称之为模型拟合的函数簇。但是,对于函数的具体参数,还需要训练。前面提到过,不论是函数也好,网络也好,模型也好,概率分布也好,都指的是一个东西,都是分布在一些变量上的一个形状。想象一下一元函数的积分,或者想象一下二元函数的二重积分或者第一类曲线积分,就像是一朵棉花糖,一朵云彩,一块铁皮。其实把他们称为分布也好,函数也好,都是一个系统,他们都是对于一定的输入产生一定的输出。

对于大数据驱动的训练方法,其实就是模型的训练问题。数据本身潜在的满足一些分布,这是我们的“先验知识”。比如我们靠观察就可以知道,人脸是有一定的偏圆形轮廓的,该轮廓大概是纵轴对称的。并且由上向下对称刻画着眉毛,眉毛下面是眼睛,轴线上是对称的鼻子和两个鼻孔,下面是嘴唇。这就是人脸在内容上的分布了,全世界大部分的人脸都是这样的(除了一些特殊的,比如残疾,手术受损等等)。我们认为这些数据是由一些隐式的变量(也就是我们从肉眼的观察等诸多记录手段中无法直接观察到的变量)生成的,由此可以看出,人脸总是包含那些生成眉毛眼睛鼻子嘴头发之类的变量,并且他们在空间位序上也有要求,比如嘴巴在鼻子之下,并且双眼之间的间距也在一定的范围内。诸如此类的难以语言描述,但是的确存在的变量控制着人脸的生成,所以我们建模就是对这些变量的分布进行建模,这些变量可能有着相互作用型的,也有可能有相互独立型的。现有的深度学习技术就是对分布,也就是函数的参数进行推导。比如对于一元一次函数f(x)=kx+b,设定一定的规则来对参数k和b来推导,这就是我们的目的。在高维中亦是如此。

概率论与统计中的一大重点就是参数估计(推导)。其中极大似然估计是一种常见的方法,在这里不做过多的叙述。通过极大似然估计,我们求得了这个分布也就是函数的参数,那么对于新输入的,训练系统时没见过的采样x,就能依据训练时的模拟来得到该采样对应的信息,比如类别等等。该方法要求我们尽可能多的提供样本数据。由此,引出了判别式模型和生成式模型。

对应的联合概率分布和条件概率分布就不赘述了。对于判别式模型,模型试着去模拟了一次判别的过程:给定数据,不断地推演,推演,得到一个在给定X=x的条件下的概率分布P(Y=y1)=多少,P(Y=y2)=多少。。。也就是说,判别式模型训练的是一个分类这个决策过程的一个边界,也就是找到不同的类之间的boundary。类似于SVM,所以也有人用CONV+SVM来代替CONV+Softmax,其实是一个意思。越多的有用数据,判别的信息就越完善,边界越sharp,越distinctive。
对于生成式模型,模型并没有学到什么判别信息,相反的,他只是学着去模拟Y=y1且X=x1是啥样的一个数据(这就是我们给定的一个采样),然后通过参数给填充到分布,也就是函数所在的那个空间里去。可以想象的是,有效样本越多,整个函数就越丰满,就好像微分的过程对函数自变量取极限一样,分布就如同云朵一样被填充的愈加丰满,分布见一个存一个,通过记忆整体信息来刻画分布的形状。这就是为什么生成式是联合概率分布。就如同GAN一样, 模型啥也不知道,他只知道利用给定的隐变量x来生成一个存在于和真实数据一样的样本空间里的一个“以假乱真”的样本。所以他模拟了X和Y同时存在的联合概率分布。

在该文章下也可以看到举例:https://medium.com/@mlengineer/generative-and-discriminative-models-af5637a66a3

https://www.zhihu.com/question/20446337/answer/256466823

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值