新闻  |   论坛  |   博客  |   在线研讨会
迁移学习:他山之石,可以攻玉【VALSE Webinar】Panel实录
深度学习大讲堂 | 2020-09-19 11:36:06    阅读:379   发布文章

编者按:迁移学习是机器学习与计算机视觉中的重要研究问题之一,旨在研究如何将一个领域的知识迁移到另外的领域,具有重要的研究意义与应用价值。但迁移学习又会存在哪些局限性?在实际应用中的价值是什么?未来的发展方向在哪里?为此,VALSE Webinar 2020-19期邀请了阚美娜 (中科院计算所)、宫博庆 (Google Research)、杜博 (武汉大学)、段立新 (电子科技大学)、张磊 (重庆大学)等五位领域的专家,在李文 (电子科技大学)的主持下,围绕6个议题开展了深入探讨。本文是该次Panel讨论的文字实录。


01 迁移学习技术在实际工程应用中的价值是什么?有哪些已知的和潜在的应用场景?

宫博庆:在实际应用中,几乎所有问题都是迁移学习。不管是做各种各样的应用,还是视觉领域的一些问题到真正工程应用实际中的时候,可能都会遇到训练和测试不太匹配的问题。只不过很多时候因为从产品开发的技术角度来看,很难去等收到足够多的目标域的数据,来应用这种迁移技术,所以导致,虽然是迁移问题,但迁移技术在实际应用的时候,可能有一些暂时应用但不是那么多。同时也是对研究人员的挑战,大家在做的一些域泛化Domain generalization的问题,有没有可能在做的时候,不管训练数据有多少,我们先保证大致在测试阶段可能会有不同的一些新的目标域。我们虽然没有数据,但是可以做一些类似于extrapolation,得到的模型在训练的时候保证它对于这种分布以外的数据相对鲁棒。所以从这个角度,不只是迁移学习,包括现有的一些深度学习模型的calibration或者uncertainty、estimation,这些角度都可能是迁移学习未来继续发展的方向。

段立新:迁移学习对于CV领域,从07、08年到现在也有十几年了,可以看到近几年有特别明显的技术提升。基于深度学习的新技术提升、基于现在的新的针对迁移学习的技术都陆陆续续提了出来。对于工程应用,我觉得有些问题不一定非得用迁移学习,比如图像分类、或物体识别。对于针对整张图像的分类问题,直接标数据非常简单,速度也比较快。我们知道对于同一个领域的数据,如果有足够多的标注数据,训练得到的模型或多或少都可以在实际的工程应用中去用了。对于要花费大量精力去做标注的事情,可能更值得我们去用迁移学习的一些理念来解决。

举个例子,比如图片分割,本来标注一张数据可能要做精细标注,做pixel level标注的话,每张图需要花费几十分钟,甚至一个小时。有没有其他办法可以尽量地减少人力、财力的投入?对于这些需要花费大量的精力来获取标注的情况,针对这些类似的场景,我建议能够更好地在工程应用中,去引用已有的做好标注的数据集来帮助我们辅助训练以得到一个更好的模型。总而言之,虽然迁移学习是处理了不同分布的一些本质的问题,但是我们的经验还是在讲工程应用落地的时候,如果一个域中有足够多的带标签的数据的话,分类器结果是最好的。

我认为在实际工程中,如果要做这些事,迁移学习带给大家更多的是一个比较好的初选模型,随着数据的不断积累,标签的不断获取,慢慢地可能就会从一个迁移学习的问题转化成一个比较标准的传统的机器学习的问题。随着时间的积累,带标签的数据,或者说本身这种无标签的数据的积累越来越丰富,对于不断的迭代以后,我们可以用目标域中积累的足够多的带标签的数据来做一个很好的模型。对于这种情况,迁移学习对于整个工程应用和产品落地,就是一个短时间之内可以给大家用到一个不错的模型效果,不断地提升了以后,更多的就转变成一个标准的机器学习问题了。

第二个方面,关于有哪些潜在和应用的场景,刚才讲到的针对图像分割的一些方面,比如无人驾驶、机械手臂操作的情况下,我们现在逐渐在用大量的仿真数据,怎么样从仿真的一个情况,迁移到一个真实的场景,这方面应用的还是很广泛的,因为我们不可能花费大量的钱、时间和人力,对一个新的场景做一些标注。所以对于这些需要涉及到大量标注的任务,我觉得还是有足够多的潜力来更好地把迁移学习应用在相应的真实场景里面。总而言之,迁移学习能够短时间之内带给大家一个还不错的模型,后面的提升,对于工程应用来讲,我个人建议还是要不断地去积累目标数据和标签。

02 迁移学习的局限有哪些,有哪些情况或者任务不适合迁移学习?

杜博:有这是一个非常有价值的问题,迁移学习还是要求不同的两个领域之间还是要有比较高的相关性,如果相关性比较低,有可能实际的效果并不太好。第二个是如果数据之间异质性比较大的话,有可能迁移学习的模型也不见得会效果特别好。以我们做的实际开发的一个系统为例,今年新冠疫情爆发的时候,因为武汉是疫情的中心地带,我们当时也想帮医院做点贡献,在一月底,我们的附属医院就跟我们联系,影像已经特别多了,医生不堪重负,有没有办法用人工智能的方法来帮助他们减轻负担。我们当时就想到了开发一个系统,就是用人工智能的方法来实现有无新冠肺炎做一个诊断。第二个,有新冠肺炎的患者是重症还是轻症实现一个分诊。当然用CT影像来做新冠肺炎的确诊,还是有一定的范围。

我们国家在新冠肺炎爆发之后,出台了好几个版本的新冠肺炎的指导性的意见。在第四版就提出了在湖北武汉这种非常集中的地区,CT影像可以发挥主要确诊的作用。在爆发的时候基本上影像学上面符合这个特征,就可以基本确认。但是在其他地方,核酸检测还是金标准。当时做的时候,拿了这些影像,我们就面临一个选择,是不是一上来就请医生们帮我们进行一个精细的标注和圈画。医生本身就非常忙,让他这个时候直接帮你标注是有困难的。所以我们在第一个阶段想把整个肺部从影像当中分割出来,这一步精度不一定要非常高,所以我们是在已有的公开的一个肺部的肺结节的CT数据集上预训练的模型,迁移到这个新的数据集上,做了一个肺部的整体的分割。分割完毕之后,我们在进行病灶的提取的时候,比如说毛玻璃、条锁等等不同的精细的病灶,我们还是有赖于比较精准的标注的分割的虚拟样本。当时我们也想到了,是不是比如只要一部分,用一下迁移学习等等。但实际效果,在我们分割的时候要做一个精细的分割,这样才能定量地去计算病灶的体积,病灶占肺部的体积,病灶的其他一些定量指标。这时候我们发现还是要有赖于较精准的分割的训练样本,所以这个例子说明迁移学习确实有它的价值。但在追求定量的效果比较精准的时候,往往还是依赖于高质量的标注的虚拟样本,这是我的一个经历,供大家参考,谢谢!

张磊:每一种方法应该都是有局限性的,因为本身每个方法论都是建立在各自的条件下才成立的,包括机器学习、深度学习也是一样存在一定的可用的条件,如果这个条件不满足,深度学习也有不适用的地方。迁移学习的局限性,我认为有两个问题。

第一个问题是我们在做迁移学习的时候,可能还是从机器学习建模的视角来看,并没有去讲迁移的是什么,因为我们希望迁移的是某种常识或领域知识,就是source里的知识,但是我们在建模的时候,好像并没有去强调这个知识是什么,所以这是迁移学习方法上的一个缺陷,没有考虑怎么把这种知识挖掘出来,然后有针对性的去迁移。

第二个问题是从迁移学习本身前提的假定条件来说,就是domain adaptation的条件。比如写一篇论文可能都要去给出一个模型的理论泛化性分析,这种分析基本上依赖于Ben-David 2006年的一篇关于域适配理论的论文,给出了目标域的泛化误差的上确界。但是这种理论也是有条件的,这个条件就是迁移的两个domain之间的分布差异不能太大,要是太大的话,迁移学习就不太work。另外我们还要去假设,存在一个模型,同时适用于这两个domain,即对于source和target具有可控的误差,如果这两个条件不满足的话,迁移学习或域适配就不太work了。所以,我们是否可以考虑把迁移学习的条件放的更宽松一些,相当于把它的限制条件变得的更松弛一些,不然的话,我们只能是在这个框架下面做各种各样的model trick,但实际上对该领域的推动会很小。这是目前比较受限制的一个问题,我认为未来我们应该从迁移学习的理论上考虑怎么去扩展,而不是仅仅关注benchmark的性能。

李文:我个人认为迁移学习现在大家应用也做的比较多,但是在机器学习方面的这些理论,基本上大家用的还都是很多年前的理论。这些理论,很多时候像大家在做实际应用上,就会发现用了迁移学习实际上不work,这时候就很难知道原因。实际上面临着跟现在深度学习比较类似的场景,迁移学习好像是一个黑盒在做。这一方面是很多时候我们理论的假设本身就有一定的局限性,这样导致实际的数据并不满足这些假设,也没法去很好地验证是否满足这些假设,我们只能说差不多满足这种假设,认为它已经满足条件了,然后去做它,这样导致不work。

另一方面,迁移学习本身领域适用是关于分布差异的,很好的分布差异估计的话,要有足够的样本。很多情况下,我们的数据无论是benchmark还是这些数据实际的情况,可能并没有大量的样本来估计这种分布的差异,所以导致结果也不太好。如果数据不够,可能传统迁移学习不太work,可能会做一些few shot之类的,但是few shot理论基础又没有那么的好,没有说有guarantee,小样本的情况下一定能有什么样的bound,这是我个人的观点。另外刚才张老师提到的有针对性的做迁移学习,我是非常同意的。我们现在做来做去还是在数据层面,我就看我的分类的正确率高了,但是你到底迁移了什么呢?这里面是哪些知识被迁移了?到底我们怎么样去解释这个迁移?之间的差异到底有没有可解释性?我认为这个也很关键。很多人现在做深度学习的可解释性,那未尝不可我们也要做一下迁移学习的可解释性,所以这可能也是迁移学习目前的局限,如果你需要明确知道哪些要迁移的东西,可能目前的技术不太适合做,但这也是值得我们去探索的一个方向。

03 实际应用中,迁移并不总是有效。如何自动判别可迁移性?如何避免负迁移?

阚美娜:我认为可以从可解释或解耦的角度考虑,或者说我们能够理解清楚到底是如何迁移以及迁移了哪些信息。同时从应用的角度,可以将任务相关的一些知识加入进来进行指导。针对给定的一个任务比如像刚才宫老师举的例子,有的是做人脸的迁移,有的是做分割的迁移。在进行人脸姿态的迁移的时候,我们就可以知道姿态是跨域的差异,而除了姿态之外的如身份、表情等是可以共享的。

另一方面,从可理解的角度对信息进行解耦。例如,度量分布之间差异的时候,可以区分出是域场景的差异、类别的差异、还是更为具体的类内变化的差异。以跨姿态迁移为例,姿态的信息是不需要迁移的,而其他的如表情、年龄、光照两个domain之间也有可能存在差异,而这种差异恰恰是可以互补的。

所以从可迁移性的角度,也许可以对领域信息进行显式的解耦以及不同粒度的差异度量,同时加入领域特定的知识或先验进行指导,由此对可迁移信息或负迁移进行建模与判断。

宫博庆:我先回答群里提问的两个问题,第一个是目标域的分布,或者数据不去碰的情况下如何做迁移学习。我刚才回答了大概有四个关键字,也代表不同的四个研究方向。第一个叫domain generalization域泛化。第二个是domain randomization域随机化。第三个是selective prediction选择性的预测,是指在学模型的时候,顺便学一个类似于getting function,作用是如果有一些目标域的数据和训练域差别太大,干脆就不要预测了,宁可不预测,也不要预测错。第四个方向是uncertainty prediction或者叫做calibration,就是深度学习模型的一些输出实际上是没有概率表达的。如何把它的uncertainty预测的好一点,如果预测的好一点,实际上也是在现实应用场景的时候,不只是给出label预测,而且给出来它的不确定性uncertainty,这样应用的时候就可以知道,如果不确定性太大的话,那其实也就不要去用。这四个相关的研究方向,都可以保证在不碰任何目标与数据的时候,可以比较好地做到一些预迁移的技术。第二个问题是长尾的两个核心问题是什么。我觉得有两个,第一个基于视觉来说特征学习永远是核心问题,如何学更有效的特征,使得只有少量训练数据,它的表现依旧可以还不错,所以特征学习依然是核心问题之一。第二个就是旧的AI问题非均匀分类,与新的AI问题小样本学习,这两个问题如何更有效地结合,这是第二个核心问题。对于迁移学习并不总是有效,如何判断可迁移性以及避免负迁移这两个问题,刚才提到的selective prediction和uncertainty prediction,uncertainty estimation,应该是这两个方向会有相应的解决方案。避免负迁移的话,我在早期有一篇CVPR的paper做人脸的detector adaptation,题目大致是指如何避免负迁移。其实是基于早期周志华老师在半监督学习里面如何做更安全的半监督学习的一个方法的应用,比如说safe semi-supervised training,或者是safe semi-supervised learning在迁移学习里的一个尝试,大家可以去看一下。

04 当前迁移学习的主要benchmark有哪些缺陷?需要建设什么样的benchmark才能真正驱动该领域的健康发展?

张磊:现在也有很多迁移学习在CV领域的应用场景的工作,虽然迁移学习方法论的工作基本上都是集中在classification领域,但实际上做可迁移的detection、segmentation模型偏少。如果要想从应用的角度去考虑的话,应该可以拓展这个方向,不仅仅是集中在图像分类,还有更多其他的视觉的任务,包括跨模态、跨视角的迁移学习问题。实际上这种也可以构造更具有挑战性的benchmark,只是大家现在发论文比较习惯于用标准的几个去做,调的非常高,但实际上能不能真正地判断这个模型是否对迁移学习这个领域做了很大贡献,是让人不清楚的,可能如果换一个benchmark,这个性能又不是很好。刚才宫老师也提到了,在解决局限性的时候有两个方向,比如selective及不确定性估计的方法,因为这解决open-set domain adaptation的时候是比较居多的方法。但是还是在考虑怎么去做样本加权,或者是怎么去估计target伪标注pseudo label的可信度的时候,基本上都会采用这种方式。但是并没有跳出传统的框架。迁移学习存在的另一个问题是确定一个target任务后,怎么去选择合适的source数据,选择哪些数据帮助建立模型去辅助target任务?现在的方法,大家都是基于固定的source和target然后去做建模、减少分布差异,确保判别性,实际上这个source到底适不适合这个target,这个问题并没有解决。如果推动领域发展的话,如何去确定有利于target任务的source知识,或者如何度量两个任务之间的相关性是首先要解决的问题之一。

段立新:迁移学习现在主要的benchmark缺陷还是数据量太小,对于迁移学习整个领域,特别是计算机视觉,我们还没有一个像ImageNet这样级别的数据集来做一个benchmark,更不用提更大的像WebVision这种大的数据集了。对于整个方向的推动,数据集的提出我认为可能是最重要的事情之一。刚才宫老师也讲了一些long tail的问题,以前大家都不会觉得这是问题,或者说这个问题根本就没有被发掘出来。为什么最近几年数据量越来越多了以后,我们会发现一些新的setting、新的问题,是我们之前根本就没有设想过的。可能对于迁移学习也是有一些类似的本质问题,比如数据量的增大以及类别数量的增大。特别是现在的迁移学习benchmark,在类别数量上过于少了。有些数据集图片有上10万张,,但是类型还需要扩充到几百类上千类,对迁移学习或者对于图片分类这种计算机视觉的问题,我们才有本质的一些认知。

怎么样建设一些benchmark呢?我们现在一直在考虑,怎么样可以把仿真的数据用在真实场景,怎么样去搭建一个比较好的仿真平台。因为这部分就是结合图形学一起来产生更多的、更精确标注的仿真数据,这样本身标注的问题我们就解决了。我们不可能再像以前斯坦福当时做ImageNet那样, 花了几年的时间很慢地去把ImageNet这个数据集不断地搭建起来。现在如果更好地和图形学结合,包括3D的信息、不同拍摄角度,这样相当于批量化地产生更多的数据,更多的数据类型,以及去变换不同的纹理或者是不同的光照。这样跟我们去模拟,比如去枚举一些以前在收集真实场景图片里面没有想过的条件,我认为这个可能是一个可以考虑的比较重要的方向。    

李文:Benchmark的目的应该是面向真实的应用,能够反映我们这个研究的问题。目前的benchmark一方面是数据量确实比较小,可能overfit,很多benchmark都已经饱和了,我们不是因为饱和了才去做新的benchmark,而是因为新的benchmark能给我们带来新的思路,提出新的问题,帮助这个领域能够做新的研究。刚才老师也提到了很多新的方向,我们一定要关注哪些问题,其实很多问题都是房间里的大象,它很明显,只不过是在以前的研究中,大家长久以来知道,但是忽略了这个问题。随着研究的深入,这些问题也会慢慢地暴露出来,像long tail、open set这些问题,慢慢地大家也都在关注。但是有一个不好的现象是大家现在都是在基于已有的dataset去做这些问题。我们希望大家一起致力于这个问题,去建设一些benchmark来反映这些。段老师提到的仿真环境,确实是很有意义的,因为这样能以极少的成本代价来探索很多的问题,甚至可解释性、推理这些全部都可以在仿真的环境里面探索。非常地期待,有人在这个方向,做出一些工作来推动整个领域的发展。

05 迁移学习与生成对抗网络的联系?和相关的外延方向的区别与联系是什么,比如零样本学习、小样本学习、元学习?

阚美娜:这几个概念都有很大的相关性,总体上是两个不同层面的概念。其中,小样本学习、零样本学习、长尾分布等是任务层面的概念,指的是我们要去解决什么样的任务(What)。迁移学习、生成对抗网络以及元学习,我认为是方法层面的三个不同的技术,指的是如何解决问题(How)。迁移学习强调从一个迁移到另外一个,生成对抗网络多是侧重于生成,而元学习是learn to learn的思想,这三类方法是不同角度或者是维度的,而在解决某个特定任务比如小样本的时候,这些方法则可能可以结合到一起。

06 迁移学习有哪些新的、有意思的研究方向?下一步的发展方向在哪里?

杜博:写现在大家非常关注的图神经网络和迁移学习的结合是一个很值得挖掘的方向。图神经网络引入了图的关系,从一定程度上,相当于在深度网络当中注入了一些先验的知识,对知识从相关的领域迁移到target领域是有正面的促进作用。如何设计更加高效的图神经网络实现知识迁移,这个在理论上还是有值得研究的地方。另外,现在所有的研究都局限于比较小的一个数据集,大家在相应的benchmark上有了更好的精度,但实际上并不意味着已经提出了一个更加通用的、有效的、真正能落地的模型。我们是不是可以有一个更好的能验证算法的更大型的数据集,这也是值得研究的。

段老师刚刚提了非常好的想法,我们在建一个大型数据集的时候,用这种生成的方式,尤其在面向语义分割的时候,精准的pixel level的标注是非常困难的,必须需要有些生成的带标签的样本生成方式。但是生成这个方式和自然的图像特性是否一致,分布上差异有多大,包括风格上面是否完全吻合,这也需要我们有一定的思考。

宫博庆:我在博士训练期间就在做域迁移的问题,做了这么多年,在一个领域做一段时间之后,有的时候想看一下新的问题,比如博士训练期间大部分做域迁移的分类问题,我就特别好奇对于问题检测、语义分割、物体分割这些问题大家是怎么做的,最前沿的是怎么做的,所以独立PI以后,自己就做了很多这些方面探索性的问题,包括元学习等等。我发现更多的时候不一定要在迁移问题里面去找新的问题或者新的思路,因为在迁移学习里面做了大量的训练之后,有一种很不一样的思维方式,这个时候去看新的问题,往往能够带去新的角度。就像刚才说的长尾问题,大家如果没有做过域迁移来做的话,可能很少从域迁移角度理解长尾识别问题。

早期大家做自动驾驶,simulation场景用的非常多。我们第一个想到的是可以做这种虚拟场景、模拟场景,但最终还是要迁移到现实,所以就做了simulation to real的segmetation,大概是领域内最早的发表的。我的一个核心观点是兴趣导向,想对哪个问题哪些方向更感兴趣,就去尝试一下。很多时候从域迁移内多年的训练的技术积累,以及思维方式,很大概率会让你受益终身,并且去帮助到那个新的领域,产生一个新的阶跃。这也是一个新的角度,包括点云,因为未来几年包括雷达技术的发展,包括自动驾驶的发展,这种数据会越来越多,数据多了以后,新的问题也都会出现。如果大家还在域迁移领域内去做,建议大家可以试着去看一下点云的这种数据类型。如果大家更多兴趣,对其他的方向感兴趣的话,那也是特别鼓励的。因为域迁移的一些技术、一些思维方式,可以去帮助到其他的问题。

李文:实际上不只是学迁移学习,我们做研究的时候,更重要的是锻炼了一种思维方式,或者是新的视角。当你看其他的问题,或是其他领域的时候,这种视角或思维方式会带来一个新的perspective去看问题,这样更容易找到新的方向和新的研究点。刚才宫老师提到的long tail的问题,我们去年ICCV的时候,有一个工作做semi-supervised learning,这里面有一个小样本的labeleddata,因为labeled data样本非常少,所以会有sampling bias的问题,也就是会和unlabeled data有一个empirical distribution mismatch。而很多做semi-supervised learning的并没有明确的提出这个问题,然后我们就用的domain adaptation的方法去尝试,从domain adaptation的角度来看,那你就要解决这个distribution mismatch,反而做的效果还挺不错的。

现在迁移学习有很多新的应用,因为这两几乎每一个方向都意识到了迁移学习的重要性,所以除了之前说classification之外,现在不管提到了分割还有检测,因为我在ETH和学生一起做的DA Faster RCNN也算是近年来第一篇在用深度学习来做这个object detection的domain adaptation问题,还有像Re-ID里面也有很多,近年来新的有意思的关于tranfer learning的新的应用也蛮多的,新的问题的话像open set,在迁移学习里面考虑的新的方向。关于下一步该做什么,个人来讲,很难说发展方向在哪,但我对可解释性、虚拟到真实的迁移比较感兴趣。

阚美娜:我的想法更偏应用一些,即在某些特定的应用上可能会有更大的发挥空间。例如,刚才提到的医疗领域、需要很多标注成本的分割等任务上面,如果可以利用迁移学习将已有的知识充分利用起来,来辅助或提升这些任务的性能,会很有意义。这不仅仅是general的迁移学习,同时也涉及与任务相结的一些特定的建模与研究。从实际应用的角度,这也是非常值得探索的。

张磊:第一个可以把迁移学习扩展到不同的应用上去,可以做detection、做分割或者是做跟踪。另外也可以把这个问题放松的更宽一些,现在这些小的benchmark问题都是比较简单的。刚才宫老师讲的long tail也是一个问题,包括类别不一样的时候,以及小样本的条件下,把这些问题跟迁移学习结合。虽然这些问题本身并不属于迁移学习的问题,因为它是属于机器学习或者是深度学习的问题,但这是属于一个公共的、面向实际应用的时候,可能会存在的实际的问题,迁移学习如果要想在实际应用中work的话,也要考虑这些。第二个,刚才李老师说的可解释性这个问题还是非常好的,虽然这个问题应该是属于深度学习机器学习整个领域的问题,我更多关注的是开放环境下模型的安全性,应用到医学或是应用到无人驾驶的时候,一定会用到迁移学习。迁移学习模型到底安不安全,实际上最后回到了深度学习的可解释性的问题上,这个模型是不是可信的,虽然识别率可能很高,或者是检测性能很高,但是到底是不是安全的?特别是面向开放环境时因为这种安全性会涉及到迁移学习的负迁移问题。迁移学习要解决的问题实际上很多,但是这些问题也是属于这个领域公共性的。如果想要真正地应用在实际中,迁移学习的价值很大,基本上很多的实际应用都会用到迁移学习,特别是数据量不够的情况。但是数据量很充分的情况下,可以不用考虑这些。关于迁移学习存在的问题,其实深度学习存在的问题,迁移学习同样也会存在,它只是实现了一个知识的辅助学习。如果要把迁移学习发展下去,这些算法安全性问题、可解释性问题、以及模型的可信性问题,应该是要进一步解决的。

最后一个还是知识,因为我们迁移的是知识,而不仅仅是把这个数据拿过来做了一个分布差异建模。怎么定义这个知识是很重要的,特别是对模型的可解释性,不然的话,这个模型本身就会存在各种不确定性。现在对知识的这种工作还不是特别多,但是现在基于这种图网络的迁移学习也开始多了,包括meta-learning也开始很多用在迁移学习上。我认为这在迁移学习上会有一个很好的突破,谢谢。 

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客