Py学习  »  机器学习算法

机器学习与统计学的争论,有意义吗?

人工智能学家 • 5 年前 • 555 次点击  
作者 | Sam Finlayson
编译 | 蒋宝尚、丛末
编辑 | 贾伟
 
统计学和机器学习之间是否泾渭分明一直是学界争论的焦点。
 
有的学者认为机器学习只是统计学披了一层光鲜的外衣。而另一些讨论则认为涉及使用逻辑回归或者广义线性模型(GLM)的可以称作机器学习;否则就不是。还有一些观点认为:是否执行元分析或许是区分两个领域的一个标准。
 
但,争论两者之间的边界,真的有意义吗?如果对这个问题进行严肃地思考,或许我们会发现,答案是否定的。
 
麻省理工Sam Finlayson 博士指出“过去关于机器学习和统计学之间的讨论很大程度上没有切中要害,因为这些讨论要么忽略了历史背景、要么‘回归方法’归属模棱两可”,因此这种争论事实上毫无意义。
 

1、历史背景的忽略:“机器学习”术语的诞生并不是为了区分统计学


达特茅斯会议期间合影
 
数千年来,研究者们一直梦想建造“智能”设备,但“人工智能”一词却是到1956年才出现。John McCarthy 在当时的达特茅斯会议上提出这个术语,并将人工智能定义为:制造智能机器的科学和工程。
 
至此之后,人工之智能术语使用并流行到了今天。
 
而McCarthy能在会议上说服参会者使用这一术语很大程度上因为这个定义本身就是非常模糊的。
 
在那个年代,致力于“智能”的科学家们的研究视角还未转向“数据驱动”,而是专注于自动机理论、形式逻辑和控制论等东西。也就 是说McCarthy当时想要创造一个术语来容纳所有这些范式,而不是倾向于任何特定的方法。
 
正是在这种情况下,Arthur Samuel(达特茅斯会议的与会者之一)在1959年提出了“机器学习”一词,并将其定义为一种研究领域,即不进行显式编程就可让计算机进行学习的研究领域。
 
之所以有此定义是因为Samuels和他的同事们希望通过让计算机拥有识别能力,并随着时间的推移不断改进这种能力来使得计算机变得更加“智能”。
 
在今天看来,这种研究方法似乎并不陌生,但先驱们却花费了数十年才让其成为AI研究的主导范式。
 
从当时研究者的意图来看,机器学习是为了描述计算机的设计过程而创建的,该过程利用统计方法来改善性能。
 
也就是说该术语是旨在与构建智能机器的非数据驱动方法形成对比,不是为了与统计学形成对比。毕竟统计学重点使用数据驱动的方法为人类提供有效信息。
 
另一个被普遍认可的机器学习的定义来自于Tom M.Mitchell 在 1997年出版的教科书,他在书中提到:“机器学习领域涉及如何让计算机程序通过经验而自动改进的一类问题”。另外,书中还有一个半正式定义:
 
对于某类任务 T 和性能度量 P,计算机程序从经验 E 中学习,然后它在任务 T 中的性能 P 随着经验 E 的提高而提高。


 

2、关于谁“拥有”回归的争论没有抓住重点


 
当前许多人试图在统计方法和机器方法之间用二分法强硬的划定界限,但这显然是一种独裁的专制。有的人特别执着的认为:回归驱动的研究方法是统计学专属,无论如何不能称作机器学习。
 
此类观点其实比目前“逻辑回归等于计量经济学”的观点还要愚蠢,两者同样挑起了激烈的争论。
 
六十年来机器学习社区一直在致力于“更好的计算机”,而并不关心是奇妙的方法还是统计数据哪个更优。这也是为什么大多数教授在机器学习课程教学的时候,花大精力来教授广义线性模型及其变体。所以说统计学在机器学习和人工智能的研究背景下是非常有意义的,机器学习术语涉及不同的方法,并致力于让“程序”变得智能。
 
坦率地说,任何段位的统计学家都不能断言“脱离实际研究背景的统计学方法是有用的”。
 
回归方法归属之争其实在很大程度上同时低估了机器学习和统计,原因大致可以归纳为以下四个: 
  • 限制了经典统计方法在构建计算机程序方面所能发挥的核心作用;
  • 忽略了机器学习对统计学的影响,实际上人工智能和计算机学科很大程度促进了统计学的复兴。例如Judea Pearl的因果关系开辟了新的统计学范式;
  • 统计学和机器学习之间“强硬”的二分法在一定程度上弱化了建模决策中的重要信息,并且这种分类有时候毫无意义。
  • 当前机器学习和统计学的顶级研究学者大多同时属于这两个领域。
其实,当前有很多研究都突出了统计学家与机器学习研究人员的丰富互动,例如著名学者Rob Tibshirani和Trevor Hastie没有纠结于方法论的边界线,而是利用机器学习研究人员开发的工具,从而帮助完善统计学领域的研究。并不是说Hastie和Tibs发明了新方法,而是意味着这些方法已经影响了统计学家和机器学习研究人员的日常工作。

3、许多“争论”在开始之前就已注定失败


 
目标的不同导致了方法和文化的差异,这也是为什么“机器学习”一词的含义自诞生以来发生了如此大的变化。语言中的脱节让许多“争论”在开始之前就已注定失败。
 
如上文所述,机器学习这一研究领域之所以得以创立,便是由于计算机科学家试图创建和理解智能计算机系统,至今依旧如此。
 
主要的机器学习应用包括语音识别、计算机视觉、机器人/自动系统、计算广告、监控、聊天机器人等等。在尝试解决这些问题的过程中,机器学习研究者基本总是先从尝试经典的统计学方法开始,例如相对简单的广义线性模型(GLM)。
 
当然,长年累月,计算机科学家也不断提出了新的方法,让机器学习这一工具日益强大。
 
与其他任意背景下的进化一样,用于机器学习的统计学方法,其进化史也是在“物竞天择”的压力下所形成的。
 
与统计学家相比,机器学习研究者往往很少关注:理解算法背后所执行的所有具体动作。这一点其实非常重要,并且越来越重要。
 
 
他们通常最关注的是模型误差。这样就导致机器学习研究者开发的方法往往会更加灵活,甚至不惜以牺牲可解释性为代价来实现更高的灵活性。
 
这种离散式的进化,就很容易让机器学习和完全基于方法的统计学研究之间的界限变得模糊。此外,也导致不少统计学家并不了解机器学习的历史。因此毫不惊讶地,他们会热衷于采用任何其他的术语来定义机器学习领域,即便这种做法毫无必要。
 
出于同样的道理,基于“使用”的严格划分现在变得非常复杂,实际上现在很多机器学习从业者,即便当他们仅仅是在应用机器学习方法来做纯粹的数据分析,而不是驱动计算机程序时,他们依旧会称他们是在做机器学习。虽然从严格的历史意义上而言,这种说法并不对,但是我认为也无需指责这种做法,因为这可能是出于习惯、文化背景或者“认为这种说法听起来来很酷”的综合影响。
 
所以在现实中,人们用到“机器学习”这个术语时,往往指的与机器学习本身非常不同的其他事情。
 
人们可能用它来表达:“我正在用统计学方法来让我设计的程序学习”或者“我正在设计可以部署到自动化系统中的数据分析”。又或者表达的意思是:“我正在使用一个最初由机器学习社区开发的方法,如随机森林,来做统计学数据分析”。
 
而更普遍的情况是,他们使用这个词是在说:“我自己是一个机器学习研究者,我就是在使用数据做机器学习研究,我怎么高兴就怎么说。”
 
实际上,这一术语的不同用法并不令人惊讶也不成问题,因而这仅仅是由于语言的进化而导致的结果。然而当另一群人——数据科学家群起而辩“一个特定的项目是否能纯粹地冠之以机器学习或者统计学,二者选其一”时,就非常滑稽了。在我看来,“数据科学家”这一术语原本就是由机器学习和统计学交汇而成的。
 
而当这一争论发生时,大家往往都带着各不相同、定义模糊、并且表达不清的假设参与争论,一开场便是争论这些词的意思。而随后他们几乎不会花时间去了解这些词的出处或者听对方真正要表达的是什么,而仅仅是相互之间隔空喊话,声音大然而却并不清晰。
 

4、这整场“争论”差不多就是在浪费时间


现在,让我们将这些真实的问题摆在桌面上来谈:如今有很多机器学习研究者(或者至少是机器学习爱好者)对统计学的理解尚有不足。有一部分人确实就是一位机器学习研究者,然而也有许多专业的统计学家有时候也会认为自己是机器学习研究者。
 
而更严重的现实情况是,机器学习研究的发展走得如此之快,并且常常在文化上与统计学领域脱节得如此之远,以至于我认为对于即便是非常杰出的机器学习研究者而言,对统计学的某些部分“重新发现”或者“重新发明”都非常普遍。
 
这是个问题,也是种浪费!
 
最后,由于大量第三方应用研究者非常喜欢用“机器学习”这个术语:为了让论文显得更时髦而在论文中大量应用这一术语,即便现实中他们所谓的“机器学习”既不是构建自动化系统也没有使用机器学习领域提出的方法。
 
我认为,所有这些问题的解决方法,就是让人们更多地意识到:大多数机器学习的数据方法实际上就存在于统计学中。无论这些方法是用到了数据分析中还是设计智能系统中,我们的首要任务是培养对统计学原理的深刻理解,而不是执拗于机器学习和统计学领域的划分是正确还是错误。
 
关于很多工作是机器学习还是统计学的无休止的争论,最终只会分散人们的注意力,让他们无法花更多精力来进行“如何通过正确匹配问题和特定的工具来很好地完成工作”的必要对话和交流——相对而言,这才是更重要的事。
 
与此同时,人们固执己见地对统计学和机器学习方法错误的二分法,会让很多研究者进一步养成没有必要就不使用复杂方法的习惯,仅仅是为了让自己感觉像是在做“真正的机器学习”。
 
这也会直接导致,人们会为了让自己的工作在方法论上听起来更时髦,就肆无忌惮地把自己的工作称作机器学习。
 
统计计算的黄金时代,正在推动机器学习和统计学领域变得空前的紧密。当然,机器学习研究诞生于计算机科学体系,而当代的统计学家越来越多地依赖于计算机科学界几十年来开创的算法和软件栈。他们也越来越多地发现机器学习研究者所提出的方法的用处,例如高维度回归,这一点尤其体现在计算生物学领域。
 
另一方面,机器学习社区也越来越多地关注可解释性、公平性、可验证的鲁棒性等主题,这也让很多研究者优先考虑让机器学习输出的数值更直接地与传统的统计值一致。至少,即便是在尽可能地使用最复杂的架构来部署系统时,人们也普遍意识到,使用经典的统计学来测量和评估机器学习模型的性能很有必要。
 

5、总结


总而言之,学界关于机器学习和统计学的争论是错误的,人们对于相关术语的使用也是超载的,方法论的二分法也并不正确,机器学习研究者越来越多地关注统计学,而统计学家们也越来越依赖于计算机科学和机器学习社区。
 
根本就不存在回归和兼并阴谋论。
 
现在出现了很多炒作现象,但并不能改变的一个事实是:当其他人使用的术语与你不同时,那是因为他们来自不同的背景、有着不同的目标,而不是因为他们不诚实或者愚蠢。


在语义上是否相关。用这个模型从十亿规模的image-text 对中过滤掉相关性不高的数据,从而生成的数据集LAIT("],[20,"Large-scale weAk-supervised Image-Text),其中包含了 一千万张图片,图片描述的平均长度为13个字。","27:\"10\""],[20,"\n\n"],[20,{"gallery":"https://uploader.shimo.im/f/u3awaRh8G8wYYga8.png!thumbnail"},"29:0|30:0|3:\"1036\"|4:\"auto\"|crop:\"\"|frame:\"none\"|ori-height:\"360\"|ori-width:\"1036\""],[20,"\nLAIT数据集中的样本"],[20,"\n","7:1"],[20,"\n\n4、"],[20,"ImageBERT","27:\"12\""],[20,"模型"],[20,"\n","32:2"],[20,{"gallery":"https://uploader.shimo.im/f/PZ5V0YZq89Q21jEI.png!thumbnail"},"29:0|30:0|3:\"1424\"|4:\"auto\"|crop:\"\"|frame:\"none\"|ori-height:\"682\"|ori-width:\"1424\""],[20,"\n \n如上图所示,"],[20,"ImageBERT模型的总体架构和BERT类似,都采用了","27:\"12\"|31:2"],[20,"Transformer作为最基础的架构。不同之处在于将图像视觉的标记和问题标注作为输入。注意其中图像视觉标记是从Faster-RCNN模型提取的ROL特征。\n\n通过一层嵌入层将文本和图像编码成不同的嵌入,然后将嵌入传送到多层双自我注意Transformer中来学习一个"],[20,"跨模态","27:\"12\"|31:2"],[20," Transformer,从而对视觉区域和文字标记之间的关系进行建模。\n\n1)嵌入建模"],[20,"\n","32:3"],[20,"\n整个嵌入建模分为三个部分:语言嵌入、图像嵌入、序列位置和片段嵌入。\n\n在语言嵌入模块中采用了与BERT相似的词预处理方法。具体而言,是用WordPiece方法将句子分成(标记)n个子词{w0,...,wn-1}。一些特殊的标记,例如CLS和SEP也被增添到标记的文本序列里。每个子词标记的最终嵌入是通过组合其原始单词嵌入、分段嵌入和序列位置嵌入来生成的。\n\n与语言嵌入类似,图像嵌入也是通过类似的过程从视觉输入中产生的。用Faster-RCNN从 o RoIs中提取特征(记为{r0,...ro-1}),从图像中提取特征,从而让这两个特征代表视觉内容。检测到的物体对象不仅可以为语言部分提供整个图像的视觉上下文(visual contexts),还可以通过详细的区域信息与特定的术语相关联。另外,还通过将对象相对于全局图像的位置编码成5维向量来向图像嵌入添加位置嵌入。5维向量表示如下:\n"],[20,{"gallery":"https://uploader.shimo.im/f/YnAdrOfmNGUnEDcr.png!thumbnail"},"29:0|30:0|crop:\"\"|frame:\"none\""],[20,"\n\n\n其中,(xtl,ytl)以及(xbr,ybr)分别代表边界框的左上角和右下角坐标。5维向量中的第五个分向量相对于整个图像的比例面积。\n"],[20,{"gallery":"https://uploader.shimo.im/f/axgNGmzCE98UmvTl.png!thumbnail"},"29:0|30:0|crop:\"\"|frame:\"none\""],[20,"\n另外,物体特征和位置嵌入都需要通过语言嵌入投影到同一维度。e(i)代表每个图像的RoI。其计算通过加总对象嵌入、分段嵌入、图像位置嵌入以及序列位置嵌入获得。这意味着每个嵌入被投影到一个向量之中,然后用同样的嵌入大小作为Transformer 隐藏层的尺寸,最后采用正则化层。\n\n在序列位置和片段嵌入中,因为没有检测到Rol的顺序,所以其对所有的视觉标记使用固定的虚拟位置,并且将相应的坐标添加到图像嵌入中。\n\n2)多阶段预训练"],[20,"\n","32:3"],[20,"\n不同的数据集来源不同,所以其数据集质量也就不同。为了充分利用不同类型的数据集,作者提出了多阶段预训练框架。如下图所示。\n"],[20,{"gallery":"https://uploader.shimo.im/f/6Ff04ZARTgwDTdoQ.png!thumbnail"},"29:0|30:0|3:\"1297\"|4:\"auto\"|crop:\"\"|frame:\"none\"|ori-height:\"434\"|ori-width:\"1297\""],[20,"\n\n其主要思想是先用大规模域外数据训练预先训练好的模型,然后再用小规模域内数据训练。在多阶段预训练中,为了有顺序地利用不同种类的数据集,可以将几个预训练阶段应用到相同的网络结构。\n\n更为具体的,在ImageBERT模型中使用两阶段的预训练策略。第一个阶段使用LAIT数据集,第二个阶段使用其他公共数据集。注意,两个阶段应使用相同的训练策略。\n\n3)预训练任务"],[20,"\n","32:3"],[20,"\n在模型预训练过程中,设计了四个任务来对语言信息和视觉内容以及它们之间的交互进行建模。四个任务分别为:掩码语言建模(Masked Language Modeling)、掩码对象分类(Masked Object Classification)、掩码区域特征回归(Masked Region Feature Regression)、图文匹配(Image-Text Matching)。\n\n掩码语言建模简称MLM,在这个任务中的训练过程与BERT类似。并引入了负对数似然率来进行预测,另外预测还基于文本标记和视觉特征之间的交叉注意。\n\n掩码对象分类简称MOC,是掩码语言建模的扩展。与语言模型类似,其对视觉对象标记进行了掩码建模。并以15%的概率对物体对象进行掩码,在标记清零和保留的概率选择上分别为90%和10%。另外,在此任务中,还增加了一个完全的连通层,采用了交叉熵最小化的优化目标,结合语言特征的上下文,引入负对数似然率来进行预测正确的标签。\n\n掩码区域特征回归简称MRFR,与掩码对象分类类似,其也对视觉内容建模,但它在对象特征预测方面做得更精确。顾名思义,该任务目的在于对每个掩码对象的嵌入特征进行回归。在输出特征向量上添加一个完全连通的图层,并将其投影到与汇集的输入RoI对象特征相同的维度,然后应用L2损失函数来进行回归。\n\n值得注意的是,上述三个任务都使用条件掩码,这意味着当输入图像和文本相关时,只计算所有掩码损失。\n\n在图文匹配任务中,其主要目标是学习图文对齐(image-text alignment)。具体而言对于每个训练样本对每个图像随机抽取负句(negative sentences),对每个句子随机抽取负图像(negative images),生成负训练数据。在这个任务中,其用二元分类损失进行优化。\n\n4)微调任务"],[20,"\n","32:3"],[20,"\n经过预训练,可以得到一个“训练有素”的语言联合表征模型,接下来需要对图文检索任务模型进行微调和评估,因此本任务包含图像检索和文本检索两个子任务。图像检索目的是给定输入字幕句能够检索正确的图像,而图像文本检索正好相反。经过两个阶段的预训练后,在MSCoCO和Flickr30k数据集上对模型进行了微调,在微调过程中,输入序列的格式与预训练时的格式相同,但对象或单词上没有任何掩码。另外,针对不同的负采样方法提出了两个微调目标:图像到文本和文本到图像。\n\n为了使得提高模型效果,还对三种不同的损失函数进行了实验,这三种损失函数分别为:二元分类损失、多任务分类损失、三元组损失(Triplet loss)。关于这三种微调损失的组合研究,实验部分将做介绍。\n5、实验"],[20,"\n","32:2"],[20,"针对图像-文本检索任务,作者给出了零样本结果来评估预训练模型的质量和经过进一步微调后的结果。下面是在 MSCOCO 和Flickr30k 数据集的不同设置下,对ImageBERT模型和图像检测和文本检索任务上其他最先进的方法进行的比较。\n\n1)评估预训练模型\n如前面所提到,模型经过了两次预训练。首先是在 LAIT 数据集上,采用从基于BERT 的模型初始化的参数对模型进行了预训练;然后又在公开数据集(Conceptual Captions, SBU Captions)上对模型进行二次预训练。具体过程和实验设置请参考论文。\n\n在没有微调的情况下,作者在Flickr30k和MSCOCO测试集上对预训练模型进行了评估,如下:\n"],[20,{"gallery":"https://uploader.shimo.im/f/Rienmu44ALE7yCQ7.png!thumbnail"},"29:0|30:0|3:\"1844\"|4:\"auto\"|crop:\"\"|frame:\"none\"|ori-height:\"616\"|ori-width:\"1844\""],[20,"\n\n零样本结果如表 1 所示,我们可以发现,ImageBERT预训练模型在MSCOCO 获得了新的最佳结果,但在Flickr30k数据集上却比 UNITER模型的表现稍差。\n\n在微调后,ImageBERT模型获得了有竞争力的结果,相关情况在表2 部分进行说明。值得一提的是,"],[20,"相比于其他仅有一个预训练阶段的方法,这种多阶段的预训练策略在预训练期间学到了更多有用的知识,因而能够有助于下游任务的微调阶段。","0:\"%23ff0000\""],[20,"\n\n2)评估微调模型\n\n在检索任务上微调后的最终结果如表2 所示。我们可以看到,ImageBERT模型在Flickr30k 和 MSCOCO(同时在 1k和 5k的测试集)上都实现了最佳表现,并且超越了所有的其他方法,从而证明了"],[20,"本文所提的面向跨模态联合学习的 LAIT 数据和多阶段预训练策略的有效性。","0:\"%23ff0000\""],[20,"\n\n\n"],[20,{"gallery":"https://uploader.shimo.im/f/5Mr3cg6zLXoHjL9J.png!thumbnail"},"29:0|30:0|3:\"1830\"|4:\"auto\"|crop:\"\"|frame:\"none\"|ori-height:\"834\"|ori-width:\"1830\""],[20,"\n\n\n\n3)消融实验"],[20,"\n","32:3"],[20,"\n作者也在 Flickr3k 数据集上对预训练数据集的不同组合、全局视觉特征的显示、不同的训练任务等进行了消融实验,以进一步研究ImageBERT模型的架构和训练策略。\n\n"],[20,"预训练数据集","8:1"],[20,"\n\n"],[20,{"gallery":"https://uploader.shimo.im/f/WqfWH0ACCs4dutlK.png!thumbnail"},"29:0|30:0|3:\"1358\"|4:\"auto\"|crop:\"\"|frame:\"none\"|ori-height:\"478\"|ori-width:\"1358\""],[20,"\n\n作者使用不同数据集的组合来进行预训练实验。结果如表3所示。 CC表示的仅在 Conceptual Captions 数据集上进行预训练;SBU 表示仅在 SBU Captions数据集上进行预训练;LAIT+CC+SBU表示使用LAIT, Conceptual Caption 和 SBU Captions的组合数据集进行预训练;LAIT → CC+SBU 表示使用 LAIT 来完成第一阶段的预训练,之后使用 Conceptual Captions和SBU Captions 数据集来做第二阶段的预训练。\n\n可以看到,"],[20,"用多阶段的方法来使用三种不同的域外数据集,获得了比其他方法明显更好的结果。","0:\"%23ff0000\""],[20,"\n\n"],[20,"全局图像特征","8:1"],[20,"\n"],[20,{"gallery":"https://uploader.shimo.im/f/DJatGrExJew2kTDn.png!thumbnail"},"29:0|30:0|3:\"1862\"|4:\"auto\"|crop:\"\"|frame:\"none\"|ori-height:\"888\"|ori-width:\"1862\""],[20,"\n\n值得注意的是,检测的ROIs可能并不包含整个图像的所有信息。因此,作者也尝试将全局图像特征添加到视觉部分。文章使用了三个不同的CNN 模型(DenseNet,Resnet, GoogleNet)从输入图像上提取全局视觉特征,然而却发现并非所有的指标都会提高。结果如表4的第1部分所示。\n\n"],[20,"预训练损失","8:1"],[20,"\n\n作者也将由UNITER引起的MRFR损失添加到预训练中,结果在零样本结果上获得略微提高,结果如表4 的第2 部分所示。这意味着"],[20,"增加一个更难的任务来更好地对视觉内容进行建模,有助于视觉文本联合学习。","0:\"%23ff0000\""],[20,"\n\n"],[20,"图像中的目标数量 (RoIs)","8:1"],[20,"\n\n为了理解ImageBERT模型的视觉部分的重要性,作者基于不同的目标数量进行了实验。如表4的第4部分所示,ImageBERT模型在目标最少(目标数量与"],[20,"ViLBERT一样","27:\"10\""],[20,")的情况下,在检索任务上并没有获得更好的结果。\n可以得出结论,更多的目标确实能够帮助模型实现更好的结果,因为更多的 RoIs 有助于理解图像内容。\n\n"],[20,"微调损失","8:1"],[20,"\n针对在第4部分所提到的三项损失,作者尝试在微调期间进行不同的组合。如表4的第4 部分所示,模型通过使用二元交叉熵损失(Binary Cross-Entropy Loss),本身就能在图像-文本检索任务上获得最佳的微调结果。\n\n6、评论"],[20,"\n","32:2"],[20,"据AI科技评论了解,事实上ImageBERT模型与以前的视觉-语言模型(例如ViLBERT、VL-BERT、UNITER、LXMERT等)相比,模型本身区别并不是很大。\n\n但值得重视的是他们收集的一个新的数据集,这个数据集在数量上是目前最大的vision-language数据集;另外他们进行了两步的预训练(首先是在LAIT进行预训练,然后是在Conceptual Caption进行预训练)。这两点使他们获得了还不错的性能。不过这篇文章仅对图像检索任务进行了测试,而没有进行例如Captioning, VQA, VCR, grounding等视觉-语言任务的实验。\n\n有趣的一点是,这篇文章在一定程度上表明了,预训练中数据集的顺序对性能有很大的影响。\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"]]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: start;">


点击“阅读原文” 前往 AAAI 2020 专题页

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54169
 
555 次点击