Deep Adversarial Subspace Clustering 翻译_深度聚类英文-程序员宅基地

技术标签: subspace clustering  

摘要:

大多数现有的子空间聚类方法都依赖于人工制作表示的自我表达,并且不知道潜在的聚类错误。因此,它们对具有复杂潜在子空间的实际数据处理的令人不满意。为了解决这个问题,我们提出了一种新的深度对抗子空间聚类(DASC)模型,通过深度学习子空间聚类来学习更有利的样本表示,更重要的是引入对抗学习来监督样本表示学习和子空间聚类。具体而言,DASC由子空间聚类生成器和质量验证鉴别器组成,它们相互学习。生成器生成子空间估计和样本聚类。鉴别器通过检查来自估计子空间的重新采样数据是否具有一致的子空间属性来评估当前聚类性能,并监督生成器逐步改进子空间聚类。手写识别,面部和对象聚类任务的实验结果证明了DASC优于浅层和不太深层的子空间聚类模型。此外,据我们所知,这是相似GAN模型在无监督子空间聚类中的首次成功应用,也为深度学习解决其他无监督学习问题铺平了道路。

引言:

在本文中,我们的目标是为无监督子空间聚类问题开发新的深度学习解决方案。 与仅限于线性子空间的传统“浅”子空间聚类方法相比,深度子空间聚类显然是有利的。 它可以通过深度学习提供更强大的样本表示,并有效地聚类来自非线性子空间的样本,这可以极大地将子空间聚类扩展到更复杂的实际数据。

最近,提出了一种基于深度自动编码器的子空间聚类模型,旨在学习更好的样本表示。 然而,与那些传统的“浅层”方法一样,它仍然取决于作为监督的自我表示,这对于具有不友好分布的样本可能表现不佳(例如,内在子空间不是独立的或具有显著的交集)。 此外,现有的子空间聚类方法没有考虑获得的聚类的潜在的错误,导致学习的表示含噪声,从而降低聚类性能。

在这项工作中,因为GAN最近在无监督数据生成方面取得的成功,我们基于GAN框架,基于现有方法的上述缺点开发了一种新的无监督深度子空间聚类模型。称为深对抗子空间聚类(DASC)。它由子空间(和簇)生成器和鉴别器组成,鉴别器通过以无监督的方式评估聚类质量来监督生成器。如果生成器生成的簇是正确的,则同一簇中的样本将全部位于相同的内部子空间中,这意味着它们的任何线性组合将依旧在这个子空间中并具有相同的子空间属性,如众所周知的线性子空间性质中所述。在这种情况下,鉴别器不能检测来自内部子空间的重采样数据与簇中的原始样本之间的差异。否则,给定不准确的簇,如图1(a)所示,采样自同一簇内的跨越子空间\hat{S}偏离了样本所在的内部子空间S1 *和S2 *。然后鉴别器能够轻易地区分来自于子空间\hat{S}的重采样的边远数据(“\bigcirc”)和那些原始数据(“\bigtriangleup”和“\square”),并将这些信息作为监督反馈给生成器,以产生更好的子空间估计和样本聚类。因此,生成器逐渐改进子空间聚类,其中“\bigtriangleup”和“\square”被正确聚类,如图1(b)所示。

 

图1:我们的想法的例证。 鉴于(a)中当前的聚类错误,DASC中的鉴别器可以通过从当前聚类(即,生成器的估计子空间\hat{S})生成的假样本“\bigcirc”和原始的“\bigtriangleup”和“\square”样本来识别其质量差,因为它们具有不一致的子空间属性。 利用监督等评估信息,DASC中的生成器逐步改进样本表示学习,并在(b)中输出正确的聚类结果。

特别是,生成器的作用是三重的。首先,它使用深度自动编码器通过自表达层在位于联合线性子空间中将原始输入样本转换为更好的表示。通过这种方式,DASC有效地减轻了样本上的线性子空间假设。其次,生成器基于内部自表达层产生的样本亲和度矩阵产生子空间聚类结果。第三,它通过从估计的聚类(或等效的跨越子空间)中采样来生成新的“假”样本,并将它们送到鉴别器以进行区分来相应地评估子空间聚类质量。另一方面,训练鉴别器以将所生成的“伪”样本与所提供的真实样本区分开,并基于线性子空间属性评估聚类结果的质量。它反馈评估信息以监督生成器的子空间聚类。与相似GAN模型中的传统鉴别器提供过复杂的分类边界以准确利用子空间属性来区分样本不同,我们提出了一种基于能量的鉴别器,通过检查它们与感兴趣的子空间的匹配程度来检测真实和偏离样本。在这种鉴别器的监督下,生成器将学习更具判别力的表示并提高聚类性能。

手写识别,面部和对象聚类任务的实验结果很好地证明了我们的方法的优点。 综上所述,本文做出了以下贡献。

(1)我们提出了一种新的深度对抗子空间聚类方法,称为DASC。 通过引入对抗性学习,DASC的鉴别器可以忠实地评估当前的聚类质量,并监督生成器的学习,从而为更好的子空间聚类产生更有利的表示。

(2)我们设计了一种简单但有效的基于能量的鉴别器,以广泛利用子空间属性,这是对自动编码器引入的自我表示损失的创新和补充。

相关工作:

迄今为止,已经开发了各种子空间聚类方法。 他们中的大多数利用自我表示来解决潜在的子空间和样本聚类,这可以用以下统一的公式来构造:

但是,它们只能聚集线性子空间,这限制了它们的应用。 为了解决这个问题,已经开发了基于核的子空间聚类方法。 但很难选择适当的内核捕获潜在的子空间。 此外,所有这些现有方法仅寻求线性表示系数,这可能对于聚类任务不具有判别力。 相比之下,我们提出的DASC使用鉴别器来有效地评估聚类性能并监督生成器以学习更具判别力的表示。

最近,已经提出了几种基于深度学习的聚类方法。 宋等人,将自动编码器与k-means集成去学习和聚类潜在特征。 同样,谢等人,提出了一种深度嵌入式聚类方法。 但它们都不适用于子空间聚类。 最近,Ji等人,提出了一种深度子空间聚类网络(DSC-Net),它使用自动编码器来学习输入样本的表示,并通过自我表示层获得线性表示系数(如方程(1))。 尽管DSC-Net避免了线性子空间假设,但它无法根据当前的聚类结果进行自我调整以学习更好的表示。 相比之下,提出的DASC引入了鉴别器和生成器之间的对抗性学习,以强制后者通过学习更好的表示来改进当前的聚类结果。

深度对抗子空间聚类:

在本节中,我们将详细介绍所提出的方法。 我们首先解释网络构成,然后介绍每个部分,最后详细说明其训练和聚类过程。

网络构成:

如前所述,子空间聚类方法通过恢复多个低维子空间来聚类观察到的样本,以匹配和分离它们。 然而,对于复杂性质的实际数据,很难找到匹配其原始表示的子空间。 在这种情况下,来自不同子空间的样本可能被错误地聚集到同一群集中,从而损害了聚类效果。 为了解决这种无监督的学习问题,现有的最先进的方法(例如,SSC 和LRR )通常依赖于同一子空间内的样本自表示属性,这通常对于具有不友好分布的样本(例如,内在子空间不是独立的或具有显著的交集)表现不佳 。 此外,这些方法不考虑所获得的簇中的潜在错误,因此不能通过评估当前的聚类质量来改进自身。

为了在一个统一模型中解决上述关键问题,我们提出了深度对抗子空间聚类(DASC)模型,该模型通过深度学习学习子空间聚类的更好的样本表示,并引入子空间对抗性学习来补充自我表示以获得更好的样本聚类。 如图2所示,它由子空间(和簇)生成器和鉴别器组成,分别用G和D表示。

图2:整体结构的例证。 DASC由一个相互学习的生成器和鉴别器组成。 特别地,该生成器包含一个用于学习样本表示的自动编码器 - 解码器,一个用于产生样本亲和度矩阵和聚类的自我表示层,以及一个用于生成子空间质量评估所需的真实和伪造数据的采样层。 子空间鉴别器接收生成的样本并学习区分真实数据和假数据。

具体地,DASC通过其生成器G中的多层非线性编码器来学习输入样本X_{i}的潜在表示z_{i}。为了迫使新表示z_{i}比原始表示X_{i}更适合子空间聚类,G引入自我表示层并最小化以下自我表示损失:

DASC旨在检查来自噪声C_{i}的再生样本与来自S_{i}^{\ast }的真实样本之间的差异,为聚类质量定义一个有效且可计算的度量,并获得额外的监督。 形式上,DASC引入了一种新的判别损失来衡量聚类C_{i}的质量:

D_{i}是对于子空间S_{i}^{\ast }的一个判别模型,通过最小化下面的判别损失来训练:

这里〜表示包括采样和线性组合的复合操作,并且将在第3.2节中更详细地解释。 采样和线性组合操作很重要,它们受子空间的关键属性(在有效子空间内线性组合样本不会产生边远样本)启发 。 DASC中的鉴别器D_{i}被训练来区分真实内在子空间S_{i}^{\ast }的“真实”样本和他的估计\hat{S}_{i}的“假”样本。 与相似GAN模型中的传统鉴别器不同,DASC中的鉴别器需要估计每个样本属于某个子空间的概率。 也就是说,它需要子空间方面的区别力。 我们在3.3节中引入了一种新的基于能量的鉴别器模型,满足这样一个关键要求。

如果来自簇C_{i}的所有“假”样本(包括线性组合)被鉴别器D分类为S_{i}^{\ast },即,等式(3)得到一个大值。则簇C_{i}具有高质量。 否则,聚类簇是错误的。 通过将这种监督反馈给生成器G,然后强制G去最大化质量(等式(3))或均衡等式(4)的鉴别器损失(等于1/2,即无法判别真假), 来产生更好的聚类样本表示和聚类结果,即C_{i}内的样本可与鉴别器D区分。在下面的小节中,我们解释了关于生成器G和鉴别器D的细节,以实现上面介绍的方法。

3.2 生成器:

DASC的生成器G通过利用样本的低维结构,学习有利于子空间聚类的判别表示,并生成子空间聚类结果。 特别是,它学会了将原始输入样本转换为潜在表示空间,其中样本可以通过线性子空间的并集很好地拟合,使用子空间成员集对样本进行聚类,并且如上面所说从每个聚类生成“真实”和“假”样本。

如图2所示,生成器使用深度卷积自动编码器将样本X_{i}非线性地变换为表示z_{i}。 然后,它使用编码器后面的自表示层来产生自表示系数\Theta _{c}(参见方程(2))。 随后将新表示Z\Theta _{c,i}送到解码器中。 这里,解码器具有与编码器对称的结构,其旨在从Z\Theta _{c}重建原始输入X_{i}以确保表示Z保留足够的样本信息。 亲和度矩阵用于聚类。

G的另一个重要功能是生成以簇C_{i}(i = 1,...,K)为条件的“真实”和“假”样本,其由图2中的采样层实现。基于通过自表示层学习的样本亲和度矩阵Λ,我们应用NCut算法将z_{i}(i = 1,...,n)聚类为K个簇C_{i}。同时,如图3所示,我们的鉴别器被设计成学习线性子空间S_{i}以匹配簇C_{i}的内部真实子空间S_{i}^{\ast }。然后根据鉴别器学习的相应子空间上的数据点的映射残差(参见3.3节中的方程(5)),鉴别器可以识别输入数据是真实的还是假的。在3.3节中查看鉴别器的详细信息 。因此,G中的采样层计算簇C_{i}中每个样本的对应到S_{i}上的映射残差,并选择具有较小残差的\bar{m}_{\ast }^{i}个“实数”数据(图3中的平坦点)。在3.4节中查看\bar{m}_{\ast }^{i}的设置。以这种方式,所选择的样本以高概率大致位于正确的固有子空间中,并且用作跨越子空间S_{i}的“真实数据”。此外,鉴别器足够强大以处理这些所选实际数据中的可能噪声。采用这种新颖的基于映射残差的真实数据采样策略,紧密结合用于聚类质量评估的基于能量的鉴别器,并通过实验验证了其有效性。

图3:关于真/假采样的插图。从错误的簇C_{i}中采样真实数据(具有正确的聚类标签)和假数据,该错误的簇C_{i}跨越不准确的子空间估计\hat{S}_{i}。 真实数据对应于鉴别器D_{i}所学习的子空间S_{i},具有比采样的假数据对应于鉴别器D_{i}所学习的子空间S_{i}小得多的映射残差,因此可以通过D_{i}来区分它们。

为了产生假数据,对于每个簇C_{i},生成器中的采样层从估计的子空间\hat{S}_{i}执行随机采样(参见图3中的紫色点)。 由于直接采样是不可微分的,我们采用[11]中的重新参数化技巧来实现可微分采样。具体地,对于每个具有m_{i}个样本的簇C_{i},采样层先从(0,1]均匀分布中采样\bar{m}_{\ast }^{i}个随机向量,然后生成\bar{m}_{\ast }^{i}个假数据

\alpha _{tj}表示\alpha_{t}的第j项。对于当前训练阶段\alpha_{t}是固定的,可以通过表示z_{i_{j}}将梯度传到编码器。 与明确计算\hat{S}_{i}然后对假数据进行采样相比,如上所述生成假数据更有效。

3.3 鉴别器:

我们构建鉴别器以实现能量函数,该能量函数将低能量分配给数据子空间附近的区域,并将更高的能量分配给其他区域。 因为对于每个聚类C_{i},鉴别器D旨在验证其真实数据z_{i}和伪数据\bar{z}_{i}是否属于相同的内在子空间,它仅需要学习一个子空间判别模型,该模型为每个簇匹配期望的固有子空间。 对于簇C_{i},让鉴别器学习的子空间S_{i}的基由参数化,其中r_{i}表示子空间维度。 然后如图3所示,鉴别器可以通过它们在U_{i}上的映射残差来区分真实数据和伪数据:

因为如果簇不准确,真实样本将比那些假样本更接近子空间。我们使用上面的映射残差来定义一个样本属于子空间S_{i}的概率,也就是鉴别器D_{i}的输出,即,用它代替等式(4)给出以下目标函数来训练簇C_{i}的鉴别器D_{i}.

为了在簇C_{i}U_{i}之间建立一对一的对应关系以计算损失\mathfrak{L}_{D},对于所有候选U_{i},每个C_{i}计算其在U_{i}上的平均投影残差并选择一个最小的平均投影残差。 如果多个簇竞争相同的U_{i},则U_{i}将选择具有最小平均映射的集群。 对于没有匹配U_{i}的任何聚类,我们在由z_{i_{j}}构成的特征矩阵上使用QR分解来计算其对应的U_{i}。 以这种方式,生成器和鉴别器的学习是一致的,因为在每次簇C_{i}将总是找到最接近其固有子空间的U_{i}

为了促进对应于不同簇的子空间的可分离性,我们引入正则化项,其中\beta _{1} > 0是常数。 它还有利于通过鉴别器D,鼓励生成器G产生对不同子空间有区别力的表示来进行聚类。 虽然我们不要求U_{i}中的基是严格正交的,但我们仍然使用作为正则化来减少每个U_{i}中的冗余,其中\beta _{2} > 0是常数,I是具有兼容维度的单位矩阵。

因此对于鉴别器最终的训练目标是

DASC中的鉴别器可以由两个全连接层的K个线性网络实现。 此外,在每个网络中,两个层共享它们的参数U_{i}。 对于输入数据z_{j},第一层和第二层的输出分别是U_{i}z_{j}U_{i}U_{i}^{T}z_{j}。 通过最小化鉴别器损失,可以学习参数 。

显然,DASC中的鉴别器是自动编码器的变体,但比[1,37]中用于图像生成的鉴别器更简单,因为我们只有两个线性映射层。 这种吸引人的简单性受益于G中的自表达层,这提供了利用线性子空间结构来设计鉴别器的便利性。 相比之下,[1,37]中的自动编码器更深,涉及非线性映射,因为数据结构仍然未知,因此需要复杂的自动编码器来学习数据结构。

3.4 训练和聚类:

 

即,通过调整G的表示学习和子空间聚类结果,鼓励生成的假数据更接近鉴别器学习的子空间,从而表明更高的聚类质量。 G的最终培训目标是将这种对抗性损失\mathfrak{L}_{a}与样本重建损失和自我表示损失相结合。

表示所有的输入样本,\hat{\mathbf{X}}自编码器对X的重构。这里\Theta表示生成器的参数,包括编码器和解码器中的参数,以及自表达层中的表示系数\Theta _{c}。 第二项表示自动编码器的重建损失,而后两项对应于等式(2)中的自我表示损失。 在\Theta _{c}上采用F-范数惩罚,因为与非平滑惩罚项相比,例\emph{l}_{1}范数, 通常,它可以更容易学习,也可以达到相当的甚至更好的性能。

我们首先预先训练发生器G而不考虑鉴别器D,即最小化等式(9)中的生成器损失,丢弃第一项\mathfrak{L}_{a}。这样,生成器可以产生相当好的初始表示。然后我们按如下方式训练整个DASC网络。首先,我们通过以下方法初始化鉴别器参数。见第4节,设置\mathbf{r}_{i}。我们在亲和度矩阵Λ上应用NCut以聚类潜在表示。然后我们使用簇C_{i}中的表示,通过QR分解来计算U_{i}。由于预训练的生成器提供了相对较好的聚类结果,因此这种策略比随机初始化更好地初始化模型。在鉴别器和生成器的联合训练期间,鉴于鉴别器的结构比发生器简单得多,我们分别在每个时期内异步更新D和G,为5次和1次。对于m_{i}个数据点的聚类C_{i},我们将真实数据和假数据的数量设置为\bar{m}_{i}^{\ast }\alpha \bar{m}_{i}^{\ast }(α∈[0.8,0.95]),这在所有实验中都很有效。预训练和微调都采用Adam算法。但他们的学习率分别为10^{-3},与[9]中一样,2\times 10^{-4}

在测试期间,我们对由生成器G输出的学习到的亲和度矩阵Λ执行谱聚类。为了公平性,我们使用[9]中的NCut算法。

4. 实验:

 

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shaodongheng/article/details/82932612

智能推荐

分布式光纤传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告_预计2026年中国分布式传感器市场规模有多大-程序员宅基地

文章浏览阅读3.2k次。本文研究全球与中国市场分布式光纤传感器的发展现状及未来发展趋势,分别从生产和消费的角度分析分布式光纤传感器的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。主要生产商包括:FISO TechnologiesBrugg KabelSensor HighwayOmnisensAFL GlobalQinetiQ GroupLockheed MartinOSENSA Innovati_预计2026年中国分布式传感器市场规模有多大

07_08 常用组合逻辑电路结构——为IC设计的延时估计铺垫_基4布斯算法代码-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏12次。常用组合逻辑电路结构——为IC设计的延时估计铺垫学习目的:估计模块间的delay,确保写的代码的timing 综合能给到多少HZ,以满足需求!_基4布斯算法代码

OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏5次。OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版

关于美国计算机奥赛USACO,你想知道的都在这_usaco可以多次提交吗-程序员宅基地

文章浏览阅读2.2k次。USACO自1992年举办,到目前为止已经举办了27届,目的是为了帮助美国信息学国家队选拔IOI的队员,目前逐渐发展为全球热门的线上赛事,成为美国大学申请条件下,含金量相当高的官方竞赛。USACO的比赛成绩可以助力计算机专业留学,越来越多的学生进入了康奈尔,麻省理工,普林斯顿,哈佛和耶鲁等大学,这些同学的共同点是他们都参加了美国计算机科学竞赛(USACO),并且取得过非常好的成绩。适合参赛人群USACO适合国内在读学生有意向申请美国大学的或者想锻炼自己编程能力的同学,高三学生也可以参加12月的第_usaco可以多次提交吗

MySQL存储过程和自定义函数_mysql自定义函数和存储过程-程序员宅基地

文章浏览阅读394次。1.1 存储程序1.2 创建存储过程1.3 创建自定义函数1.3.1 示例1.4 自定义函数和存储过程的区别1.5 变量的使用1.6 定义条件和处理程序1.6.1 定义条件1.6.1.1 示例1.6.2 定义处理程序1.6.2.1 示例1.7 光标的使用1.7.1 声明光标1.7.2 打开光标1.7.3 使用光标1.7.4 关闭光标1.8 流程控制的使用1.8.1 IF语句1.8.2 CASE语句1.8.3 LOOP语句1.8.4 LEAVE语句1.8.5 ITERATE语句1.8.6 REPEAT语句。_mysql自定义函数和存储过程

半导体基础知识与PN结_本征半导体电流为0-程序员宅基地

文章浏览阅读188次。半导体二极管——集成电路最小组成单元。_本征半导体电流为0

随便推点

【Unity3d Shader】水面和岩浆效果_unity 岩浆shader-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏18次。游戏水面特效实现方式太多。咱们这边介绍的是一最简单的UV动画(无顶点位移),整个mesh由4个顶点构成。实现了水面效果(左图),不动代码稍微修改下参数和贴图可以实现岩浆效果(右图)。有要思路是1,uv按时间去做正弦波移动2,在1的基础上加个凹凸图混合uv3,在1、2的基础上加个水流方向4,加上对雾效的支持,如没必要请自行删除雾效代码(把包含fog的几行代码删除)S..._unity 岩浆shader

广义线性模型——Logistic回归模型(1)_广义线性回归模型-程序员宅基地

文章浏览阅读5k次。广义线性模型是线性模型的扩展,它通过连接函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。广义线性模型拟合的形式为:其中g(μY)是条件均值的函数(称为连接函数)。另外,你可放松Y为正态分布的假设,改为Y 服从指数分布族中的一种分布即可。设定好连接函数和概率分布后,便可以通过最大似然估计的多次迭代推导出各参数值。在大部分情况下,线性模型就可以通过一系列连续型或类别型预测变量来预测正态分布的响应变量的工作。但是,有时候我们要进行非正态因变量的分析,例如:(1)类别型.._广义线性回归模型

HTML+CSS大作业 环境网页设计与实现(垃圾分类) web前端开发技术 web课程设计 网页规划与设计_垃圾分类网页设计目标怎么写-程序员宅基地

文章浏览阅读69次。环境保护、 保护地球、 校园环保、垃圾分类、绿色家园、等网站的设计与制作。 总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证、js轮播图、音频 视频 Flash的应用、ul li、下拉导航栏、鼠标划过效果等知识点,网页的风格主题也很全面:如爱好、风景、校园、美食、动漫、游戏、咖啡、音乐、家乡、电影、名人、商城以及个人主页等主题,学生、新手可参考下方页面的布局和设计和HTML源码(有用点赞△) 一套A+的网_垃圾分类网页设计目标怎么写

C# .Net 发布后,把dll全部放在一个文件夹中,让软件目录更整洁_.net dll 全局目录-程序员宅基地

文章浏览阅读614次,点赞7次,收藏11次。之前找到一个修改 exe 中 DLL地址 的方法, 不太好使,虽然能正确启动, 但无法改变 exe 的工作目录,这就影响了.Net 中很多获取 exe 执行目录来拼接的地址 ( 相对路径 ),比如 wwwroot 和 代码中相对目录还有一些复制到目录的普通文件 等等,它们的地址都会指向原来 exe 的目录, 而不是自定义的 “lib” 目录,根本原因就是没有修改 exe 的工作目录这次来搞一个启动程序,把 .net 的所有东西都放在一个文件夹,在文件夹同级的目录制作一个 exe._.net dll 全局目录

BRIEF特征点描述算法_breif description calculation 特征点-程序员宅基地

文章浏览阅读1.5k次。本文为转载,原博客地址:http://blog.csdn.net/hujingshuang/article/details/46910259简介 BRIEF是2010年的一篇名为《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF是对已检测到的特征点进行描述,它是一种二进制编码的描述子,摈弃了利用区域灰度..._breif description calculation 特征点

房屋租赁管理系统的设计和实现,SpringBoot计算机毕业设计论文_基于spring boot的房屋租赁系统论文-程序员宅基地

文章浏览阅读4.1k次,点赞21次,收藏79次。本文是《基于SpringBoot的房屋租赁管理系统》的配套原创说明文档,可以给应届毕业生提供格式撰写参考,也可以给开发类似系统的朋友们提供功能业务设计思路。_基于spring boot的房屋租赁系统论文