面试AI技术内参-126计算机视觉高级话题(三):产生式模型


126 计算机视觉高级话题(三):产生式模型

今天,我们来讨论计算机视觉高级话题中的”产生式模型“(Generative Model)。

我们前面讲到的计算机视觉问题,绝大多数场景都是去学习一个"判别式模型”(Discriminative Model),也就是我们希望构建机器学习模型来完成这样的任务,比如判断某一件事情或一个图片的特征,或者识别图片里面的物体等,这些任务都不需要回答"数据是如何产生的"这一问题。简言之,针对判断类型的任务,不管是回归还是分类,我们都不需要对数据直接进行建模。

然而,判别式模型并不能解决所有的机器学习任务。有一些任务的核心其实需要我们针对数据进行有效的建模,这就催生了"产生式模型”。

产生式模型的一些基础概念

那么,针对数据建模的产生式模型都有哪些基本思想呢?

首先,产生式模型的一个核心思想就是模型要能够产生数据。也就是说,产生式模型不仅需要针对已有的数据建模,还需要有能力产生新的数据。产生出的这些新数据当然需要和已有的数据有一定的相似度。换句话说,新产生的数据要能够"以假乱真”。

那么,有哪些能够产生数据的工具呢? 在比较简单的模型中,概率分布其实就起了产生数据的作用*。例如,在离散概率分布的世界里,如果我们知道了一个伯努利分布的参数,也就是某一个事件发生的概率,那么,从理论上来说,我们就可以模拟出这个事件的发生。

比如,我们利用伯努利分布来对掷硬币产生的正反面建模。一旦我们知道了这个分布的概率是0.5(或者说是50%),那么,我们从这个分布中产生的数据就可以形成和掷一枚没有偏差的硬币一样的效果。

同样的道理,如果我们利用正态(或者叫高斯)分布来针对一个连续变量建模,例如某一个地区的温度,那么一旦我们知道了这个正态分布的均值和方差这两个参数,我们就可以产生所有温度的可能值。假设温度完全服从这个正态分布,那么就可以认为这些可能值就是以后这个地区可能出现温度的真实情况。

当然,我们可以看到,简单概率分布无法对真实世界的绝大多数场景进行建模。这也不断激发研究人员来开发各种更加复杂的概率模型来对真实世界进行描述。

在过去十多年的时间里,一类机器学习思想逐渐成为主流的产生式模型,那就是概率图模型。顾名思义,概率图模型就是概率论和图论的巧妙结合,以此来对复杂的联合概率分布来进行描述。

我们今天就不针对概率图模型展开讨论了。你需要了解概率图模型的一个重要特点,那就是能够利用一个"显示的"表达式来写出这个联合概率分布,不管这个式子本身有多复杂。也就是说,概率图模型期望能够通过构建复杂的、显示的表达式来完成对真实场景的模拟

产生式对抗网络

显然,构造一个概率图模型是一个极具挑战的任务,面对复杂的情况,我们都需要写出一个显示的表达式,或者是针对这种场景的数据来进行模拟。例如,图像和音频信息就是比较复杂的数据,很难用一个公式(不管这个公式多么复杂)来表达。

那究竟该怎么办?针对这种复杂的数据,研究人员提出了一种新的产生式模型,这就是”产生式对抗网络 “(Generative Adversarial Nets),简称为 GAN[1]。在过去的几年里,这种模型因其概念简单而备受青睐。 GAN的基本思想是怎样的呢?

首先,我们有一个数据的"产生器”(Generator)。这个产生器的作用是从一个我们可以控制的模型中产生数据。最终我们的期望是这个产生器能够产生和真实数据一样的数据。

其次,我们有一个数据的"判别器”(Discriminator),其目的是区分数据究竟是真实的数据还是产生器产生的数据。 GAN的模型训练是一个迭代的过程。最开始,产生器肯定无法真正产生有效的数据,这个时候,判别器能够很轻松地对产生的数据进行一个评判:哪些是真实数据,哪些不是。但是产生器会根据这个判别结果,逐渐调整自己产生数据的过程,慢慢地让自己产生的数据趋于真实。一直到最后,判别器无法分别出数据的真伪。 GAN其实代表了这么一类模型,那就是不再对数据的产生过程进行显式建模,因为这个太过于困难,而是想办法定义一个流程,通过这个流程产生数据,从而能够直接去对真实数据进行模拟。 GAN和深度学习的结合点在哪里呢?就是产生器和判别器可以分别是多层的神经网络,甚至可以是更加复杂的深度学习模型。这样,GAN的学习过程其实也就是两个不同的,各司其职的深度学习模型参数学习的过程。

在近几年的发展中,基于GAN的各类模型层出不穷,而且能够产生的图片质量也越来越高,甚至有的真的达到了能以假乱真的程度。

就在很多人都对这类模型充满了信心的时候,一些理论界的研究再次让大家对产生式模型,特别是GAN的前景萌生了怀疑。GAN能够彻底解决产生式模型的所有问题吗?

最新的论文[2]论证了GAN在一些限定情况下并不是对数据的整个分布进行建模。一个通俗的例子是,如果我们训练了一个可以产生猫的图片的GAN,那么在理想状态下,这个模型是不是应该可以产生各式各样不同种类的猫的图片呢?答案是,经过某种训练的GAN并不能做到这一点。相反,GAN只能产生有限的猫的图片。这肯定是不太理想的一种情况。

那么,研究者究竟是应该修改GAN来克服这个问题,还是能够找到更好的方法来产生数据,目前这还是一个未知答案的研究课题。

小结

今天我为你讲了计算机视觉高级话题之一的产生式模型。

一起来回顾下要点:第一,我们来讲了为什么需要产生式模型和简单的基于概率分布的数据产生器;第二,我们讨论了基于GAN的产生模型和最新研究的GAN的一些局限。

最后,给你留一个思考题,有了能够以假乱真的产生式模型,我们可以有哪些应用呢?

欢迎你给我留言,我们一起讨论。 参考文献*

  1. Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, and Yoshua Bengio. Generative adversarial nets. Proceedings of the 27th International Conference on Neural Information Processing Systems - Volume 2 (NIPS'14), Z. Ghahramani, M. Welling, C. Cortes, N. D. Lawrence, and K. Q. Weinberger (Eds.), Vol. 2. MIT Press, Cambridge, MA, USA, 2672-2680, 2014.
  2. Sanjeev Arora and Yi Zhang. Do GANs learn the distribution? Some theory and empirics. ICLR. 2018

文章列表

更多推荐

更多
  • AWS自动化机器学习-十一、MLSDLC 的持续集成、部署和训练 技术要求,编纂持续集成阶段,管理持续部署阶段,管理持续训练,延伸,构建集成工件,构建测试工件,构建生产工件,自动化持续集成流程,回顾构建阶段,回顾测试阶段,审查部署和维护阶段,回顾应用用户体验,创建新的鲍鱼调查数据,回顾持续训练流程,清
    Apache CN

  • AWS自动化机器学习-六、使用 AWS 步骤函数自动化机器学习过程 技术要求,介绍 AWS 步骤功能,使用 Step 函数 Data Science SDK for CI/CD,建立 CI/CD 渠道资源,创建状态机,解决状态机的复杂性,更新开发环境,创建管道工件库,构建管道应用构件,部署 CI/CD
    Apache CN

  • AWS自动化机器学习-第三部分:优化以源代码为中心的自动化机器学习方法 本节将向您介绍整体 CI/CD 流程的局限性,以及如何将 ML 从业者的角色进一步整合到管道构建流程中。本节还将介绍这种角色集成如何简化自动化过程,并通过向您介绍 AWS Step 函数向您展示一种优化的方法。本节包括以下章节:
    Apache CN

  • AWS自动化机器学习-一、AWS 上的自动化机器学习入门 技术要求,洗钱流程概述,洗钱过程的复杂性,端到端 ML 流程示例,AWS 如何使 ML 开发和部署过程更容易自动化,介绍 ACME 渔业物流,ML 的情况,从数据中获得洞察力,建立正确的模型,训练模型,评估训练好的模型,探索可能的后续步
    Apache CN

  • AWS自动化机器学习-二、使用 SageMaker 自动驾驶器自动化机器学习模型开发 技术要求,介绍 AWS AI 和 ML 前景,SageMaker 自动驾驶器概述,利用 SageMaker 自动驾驶器克服自动化挑战,使用 SageMaker SDK 自动化 ML 实验,SageMaker Studio 入门,准备实验
    Apache CN

  • AWS自动化机器学习-四、机器学习的持续集成和持续交(CI/CD) 四、机器学习的持续集成和持续交CI/CD技术要求,介绍 CI/CD 方法,通过 CI/CD 实现 ML 自动化,在 AWS 上创建 CI/CD 管道,介绍 CI/CD 的 CI 部分,介绍 CI/CD 的 CD 部分,结束循环,采取以部
    Apache CN

  • AWS自动化机器学习-九、使用 Amazon Managed Workflows 为 Apache AirFlow 构建 ML 工作流 技术要求,开发以数据为中心的工作流程,创建合成鲍鱼调查数据,执行以数据为中心的工作流程,构建和单元测试数据 ETL 工件,构建气流 DAG,清理, 在前面的年龄计算器示例中,我们了解了如何通过 ML 从业者和开发人员团队之间的跨职能
    Apache CN

  • AWS自动化机器学习-七、使用 AWS 步骤函数构建 ML 工作流 技术要求,构建状态机工作流,执行集成测试,监控管道进度,设置服务权限,创建 ML 工作流程, 在本章中,我们将从第六章中的 [处继续,使用 AWS 步骤函数自动化机器学习过程。您将从那一章中回忆起,我们正在努力实现的主要目标是简化
    Apache CN

  • AWS自动化机器学习-八、使用 Apache Airflow 实现机器学习过程的自动化 技术要求,介绍阿帕奇气流,介绍亚马逊 MWAA,利用气流处理鲍鱼数据集,配置 MWAA 系统的先决条件,配置 MWAA 环境, 当建立一个 ML 模型时,有一个所有 ML 从业者都知道的基本原则;也就是说,最大似然模型只有在数据被训练时
    Apache CN

  • AWS自动化机器学习-五、自动化 ML 模型的持续部署 技术要求,部署 CI/CD 管道,构建 ML 模型工件,执行自动化 ML 模型部署,整理管道结构,创建 CDK 应用,部署管道应用,查看建模文件,审查申请文件,查看模型服务文件,查看容器构建文件,提交 ML 工件,清理, 在 [第 4
    Apache CN

  • 近期文章

    更多
    文章目录

      推荐作者

      更多