大数据文摘出品
作者:李雷、张弛、蒋宝尚
转眼间2019年已经过去了快一半,这对于日新月异的深度学习技术已经算是很长一段发展时间。Open Data Science在Medium上整理了2019年到现在为止深度学习技术发布的精华成果,选择的论文都是在GitHub平台上有相关代码的论文。文摘菌为大家做了编译工作,希望大家紧跟时代的步伐~
用PyTorch Geometric实现快速图表示学习
这篇论文介绍了PyTorch Geometric,这是一个基于PyTorch(深度学习框架)的非结构化数据(如图形,点云和流形)深度学习库。除了通用图形数据结构和处理方法之外,它还包含关系学习和三维数据处理领域的各种最新方法。PyTorch Geometric通过利用稀疏GPU加速,提供专用CUDA内核以及为不同大小的输入样本引入高效小批量处理,从而实现了高数据吞吐量。
GitHub链接:
https://github.com/rusty1s/pytorch_geometric
蒙版得分R-CNN(Mask Scoring R-CNN)
在大多数计算机视觉的实例分割任务中,通常将实例分类的置信度作为实例分割框架的蒙版(mask)质量分数,这可能会出现偏差。这篇论文研究了这一问题,并提出了蒙版得分R-CNN(Mask Scoring R-CNN ),即用一个模块来学习预测实例蒙版的质量。蒙版评分策略校准了蒙版质量和分类评分之间的差异,并在对COCO数据集的平均准确度(AP)评估中优先考虑更为准确的蒙版预测来改善实例分割效果。
GitHub链接:
https://github.com/zjhuang22/maskscoring_rcnn
深度生成模型是现代机器学习的基础。近期关于条件生成对抗网络(GAN)的研究表明,自然图像的复杂高维分布是可以学习的。虽然最新的模型能够生成高分辨率、高保真、多样化的自然图像,但它们往往依赖于大量标记数据。本论文展示了如何利用目前关于自主和半监督学习的研究,在无监督及条件设定下实现最高水平的ImageNet图像合成。
GitHub链接:
https://github.com/google/compare_gan
这篇论文介绍了GCNv2,一个用于生成关键点和描述符的深度学习网络。GCNv2建立在图卷积神经网络GCN之上,GCN是用于训练三维投影几何的网络。GCNv2使用二进制描述符向量作为ORB(Oriented FAST and Rotated BRIEF)特征,因此它可以轻松替换ORB-SLAM(一种基于ORB特征的三维即时定位与地图构建算法)等系统中的ORB。
GitHub链接:
https://github.com/jiexiong2016/GCNv2_SLAM
监督式的机器学习方法通常需要大量标记样本用于模型训练。但是,在许多实际应用中存在大量未标记的数据,已标记数据其实并不多,并且数据打标的成本很高。主动学习(AL)通过迭代地选择最有价值的数据样本并从标注器查询其标签,从而降低标注成本。这篇论文介绍了用于主动学习的Python 工具库 ALiPy。
GitHub链接:
https://github.com/NUAA-AL/ALiPy
DeepFashion2:用于服装图像的检测,姿势判断,实例分割和重新识别的多功能基准数据集
基准数据集DeepFashion提升了人们对服装时尚的理解,它具有丰富的标签,包括服装类别,标记和卖家秀-买家秀图像。然而,DeepFashion也有不可忽视的问题,例如每副图像只有单个服装类别,标记稀疏(仅4~8个),并且没有像素蒙版,这些都与现实场景有着显著差距。本论文介绍的DeepFashion2解决了上述问题。它是一个多功能数据集,包含四个功能,服装检测,姿势判断,实例分割和识别。
GitHub链接:
https://github.com/switchablenorms/DeepFashion2
在过去几年中,深层多智能体强化学习(RL)一直是一个非常活跃的研究领域。这一领域中有非常具有挑战性的问题,就是局部观察、局部合作,和多智能体学习,在这种学习中各智能体必须学会基于自己的观察来与他人协调合作。这一研究领域非常吸引人,因为其中拥有大量现实世界相关的场景,并且这些问题比一般汇总问题更适合算法评估。诸如ALE(街机游戏模式学习环境)和MuJoCo(物理模拟引擎)之类的标准化环境使单智能体强化学习突破了小型领域,如网格世界。但是,合作式多智能体强化学习却缺乏相应的基准环境。因此,该领域的大多数论文都针对一次性小型问题,难以衡量实际效用。这篇论文提出的星际争霸多智能体挑战赛(SMAC)可以作为填补这一空白的基准问题。
GitHub链接:
https://github.com/oxwhirl/smac
Dropout - 随机δ规则特例:更快,更准确的深度学习
多层神经网络在文本、语音和图像处理等多种基准任务中表现出色。在分层模型中,非线性参数估计受到过拟合和误差的影响。这些估计及相关问题(局部最小值,共线性,特征发现等)的其中一种解决方法就是Dropout。Dropout算法在每次更新之前会根据具有先验概率p的Bernoulli随机变量暂时丢弃某些隐藏单元,从而对平均更新的网络产生随机“冲击”。本论文表明Dropout是一个称为随机δ规则(SDR)的更为通用模型的特例,这个模型最早于1990年发布。
GitHub链接:
https://github.com/noahfl/sdr-densenet-pytorch
Lingvo:用于序列到序列建模的模块化可扩展框架
Lingvo是一个Tensorflow框架,为协作深度学习研究提供完整的解决方案,侧重于序列到序列模型。Lingvo模型由模块化构件组成,灵活,易扩展,实验配置集中且高度可定制。它内置支持分布式训练和量化推理,附带大量关于实际应用,辅助函数和最新研究理念的实现代码。在过去两年中,Lingvo已被数十名研究人员使用,相关论文有20多篇。这篇论文概述了Lingvo的底层设计,并介绍了框架各个部分,同时还提供了高级功能示例,以展示框架能力。
GitHub链接:
https://github.com/tensorflow/lingvo
自适应优化算法,如AdaGrad,RMSProp和Adam可以用来实现快速训练过程,且具有学习率的元素缩放项。尽管很流行,但与随机梯度下降算法SGD相比,它们的泛化能力较差,甚至会由于不稳定或极端的学习率而未能收敛。这篇论文证明极端学习率会导致算法表现不佳,并给出了Adam和AMSGrad算法的新变体,分别称为AdaBound和AMSBound,引入学习率的动态边界,实现从自适应方法到SGD的逐步平滑过渡,并给出收敛的理论证明。作者对各种流行任务和模型做了进一步的实验。实验结果表明,新变体可以消除自适应方法与SGD之间的泛化差距,同时在训练早期保持较高的学习速度。
GitHub链接:
https://github.com/Luolc/AdaBound
相关报道:
https://medium.com/@ODSC/best-deep-learning-research-of-2019-so-far-7bea0ed22e38
延展阅读:
这份 300 页的 PPT,被搬运到了 SlideShare 上,下面是 SlideShare 的链接:
https://www.slideshare.net/tw_dsconf/ss-62245351?qid=108adce3-2c3d-4758-a830-95d0a57e46bc&v=&b=&from_search=3


一、深度学习概论
1. 介绍深度学习
作者非常浅显的指出机器(深度)学习过程非常简单,分为定义方法、判断方法的优劣、挑选出最佳的方法。

对于深度学习,首先第一步定义方法 - 神经网络。深度学习顾名思义是指多层的神经网络。
神经网络的思想来源于对于人脑的生理上的研究,人脑由数亿个神经元组成,神经元通过轴突互相连接通信。神经网络和人脑类似,存在多个层级(layer),每个层级都有多个节点(神经元),层级和层级之间相互连接(轴突),最终输出结果。
对于神经网络的计算能力可以理解为通过一层层Layer的计算归纳,逐步的将抽象的原始数据变的具体。以图片识别为例,输入是一个个像素点,经过每层神经网络,逐步变化成为线、面、对象的概念,然后机器有能力能够识别出来。

第二步,评估方法的优劣。
Loss function是用于评估方法优劣,通常我们用学习出来的参数对测试数据进行计算,得出对应的预测(y)然后和真实的测试数据的目标值(t)进行比对,y和t之间的差距往往就是Loss。那么评估一个算法的好坏,就是要尽可能的降低Loss。

第三步,如何获得最佳的学习方法。
获得最佳的学习是采用梯度下降算法,作者也提到梯度下降算法存在局部最优解的问题。人们往往认为机器无所不能,实际上更像是在一个地图上面拓荒,对周边一无所知。神经网络计算梯度的算法是反向传播算法,简称BP。

2. 为什么要足够“深”?
作者首先指出越多的参数往往带来越好的预测能力,所以神经网络往往参数越多越好。那么如果是同样的参数情况下,为什么层级较多的表现会更好呢?

作者认为深度网络可以带来模块化的好处,随着网络的层级,神经网络会将像素元素逐渐归纳出一些基本的特征,进而变成纹理,进而变成对象。

二、训练方法

作者总结下来训练过程中会发现了两种情况:

优化训练方法的手段:
选择合适的Loss function:使用Cross Entropy效果要优于Mean Square Error
Mini-batch: 每次训练使用少量数据而不是全量数据效率更高
Activation Function:使用ReLU替代Sigmoid可以解决梯度消失的问题,可以训练更深的神经网络
Adaptive Learning Rate:可以随着迭代不断自我调整,提高学习效率
Momentum: 可以一定程度上避免陷入局部最低点的问题

避免过度拟合(overfitting)的方法:
Early Stopping:使用cross validation的方式,不断对validation data进行检验,一旦发现预测精度下降则停止。
Weight Decay:参数正则化的一种方式?
Dropout:通过随机去掉一些节点的连接达到改变网络形式,所以会产生出多种网络形态,然后汇集得到一个最佳结果
Network Structure: 例如CNN等其他形态的网络
三、神经网络变体
1. 卷积神经网络(CNN)

通常情况下,一个CNN包含多次的卷积、池化,然后Flatten,最终再通过一个深度神经网络进行学习预测。CNN在图像、语音识别取得非常好的成绩,核心的想法在于一些物体的特征往往可以提取出来,并且可能出现在图片的任何位置,而且通过卷积、池化可以大大减少输入数据,加快训练效率。
2. 循环神经网络(RNN)

RNN的想法是可以将hidden layer的数据存储下来,然后作为输入给下一个网络学习。这种网络的想法可以解决自然语言中前后词语是存在关联性的,所以RNN可以把这些关联性放到网络中进行学习。
四、其它前沿技术
Ultra Deep Network:
2015年出现了152层的Residual Net实现了图片3.57%错误率。

Reinforcement Learning:
通过奖励机制强化学习,并且做出相应的动作。

Unsupervised Learning:
1. Deep Style

2. 生成图片

3. 无需人工介入理解文字的含义
