微软亚洲研究院27篇论文入选AAAI 2019

栏目: 数据库 · 发布时间: 5年前

编者按:人工智能领域的国际顶级会议AAAI 2019将于1月27日至2月1日在美国夏威夷举行。根据已经公布的论文录取结果,今年的大会录取率创历史新低,投稿数量高达7745篇,录取的数量仅有16%左右。但在被录取的论文中,来自微软亚洲研究院的却有27篇之多,包括了机器学习、自然语言处理(NLP)、计算机视觉和图形学等多个领域。本文将详细介绍这三个领域中来自微软亚洲研究院的那些硬核论文。

机器学习

非自回归机器翻译模型的两种优化新方式

2018年,非自回归(Non-Autoregressive)机器翻译模型引起了众多研究人员的兴趣。非自回归模型打破了翻译过程顺序性,将原来自回归机器翻译的逐词顺序生成转变为一次性产生所有目标端单词,极大地提升了机器翻译速度。然而,随着顺序依赖关系的打破,非自回归模型的翻译准确率却远远不及自回归机器翻译模型;同时,漏翻译和重复翻译也将翻译质量大打折扣。微软亚洲研究院分别通过以下两篇论文提出了针对上述两个问题的解决方法。

代表论文:Non-Autoregressive Neural Machine Translation with Enhanced Decoder Input

论文链接:https://arxiv.org/abs/1812.09664

在该论文中,研究员提出了两种方法来提升解码器的输入质量,减少翻译精度的损失。如下图所示:第一种方法(Phrase-Table Lookup)直接利用词表将源语言查表翻译成目标语言并输入到解码器,第二种方法(Embedding Mapping)通过词级别的对抗学习以及句子级别的对齐信息,将源语言的词向量对齐到目标语言的词向量,作为解码器的输入。

微软亚洲研究院27篇论文入选AAAI 2019

通过在WMT14 En-De/De-En、WMT16 En-Ro、IWSLT14 De-En一共4个翻译语言上的实验,相比基线模型(NART),这种方法达到了3~5个BLEU 分的提升,相比先前最好的工作(IR-NAT)有1~5个BLEU分的提升。

该模型翻译精度更加接近AT模型,在WMT16 En-Ro数据集上,相比AT模型(Transformer)仅有1个BLEU分的差距。在翻译速度方面,相比AT模型(Transformer)最高有25倍的翻译速度提升;相比NAT模型(LT、NART、IR-NAT)也有速度上的提升。

同时这两种方法各有优势,Phrase-Table Lookup在数据质量比较好的WMT14 De-En以及IWSLT De-En数据集上优势明显,因为能基于训练集得到高质量的词典,而在WMT14 En-De以及WMT16 En-Ro上,得到的词典质量较差,因此Embedding Mapping更能显现出优势。

微软亚洲研究院27篇论文入选AAAI 2019

代表论文:Non-Autoregressive Machine Translation with Auxiliary Regularization

论文链接:https://taoqin.github.io/papers/nat.reg.AAAI2019.pdf

对于非自回归模型的重复翻译和漏翻译的问题,该论文提出了基于辅助约束(Auxiliary Regularization)的非自回归翻译模型,如下图。

微软亚洲研究院27篇论文入选AAAI 2019

重复翻译的产生代表解码器端相邻位置的隐层表示(Hidden Representation)有着极大的相似性,从而解码产生同样的翻译单词。为此,研究员提出了相似性约束(Similarity Regularization)来限制两个相邻位置的隐层表示向量之间的关系:

微软亚洲研究院27篇论文入选AAAI 2019

其中s_cos代表两个向量之间的余弦距离。H_t代表解码器第t个位置的隐层状态向量,y_t代表第t个位置的目标单词的单词嵌入(embedding)向量。L_sim的意义在于,如果相邻两个位置(t和t+1)的目标单词语义接近(s_cos⁡很大 ),那么h_t和h_(t+1)也应该很接近,反之亦然。

对于漏翻译,可以重建约束(Reconstruction Regularization),在非自回归模型的顶部添加一个反方向的自回归翻译模型,进而要求解码器的隐层向量在该反方向的模型中重建源端句子。通过这一约束,强制要求非自回归模型的翻译含有所有信息以克服漏翻译的问题。

微软亚洲研究院27篇论文入选AAAI 2019

通过在多个数据集上与各个基线算法进行了性能的对比,包括对于翻译质量和翻译速度的衡量。NAT-REG算法不仅具有良好的性能,在翻译速度(上图最后两列)也有了显著的提升。通过这两项约束项,非自回归机器翻译模型的重复翻译和漏翻译的现象得到了极大的缓解。

深度神经网络模型的泛化及对泛化误差的刻画

在机器学习领域,理解深度神经网络模型的泛化性质以及刻画其泛化误差是一个热点,论文“Capacity Control of ReLU Neural Networks by Basis-path Norm”论述了这一理论研究。

代表论文:Capacity Control of ReLU Neural Networks by Basis-path Norm

论文链接:https://arxiv.org/abs/1809.07122

ReLU神经网络具有正伸缩不变性,即一个隐节点的所有入边乘以一个正常数c, 同时所有出边除以一个正常数c, ReLU神经网络的输出值不变。因此,一个恰当的与神经网络泛化性质有关的度量,应该也具有正伸缩不变性。基于ReLU神经网络的路径的度量也满足该性质。

对于神经网络的路径(path),将ReLU神经网络看做一个有向无环图,一条路径p即为输入节点至输出节点的一条通路,路径的值v(p) 被定义为其所经过的参数的乘积。那么ReLU神经网络的第k维输出可以表示为:

微软亚洲研究院27篇论文入选AAAI 2019

其中P_(i→k)表示连接第i个输入节以及第k个输出节点的所有路径的集合;a(p;x)取值为1或0,分别代表该路径的值在经过多层激活函数作用后是否流入输出。

微软亚洲研究院27篇论文入选AAAI 2019

路径p_(i,j)的值等于w_(1,i)⋅w_(2,j), 那么路径之间相互关联,例如v(p_(2,2) )=(v(p_(1,2) )⋅v(p_(2,1) ))/v(p_(1,1) ) 。

Path-norm被定义为所有路径值的L2-范数,其被证明与ReLU神经网络的泛化能力紧密相关。然而,神经网络所有路径值是相关联的(如上图),这会使得当Path-norm作为约束加入优化算法中时,无法求解出闭式的更新法则。有工作通过研究路径值之间的关系,在所有路径值中找到了一组互不相关的路径,称为基路径,并且其余路径均可通过基路径的值进行计算。

这一论文提出了一个基于基路径的度量。首先,基路径可以分为两类,一类的值在表达非基路径时出现在分子,第二类的值在表达非基路径时出现在分母。于是,出现在分母的基路径值不能过大或过小。因此,限制前者的值靠近0,后者的值靠近1,受此启发,研究员提出了一个仅基于基路径的度量:BP-norm。

定义1: (BP-norm) 对于任意的路径值向量

微软亚洲研究院27篇论文入选AAAI 2019

BP-norm定义如下:

微软亚洲研究院27篇论文入选AAAI 2019

其中

微软亚洲研究院27篇论文入选AAAI 2019

根据BP-norm, 可得如下泛化误差的上界。

定理 1: 至少以概率 1-δ, 泛化误差 (测试误差 – 训练误差) of hypothesis space F can be upper bounded as

微软亚洲研究院27篇论文入选AAAI 2019

其中 Φ(u;d,H,L)=(e^2u+d⋅u^2 ) (1+H⋅u^2⋅e^2u )^(L-2) (4H)^L, d表示输入维度, H表示网络的宽度, L表示网络的深度。

将BP-norm作为正则项加入损失函数,并用SGD和G-SGD来优化BP正则损失函数。下表展示了算法在图像分类任务上的训练误差、测试误差和泛化误差,其中Δ反映了泛化误差的大小。结果表明BP正则算法可以有效地降低模型复杂度,从而取得更小的泛化误差。

微软亚洲研究院27篇论文入选AAAI 2019

自然语言处理

AI也可以自动发弹幕了

弹幕,已经成为人们看视频的一种习惯;不同用户之间的弹幕往往会形成上下文回复关系,更让弹幕成为一种新的社交模式。基于这一现象,微软亚洲研究院设计了一款名为LiveBot的自动弹幕生成系统。在这一系统中需要克服两个难点:一是要充分理解视频内容,根据其他用户的评论弹幕生成适当的内容;二是要在合适的时间点显示在对应的视频帧之上。

代表论文:LiveBot: Generating Live Video Comments Based on Visual and Textual Contexts

论文链接:http://export.arxiv.org/pdf/1809.04938

该论文论述了两种深度神经网络模型,基于视频和文本的上下文信息来生成弹幕,并构建了一个包含2,361个视频和895,929条弹幕的大规模训练数据集来验证模型的有效性。

微软亚洲研究院27篇论文入选AAAI 2019

实验结果表明,LiveBot能够准确地学习到真实用户在观看视频时进行弹幕评论的行为特点,有效地进行了视频内容的理解和用户评论的交互,同时在客观评价指标上也取得优异的成绩。

无监督机器翻译的最新性能提升

最近一年,无监督机器翻译逐渐成为机器翻译界的一个研究热点。在无监督场景下,神经机器翻译模型主要通过联合训练(joint training)或交替回译(iterative back-translation)进行逐步迭代。但是由于缺乏有效的监督信号,回译得到的伪训练数据中会包含大量的噪音,这些噪音在迭代的过程中,会被神经机器翻译模型强大的模式匹配能力放大,从而损害模型最终的翻译性能。

代表论文:Unsupervised Neural Machine Translation with SMT as Posterior Regularization

论文链接:http://export.arxiv.org/pdf/1901.04112

该论文采用了后验正则(Posterior Regularization)的方式将SMT(统计机器翻译)引入到无监督NMT的训练过程中,并通过EM过程交替优化SMT和NMT模型,使得无监督NMT迭代过程中的噪音能够被有效去除,同时NMT模型也弥补了SMT模型在句子流畅性方面的不足。

微软亚洲研究院27篇论文入选AAAI 2019

该方法的整体结构大致分为两部分,如上图所示。左边是模型初始化,通过单语数据训练出两种语言(如英语和法语)的词向量(word embedding),之后通过无监督的训练方法得到cross-lingual embedding,并通过计算其余弦相似度得到初始的词到词的翻译概率表(word translation table)。这个翻译概率表连同由单语训练得到的语言模型(language model)作为初始的SMT模型的特性,从而完成了模型初始化。

上图右边是方法的主体部分,初始的SMT模型翻译一批单语数据,构成的伪数据作为初始NMT模型的训练数据。在训练得到初始的NMT模型后,将继续进行交替回译(右下,iterative back-translation NMT),并用收敛的NMT模型翻译出一批新的伪数据。此时产生的伪数据含有大量的噪音,可以通过这批伪数据训练新的SMT模型(右上,SMT as PR)。SMT模型通过构造质量更高的基于片段的翻译概率表(phrase translation table),将伪数据中的噪音过滤掉,并通过翻译新的一批单语数据,得到互译性更好的一批伪数据。这一批伪数据便可以用于调整(fine-tune)之前的NMT模型,之后NMT模型再次进行交替回译。我们将训练NMT和SMT的过程集成在一个EM训练框架中,两个过程进行交互迭代直到最终收敛。

在英法(en-fr)和英德(en-de)语言对上进行的实验中,这一方法明显优于以前的方法,显著提高了无监督机器翻译的性能。

微软亚洲研究院27篇论文入选AAAI 2019

新型TTS:结合了Tacotron2和Transformer的优点

人机交互中有项重要的任务,即文本合成语音(Text to speech,TTS),以达到合成清晰自然且接近真人录音的音频。

在过去的几十年里,基于拼接的模型(concatenative model)和基于参数的模型(parametric model)是TTS领域的两大主流;然而,两者都有着非常复杂的流水线,而且挑选有效的声学特征通常是非常耗时且与语言密切相关的。除此之外,这两种方法合成的音频不流畅,而且在韵律和发音上与真人录音都有较大的差距。

随着神经网络的兴起,一些端到端(end to end)的TTS模型逐渐出现,如Tacotron和Tacotron2,使得合成的音频质量有了非常大的进步,甚至在某些特定的数据集上与真人录音不相上下。这种端到端的TTS模型主要有两部分:编码器和解码器。编码器负责将文本映射到语义空间(semantic space)中,生成一个隐状态序列;接着由解码器(通常是一个基于RNN的神经网络)配合注意力机制(attention mechanism)将这个隐状态序列解码成频谱。

然而,在RNN中,每一个隐状态的生成都要基于之前所有的隐状态以及当前时刻的输入;因此模型只能串行地进行计算,限制了网络的并行计算能力,从而降低了运算效率。并且RNN难以对距离较远的两个输入建立直接的依赖关系。而最近流行的自关注网络(Transformer)在训练中可以实现并行计算,而且有能力在输入序列的任意两个token之间建立起直接的依赖。

代表论文:Neural Speech Synthesis with Transformer Network

论文链接:https://arxiv.org/abs/1809.08895

该论文中结合了Tacotron2和Transformer的优点,提出了新的TTS模型:通过使用多头注意力(multi-head attention)机制代替了原本Tacotron2中的RNN以及编码器和解码器之间的attention。这样,一方面通过自注意力(self attention) 机制,网络可以并行计算,从而使训练效率达到了原来的4倍;同时,任意两个输入之间可以建立起直接的长距离依赖。另一方面,多头的注意力机制可以从多个角度对输入信息进行整合。

微软亚洲研究院27篇论文入选AAAI 2019

如上图,在Tacotron2的基础上,使用Transformer的encoder和decoder分别代替原有的双向RNN编码器和双层RNN解码器;另一方面原始的注意力机制被多头注意力机制取代从而能更好地对输入信息进行特征提取;除此之外我们还对其它的网络结构,如positional encoding进行了调整。在该模型中,由于有自注意力机制的存在,可以更好地建立长距离依赖,从而能对包括韵律在内的音频特征进行更好的建模。

微软亚洲研究院27篇论文入选AAAI 2019

在MOS测试(满分5分)中, Tacotron2和Transformer TTS model均能够得到很接近真实的人声录音(即ground truth)的得分。在CMOS测试中(成对比较,得分[-3,3]分),我们的方法相比Tacotron2能够得到显著的性能提升。

另一方面,对比Transformer TTS model和Tacotron2合成的mel谱,可以发现,在低频部分二者相近,都表现出了很强的能力;在高频部分,Transformer TTS model能更好地还原频谱的纹理,从而使合成的音频有更高的质量。

微软亚洲研究院27篇论文入选AAAI 2019

基于改写的复述生成模型更高效

代表论文:Dictionary-Guided Editing Networks for Paraphrase Generation

论文链接:https://arxiv.org/pdf/1806.08077.pdf

在自然语言处理中,句子复述应用很广泛,例如被应用在信息检索、自动文摘、句子翻译等任务。句子复述(Paraphrase)是指换一种方式表达原句,同时要与原句意思相同。人在完成句子复述的时候,往往会使用同义词替换句子中的一些词语,然后对替换后的句子进行简单的修改。

以此为出发点,该论文提出了基于改写网络的复述生成模型。复述生成模型首先使用原句进行检索,得到一组词语级别的复述对;然后将检索得到的复述对进行编码,得到一组固定长度的向量;最后基于改写网络完成句子的复述。

微软亚洲研究院27篇论文入选AAAI 2019

上图所示,复述生成模型建立在序列到序列模型(Seq2Seq)的框架下,进行解码的过程中,采用了注意力机制(attention mechanism),对检索得到的复述对进行权重组合,将加权之后的结果用于解码器。如模型在解码到overcome的时候,会更加侧重于使用(overcome,get rid of)这样的复述对。通过注意力机制让模型自己学习如何进行改写,在哪些地方需要进行替换和调整。

微软亚洲研究院27篇论文入选AAAI 2019

通过在MSCOCO和Quora两个公开数据集上实验,如上图所示,基于改写网络的复述生成模型在MSCOCO数据集上取得了最好的实验结果,在Quora数据集上,在贪婪搜索的条件下取得了最好的结果。

微软亚洲研究院27篇论文入选AAAI 2019

另外,通过分析实验结果显示,如上图,在生成的复述中,机器会基于检索得到的复述对进行改写和替换,采用这种方式既保证了复述结果与原句的区别,同时又不会改变原意。

计算机视觉

MonoGRNet:单张图像估测物体三维位置

在图像中,传统的物体定位或检测估计二维边界框,可以框住属于图像平面上物体的可见部分。但是,这种检测结果无法在真实的3D世界中提供场景理解的几何感知,这对很多应用的意义并不大。

代表论文:MonoGRNet:A Geometric Reasoning Network for Monocular 3D Object Localization

论文链接:https://arxiv.org/abs/1811.10247

该论文提出了使用MonoGRNet,从单目RGB图像中通过几何推断,在已观察到的二维投影平面和在未观察到的深度维度中定位物体非模态三维边界框(Amodal Bounding Box, ABBox-3D),即实现了由二维视频确定物体的三维位置。

MonoGRNet的主要思想是将3D定位问题解耦为几个渐进式子任务,这些子任务可以使用单目RGB数据来解决。网络从感知2D图像平面中的语义开始,然后在3D空间中执行几何推理。这里需要克服一个具有挑战性的问题是,在不计算像素级深度图的情况下准确估计实例3D中心的深度。该论文提出了一种新的个体级深度估计(Instance Depth Estimation, IDE)模块,该模块探索深度特征映射的大型感知域以捕获粗略的实例深度,然后联合更高分辨率的早期特征以优化IDE。

为了同时检索水平和垂直位置,首先要预测3D中心的2D投影。结合IDE,然后将投影中心拉伸到真实3D空间以获得最终的3D对象位置。所有组件都集成到端到端网络MonoGRNet中,其中有三个3D推理分支,如下图。最后通过联合的几何损失函数进行优化,最大限度地减少3D边界在整体背景下的边界框的差异。

微软亚洲研究院27篇论文入选AAAI 2019

MonoGRNet由四个子网络组成,用于2D检测(棕色),个体深度估计(绿色),3D位置估计(蓝色)和局部角落回归(黄色)。在检测到的2D边界框的引导下,网络首先估计3D框中心的深度和2D投影以获得全局3D位置,然后在本地环境中回归各个角坐标。最终的3D边界框基于估计的3D位置和局部角落在全局环境中以端到端的方式进行优化。

根据对具有挑战性的KITTI数据集的实验表明,该网络在3D物体定位方面优于最先进的单眼方法,且推理时间最短。

微软亚洲研究院27篇论文入选AAAI 2019

3D检测性能,KITTI验证集上的3D边界框的平均精度和 每张图像的推理时间。注意不比较基于Stereo的方法3DOP,列出以供参考。

MVPNet:单张图像重建物体三维模型

在相同的图像中,由于形状、纹理,照明和相机配置的不同,若想从单幅RGB图像重建三维物体,这是一个强不适定的问题。但深度学习模型让我们重新定义这个任务,即从一个特定的分布生成实际样本。深度卷积神经网络得益于规则的表达形式、数据采样密度高、权重共享等等。

三角网格(triangular mesh)是表面(surface)的主要表示形式,但它的不规则结构不易编码和解码;大多数现存的深网使用三维体素网格(3D volumetric grid),但是稠密采样计算复杂性高;最近的一些方法提倡无序点云表示,但无序属性需要额外的计算才能为点对点建立一一对应的映射,这各高代价的映射算法,通常会使用较少的点来表示,从而产生稀疏的表面。

代表论文:MVPNet: Multi-View Point Regression Networks for 3D Object Reconstruction from A Single Image

论文链接:https://arxiv.org/abs/1811.09410

为了描绘稠密的表面,该论文引入了一种有效的基于多视图(multi-view)的表现形式,通过用多个视点可见的稠密点云并集来表示表面,分配视点时覆盖尽量多的表面。

微软亚洲研究院27篇论文入选AAAI 2019

(a)MVPC表示。1-VPC中的每个像素都存储来自该像素的反投影表面点(x,y,z)及其可见性v 。存储的三维点根据图像平面上的二维网格进行三角化,此图显示网格三角形的法线以指示表面的方向。(b)给定RGB图像,MVPNet生成一组1-VPC,它们的联合形成了预测的MVPC。几何损失函数用来测量预测和真实的MVPC。

上图描绘了多视图点云(MVPC)。每个点云存储在嵌入视图像平面中的二维网格中。单视点云(1-VPC)看起来像深度图,但每个像素存储三维坐标和可见性信息,而不是来自该像素的反投影表面点的深度。反投影变换提供了1-VPC中具有相等摄像机参数的点集的一对一映射。同时,该论文从二维网格引入三维点的局部连通性,促使基于这些反投影点形成三角形网格表面。至此,表面重建问题被转化为回归存储在MVPC中的三维坐标和可见性信息。

通过使用编码器-解码器网络作为条件采样器来生成MVPC,上图(b)所示。编码器提取图像特征并分别将它们与不同的视点特征组合。解码器由多个权重共享分支组成,每个分支生成一个视图相关的点云。所有1-VPC的联合构成了最终的MVPC,如下图。

微软亚洲研究院27篇论文入选AAAI 2019

给定输入图像I,由编码器和解码器组成的MVPNet对N个视点c _i的1-VPC进行回归。 N个特征(z,c_i)被馈送到解码器的N个分支中,其中分支共享权重。

这里提出了一种新颖的几何损失函数,如下图,来衡量真实三维表面与二维平面相比的差异。与先前基于视图的方法不同,他们间接计算二维投影空间(即图像平面)中的特征而且忽略了由于从三维到二维的降维而导致的信息损失,这里MVPC允许我们在构造的三角形网格上作离散表面变化的积分,即直接计算了三维表面。几何损失函数整合了三维体积变化,预测置信度和多视图一致性,大大提高了三维重建的精确度。

微软亚洲研究院27篇论文入选AAAI 2019

损失函数(a)1-VPC的逐点距离(b)准量三维体积差异(c)多视图一致性

下图展示了在公共数据集ShapeNet和真实图像的结果,可见这个方法可以生成稠密的三维表面。另外,使用两个学到的特征作线性差值后再用解码器生成的三维重建模型,MVPNet学到的特征空间具有较好的表达性和连续性。

微软亚洲研究院27篇论文入选AAAI 2019

ShapeNet数据集结果比较

微软亚洲研究院27篇论文入选AAAI 2019

真实图像三维重建结果

微软亚洲研究院27篇论文入选AAAI 2019

学习到的特征线性插值生成的三维重建结果

微软亚洲研究院全部被接受论文列表如下:

  • Balanced Sparsity for Efficient DNN Inference on GPU
  • Capacity Control of ReLU Neural Networks by Basis-path Norm
  • Deep Single-View 3D Object Reconstruction with Visual Hull Embedding
  • Detect or Track: Towards Cost-Effective Video Object Detection/Tracking
  • Dictionary-Guided Editing Networks for Paraphrase Generation
  • DRr-Net: Dynamic Re-read Network for Sentence Semantic Matching
  • Explainable Recommendation Through Attentive Multi-View Learning
  • FANDA: A Novel Approach to Perform Follow-up Query Analysis
  • GRN: Gated Relation Network to Enhance Convolutional Neural Network for Named
    Entity Recognition
  • Learning Basis Representation to Refine 3D Human Pose Estimations
  • Leveraging Web Semantic Knowledge in Word Representation Learning
  • LiveBot: Generating Live Video Comments Based on Visual and Textual Contexts
  • Modeling Local Dependence in Natural Language with Multi-Channel Recurrent Neural Networks
  • MonoGRNet:A Geometric Reasoning Network for Monocular 3D Object Localization
  • MVPNet: Multi-View Point Regression Networks for 3D Object Reconstruction from A Single Image
  • Neural Speech Synthesis with Transformer Network
  • Non-Autoregressive Machine Translation with Auxiliary Regularization
  • Non-Autoregressive Neural Machine Translation with Enhanced Decoder Input
  • Read + Verify: Machine Reading Comprehension with Unanswerable Questions
  • Regularizing Neural Machine Translation byTarget-bidirectional Agreement
  • Response Generation by Context-aware Prototype Editing
  • Sentence-wise Smooth Regularization for Sequence to Sequence Learning
  • Session-based Recommendation with Graph Neural Network
  • TableSense: Mask R-CNN for Spreadsheet Table Detection
  • Tied Transformers: Neural Machine Translation with Shared Encoder and Decoder
  • Trust Region Evolution Strategies
  • Unsupervised Neural Machine Translation with SMT asPosterior Regularization

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Android 源码设计模式解析与实战

Android 源码设计模式解析与实战

何红辉、关爱民 / 人民邮电出版社 / 2015-11 / 79.00元

本书专门介绍Android源代码的设计模式,共26章,主要讲解面向对象的六大原则、主流的设计模式以及MVC和MVP模式。主要内容为:优化代码的首步、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特原则、单例模式、Builder模式、原型模式、工厂方法模式、抽象工厂模式、策略模式、状态模式、责任链模式、解释器模式、命令模式、观察者模式、备忘录模式、迭代器模式、模板方法模式、访问者模式、中介......一起来看看 《Android 源码设计模式解析与实战》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具