Python社区  »  机器学习算法

【深度学习】2019年过去一小半了,这些深度学习研究值得一看!1 天搞懂深度学习,我总结了 300 页 PPT

产业智能官 • 3 年前 • 585 次点击  

2019年过去一小半了,这些深度学习研究值得一看!

大数据文摘


大数据文摘出品

作者:李雷、张弛、蒋宝尚


转眼间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:实时SLAM的高效响应预测


这篇论文介绍了GCNv2,一个用于生成关键点和描述符的深度学习网络。GCNv2建立在图卷积神经网络GCN之上,GCN是用于训练三维投影几何的网络。GCNv2使用二进制描述符向量作为ORB(Oriented FAST and Rotated BRIEF)特征,因此它可以轻松替换ORB-SLAM(一种基于ORB特征的三维即时定位与地图构建算法)等系统中的ORB。


GitHub链接:

https://github.com/jiexiong2016/GCNv2_SLAM


ALiPy:Python的主动学习


监督式的机器学习方法通常需要大量标记样本用于模型训练。但是,在许多实际应用中存在大量未标记的数据,已标记数据其实并不多,并且数据打标的成本很高。主动学习(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




延展阅读:

李宏毅:1 天搞懂深度学习,我总结了 300 页 PPT(附思维导图)

这份 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. 无需人工介入理解文字的含义




先进制造业+工业互联网




产业智能官  AI-CPS


加入知识星球“产业智能研究院”:先进制造业OT(自动化+机器人+工艺+精益)技术和工业互联网IT技术(云计算+大数据+物联网+区块链+人工智能)深度融合,在场景中构建“状态感知-实时分析-自主决策-精准执行-学习提升”的机器智能、认知计算系统;实现产业转型升级、DT驱动业务、价值创新创造的产业互联生态链。


云计算+大数据+物联网+区块链+人工智能等工业互联网IT技术分支用来的今天,制造业者必须了解如何将“技术”全面渗入整个公司、产品、业务等商业场景中,利用工业互联网形成数字化、网络化和智能化力量,实现行业的重新布局、企业的重新构建和焕然新生。

工业互联网作为新一轮产业变革的核心驱动力,将进一步释放历次科技革命和产业变革积蓄的巨大能量,并创造新的强大引擎。重构生产、分配、交换、消费等经济活动各环节,形成从宏观到微观各领域的智能化新需求,催生新技术、新产品、新产业、新业态、新模式。引发经济结构重大变革,深刻改变人类生产生活方式和思维模式,实现社会生产力的整体跃升。


版权声明产业智能官(ID:AI-CPS推荐的文章,除非确实无法确认,我们都会注明作者和来源,涉权烦请联系协商解决,联系、投稿邮箱:erp_vip@hotmail.com。




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/34682
 
585 次点击  
分享到微博