Shai Ben-David:无监督学习中的鲜花与荆棘

2020-05-13 17:20:01 浏览数 (1)

报告导读

本次报告,Shai Ben-David教授首先对无监督学习(Unsupervised Learning)的基础性原理进行了阐述,对其一些具体的应用场景进行了介绍,然后从有假设条件下的高斯混合模型的学习、无假设条件下的知识驱动型学习、如何更好地对数据进行聚类三个方面详细介绍了他和研究团队在无监督学习理论上的进展和突破。

专家介绍

Shai Ben-David,国际计算学习理论学会前主席,以色列理工学院担任计算机科学教授、滑铁卢大学David Cheriton计算机科学学院的教授,国际机器学习会议(ICML)和神经信息处理系统会议(NIPS)的区域主席,高级计划委员会成员。 主要从事计算机科学理论的逻辑,分布式计算理论和复杂性理论。在机器学习领域的显着贡献包括领域适应性分析,实值函数的可学习性以及流数据中的变化检测的开创性步骤。

报告内容

无监督学习是什么呢?就是没有获得监督的学习,希望能够找到数据的规律,而且是无监督的数据,需要是原始数据,未定标的数据,这是非常重要的。因为未定标的数据,要比定标的数据更广、更多。因此我们想要知道通过这些未定标的数据,我们能够获得什么。

举几个例子,我们非常好理解如何利用标签数据,但是未标签数据不知道怎么使用,所以在无监督学习方面有很多挑战。比如哪些症状出现哪些人口当中,哪些症状会出现在什么时间,在什么季节、什么结点,出现在哪类人群身上,而诊断又非常贵,就适合采用无监督学习。另外一个也是跟无标签有关,比如你是银行的客户,申请贷款,这个标签就是会不会还贷款,这是非常重要的数据。要去学习,要去了解,如果没有这方面的信息,如何去学习客户的背景状况,比如它是不是能够还钱,借钱的目的是什么,以及他们在什么时候还钱。所以如果我们能够从无标签学习当中学到很多,就能够收集到低成本的数据标签。

最本质的基础性问题,就是我们有一些标签,比如刚才提到的,都是无标签的数据。我们要从样本中学到什么东西,跟环境有关,也跟数据处理有关,机器学习它的一个基本的统计问题,就是对分布有什么知识,对病人有什么样的知识,对这些未标签的数据如何理解。我觉得最重要的框架是不会有之前的知识,我们会用普遍的AI,就不需要前期的知识。这个分布的状况是非常大的任务和框架。我第一个想法,就是这个框架太雄心勃勃,我们希望学到所有的关于分布的状况,但是又不需要使用之前的知识,就是未知分布,能够带来很多样本,我们就能知道这个分布是什么样子。在数据方面,我们需要很多,但有时候样本的点数量不够。同样的病人,如果数据不够的话,不会在我的诊所出现两次。但是如果这个病人来两次,就知道对这个病人状况的分布,我们能够了解更多,以及我们怎么去应对。

我们对环境的了解并不多,要看到两个不同的方面,一个是我们有了这个前期知识,如何进行假设,要去收集多少数据。另外一个是如何发现数据。

第一个是我们有预设的时候,如何进行学习高斯混合模型的学习,它是之前获奖的一篇论文。第二点是如果没有这个前提,如何去学习知识。第三点是聚类,如何更好地进行聚类。

首先第一点,也就是高斯的学习混合模型,如果想要了解病人的人口分布,可以去问这个病人,它可能有典型的群体,比如某一群人可能会患某种病。比如老年人,会患肺炎的概率是多高,可以把病人分成几组,每个病人都有它的典型特征,所以分布状况就是有典型的元素和典型症状。这样的话,如果有症状出现,它可能就是这群人,这就是高斯混合模型的学习方式,这样的话,我们就要了解混合当中它的中心元素是什么,它的典型症状是什么。我们需要解决的是,要多少个样本才能信任我们模型分布的结果,你的数据如果看起来是单一的高斯结果,我们想要知道的是人口当中最高的分布,包括分布的高度,人群当中的身高,我也想知道他们的平均身高等等,就需要看到这个模型的维度。所以我想问大家的是,需要多少个样本才能进行分布的混合,里面都有典型的元素,都能带来高斯的分布。

这是在第一部分想要给大家解释的,高斯的学习。我们想要找到它的密度或者高斯混合的分布。这个工作的主要贡献就是解决这个问题,就是知道我们需要多少个样本,才能进行非常好的高斯混合的预估。对每个病人来说,我们都要采取相应的措施,就需要屏幕上第二行的数据,而且对于下限,发现这个公式下限更低。我们有一些结果,对这样的技术工具,当选择不同的解释时,最好、最简单的解释最适合数据,这是我们要遵循的原则。在数学当中,会转换一个非常简单的概念,叫做“样本压缩”。

什么叫做“样本压缩”呢?我们用样本压缩学习高斯混合。这两个图标,一个是艾丽斯,它什么都知道,知道分布,它知道我们想知道的所有事情,这是艾丽斯获得的样本。在分布当中,要去选择这个样本,艾丽斯做的事情,也可以转移给鲍勃,现在导致的事情就是有几个点,鲍勃能够用这几个点进行重构,获取更多的信息。

比如我们获得病人的样本之后,并不是记录所有的病人,能够告诉一些人我们的分布到底是什么样子,确保能够记录一部分病人的数据,这样就能知道整体病人的疾病分布情况,就不需要记录所有病人的状况。比如它是高斯分布的话,这就是它的一个密度的分布状况,现在这里随便选几个点,把这几个点压缩起来,这样的话这个点会更加密集,鲍勃就能获得两个样本的点。这两个点的平均值跟高斯的平均值非常接近,它就是一个预估值,高斯可变值的一个平均值,就能知道高斯的整体分布。

把很多的样本压缩,会发现每个高斯都有维度,就会有不同的高斯混合。我们主要的理论原理是能够把它压缩到t点,就能进行可信赖的学习,得到一个平方的样本,这就解决了压缩的问题,需要多少点才能进行压缩。也解决另一个问题,需要多少的数据才能学习病人疾病的分布状况。也就是说,我们需要多少数据能够涉及到压缩数据的速度。

我们看一下高斯的混合,我们发现这个高斯的分布非常好,也收集了样本点。比如需要给鲍勃传多少的样本数据,比如每个高斯都给鲍勃两个点,把样本进行压缩到两个点,这样的压缩就能让我从一个高斯获得一个混合的高斯k。

整个k的所有相关群体都能得到压缩。我们也知道在某一个方向上进行多少样本才能进行压缩,如果在更高的维度上,我们发现这是高斯二维的分布,就知道需要多少样本才能知道整体的分布状况,每个放向都需要两个点,对每个方向,每个轴,都有两个点,就可以进行压缩。

获得的结论是,我们可以用压缩的方式,把K方向的高斯进行压缩,或者D方向的高斯进行压缩,通过几个样本就能了解整个分布的状况,这是我们最好的处理样本的方式,在获得样本的时候就知道需要多少样本才能知道整体的分布状况。

总结一下整个压缩框架进行密度估计,我们有这样一个学习混合和学习模型,我们也知道需要多少数据了解到高斯的混合和高斯的模型。对研究来说,需要数据才能知道整体的状况。主要是两点:一个是之前的知识是什么?第二是我们可以学到什么?

之前的知识,有时候有高斯的混合,但有时候并没有预先的知识,那我们能够获得相应的哪些信息呢?所以在这里要谈一个新的概念,叫做“期望的最大化”EMX。

我们能够收集一系列的实值函数,使得到每个随机变量,有最大的预期值。举几个例子,看看如何进行处理。

比如如何进行二元的分析和二元分类。它有不同的类型,要知道哪个有最高的预期来偿还贷款,或者你想要知道不同的预测。一个另外的例子是怎么样使用我们的集群分类,每个关键点都是可以用的,K点都可以用,要符合预期,新的的点到K。所以这个预期能够产生非常多的泛化和机器学习以及数字逻辑,这是非常基本的问题。

这个基本的问题,因为不知道怎么样进行合作,有哪些随意的变量来学习,我们可以学到最好的解决办法,在这个模式当中,是否能有表征的意向,并且能够充分的有纯粹的组合表征。

答案非常奇怪,由我们延续的价值所创造的,这是非常抽象的。我们知道,这个延续是指实际数字组的核心和大小,这是非常普遍的,其实跟可数有更大的无限性。所以刚才说到不同的体量,一开始从20世纪之初就做真正的数字,有更大的无限。到底有多大?我们不知道,所以现在的问题就是数字能够有多大。但是我们可以通过证据来说明是不能达到这个答案的。所以我们要讨论这些数据理论的独立性来自哪里,这个可学习性怎么定义。这个问题不能回答,这是著名的非完整性的结果。

现在看看关于未知的分布,你能够学到什么?这对社区来说是很大的惊讶,基本上这个学习过程怎么样翻译成无限,而且能够展示出一系列的学习问题是不能解决的,所以就展示出这两个问题是相关的。

最后的结论,一个基层是否能够可学,是不能被回答的,这也是最基本的问题,是很奇怪的结论,但数学就是这样的。这也是《自然》杂志所写,2019年初发表的。刚才我说的有限性的概念,哪些可以学,哪些可以不学,这样就可以问一下整个可学性的概念,主要是根据学习功能来进行定义的,而不是来定义学习的运算方式。现在它所呼吁的是改变机器学习的理论方向,我们应该要关注学习的运算方式,还有很多我们不知道的。像基本的表征,打开一个新的方向。假设目前还不清楚的,如果我们坚持运算方式的学习而不是功能的学习,会发生什么?

最后一部分是关于聚类。实践结合研究是非常重要的,我们有客户的集群,各种机器的集群。现在的问题是,怎么选择合适的聚类模式。

如果使用具体的集群任务,用户需要选择集群的运算方式以及其他的参数价值,不像其他的计算任务,其他的机器学习如果使用线性的或者培训,就有不同的结果。如果我有集群的黑点,如果跟这个集群是单一连线,最后的结果就是在最右边,红色的一条、绿色的一条。

所以我们看到的集群,就是用不同的工具,可能获得完全不同的答案,因此这是非常重要的,要知道怎么选择好的集群定义。这个集群的定义也没有什么帮助,是希望有类似的点能够集合在一起,不同的点要分开,这是有矛盾的,这个定义并没有告诉我们怎么处理矛盾。

这是一个例子,假设把两个接近点的集结集合在一起,比较远的把它分开,比如α距离的就放在一起,如果是β的距离就放在不同的分区,知道数据以后,每两个邻居的点放在一个群里面,最后这个极端点都往同一个群里分。所以一个群有很多点,一个群没有很多点,你要保证非常接近。这两个颜色是分开的,这是非常矛盾的。我觉得这个集群方式,是一系列要求请求的集合,把同类项合并,把这些类似结合在一起,把远的分开,这个预测方式能够选择这些矛盾请求的优先。

比如我们使用K单联系,我们只是处理类似点,在同样的集群里面,就不获取其它的请求。如果我们使之最大化连接,只是关注要区分比较远的请求。我们只是专注一点的话,就不能平衡。如果你要保持平衡,就不想要一个集群太大,一个集群太小。这个时候,你就能够考虑平衡,但是可能就失去了头两个请求的优点。

所以不同的集群运算方式是有不同优先的,而且它们会给你非常不同的结果。另外,不同的集群任务需要不同的请求,比如我要进行去复制化,在数据库里面,在不同的医院出现,但是这个病是属于同一个病人的,怎么做呢?我们要进行去复制化,要强调我们是分开的不同的点,因此这是非常重要的,要区分这些不同点,要不同的记录,最后可能会导致同样的集群。比如人们在预计不同的病菌,不同的谣言,每一群的朋友,它们的趋势或者细菌互相传播,谣言可以互相传播,最终可能是这五个人在同一个集群里面。所以不同的集群任务需要不同的优先。如果你想让不同的社区在同一个学区里面,通常你平衡这个集群就非常重要了,我不想要这个学区有一万个孩子,另外的学区里只有五个孩子,不同的集群应用需要不同的重点,而不同的运算方式也给了你不同的优先。

所以这个问题,最聪明的是选择运算方式要适合你的问题,要理解集群问题的请求是什么,而且要理解你的运算方式,相应的来选择,这是非常根本性的问题,最著名的研究人员没有充分使用好,不管是科学家、社会科学家、物理学家、经济学家,都没有特别好的进行选择。大家想想,像这些运算方式的表现数据,或者说这个治疗方式是最好的,但是首先关注你的疾病是什么、问题到底是什么,才能对症下药,肯定没有绝对最好的算法,有的时候我们会觉得是低成本,这个算法可以用先进的方式进行落实。

所以我们在进行聚类的时候,会有很多的方式。我们看到最好的、最权威的会议,它们也会查相关的数据。但有时候数据看起来可能是很好的,它的运算做得很好,也会给我们一些实证的数据,但是实证证据没有什么意义,因为对于所有的聚类算法来说,对于两个看起来合理的聚类算法,都会有数据集,对这些数据集来说,有一个算法会比另外的算法要好,所以我们首先要定义这个问题,要解决什么问题,而不是盲目地找最好的算法、找最快的算法,或者说是朋友推荐的算法。我们如何使用前期知识呢?我们有两个解决方案,一个是公理式的,要描述问题的属性才进行定义。另外一个是互动式的,开始做聚类色,同时跟客户进行互动,会问他们如何获得客户的反馈。

首先会有这样的表格,在这个表格当中有一个不同的列,每一列都是不同的聚类算法,还有不同的属性,有不同的行。我们可以看一下是不是能够匹配,有时候可能没有一个算法能够满足所有的要求。有这样一个问题,我们要选择哪个属性跟问题相关,然后进行搜索算法。能够解决对这个问题来说比较重要的属性。

另外,公理式的方法有些挑战,就是很难找到一种语言既跟应用相关,又能够跟算法的设计师相关。因为算法的设计师跟算法的使用,它们用的语言是不一样的,所以我们很难弥合这两者之间的差距,理论跟实践之间的差距。另外,我们跟客户进行互动的时候,这也是一种互动的方式,我们需要数据的知识。比如哪些数据是在同一个聚合当中,哪些是不应该在同一个类聚当中。比如给用户一个集合,哪些集合需要进行合并,哪些集合需要进行分割,我的用户会给一些小的数据集,进行人工的分类,我们就知道客户的要求到底是什么。

我们会问用户为什么要做聚类,我们可以获得提升K的平均值,如果问客户一些简单的问题,告诉他们如何用线性的时间,把非常难的MP的聚合问题变成线性的可以解决的问题。所以我们在进行聚类的时候,一定要考虑到域的知识,我们一定要选择这个聚类才能进行很好的分析。有时候也需要跟阈值相关的专家进行交流,才能进行很好的算法设计,包括要考虑到它们之间公允的属性。

所以如果大家想学习更多的有关机器学习的东西,大家可以参考一些这本书。在这本书当中,我们就强调了机器学习的原则,并不是方法,我们要解释为什么觉得这些学习是有帮助的,是有效的,告诉大家不同的使用方式。所以我们知道的是原因,不仅仅是方法,这些是不同的作者在研究当中进行了配合。

0 人点赞