没有合适的资源?快使用搜索试试~ 我知道了~
98710PLAD: 使用伪标签和近似分布学习推断形状程序0R. Kenny Jones 布朗大学 Homer Walke 加州大学伯克利分校Daniel Ritchie 布朗大学0摘要0推断生成2D和3D形状的程序对于逆向工程、编辑等非常重要。训练模型执行这个任务很复杂,因为许多领域中配对的(形状,程序)数据不容易获得,使得精确的监督学习变得不可行。然而,可以通过牺牲分配的程序标签或形状分布的准确性来获得配对数据。Wake-sleep方法使用形状程序的生成模型样本来近似真实形状的分布。在自训练中,形状通过识别模型传递,该模型预测被视为这些形状的“伪标签”的程序。与这些方法相关的是,我们引入了一种新颖的自训练变体,该变体在程序推断中是独特的,其中程序伪标签与其执行的输出形状配对,避免了标签不匹配的问题,但代价是近似形状分布。我们建议将这些方法归为一个概念框架下,其中使用伪标签或近似分布(PLAD)的最大似然更新进行训练。我们在多个2D和3D形状程序推断领域评估了这些技术。与策略梯度强化学习相比,我们展示了PLAD技术推断出更准确的形状程序并且收敛速度显著更快。最后,我们提议在单个模型的训练中结合来自不同PLAD方法的更新,并发现这种方法优于任何单个技术。01. 引言0拥有生成视觉数据的过程可以揭示其底层结构,从而方便人员或自主代理进行高级操作和编辑。因此,从视觉数据中推断出这样的程序是一个重要的问题。在二维空间中,推断形状程序在设计图表、图标和其他二维图形方面具有应用。在三维空间中,它在逆向工程中具有应用0CAD模型,用于3D游戏的程序化建模,以及用于自主代理的3D结构理解。我们将形状程序推断正式定义为获取生成给定观察到的形状x的潜在程序z。我们使用深度神经网络对p(z|x)进行建模,通过在真实形状分布上训练来分摊对未见形状(例如测试集)的形状程序推断的成本。这是一个具有挑战性的问题:它是一个结构化预测问题,其输出是高维的,可以包含离散和连续组件(即程序控制流与程序参数)。然而,只要有配对的(X,Z)数据(即形状和生成它们的程序的数据集)[31],学习p(z|x)就变得可行。不幸的是,虽然形状数据越来越多地以大量存在[2],但这些形状通常不附带它们的生成程序。为了解决这个数据问题,研究人员通常通过生成合成程序并将其与输出的形状配对[24,28]来合成配对数据。然而,由于这些合成形状与感兴趣的分布S�中的“真实”形状通常存在显著的分布不匹配,因此必须采用各种技术来对p(z|x)模型进行微调以适应S�。其中一些微调策略试图直接将几何相似度度量的梯度传播回p(z|x)。当程序执行器不是一个黑盒时,可以通过实现其行为的可微松弛来实现这一点[16],但这需要对其功能形式有所了解。也可以尝试学习执行器行为的可微近似[28],但这种近似会引入误差。此外,由于形状程序通常涉及许多离散结构决策,在许多领域中通常无法通过端到端训练这样的模型。因此,许多先前的工作通常采用通用的策略梯度强化学习[8,24],将程序执行器视为(不可微分的)黑盒。这种策略的缺点是RL在收敛方面不稳定且收敛速度慢。在本文中,我们研究了一系列创建的方法98720用于训练p(z |x)模型的(形状,程序)数据对,通过最大似然估计(MLE)更新来对待程序执行器作为黑盒。正如讨论的那样,由于往往无法获得真实的(形状,程序)对,因此这些技术必须在如何制定配对数据方面做出妥协。在wake-sleep中,生成模型p(z)通过与p(z |x)交替的周期进行收敛训练。当训练p(z |x)时,可以通过从p(z)中进行采样来创建配对数据。每个程序标签z对应其关联的x形状是有效的,但通常在生成的形状集X和目标分布S�之间存在分布不匹配。在自训练中,使用p(z |x)推断未标记的输入x的潜在z;然后,这些z成为被视为另一轮监督训练的伪标签。在这种范式中,X和S�之间没有分布偏移,但是每个z只是与其配对的x的近似正确标签。我们观察到形状程序推断具有一种独特的特性,使其特别适合于自训练:分布p(x |z)是先验已知的-这是由程序执行器定义的delta分布。当使用模型p(z |x)从某个形状x�中推断出程序z时0对于感兴趣的形状,可以使用该执行器生成与程序z一致的形状x:在自训练的术语中,z被保证是x的“正确标签”。然而,类似于wake-sleep,将X定义为由模型推断的程序生成的形状执行可能会导致X和S�之间的分布偏移。由于这种自训练的变体涉及执行推断的潜在程序z,我们将此过程称为潜在执行自训练(LEST)。由于所有上述微调方案都使用了伪标签或近似分布来制定(形状,程序)对,我们将它们归为一个单一的概念框架:PLAD。我们通过在多个形状领域(2D和3D构造实体几何(CSG)以及基于ShapeAssembly的组装建模)中对形状程序推断模型进行微调来实验评估PLAD方法。我们发现,PLAD训练方案相对于策略梯度强化学习的事实方法提供了显著的优势,实现了更好的形状重建性能,同时需要更少的计算时间。此外,我们探索了从多种PLAD方法的训练更新中组合的方法,并发现与任何单个方法相比,这种方法可以获得更好的性能。我们的方法和实验的代码可以在https://github.com/rkjones4/PLAD找到。总之,我们的贡献是:1.提出PLAD概念框架,将一系列相关的自监督学习技术用于形状程序推断。02.引入潜在执行自训练(LEST),一种PLAD方法,以利用形状程序推断问题的独特属性。03.在多个2D和3D形状程序推断领域进行实验,证明了(i)在PLAD方案下进行微调优于策略梯度强化学习,以及(ii)组合PLAD方法优于任何单个技术。02. 相关工作0程序合成是一个广泛的领域,在其历史中使用了许多技术。程序合成器以特定领域语言(DSL)和规范作为输入;它输出一个满足规范的DSL程序。机器学习已被用于改进程序合成任务的性能,例如通过对所有可能的程序进行神经引导搜索或让循环网络直接预测程序文本[1, 5, 7, 22, 27,32]。在这项工作中,我们对形状程序推断这个子问题感兴趣,它是一种视觉程序归纳问题[4]。在我们的情况下,规范是一个对象的视觉表示,推断出的程序的输出必须在几何上匹配。在这里,我们讨论了攻击这个问题的先前工作,按照用于学习p(z |x)的方法进行组织;请参阅表1以获取概述。正如讨论的那样,在这个先前的工作中,一个常见的做法是从一个在合成生成的(形状,程序)对上进行了预训练的模型开始,然后进行向感兴趣的分布的微调[8, 9, 19, 24,28]。策略梯度强化学习对预训练的p(z |x)进行微调的最常见方法是将p(z |x)视为策略网络,并使用策略梯度方法[30]。推断程序的输出的几何相似性是奖励函数;程序执行器p(x |z)可以被视为一个(不可微分的)黑盒。CSG-Net使用RL进行微调[24,25],最近的其他关于从输入几何推断CSG程序的工作也是如此[8]。虽然CSG-Net已经改进,使其能够在没有监督预训练的情况下收敛[34],但不从监督模型开始会导致性能较差。策略梯度RL的主要问题是由于高方差梯度而导致不稳定,从而导致收敛缓慢。与RL类似,PLAD方法将程序执行器视为黑盒,但正如我们在实验中所展示的,它们收敛更快并且实现更好的重建性能。如果程序执行器p(x |z)的函数形式是已知且可微分的,则可以计算奖励相对于p(z |x)参数的梯度,从而不需要策略梯度。形状程序通常不是完全可微分的,因此Self-Training Traditionally, self-training has been em-ployed in weakly-supervised learning paradigms to increasethe predictive accuracy of simple classification models[20, 23, 33].Recently, renewed interest in self-training-inspired data augmentation approaches have demonstratedempirical performance improvements for neural models indomains such as large-scale image classification, machinetranslation, and speech recognition [11,15,35]. But whileself-training has been shown to yield practical gains forsome domains, for others it can actually lead to worse perfor-mance, as training on too many incorrect pseudo-labels can98730方法 模型 黑盒 p(x|z) ? X = S* 低方差、无偏梯度0策略梯度RL p(z|x) � � X 可微分执行器 p(z|x) X � � 变分贝叶斯 p(z|x), p(z) X � �0唤醒-睡眠,EM p(z|x), p(z) � X � 自我训练 p(z|x) � � X LEST p(z|x) � X �0表1. 不同方法在微调p(z|x)方面的比较,包括必须训练的模型,是否将程序执行器视为黑盒,训练形状分布是否与真实形状分布匹配(X =S*),以及它们的损失梯度是否无偏且方差低。最后三行描述了属于PLAD框架的方法。0它们通常涉及离散选择(例如创建哪种类型的基元)。UCSGNet使用可微分的松弛方法来解决这个问题[16]。其他工作训练一个可微分网络来近似程序执行器的行为[28],这会引入错误。PLAD方法不要求程序执行器是可微分的,但它们的性能比其他具有这种理想特性的方法(例如策略梯度RL)更好。0生成模型学习形状程序推断也在学习程序和它们产生的形状的生成模型p(x,z)的背景下进行了探索。训练这种模型的最流行方法是变分贝叶斯,特别是变分自动编码器[17]。该方法通过优化边际似然p(x)上的下界同时训练生成模型p(x,z)和识别模型p(z|x)。当z是形状程序时,程序执行器是p(x|z),因此学习生成模型等效于学习程序的先验概率p(z)。使用梯度下降训练这样的模型要求执行器p(x|z)是可微分的。当这不可能时,唤醒-睡眠算法是一个可行的替代方法[13]。该方法交替训练生成模型和识别模型,其中一个模型使用另一个模型产生的样本进行训练。最近的研究已经在视觉程序归纳中使用了唤醒-睡眠算法[10,12]。如果在切换到训练另一个模型之前将生成模型和推断模型训练到收敛,这等效于期望最大化(被视为交替最大化[21])。0对于PLAD框架内的自我训练,每个示例的分配伪标签在微调过程中会随着推断模型发现更好解释输入形状的程序而改变;类似的技术已经被提出用于在迭代最大似然的视角下学习执行语义解析的程序[18]。据我们所知,自我训练尚未应用于微调视觉程序推断模型,可能是因为将程序视为视觉数据的“标签”在某种程度上不太直观。03. 方法0在本节中,我们描述了PLAD框架:一种用于形状程序推断模型的微调方法的概念性分组。我们的公式假设有三个输入:来自感兴趣分布的形状的训练数据集S*,程序推断模型p(z|x),以及将程序转换为形状的程序执行器E。在本文中,我们假设作为输入的p(z|x)已经在合成生成的形状分布上进行了监督预训练。PLAD框架中的方法返回一个经过精细调整的p(z|x),该模型专门针对从中采样的S*的感兴趣分布。我们在图1中以算法和图示的方式描述了PLAD过程。为了将p(z|x)微调到S*,PLAD方法通过以下步骤进行迭代:(1)使用p(z|x)找到与S*视觉上相似的程序,(2)使用推断的程序构建形状和程序对(X,Z)的数据集,(3)使用来自(X,Z)的批量数据进行最大似然估计更新,微调p(z|x)。通过连续迭代,这些步骤相互推动,形成一个良性循环:对p(z|x)的改进创建了更接近S*统计的(X,Z)对,并且在更好的(X,Z)对上的训练将p(z|x)专门用于S*。在PLAD框架内的方法在每轮中如何创建配对的(X,Z)数据方面有所不同。我们详细介绍了唤醒-睡眠(第3.1节)、自我训练(第3.2节)和潜在执行自我训练(第3.3节)的过程。在第3.4节中,我们解释了我们的程序推断过程。……………98740输入:(S�,p(z|x),E) 输出:在S�上微调的p(z|x)0P BEST ← {} for Numberof Rounds do0// 更新最佳程序 P BEST ←inferProgs(p(z|x),S�,P BEST) //创建训练数据,如果自我训练0Z ← P BEST0X ← S�0否则,如果LEST0Z ← P BEST0否则,如果Wake-Sleep0p(z) ← trainGenerative(PBEST) Z ← sample(p(z), |S�|) X← {E(z) | z ∈ Z}0end if // 训练推理模型p(z|x) ← trainMLE(X, Z)0结束循环0���)0P" BEST真实形状��0�(�)0LEST:(X,Z)0ST:(X,Z)0WS:(X,Z)0推理0程序执行0训练生成0样本执行0在(X,"Z)上训练0PLAD0图1.(左)使用伪标签和近似分布(PLAD)对形状程序推理模型p(z|x)进行微调的伪代码,以形成感兴趣的形状分布S�。PLAD方法通过三个步骤迭代:使用p(z|x)推断S�的程序,创建(X,Z)形状-程序对的数据集,并使用(X,Z)的批次训练p(z|x)。自我训练,潜在执行自我训练和wake-sleep在构建(X,Z)方面有所不同。(右)算法数据流的可视化说明。0(inferProgs,图1)。最后,在第3.5节中,我们讨论了如何通过多个PLAD方法对单个p(z|x)进行微调。03.1. Wake-Sleep(X,Z)构建0Wake-sleep使用一个生成模型p(z)来构建(X,Z)。在我们的实现中,我们选择将p(z)建模为变分自动编码器(VAE)[17],其中编码器消耗视觉数据,解码器输出一个程序。为了为p(z)创建数据,我们采用了发现S�的当前最佳程序PBEST,并执行每个程序以形成一组形状X G。然后,p(z)在(X G,PBEST)对中进行训练,这是典型的VAE框架。请注意,p(z)的设计空间非常灵活,例如,如果使用程序编码器实现,可以在没有访问XG的情况下训练p(z)。一旦p(z)收敛,我们就可以通过解码正态分布的随机向量来对|S�|个程序进行采样。这组程序成为Z,而X是通过执行Z中的每个程序形成的。在这组(X,Z)程序中,Z始终是X的正确标签,因此在p(z|x)训练期间的梯度估计将具有低方差和无偏性。然而,X不能保证接近S�,它只是一个近似分布。但请注意,正如P BEST所示0更好地近似S�,分布不匹配应该变得更小。0只要生成模型具有足够的容量来正确建模p(z),它就会变得更小。03.2. Self-Training(X,Z)构建0通过将当前最佳程序集PBEST的标签分配给来自S�的形状实例,自我训练构建了(X,Z)。形式上,X ← S�,Z ← PBEST。这种构建方式保持了X =S�的良好特性,因此这两个集合之间永远不会存在分布不匹配。缺点是,除非PBEST中的程序在执行时完全重新创建与S�中配对的形状,否则我们知道来自PBEST的伪标签是“不正确”的。从这个角度来看,我们可以认为来自这些(X,Z)对的梯度估计是有偏的。然而,正如我们将在实验中展示的那样,当X对S�形成良好的近似时,从这些伪标签中获取梯度估计会导致强大的重构性能。03.3. LEST (X, Z) 构建0形状程序推断的一个独特特性是分布p(x|z)以程序执行器E的形式很容易获得。我们利用这个特性提出了LEST,这是一种变体的自训练方法,它不会在伪标签和其相关的视觉数据之间产生不匹配。98750类似于自训练范式,LEST首先将Z构建为当前最佳程序集PBEST。然后,与自训练不同,LEST将X构建为Z中每个程序的执行版本。通过构建,Z中的标签现在对应于X中的相应形状的正确标签。缺点是,像wake-sleep一样,LEST可能会在X和S�之间引入分布不匹配。但同样地,随着PBEST的更新,这两个分布之间的不匹配性将减小。0越来越好地逼近S�,两个分布之间的不匹配性将减小。03.4. 使用p(z|x)推断程序0在每一轮微调中,PLAD方法依赖于p(z|x)来推断近似于S�的程序。我们提出训练PLAD方法的方法,使得对于S�中的每个训练形状,都保持与之最匹配的推断程序。具体而言,我们构建了一个数据结构PBEST,为S�中的每个训练形状维护一个程序。这样,随着迭代次数的增加,PBEST始终形成对S�的更接近的近似。也有一种替代的构建方式,即每个时期重置PBEST,但我们在补充材料中展示了实验结果,表明这可能导致更差的泛化性能。为了更新每一轮的PBEST,我们采用了一个内循环搜索过程。对于S�中的每个形状,p(z|x)建议高可能性的程序,并且通过执行获得与输入形状最相似的程序来更新PBEST条目;具体的相似度度量因领域而异。虽然有很多方法可以构建这个内循环搜索,但我们选择了波束搜索,因为我们发现它在速度和性能之间提供了良好的平衡。通过实验证明,即使在内循环搜索的时间上有所变化,PLAD方法仍能表现出良好的性能(第4.4节)。03.5. 使用多个PLAD方法训练p(z|x)0如前面的章节所详细介绍的,PLAD方法之间的主要区别在于它们如何构建用于微调p(z|x)的(X,Z)数据集。然而,并没有严格要求这些不同的(X,Z)分布保持分开。我们探索了在从多个PLAD方法进行微调时p(z|x)的行为,例如结合LEST和自训练。我们在每个批次上实现这些混合。在p(z|x)训练之前,我们为组合中的每种方法构建不同的(X,Z)分布。然后,在训练过程中,每个批次从(X,Z)分布中随机抽样。我们在下一节中通过实验证明了这种方法的有效性。04. 结果0我们评估了一系列方法在跨多个领域微调形状程序推断模型的能力。我们在第4.1节中描述了不同的领域,并在第4.2节中详细介绍了我们的实验设计。在第4.3节中,我们比较了每种方法的重建准确性。0并研究它们在内循环搜索时间(第4.4节)和训练集大小(第4.5节)变化时的影响。最后,我们在第4.6节中探索了每种方法的收敛速度。04.1. 形状程序领域0我们在三个形状程序领域进行实验:2D构造性实体几何(CSG),3DCSG和ShapeAssembly。详细信息可以在补充材料中找到。在CSG中,形状是通过声明参数化基元(例如圆形、矩形)并将它们与布尔运算(并集、交集、差集)相结合来创建的。CSG推断是非平凡的:由于CSG使用非加法运算(交集、差集),推断CSG程序不仅仅是简化为基元检测。对于2DCSG,我们遵循CSGNet[24]定义的语法,使用400个形状标记,对应于在64 x64网格上随机放置的圆形、三角形和矩形。对于3DCSG,我们使用一个语法,其中有单独的标记用于定义基元(椭球体和长方体),设置基元属性(位置和尺度)以及三个布尔运算符。属性被离散化为32个区间。ShapeAssembly用于指定制造的3D物体的部分结构。它通过声明长方体部分几何体并通过附着和对称运算符将这些部分组装在一起来创建物体。我们的语法包含每个命令类型和参数值的标记;为了处理连续值,我们将其离散化为32个区间。04.2. 实验设计0微调方法我们比较以下训练方案在特定领域上微调模型的能力:0• SP: 有监督预训练的 p ( z | x ) 。 • RL:使用REINFORCE进行微调。 • WS:使用wake-sleep进行微调。 • ST:使用self-training进行微调。 • LEST:使用潜在执行self-training进行微调。 • LEST+ST:结合LEST和ST。 • LEST+ST+WS:结合LEST、ST和WS。0形状数据集 微调方法学习将 p ( z | x )专门应用于真实形状分布 S �。对于每个领域,我们构建了一个形状数据集 S �,并将其分为训练集、验证集和测试集。我们根据验证集进行早停。对于2DCSG,我们使用CSGNet[24]的CAD数据集,其中包含来自Trimble3D仓库的椅子、桌子和灯的正面和侧面视图。我们将数据集分为10K个形状用于训练,3K个形状用于验证,3K个形状用于测试。对于3DCSG和ShapeAssembly,我们使用ShapeNet的椅子、桌子、沙发和长凳类别的CAD形状;体素化由[6]提供。我们将数据集分为REINFORCE (RL)1.09753.450.8Wake-Sleep (WS)1.11867.457.2Self-Training (ST)0.84167.361.3LEST0.97669.856.5LEST+ST0.82970.866.0LEST+ST+WS0.81174.366.498760方法 2D CSG CD � 3D CSG IoU � ShapeAssembly IoU �0有监督预训练(SP)1.580 41.0 37.60表2. 在多个形状程序推理领域中的测试集重建性能。顶行包含其他方法对预训练的 p ( z | x ) 模型进行微调的结果。对于2DCSG,度量标准是Chamfer距离(CD,数值越小越好)。对于3DCSG和ShapeAssembly,度量标准是交并比(IoU,数值越大越好)。单独的PLAD方法优于RL,而组合PLAD方法在所有领域中实现了最佳性能(LEST+ST+WS)。010K个形状用于训练,1K个形状用于验证,1K个形状用于测试。模型架构对于所有实验,我们在编码器-解码器框架中建模 p ( z | x ),尽管具体的架构因领域而异。在所有情况下,编码器是一个CNN,将视觉数据转换为潜在变量,解码器是一个自回归模型,将潜在变量解码为一系列标记。对于2DCSG,我们使用与CSGNet相同的 p ( z | x )架构。CNN使用64×64的二进制掩码形状图像生成一个潜在代码,该代码初始化了一个基于GRU的循环解码器。对于3DCSG和ShapeAssembly,我们使用一个3DCNN,它使用32×32×32的占据体素。该CNN输出一个潜在代码,Transformer解码器网络[29]对其进行关注;该网络还按照典型的自回归方式关注标记序列。有监督预训练在微调之前,p ( z | x )经历了对合成生成的程序的有监督预训练,直到收敛为止。对于2D CSG,我们遵循CSGNet的方法。对于3DCSG,我们通过(i)在分配的网格内采样一组基元,(ii)识别潜在重叠,(iii)使用这些重叠构建布尔操作的二叉树来构造有效程序。对于ShapeAssembly,我们通过根据语言的类型系统随机采样语法扩展来提出程序。然后,我们进行验证步骤,如果程序的任何部分不是至少占据8个体素的唯一部分,则拒绝该程序(以防止过度部分重叠)。对于3DCSG和ShapeAssembly,我们采样了200万个合成程序,并在包含1000个程序的验证集上训练,直到收敛。详细信息请参见补充材料。04.3. 重建准确性0我们根据重建准确性评估每种微调方法的性能:一个形状程序的输出与推断它的输入形状在一组保留的测试形状上的匹配程度。具体的度量标准因领域而异。对于2DCSG,我们遵循CSGNet的方法0并使用Chamfer距离(CD),其中较低的距离表示形状更相似。对于3DCSG和ShapeAssembly,我们使用体积交集联合(IoU)。对于每个领域,我们运行每种微调方法直到收敛,从经过监督预训练的相同 p ( z | x ) 模型开始。RL模型的奖励遵循每个领域的相似度度量:2DCSG的CD;3DCSG和ShapeAssembly的IoU。对于PLAD微调方法,在每个领域中的相似度度量确定了在更新 P BEST时保留哪个程序。在推理时,评估每个 p ( z | x )的重建性能时,我们采用波束搜索过程,同时解码多个程序,并选择与目标形状最相似的程序。除非另有说明,我们使用波束大小为10。我们在表2中提供定量结果。观察中间四行,两种自我训练变体(ST和LEST)在我们研究的所有领域中都优于RL作为微调方法。对于3DCSG和ShapeAssembly,wake-sleep变体(WS)也优于RL。这些是更具挑战性的领域,具有更大的令牌空间,对策略梯度微调造成困难。正如最后两行所示,通过组合多种方法可以进一步改进:对于每个领域,LEST+ST+WS实现了最佳性能。实际上,对于2DCSG,LEST+ST+WS(0.811)在测试集重建准确性方面优于先前的最先进结果CSGNet(1.14)[24]和CSGNetStack(1.02)[25],对于将执行器视为黑盒的范例。混合多个PLAD方法的更新是有益的,因为在这种联合范式中,每种方法都可以弥补其他方法的不足。例如,使用ST确保从S�中获取X的一些样本,并使用LEST确保X的一些样本具有精确的标签Z程序。我们在图3中提供定性结果。PLAD组合方法的重建更好地反映了输入形状,强化了定量趋势。0.80.91.01.11.21.310004000700010000RLWSSTLESTLEST+STLEST+ST+WS0.70.80.91.01.11.21.35101520WSSTLESTLEST+STLEST+ST+WS0.80.91.01.11.21.31.41.51.604812162024RLWSSTLESTLEST+STLEST+ST+WS98770Chamfer距离0训练形状数量0Chamfer距离0� BEST更新的波束大小0Chamfer距离0训练时间(小时)0图2. 在2D CSG上探索PLAD方法属性的实验。在X轴上绘制了在 P BEST 更新期间使用的波束大小0更新(左),训练形状数量(中),训练时间(右)。每个图的Y轴测量测试集形状的重建准确性。0SP WS RL ST LEST LEST+ST LEST+ST+WS 目标02DCSG03DCSG0SA0图3. 对2D CSG(顶部),3DCSG(中部)和ShapeAssembly(底部)的不同微调方法推断的测试集形状程序进行定性比较。我们在补充材料中提供了额外的定性结果。987804.4. 内循环搜索时间0PLAD方法利用 P BEST 生成(X,Z)数据集来训练 p ( z | x)。为了研究内循环搜索所花费的时间如何影响每种技术,我们进行了一项实验,使用不同的波束大小来更新 P BEST。我们在图2中呈现结果,左侧是X轴,绘制波束大小;右侧是Y轴,绘制测试集重建Chamfer距离。毫不奇怪,花费更多时间在内循环搜索上会带来更好的性能;找到更好的训练形状程序可以改善测试时间的泛化性能。尽管如此,在所有波束大小上,我们发现始终最好的训练方法是在PLAD方法的组合下进行训练;LEST+ST和LEST+ST+WS变体始终优于任何单独的微调方案。请注意,此实验中未包括RL,因为根据定义,REINFORCE没有内循环搜索机制。以这种方式,PLAD提供了一个额外的控制杆,其中内循环搜索所花费的时间调节了收敛速度和测试集重建性能之间的权衡。04.5. 训练形状数量从 S � 中选择0所有微调方法都利用从 S �中采样的形状训练分布。对于某些领域,从 S �中可用样本的大小可能受限。我们在2DCSG上进行了实验,以查看不同微调方法在训练数据大小方面的影响。我们在图2中呈现了这个实验的结果,中间部分。我们将训练形状的数量绘制在X轴上,测试集重构准确性绘制在Y轴上。所有微调方法在 S �的训练大小增加时都有所改善,但再次,将多个PLAD方法结合起来在所有情况下都能获得最佳性能。这项研究还证明了PLAD组合的样本效率:LEST+ST和LEST+ST+WS在1,000个形状上训练的结果比在10,000个形状上训练的RL在测试集上具有更好的泛化性能。04.6. 收敛速度0除了重构准确性之外,我们还对微调方法的收敛性质感兴趣。策略梯度RL在收敛速度上是不稳定且收敛缓慢的,这是不理想的。对于2DCSG,我们记录了每种方法的收敛速度,并在图2的右侧呈现了这些结果。我们将重构准确性(Y轴)作为训练时间(X轴)的函数进行绘制;所有的时间信息都是在一台配备了GeForce RTX 2080 Ti GPU和Intel i9-9900KCPU的机器上收集的。所有的PLAD技术都比策略梯度RL收敛得更快。例如,RL花费36小时才达到其收敛的测试集CD值为1.097,而LEST在1.1小时内达到了相同的性能(快32倍),LEST+ST在0.85小时内达到了相同的性能(快42倍)。05. 结论0我们提出了PLAD框架,用于对形状程序推断模型进行伪标签和近似分布的微调。在这个框架内,我们提出了LEST:一种通过执行推断的潜在程序来创建近似真实分布S �的形状分布X的自训练变体。在2D CSG、3DCSG和ShapeAssembly上的实验表明,PLAD方法在重构准确性和收敛速度上都优于策略梯度RL,这是当前标准的黑盒微调方法。最后,我们发现将多个PLAD方法的更新结合起来的效果优于任何单个技术。在微调 p ( z | x )时,PLAD方法构建了近似于 S � 统计特性的 ( X , Z )集合,将 p ( z | x ) 专门化到 S � 上。因此,p ( z | x ) 可能对S �之外的形状的泛化能力不如预期;我们在补充材料中探讨了这种现象。训练一个适用于语法下可表达的所有形状的通用推断模型是未来工作的一个有趣方向。虽然我们的工作侧重于重构质量,但对于编辑任务来说,生成具有“良好”结构的程序同样重要。目前,合成预训练数据是唯一可以注入关于“良好程序结构”知识的地方。这种知识必须以过程形式表达,这可能比声明性知识(即“良好程序具有这些属性”与“这是如何编写良好程序的”)更难从领域专家那里引出。寻找有效的方法来引出和注入这种知识是一个重要的未来方向。最后,我们相信PLAD框架的思想适用于比我们在本文中评估的更广泛的程序推断问题类别。原则上,这些方法可以用于训练适用于任何领域的近似推断模型 p ( z | x ),条件是(1)存在一个执行器 p ( x | z )和(2)执行的输出 x采用某种具体的工件形式,可以通过神经网络(图像、音频、文本等)进行编码。例如,可以想象使用PLAD技术来推断生成某些纹理的图形着色器程序或声音合成器,使其听起来像某些真实世界的乐器。0致谢0我们要感谢匿名审稿人的建议。这项工作部分资助来自NSF奖励号码#1941808和布朗大学总统奖学金。DanielRitchie是Geopipe的顾问,并拥有该公司的股权。Geopipe是一家正在开发3D技术的初创公司,用于构建沉浸式虚拟世界的真实副本,应用于游戏和建筑等各个领域98790参考文献0[1] Rudy Bunel, Matthew Hausknecht, Jacob Devlin, RishabhSingh, and Pushmeet Kohli.利用语法和强化学习进行神经程序合成. ICLR , 2018. 20[2] Angel X. Chang, Thomas Funkhouser, Leonidas Guibas,Pat Hanrahan, Qixing Huang, Zimo Li, Silvio Savarese,Manolis Savva, Shuran Song, Hao Su, Jianxiong Xiao, Li Yi,and Fisher Yu. ShapeNet: 一个信息丰富的3D模型库.arXiv:1512.03012 , 2015. 10[3] Eugene Charniak.带有上下文无关语法和词汇统计的统计句法分析.在第十四届全国人工智能大会和第九届人工智能创新应用大会上的论文集, AAAI’97/IAAI’97, 页码598–603. AAAI Press, 1997.30[4] Siddhartha Chaudhuri, Daniel Ritchie, Jiajun Wu, Kai Xu,and Hao Zhang. 学习生成3D结构的生成模型. 计算机图形学论坛,2020. 20[5] Xinyun Chen, Chang Liu, and Dawn Song.执行引导的神经程序合成. 在国际学习表示会议上, 2019. 20[6] Zhiqin Chen, Kangxue Yin, Matthew Fisher, SiddharthaChaudhuri, and Hao Zhang. Bae-net:分支自编码器用于形状共分割. 在国际计算机视觉会议(ICCV)上,2019. 50[7] Jacob Devlin, Jonathan Uesato, Surya Bhupatiraju,Rishabh Singh, Abdel-rahman Mohamed, and PushmeetKohli. Ro- bustfill: 噪声输入输出下的神经程序学习.在第34届国际机器学习大会论文集中, ICML’17, 页码990–998.JMLR.org, 2017. 20[8] Kevin Ellis, Maxwell Nye, Yewen Pu, Felix Sosa, JoshTenen- baum, and Armando Solar-Lezama. 写作、执行、评估:使用REPL的程序合成. 在神经信息处理系统(NeurIPS)进展中,2019. 1 , 20[9] Kevin Ellis, Daniel Ritchie, Armando Solar-Lezama, andJosh Tenenbaum. 从手绘图像中学习推断图形程序.在神经信息处理系统(NeurIPS)进展中, 2018. 20[10] Kevin Ellis, Catherine Wong, Maxwell Nye, Mathias Sable-Meyer, Luc Cary, Lucas Morales, Luke Hewitt, ArmandoSolar-Lezama, and Joshua B. Tenenbaum. Dreamcoder:使用唤醒-休眠贝叶斯程序学习生成通用、可解释的知识, 2020. 30[11] Junxian He, Jiatao Gu, Jiajun Shen, and Marc’AurelioRan- zato. 重新审视用于神经序列生成的自我训练.在国际学习表示会议上, 2020. 30[12] Luke B. Hewitt, Tuan Anh Le, and Joshua B. Tenenbaum.学习使用记忆化唤醒-休眠生成程序, 2020. 30[13] Geoffrey E Hinton, Peter Dayan, Brendan J Frey, and Rad-ford M Neal. 用于无监督神经网络的“唤醒-休眠”算法. 科学 ,268(5214):1158–1161, 1995. 30[14] R. Kenny Jones, Theresa Barton, Xianghao Xu, Kai Wang,Ellen Jiang, Paul Guerrero, Niloy J. Mitra, and Daniel Ritchie.Shapeassembly: 学习生成3D形状程序0结构合成. ACM图形学交易(SIGGRAPH Asia 2020),39(6):Article 234, 2020. 20[15] J
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 电容式触摸按键设计参考
- 西门子MES-系统规划建议书(共83页).docx
- 6、毕设参考资料 for.pdf
- hive基础查询文档上传
- RouterOS PPPOE 多拨负载均衡PCC.pdf
- 微机系统实验一学习笔记(个人监督)
- 基于SpringBoot的企业客户管理系统源码数据库.docx
- 基于springboot的IT技术交流和分享平台源码数据库.docx
- 基于springboot的图书馆管理系统源码数据库.docx
- 基于SpringBoot的在线拍卖系统源码数据库.docx
- 基于springboot的网上点餐系统源码数据库.docx
- 基于SpringBoot的网上订餐系统源码数据库.docx
- 基于SpringBoot的在线视频教育平台源码数据库.docx
- 基于springboot的中小型医院网站源码数据库.docx
- 基于springboot的中药实验管理系统源码数据库.doc
- 基于springboot的校园周边美食探索及分享平台源码数据库.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功