您的位置:首页 > 其它

Deep Learning(深度学习)之(七)高维数据的机器学习

2016-06-20 13:42 357 查看


高维数据的机器学习

     Anima Anandkumar 是加州大学埃尔文分校电子工程与计算机科学系的教职人员。她的研究主要集中于『概率隐变量模型』以及『张量算法』的分析和设计,及其在高维数据学习上的应用。

核心结论

     * 现代的机器学习涵盖了大量的数据以及变量,构成了高维数据问题。

     *  张量方法在处理这种高维数据的机器学习方法中十分有效,而且已经应用到诸如社交网络分析、文档分类、基因学的诸多领域中,未来还会涉猎『对人脑神经元行为理解』这一问题。

     * 在研究者持续把握复杂、高维问题的过程中,他们将会需要一些新颖的技巧来处理非凸优化问题。在这些案例中,仅有凸优化技巧是不够的。

    问: 让我们先聊聊您的研究背景。

    答: 从孩提时代我就被数学的美妙所吸引 —— 它有无穷无尽的能力解释我们所在的复杂世界。在我大学期间,我意识到计算机科学和工程领域中『算法思维』的威力。为了整合这些知识,我去康奈尔大学完成了博士学位,在MIT短暂的博士后生涯之后,我搬到了加州大学埃尔文分校并任教6年。



图:UC Irvine维护了著名的机器学习数据集

    在博士期间 ,为了有效地进行分布式学习,我做了些算法设计的工作。具体来讲,当多个设备或者传感器在收集数据的时候,我们能不能设计出有效率的通信和路由机制,使得在『网络内部』已经开始数据整合,减少传输的数据量,同时又能为处理特定问题(比如工作状态异常)提供信息?我从统计角度进行了该类问题的调研,整合了一些概率图模型,设计了一些显著减少数据通信需求的算法。从那开始,我就开始对一系列机器学习问题感兴趣了。

   现代的机器学习问题 经常发生于高维世界,在时间轴上产生了大量的多元数据,这其中也包含了很多数据噪声。从噪声里发现有用的信息有时就像大海捞针,是极具挑战性的。

    工作的第一个步骤 就是对隐藏信息和观测数据之间的关系进行建模。在一个推荐系统中,隐藏的信息就是用户对于商品的潜在兴趣,而观测数据包含了他们已经购买的商品。如果某个用户近期购买了自行车,说明她对骑车/户外运动感兴趣,而且很可能会在近期购买自行车配件。我们能够通过她的购买模式推断出隐含变量,从而对她的兴趣进行建模。然而问题在于,我们需要从大量用户的行为中获得大量购物模式的观测数据,于是这就变成了一个大数据问题。



图:亚马逊推荐系统会告诉你推荐原因

    我现在的工作 着力于如何高效地在大数据集上有效训练这种隐含变量模型。在这种无监督学习的方法中,算法能够自动发现潜在的、对解释观测数据有意义的变量。大体上而言,机器学习研究者们都同意这种算法能够解决本领域中一类悬而未决的挑战。

    我使用了一种新颖的算法 去处理这个挑战性的难题,并展示了在没有监督数据的情况下,张量代数如何能够发现隐藏的结构性规律。张量是矩阵的高维推广。就像矩阵能够展示事物的两两关系一样,张量能够表现更高阶的关系(后面关于这一点会详述)。我的研究揭示了,对高阶张量进行操作可以有效地进行一大类概率隐含变量的机器学习训练。



图:张量方法是矩阵方法的扩展

     问: 您的方法能够应用于哪些领域?

     答: 我们把算法应用于很多场景上。比如,在不知道主题先验分布的情况下,对文本文档进行分类。在这个场景下,主题本身就构成了一组隐含变量,必须把它们从观测数据中提炼出来。一种可能的解决方式可能会是『从词频里训练出主题』,但这种简单的处理方式无法合理解决『在不同上下文中出现同一个单词』的问题(译者注:语义消除歧义问题)。

    考虑一下 ,如果我们不考虑单个词的词频而考虑『二元词组』的出现频率,将会导致一个更稳健的结果。但是我们为什么要止步于『二元词组』?我们为什么不检查一下『三元词组』乃至『多元词组』这种高维问题呢?这些高维关系又能揭示出哪些有意义的信息呢?我们的工作证明了,使用流行的潜变量狄利克雷分配(Latent Dirichlet Allocation,LDA)算法需要三元关系,仅有二元关系是不够的。



图:LDA是一种自然语言处理(NLP)常见的算法

    以上的直觉能够应用在更广泛的领域。就拿网络来说吧。你可能希望通过观察个体之间的互动来发现潜在的群体,像『社交网络中的朋友关系』,『推荐系统中的购买行为』,以及『大脑内神经元之间的彼此连接』都是一些直接的例子。我的研究揭示了『研究朋友的朋友』或者类似的高阶关系对于社群发现的必要性。尽管这些函数之前已经被广泛地研究过了,但是我们开创性地展现了这种关系所蕴含的信息量,以及如何提高计算这些指标的效率。



图:社交网络

    我们可以更进一步 的扩展隐含变量模型的概念。这种方法更适合应用于一类问题,包括『对种族进化树的建模』,或者『理解人类疾病产生的层级结构』。在这里的例子中,我们的目标是通过给定的数据,学习出隐含变量的层级结构,训练出能够量化隐含变量影响的一组参数。

   最终学习出来的的结构 ,揭示了位于叶子节点上的观测变量的层次聚类结果,以及量化的聚类强度参数。然后我们把问题简化为『找到某种层级性的张量分解』,针对这个问题我们已经构造出有效的算法了。

    问: 所以为什么在这些应用中『张量』特别重要呢?

    答: 首先我要提到的是,这些张量算法绝不仅仅是理论上的研究兴趣。我们有可信的证据认为,它们不仅能够对算法进行加速,还能提高计算结果的精度。Rutgers大学的Kevin Chen在最近的NIPS工坊中进行了一次非常有说服力的演讲,其内容是关于在基因组学中张量算法的优越性:这种算法能够提供更好的生物学解释,相对于传统的期望-最大化算法(Expectation-Maximization,EM算法)而言,产生了100倍的计算加速。

   张量方法是如此有效 ,就是因为他们的算法利用已经高度优化过的线性代数计算库,跑在了时下流行的大规模计算集群上。在这方面,我的学生Huang Furong已经在Spark上部署了张量算法,它比传统的、用于训练概率模型的『方差推断算法』执行的快得多。总而言之,张量方法现在具备出人意料的可并行性,因此易于在异构硬件平台上进行大规模训练。



图:Spark是一种基于内存的分布式机器学习工具

   问: 张量方法对于解决高维问题特别有效,是因为它们有什么特别之处吗?

   答: 张量对一类更丰富的数据进行建模,使我们能够掌控『多元关系』的数据。这些数据同时具有空 间特性和时间特性。张量中的不同方向表示着不同类型的数据。



图:张量类似矩阵,是可分解的

    张量能够用比矩阵更丰富的代数结构 来对信息进行编码,这就是它的核心所在。如前文所述,考虑一个通过行和列来表达的矩阵——或者叫二维数组。张量把这个概念延拓到了高维数组。

    一个矩阵的意义 远比『仅仅是行和列』要多。你可以通过线性操作对矩阵进行重塑,这就是我们常说的『线性代数』。张量建立在一种更具有延展性的形式上,因此操作它们的学问也被扩展了,术语上叫做『多线性代数』。

    在拥有这种有效的数学结构之后 ,我们如何压缩它们以获取信息?我们能够对张量操作算法进行设计和分析吗?为了解决这些问题,我们需要一组关于解决『非凸优化问题』的证明技巧。

   问: 您谈到的『凸优化』和『非凸优化』是什么意思?

   答: 最近几十年,凸优化理论和技巧得到了相当程度的发展。不过不幸的是,有些时候,很多优化问题本质上不是『凸性』的。

    关于『凸性』 我们举个例子展开来讲,比如你针对在某一个维度上的抛物线函数寻找极小值。如果你从抛物线上的任意一点出发,进行了一系列的局部优化,那么你会可靠地朝着全局最优前进。局部优化导致了全局优化,这种属性在高维凸性问题上也是始终成立的。计算局部优化相对来说比较简单,比如我们可以使用梯度下降(Gradient Descent)法。



图:一张典型的凸优化寻优图

    然而相反的 ,这个真实的世界远比任何抛物线要复杂——它简直就是一个充满了图案和形状的动物园,意思就是,存在一种比它们『理想的同类』(译者注:指完美的抛物线)混乱的多的曲线:任何进行局部优化的算法都无可避免的碰到山峰、低谷、平坦的曲面,它们有一直被卡在低谷中或者受到路障阻碍的风险,以至于永远都无法到达全局最优。

   随着变量数目的增加 ,这些山峰和低谷的复杂程度就会呈指数性增加。实际上,在类似梯度下降这种依赖局部步长的算法中,无数的点会被卡在局部最优。在包括我研究的诸多问题中,大部分情况我们都会碰到这种艰难险阻。



图:一张典型的非凸优化寻优图

    问: 您的工作与『非凸优化』挑战之间有何联系?

    答: 机器学习的传统方法是第一个提出定义学习目标的,然后它们使用了标准的优化框架来求解问题。比如,在使用概率隐含变量模型进行机器学习的时候,标准的目标就是『最大化似然函数』,然后使用EM算法在目标函数上进行局部搜索。然而,我们并不能确保EM算法最后会达到一个不错的解。在目标函数上进行搜索的时候,某个看起来像全局最优解的点,可能也就只是一个伪装的比较好的局部最优解而已。这一点,使得对更普遍的机器学习算法更难加以分析,这其中就包括反向传播(Back
Propagation,BP)神经网络算法:我们无法保证算法何时会停止,也无法保证算法可以达到一个好结果。

    为了打消这些疑虑 ,我使用的方法是:对于任意的学习任务,寻找一些其他易于优化的目标函数。比如在训练隐含变量模型的时候,我不是直接最大化似然函数,而是把注意力集中在找到矩阵和张量的某个优良的谱分解上面,这种任务在我们拥有足够的数值计算工具之后就更容易把握了。比如,矩阵的谱分解算法就是标准的『奇异值分解算法』(SVD),而且我们也拥有了计算这种分解的最高效算法。

    既然矩阵分解能够无视问题的『非凸性』进行高效求解 ,而矩阵又是张量的一种特殊形式,我们就把思路投向了新的研究方向:我们能否设计类似的算法对张量进行分解?看起来张量更难以分析,而且是一种NP难问题。( 译者注:NP难问题是指,这类问题至少要花费求解NP问题那样多的时间来求解。而NP问题是指,这类问题可以用不确定阶数多项式时间复杂度的算法来求解) 鉴于此,我们选择了一条不同的路,转而去刻画一组条件,在这种条件约束下,分解算法能够被有效解决。幸运的是,这些边界条件在机器学习意义上约束性是不强的。

    这些张量算法如何真正帮助我们解决机器学习问题呢? 第一眼看过去,我们可能会认为张量跟这些机器学习任务没什么关系。把这二者联系起来需要一个额外的概念,就是『高阶关系』(或者高阶矩)。正如我之前提到的,我们能够用张量表征变量之间的高阶矩关系。通过考察这些关系,我们对隐含变量模型就能进行更有效的训练。

    问: 这就是说你能够用更优雅的方式对高维数据进行建模。这能推广到任意形式的机器学习问题上吗?

    答: 我感觉我们的探索还仅仅是冰山一角。我们能够用张量方法训练相当一大批隐含变量模型,比如文档的主题模型,网络中的社群模型,高斯混合模型,混合排序模型等等。这些模型表面上看起来毫无联系,然而他们通过把类似于『条件无关』这种统计学属性转化为张量上的代数约束之后,就达到了形式上的统一。在所有这些模型中,分解合适的高阶矩张量(往往是三阶或四阶的统计相关性)就能够稳定地估计模型参数。我们更进一步地证明了,这种算法只需要很小的样本量以及计算量就能工作得很好了。(这里『很小的样本量』,精确来说,是和样本点特征数量的低阶多项式同阶)

    到此 ,我已经讨论了如何在无监督学习中使用张量。我们已经证明了,在训练像神经网络这种有监督模型时,张量方法能够确保模型训练的收敛性。我们现在正在处理更难的问题,比如强化学习,在这种问题中,学习者在尝试理解系统的时候本身也在和系统互动,甚至会改变系统环境。在通常情况下,我都相信高阶矩关系以及张量代数技巧有望解决一系列具有挑战性的机器学习问题。

    问: 所以关于机器学习研究,你的下一个理论工作会是什么?

    答: 作为一名机器学习研究者,我经历了很多激动人心的时刻。整个领域的问题,从最基础的研究,到现实世界中大规模计算的部署,范围是很大的。我会从跨领域的角度持续的进行研究,在把概率模型和张量代数整合到一起的过程中,我们已经建立了一整套全新的、具备很强理论依据保证收敛性的训练算法。我相信,这种看来并不『显而易见』的整合工作,就是突破现阶段机器学习中艰难险阻的关键所在。



图:基于张量的人脸识别
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习