精华内容
下载资源
问答
  • 机器学习sota
    千次阅读
    2021-11-15 23:02:34

    深度学习:Sota的定义


    sota实际上就是State of the arts 的缩写,指的是在某一个领域做的Performance最好的model,一般就是指在一些benchmark的数据集上跑分非常高的那些模型。

    更多相关内容
  • xai-iml-sota-master.zip,xai-iml-sota-master,xai-iml-sota.R,.Rhistory,README.md,publications.md
  • 机器学习程序环境往往涉及到以下几个方面的问题: 硬件,intel x86,amd,arm等各种芯片 操作系统,windows,ubuntu,centos,mac等,考虑64位,32位等 显卡驱动,例如采用英伟达nvidia公司的GPU显卡,1070ti,...

    目录

    问题

    解决思路

    总结


    问题

    跑机器学习程序环境往往涉及到以下几个方面的问题:

    1. 硬件,intel x86,amd,arm等各种芯片
    2. 操作系统,windows,ubuntu,centos,mac等,考虑64位,32位等
    3. 显卡驱动,例如采用英伟达nvidia公司的GPU显卡,1070ti,1080ti等等显卡涉及到驱动,cuda,cudnn等的安装问题
    4. 开发语言:目前主流的机器学习实验开发语言是python,涉及到python版本管理问题,各种依赖包管理与隔离问题
    5. 主流机器学习框架,对前面 4个 问题的依赖不一样,例如tensorflow,pytorch,keras(tensorflow2.0已经直接包含了该库),nni等等,例如做得好pytoch给你列出了各个情况下的安装方法

    ,但是例如tensorflow并没有很好的告诉用户每个版本的tensorflow依赖哪个版本的os和cuda版本编译,导致很多时候用户安装环境都搞半天。

    解决思路

    针对以上问题:

    1. 我们一般采用intel x86的芯片。操作系统一般采用x86 64位的Linux操作系统,以前是ubuntu14.04现在ubuntu18.04 x64逐步开始流行起来,例如nvidia英伟达公司官方的docker镜像 “nvidia/cuda:10.0-base” 就默认是ubuntu18.04
    2. 大部分机器学习框架都已经支持在ubuntu18.04 linxu操作系统版本下的运行
    3. 宿主机器要装好驱动,例如宿主机为:安装一个最新版本的英伟达的显卡驱动“NVIDIA-Linux-x86_64-460.39.run”,具体各这驱动可以在英伟达官网上选择筛选,这里是1070ti显卡,linux生产稳定版本环境,“https://www.nvidia.cn/Download/index.aspx?lang=cn”其中选择:下载即可,对于国内网速慢原因我已经放了一份在百度云盘:“链接:https://pan.baidu.com/s/1b_FTjx4UsDhyWfNTfCjw3w 
      提取码:6666 ”,如果是windows环境安装最新的英伟达驱动即可,docker中采用镜像:“nvidia/cuda:10.0-base”,默认就把cuda10.0 cudnn装好了
    4. 在基于镜像“nvidia/cuda:10.0-base”的容器中安装 Miniconda3-py39_4.9.2-Linux-x86_64.sh 版本的miniconda,安装这个最新版本的好处在于可以用最小的安装空间得到基础的python各种版本和依赖库,例如:“conda create --name yolov5_py3.8 python=3.8”,安装好自动配置环境变量后,就可以打包成一个可复用的docker。打包容器为镜像,push到docker仓库的操作步骤:

      1,docker commit 76c643fb44ee registry.cn-hangzhou.aliyuncs.com/coggle/coggle:v1       #提交容器为镜像
      2,docker push registry.cn-hangzhou.aliyuncs.com/coggle/coggle:v1                                   #把这个新的镜像push到云端docker仓库中


      这里有个笔者已经做好的docker:registry.cn-hangzhou.aliyuncs.com/allen135681/easyml:ubuntu18.04-nvidia_cuda10.0-base-Miniconda3-py39_4.9.2  执行下面命令就可以本地下载好该docker。windows 10下可以用wsl docker技术拉取该镜像。
    5. sudo docker pull registry.cn-hangzhou.aliyuncs.com/allen135681/easyml:ubuntu18.04-nvidia_cuda10.0-base-Miniconda3-py39_4.9.2

      以上docker主要有以下配置:

      docker pull名字:
      registry.cn-hangzhou.aliyuncs.com/allen135681/easyml:ubuntu18.04-nvidia_cuda10.0-base-Miniconda3-py39_4.9.2
      
      以上docker镜像基于英伟达官网的镜像nvidia/cuda 10.0-base eb416c0a142e 2 months ago 109MB 该基础镜像os是ubuntu18.04
      
      以下内容是添加的内容:
      
      1,添加apt 阿里云源: 
      #添加阿里源 
      deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse 
      deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse 
      deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse 
      deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse 
      deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse 
      deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse 
      deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse 
      deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse 
      deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse 
      deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
      
      2,apt update;apt install vim安装vim
      
      3,“/root/miniconda3/”目录下安装 Miniconda3-py39_4.9.2-Linux-x86_64.sh 自动配置环境变量,配置好后:conda 4.9.2 Python 3.9.1 pip 20.3.1

       

    6. 针对各种机器学习的库,可能都是在不同的操作系统版本,cuda版本,python版本下构建,必须要在这个版本上才能正常调用。所以需要模仿第4部分的思路构建多个类似的docker镜像文件。后续笔者会放出更多的针对各种机器学习库的docker镜像包。

    总结

    有了以上的镜像加持人人都可以成为合格的调包侠。快速复现baseline,SOTA等。

    展开全文
  • SOTA 模型,都包含着作者们的深刻见解。 机器翻译一直是非常吸引研究者的「大任务」,如果某些方法被证明在该领域非常有效,那么它很可能可以扩展到其它问题上。例如 Transformer,它出生于机器翻译家族,却广泛...

    机器之心原创

    作者:思源

    机器翻译,是一条漫漫长路;SOTA 模型,都包含着作者们的深刻见解。

    机器翻译一直是非常吸引研究者的「大任务」,如果某些方法被证明在该领域非常有效,那么它很可能可以扩展到其它问题上。例如 Transformer,它出生于机器翻译家族,却广泛应用于各种序列建模任务。

    其实机器翻译也走过一条漫漫长路,从早期基于规则与实例的方法,到基于统计的机器翻译,再到目前基于深度神经网络的翻译系统,我们探索了非常多的可能性与思路。有的在刚提出来就受到很多关注,有的则受限于计算资源,直到今天才展现出其强大的能力。

    1954 年,人类第一次尝试俄语到英语的自动翻译,这种基于规则的翻译第一次证明机器翻译是可行的。

    1954 年的机器翻译报道。

    自此之后,机器翻译主要历经了四种模式:

    • 基于规则的方法:它首先会将源语言句子解析为语法树,再经过一系列操作转化为目标语言的语法树,最后只需要根据目标语法树生成目标语句就行了。
    • 基于实例的方法:它的基本思想即将源语言句子分割为翻译实例中见过的短语片段,并根据相似性检索出与待翻句子片段相似的实例,最后对相似实例的翻译结果执行替代操作,我们就能得到源语短语片段的翻译结果。
    • 统计机器翻译:将源语言句子分割为短语片段,利用基于双语语料库学习到的短语翻译知识,将源语言短语转化为合适的目标短语。最后对目标短语片段进行合理的调序,并生成完整的译文。
    • 神经机器翻译:利用深度神经网络将原语言句子编码为一个低维向量,然后再直接解码为目标语言句子。

    其实早几年我们可能感觉机器翻译还需要大量的人工调整,包括表达方式、专业词汇、句式结构等等。但是随着 GNMT 等神经机器翻译模型的崛起,尤其是 Transformer 展现出强大的能力,体验上,机器翻译效果已经非常惊人了。很多时候只需要调整少数词或表达就能得到满意的结果,甚至在特定领域上能超过人类的专业翻译水平。

    那么,从 GNMT 到现在已经三年了,Transformer 的诞生也有两年了。我们可能很想知道,在最近的 NMT 研究中,到底有什么样的 SOTA 模型,翻译效果又有什么样的进步?

    在这篇文章中,我们将一探机器翻译 102 个模型、40 个数据集,从中找找 SOTA 模型到底都有什么。

    机器之心 SOTA 项目

    以前我们找 SOTA 模型,基本上只能靠背景知识与各种 Benchmark,顶多也是 Follow 一些收集顶尖模型的 GitHub 项目。但随着任务细分与新数据集的不断公布,这些只关注主流数据集的 Benchmark 就有些不太够用了。机器之心构建的

    SOTA 模型项目

    ,就旨在解决这个问题,我们可以直接从机器之心官网中找到 SOTA 平台,并搜索想要的顶尖模型。

    102个模型、40个数据集,这是你需要了解的机器翻译SOTA论文

     

    为了探索当前最佳的 NMT 模型,我们选了几个常见的数据集,并看看在 Transformer 之后,还有哪些激动人心的研究成果。我们发现不同的 NMT 模型都有其侧重的数据集,但最常用的还是 WMT 英法数据集或英德数据集。除此之外,我们也特意找了中英数据集,看看适合翻译中文的模型又是什么样的。

    如下是基于 WMT 2014 English-French 数据集的模型,展开后可以看到对应论文与代码。后面我们也会介绍 Transformer Big + BT 模型的核心思路,看看它如何继承了 Transformer 衣钵。

    102个模型、40个数据集,这是你需要了解的机器翻译SOTA论文

     

    除此之外,当我们选择 WMT French-English 数据集后,我们发现当前的 SOTA 模型 MASS 是微软亚洲研究院刘铁岩等研究者提出来的,它的基本思想承接于 BERT 预训练模型,是另一个非常吸引人的方向。

    最后在选择 NIST Chinese-English 数据集时,我们发现早一段时间冯洋等研究者提出的 Oracle Word 能获得当前 SOTA 结果,该研究也获得了 ACL 2019 最佳论文。

    总体而言,这三个 SOTA 模型都有着独特的优化方向,其中 Transformer Big + BT 探索用更多的单语数据强化模型效果、MASS 探索预训练语言模型与无监督的翻译方法、Oracle Word 则探索如何能弥补训练与推断间的鸿沟。

    Transformer Big + BT:回译是王道

    一般而言,训练 NMT 模型需要原文与参考译文这种成对的双语数据。但是,双语数据相对于网络上常见的大量单语数据要有限地多。在这一项研究中,研究者展示了如何通过仅提供我们想要翻译的语言的文本来提升模型的翻译性能,他们表明利用大量的此类数据可以大幅提升模型准确度。

    • 论文:Understanding Back-Translation at Scale
    • 论文地址:https://arxiv.org/pdf/1808.09381v2.pdf

    通过单语数据提升 NMT 模型最高效的方法之一是回译(back-translation)。如果我们的目标是训练一个英语到德语的翻译模型,那么可以首先训练一个从德语到英语的翻译模型,并利用该模型翻译所有的单语德语数据。然后基于原始的英语到德语数据,再加上新生成的数据,我们就能训练一个英语到德语的最终模型。

    该论文表示,让模型理解数据的正反翻译过程是非常重要的,通过采样故意不总是选择最好的翻译同样也能得到性能提升。如下动图展示了回译的主要过程,相当于我们用左边较少的数据集生成了右边较大的数据集,并在两种数据集上训练而获得性能提升。

    102个模型、40个数据集,这是你需要了解的机器翻译SOTA论文

     

    研究者表示,如果我们把 2.26 亿个反向翻译的句子添加到现有的包含 500 万个句子的训练数据中,我们就能大幅提升翻译质量。下图(左)显示了这一系统在标准 WMT』14 英-德基准测试集上的准确率,该系统在 16 个 DGX-1 机器上需要训练 22.5 小时。图中还显示了 DeepL 的准确率,这是一个依赖于高质量人工翻译的专业翻译服务,此前该服务在该基准测试上表现最佳。

    102个模型、40个数据集,这是你需要了解的机器翻译SOTA论文

     

    MASS:预训练必不可少

    BERT 或 XLNet 等预训练语言模型获得了非常好的效果,它们能学习到一些通用的语言知识,并迁移到下游 NLP 任务中。受到这种范式的启发,微软亚研刘铁岩等研究者提出了 MAsked Seq2Seq 预训练模型(MASS),用于基于编码器-解码器的语言生成任务,例如机器翻译。

    • 论文:MASS: Masked Sequence to Sequence Pre-training for Language Generation
    • 论文地址:https://arxiv.org/abs/1905.02450v5

    MASS 采用了编码器-解码器框架,并尝试在给定部分句子的情况下修复整个句子。如下所示为 MASS 的框架图,其输入句子包含了一些连续的 Token,并且中间会带有一些连续的 Mask,模型的任务是预测出被 Mask 掉的词是什么。相比 BERT 只有编码器,MASS 联合训练编码器与解码器,能获得更适合机器翻译的表征能力。

    102个模型、40个数据集,这是你需要了解的机器翻译SOTA论文

     

    MASS 整体框架,其中「_」表示被 Mask 掉的词。虽然关注自然语言理解的 BERT 只需要编码器就行,但这种关注语言生成的预训练模型需要同时保留编码器与解码器。

    正因为这种联合训练编码器-解码器的方法,MASS 非常适合拥有较少双语语料的翻译任务。此外,它在无监督翻译中也能得到非常不错的效果,甚至超过早期基于注意力机制的有监督翻译模型。

    在 MASS 中被 Mask 掉的词数量是可选的,如果输入只 Mask 掉一个词(k=1),那么它就等价于 BERT,因为解码器没有了额外的输入信息。如果 Mask 掉所有词,那么就等价于 GPT 这种标准的自回归语言模型,因为编码器完全没有输入信息。如果只 Mask 掉部分词,那么它就非常适合机器翻译这种生成任务了。

    102个模型、40个数据集,这是你需要了解的机器翻译SOTA论文

     

    MASS 的两种极限选择,它们分别等价于 BERT 与 GPT。

    MASS 这种架构可以强迫编码器理解输入句子的意义,并鼓励解码器从编码器中抽取有用的信息。此外,因为解码器预测的是连续的词,因此它也能构建更强大的语言建模能力。这种结构非常符合语言生成模型的要求,因此经过预训练后的模型只需要简要的微调就能有比较好的效果。

    在该论文的实验结果中,这种预训练模型在无监督机器翻译(只有单语数据)和少样本机器翻译中效果都非常出众。此外,即使在通常较为充足的双语数据中,MASS 的预训练也能获得更多的性能提升。

    Oracle Word:训练与预测之间有 Gap

    目前 NMT 的训练范式有两大局限性。首先在训练过程中,每预测一个译文词,它都会以已知的标注词作为约束,然而在推断中,模型只能以已知的预测词作为约束,这种不匹配就造成了模型在测试集的效果没那么好。其次在训练中,我们要求模型预测的译文必须与标注的译文一一对应,很明显这也会限制翻译的多样性。

    为了解决这两个问题,这项研究提出了在训练过程中用 Oracle Word 强化 Ground Truth Word。也就是说,在翻译模型的训练中,它不止会将标注数据作为指导,同时也会将预测结果作为指导。这很大程度上降低了训练和推断之间的差异,并大大提升了模型的预测效果。

    • 论文:Bridging the Gap between Training and Inference for Neural Machine Translation
    • 论文地址:https://arxiv.org/abs/1906.02448

    其中 Oracle Word 可以简单理解为模型预测出的候选词,它的选择方法有两种,即 word-level oracle 和 sentence-level oracle。

    102个模型、40个数据集,这是你需要了解的机器翻译SOTA论文

     

    词语级别的 Oracle Word 选择方法。

    • word-level oracle 的选择方法如图所示,在时间步为 j 时,获取前一个时间步模型预测出的分数。为了提高模型的鲁棒性,论文在预测分数基础上加上了 Gumbel noise,最终取分数最高的词语作为此时的 Oracle Word。
    • sentence-level oracle 的选择方法则是在训练时的解码阶段中,使用束搜索的方法,选择前 k 个备选句子,然后计算每个句子的 BLEU 分数,最终选择分数最高的句子。这种方式选择出来的句子就可以作为模型的预测结果,并指导模型继续学习。

    现在有了候选词,那么我们就要考虑如何将它们加入标注词,并共同训练模型。这篇研究的思路非常精炼,即在训练过程中,随机选择两者中的一个作为模型所需的信息。具体而言,如果模型要预测译文的第 j 个词,那么模型会以 p 的概率选择 Oracle Word、以 1-p 的概率选择 Ground Truth Word 作为所需的第 j-1 个译文词。

    现在,在训练中,只需要令概率 p 递增,那么相当于从传统的训练过程逐步迁移到推断过程,这两者之间的鸿沟也就不存在了。

    如下所示为该项研究在 NIST Chinese-English 数据集上的效果,其中 MT03 表示 NIST 2003 作为测试集的效果。我们可以看到,不论是将 Oracle Word 加到 RNN 架构还是加到 Transformer 架构,它都能得到性能上的提升(BLEU 值)。

    102个模型、40个数据集,这是你需要了解的机器翻译SOTA论文

     

    最后,以上 3 个 SOTA 模型只是从不同的角度提升机器翻译效果,SOTA 项目中还能找到更多优秀的模型,它们都有各自的特点与关注的角度。总的而言,理解机器翻译最前沿的思想,这些 SOTA 模型都是要了解的,我们需要从各个角度看看神经机器翻译的潜力到底怎么样。

    展开全文
  • 近日,百度大数据实验室在 arXiv 上发布了两篇论文,一篇给出了任何深度学习网络在小学习率情况下的收敛性证明,包括用 AutoDL 搜出来的网络,另一篇则提供了一个正则化的方法,让 AutoDL 搜索到的网络的训练结果...

    近日,百度大数据实验室在 arXiv 上发布了两篇论文,一篇给出了任何深度学习网络在小学习率情况下的收敛性证明,包括用 AutoDL 搜出来的网络,另一篇则提供了一个正则化的方法,让 AutoDL 搜索到的网络的训练结果超过了之前所有公开报道的结果。基于 PaddlePaddle 框架实现的代码已经开源:

    Github地址:

    https://github.com/PaddlePadd...

    机器之心就 AutoDL 各方向的设计思路和论文内容采访了百度大数据实验室主任浣军教授,以下为采访实录。

    机器之心:百度开发 AutoDL 的初衷是什么?想要实现什么目标?

    AutoDL 的理念,用一句话来概括,就是「开放普惠 AI」,让广大中小企业、初创企业和个人能够更方便地应用大数据和深度学习。

    现在,这些能力主要掌握在大公司研发中心或者高校中间,并未向中小企业和初创企业辐射,原因在于大数据分析和深度学习对硬件、软件以及工程技术人员的能力要求都比较高。

    AutoDL 所做的事情,就是用深度学习来设计深度学习,从而实现让大家都能够快速用到这项能力。我们的愿景是把如今的「深度学习模型艺术品」变成「深度学习模型工业产品」,让深度学习的模型能够像工厂的产品一样被大规模地生产出来。

    机器之心:这一目标具体由哪些需求组成?如何满足这些需求?

    我们从三个维度思考这件事。硬件、应用场景和模态的多样化决让 AI 算法的维度空间极为庞大。想要尽可能探索这一空间,就必然要从手工设计模型,转向自动化生产模型,快速高效地产生能够适配不同硬件、支持不同场景、适应不同模态的深度学习模型。

    为了实现这些需求,我们将 AutoDL 分成三个部分,分别是 AutoDL Design,AutoDL Transfer 和 AutoDL Edge。

    AutoDL Design 根据用户提供的数据集从头设计全新深度学习模型。

    AutoDL Transfer 支持小数据建模,利用百度拥有的大量数据预训练好的模型迁移到用户具体的应用场景上。

    AutoDL Edge 将深度学习模型部署到拥有不同算力、内存资源的硬件上,满足不同的能源消耗、响应时间需求。是 AI 和 IoT 的结合,是深度学习和边缘计算的完美结合。

    AutoDL Design:更大的模型结构搜索空间带来更佳的效果

    机器之心:从用户给出标注数据集到拿到自动设计好的模型结构,是一个什么样的过程?

    现在 AutoDL Design 有多条技术路线,但总的来说仍然是一个端到端的训练过程。百度在模型结构优化方面选择了两条主要技术路线。

    第一条技术路线利用深度增强学习完成设计。系统由两部分组成,第一部分是网络结构的编码器,第二部分是网络结构的评测器。

    编码器通常以 RNN 的方式把网络结构进行编码,然后评测器把编码的结果拿去进行训练和评测,拿到包括准确率、模型大小在内的一些指标,反馈给编码器,编码器进行修改,再次编码,如此迭代。经过若干次迭代以后,最终得到一个设计好的模型。

    为了性能考虑,迭代中用到的训练数据通常是几万张规模的数据集(比如 CIFAR-10),模型设计结束后,会用大规模数据(比如 ImageNet)重新训练一次,进一步优化参数。

    图:AutoDL 增强学习流程

    第二条技术路线是将结构图构建为可微的结构。即,连接节点的边不再是非 0 即 1 的状态,而是变成一个可求微分的概率。

    除此之外,我们还进行了超参数优化,正则化训练等其他一系列优化,最终,我们在 CIFAR-10 上取得了正确率 98% 以上,这个结果优于所有有公开报道的设计网络效果,包括人类专家设计的和机器自动设计的。

    机器之心:能否更详细地解释基于深度增强学习的技术路径里编码器与评测器的工作?迭代过程中计算资源消耗情况?

    编码器的可以从一个随机的模型开始,也可以从一种已知的模型出发。从性能角度考虑,通常我们会选择从一个较优的模型结构出发。

    模型优化分为三个层级,分别是单元格优化,单元格连接方式优化以及超参数优化。单元格(cell)是模型的基本结构,每个单元格由几个到十几个节点(node)组成。每个节点都是一种常见的操作,例如一次卷积运算就是一个节点,常见的节点中的操作有十个左右。

    图:AutoDL Design 设计的单元格,左边为普通单元格(Normal Cell),右边为缩减单元格(Reduction Cell)

    奖励函数是一个正确率的函数。这里的正确率并不是说每进行一次迭代就要在全部训练数据上训练到完全收敛。而是采用了「提前终止」(early stopping)的方法,用训练到一定程度的结果来预测最终结果。

    在 CIFAR-10 级别的数据集上(数万张图片),每次迭代平均需要不到 1 GPU hour,从开始搜索到找到理想的模型结构,平均需要进行 50~200 次迭代。

    机器之心:AutoDL Design 设计出的模型结构与人工设计的模型结构有什么区别?

    如果把图像识别的常见模型用有向无环图表示出来,我们会发现:VGG 模型的结构是线性的;ResNet 在线性结构的基础上添加了「跳层连接」;Inception 模型的结构更偏向树状。而 AutoDL Design 的不受任何现成网络结构的约束,能够在所有可能的有向无环图空间内进行探索。

    图:AutoDL Design 设计的模型结构

    另外,AutoDL Design 的一个特点是可以实现多目标优化:如果目标除了效果好之外,还对模型大小、运行时间有要求,系统也可以根据要求完成设计。

    AutoDL Transfer:「小数据」也可以建「大模型」

    机器之心:能否介绍一下 AutoDL Transfer 的优化方式?

    AutoDL Transfer 是在 ResNet、DenseNet、VGG、Inception 等经典网络的基础上,进行了一些基于人工经验的组件改良,以及采用了超参优化技术进行搜索。例如,我们增加了双线性(bilinear)组件,把经过层层卷积的向量再进行两两组合,让特征更为丰富。

    AutoDL Transfer 现在提供两种服务,分别是静态模型(Static Model)和动态模型(Dynamic Model)。

    静态模型是在大量已有数据集上进行测试后,选出能够在大部分数据集上取得优异性能的模型结构,然后利用用户数据精调模型参数。

    动态模型则会根据用户数据在不同组件以及超参的组合中重新进行一次搜索。和静态模型相比,动态模型能够针对用户数据进行更加精细的优化,但也需要用户提供更多数据。

    图:AutoDL Transfer 示意图

    机器之心:什么样的用户场景适合选择 AutoDL Transfer?AutoDL Transfer 对用户数据规模有什么要求?

    首先,数据量比较小的情景下,很难从头训练大模型,此时 AutoDL Transfer 仍然能保证一个很好的模型效果。

    同时,即使用户数据量比较大,迁移学习仍然能把初始阶段从大规模数据集中习得的物体特征的知识以参数的形式带入到接下来有针对性的优化过程中,效果往往比从头训练要好。

    AutoDL Transfer 还使用了一些百度自己研发的技术,包括自动数据增强、迁移过程中正则化项的优化等。这些技术都有助于在小数据条件下提升模型泛化能力,因此 AutoDL Transfer 对用户数据规模几乎没有限制,分类任务中,每个类别的数据可以只有 100 张甚至几十张。用户可以在上传数据后几分钟就拿到训练好的模型结果。关于 AutoDL Transfer 的最新进展,可以见我们在 ICLR 2019 上发表的文章。

    图:AutoDL Transfer 静态模型与动态模型在不同任务中的效果示意图

    AutoDL Edge:事半功倍的终端计算

    机器之心:AutoDL Edge 采用了哪些优化方法?

    AutoDL Edge 主要旨在对模型进行压缩,使得同等边缘算力支持更多 AI 能力,从而拓宽应用场景。

    因为市面上有非常多不同的硬件配置,因此我们的团队先研究了一些设备无关的通用的模型压缩算法,这类算法能够同时减小网络规模、提升推理速度且不改变模型的性能。

    滤波器剪枝(Filter Pruning)就是其中一种典型的技术。我们会估算每一个卷积核的重要程度,在每一个卷积层中,去掉那些不那么重要的卷积核。此外,我们也会对计算资源消耗最大的全连接层做矩阵低秩分解,加速矩阵乘法。

    图:滤波器剪枝示意图

    观察到深度卷积网络的参数主要集中在卷积核上,我们最新采用的模型压缩算法通过参数共享来压缩卷积核的参数空间。我们提出了一种新的卷积核的表示方式,使得卷积核可以在训练过程中自动进行参数共享。我们提出的参数共享模型可以从头开始训练,而不是需要先训练出一个大模型然后使用参数共享或者其他的压缩方法。配合参数量化(quantization)方法,我们的方法在 CIFAR-10 上在准确率仅降低 0.27% 的条件下将 ResNet-18 压缩了 50 多倍。在目标检测任务上,我们的方法将 Single Shot MultiBox Detector(SSD)网络进行了有效压缩,在参数数量(0.45M)明显小于 Tiny SSD(1.13M)下,在 VOC 2007 的测试集上的平均准确率(mAP)反而有大幅提升。

    此外,还有一些针对性特定芯片的优化,设备提出了算力、能耗、响应时间等约束。而算法设法在这些约束之下降低运算量,压缩模型大小。一旦将模型压缩到缓存可以容纳的大小,就可以极大加速 I/O。

    值得一提的是,模型压缩的过程也是自动化的。

    同时,我们也在探索用 AutoDL Design 的思路,不需要针对一个大模型进行压缩,而是从头寻找一个小模型。

    机器之心:关于此次公开的两篇新论文,神经网络的收敛性证明有什么意义?

    深度神经网络广泛使用随机梯度下降,其优化的特性,例如是否会离开局部最优,收敛到全局最优一直是大家关心的问题,最近这方面也有一些有意思的进展。我们的探索主要集中在构造一族损失函数。通过这样的构造,我们可以在即使学习率非常低的情况下,对于每一个局部最优,证明 SGD 都一定的概率逃逸出局部最优。逃逸概率不但与极值点的值有关而且我们也证明了与极值点附近的几何性质有关。如果我们跑 SGD 足够长时间,SGD 会以马氏链的方式遍历局部最优,可以大概率收敛到全局最优。基于这几点,我们期望未来对极值点附近的几何性质的研究会对深度学习有强有力的促进作用。

    机器之心:第二篇论文提出,利用局部拉德马赫复杂度做正则化,从而提高网络泛化特性,能否详细介绍一下其做法?

    深度学习的核心问题之一在于如何保证在有限样本上学到的分类器或者预测函数能在将来未观察到的数据,例如测试数据上,仍然有预测错误率的保证。因为在数据点上的 0-1 的离散错误很难精确优化,在通常的实践中,预测函数都是通过在训练数据上最小化一个损失函数得到,这个经验函数一般是预测错误率的一个上界。在统计中分类器在训练集和测试集之间的差,可以用预测函数族的一个被称之拉德马赫复杂度的标准来衡量。预测函数族越小,拉氏复杂度也越小,经验损失和泛化损失的差距也越小。拉氏复杂度在经典支持向量机有这广泛的应用。

    目前深度神经网络成为广泛应用的预测函数。因为神经网络的多层结构,其所属的函数族可以逼近任意的连续函数,这使得许多经典的用函数族的拉德马赫复杂度作为正则化项的统计学习方法无法进行。但统计学习领域中的局部拉德马赫复杂度,即只考虑全函数族的一个子族上的拉德马赫复杂度,却可以避开全局拉德马赫复杂度的问题。

    我们提出的局部拉德马赫复杂度方法借鉴了已有的局部拉德马赫复杂度方法,仅考虑在经验损失函数的极小值点附近的一个球内的拉德马赫复杂度。采用最近的拉德马赫复杂度的估计方法,我们对折页损失函数 (Hinge Loss) 和交叉熵(cross entropy)推得了这个固定值的表达式,并且将其称之为局部拉德马赫正则化项,并加在经验损失函数上。我们对提出的局部拉德马赫正则化方法在标准的网络结构(即 ResNet-18)和 CIFAR-10 上进行了实验,发现其可以有效降低损失函数在测试数据上的值并且提高预测准确率,体现了增强的泛化性能。我们进一步将该方法应用到被搜索出来的网络结构上,发现局部拉德马赫正则化方法和其他的提高泛化性能的方法,包括混合(mix-up)和模型集成(model ensemble),可以兼容。将我们的正则化方法作用在混合和模型集成之后,我们得到了 CIFAR-10 上目前最好的准确率。在我们的文章中也提供了基于PaddlePaddle框架实现的开源代码。

    进化中的 AutoDL:剑指「一步到位」的深度学习模型

    机器之心:从 AutoDL 1.0 到 AutoDL 2.0,系统发生了哪些变化?

    主要有三方面变化。

    第一,在自动设计效果上,现在的 AutoDL 设计出的神经网络已经全面超过人类专家设计的网络效果。图像识别公开数据集 CIFAR-10 上,达到了超过 98% 的正确率。这个效果优于所有有公开报道的人类专家设计的网络的效果。

    第二,在模态方面,除了视觉之外,我们也增加了对语音任务的支持,包括语音模型压缩、语音模型自动建模等。

    第三,在模型适配上,我们增加了一些具体的应用案例,包括对一些可以用于新零售的视觉硬件的支持。

    机器之心:AutoDL 团队现在在进行哪些新方向的探索?

    我们特别关心 AutoDL 三个方向的结合,换言之,能不能同时完成模型的设计、迁移和适配。

    这也是我们在强化学习技术路径之外,也同时关注可微分结构路径的原因:可微分结构既可以用于自动模型搜索,也可以用于迁移学习。模型的安全性也是我们重点关注的方向。我们希望设计的网络能够抗攻击并且具有一定的可解释性。

    展开全文
  • 在以前,这几个环节都很可能是在同一台电脑上完成的,但现在不行了,尤其是深度学习时代,要想设计出一款好的机器学习模型,达到SOTA的效果,是一件十分烧脑的事情,不仅烧人脑,也烧电脑。现在的模型太复杂,单一一...
  • 机器学习SOTA模型大集合SOTA模型参考链接 SOTA模型 SOTA,全称「state-of-the-art」,用于描述机器学习中取得某个任务上当前最优效果的模型。例如在图像分类任务上,某个模型在常用的数据集(如 ImageNet)上取得了...
  • 查看深度学习SOTA论文和代码网站

    千次阅读 2021-03-23 18:02:39
    9.4 锚框 目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整区域边缘从而更准确地预测目标的真实边界...注: 建议想学习用PyTorch做检测的童鞋阅读一下仓库a-PyTorch-
  • 机器学习游乐场 用于学习新概念的项目的集合。 这些模型在PyTorch中实现。 结构 计算机视觉 图片分类进行二进制/多类分类。 楷模实现SOTA卷积神经网络。 物体检测实施YOLO,SSD,RetinaNet和Faster R-CNN。 语义...
  • 机器学习的1000+篇文章总结

    千次阅读 2022-02-28 21:02:53
    机器学习的1000+篇文章总结 本文收集和总结了有关机器学习的1000+篇文章,由于篇幅有限只能总结近期的内容,想了解更多内容可以访问:http://www.ai2news.com/, 其分享了有关AI的论文、文章、图书。 吴恩达机器...
  • ML:机器学习工程化之团队十大角色背景、职责、产出物划分之详细攻略目录机器学习团队十大角色背景、职责、产出物划分1、Product Manager/产品经理2、Project Manager/项目经理如何去快速实现商业化的产品?...
  • 对深度学习而言,不论是学术研究还是落地应用都需要尽可能提升模型效果,这往往需要trick进行支撑。这些trick有的是广泛适用的(如循环学习率、BN等等),有的是任务特定的(比如cv里的数据增强,nlp里的mask,推荐...
  • 对于软件工程师而言,机器学习(ML)的前提在于需要数据要足够真实。但事实上即使数据来源真实,软件工程师仍会面临许多问题,例如机器学习的门槛高、软件操作的难度大、系统维护困难等等,下面详细介绍了工程师在...
  • 导读:本文是“数据拾光者”专栏的第四十七篇文章,这个系列将介绍在广告行业中自然语言处理和推荐系统实践。本篇从理论到实践分享了当前NLP中对比学习SOTA的ESimCSE模型,对于想将对比学...
  • 2021 年之后,机器学习将会对哪些领域产生前所未有的影响?在过去的数年,见证了机器学习(ML)和计算机科学领域的许多变化。按照这种长弧形的进步模式,人们或许将在接下来的几年中看到许多令人...
  • 自动机器学习AutoML

    千次阅读 多人点赞 2020-11-01 09:24:09
    研究背景:随着深度神经网络的不断发展,各种...自此,人工智能又有了更进一步的发展,人们开始探索如何利用已有的机器学习知识和神经网络框架来让人工智能自主搭建适合业务场景的网络,人工智能的另一扇大门被打开。
  • 该存储库为所有机器学习问题提供了最新技术(SoTA)结果。 我们会尽力使此存储库保持最新状态。 如果您确实发现问题的SoTA结果过时或缺失,请提出该问题(具有以下信息:研究论文名称,数据集,指标,源代码和年份...
  • 通过一个偶然的项目实践经历,我接触了计算机视觉方面的相关知识,但是最开始我更多的是学习OpenCV相关的课程,在一个偶然的机会我了解到最近火爆全网的机器学习算法——Transfromer注意力机制算法,接下来我们就来...
  • Xing, Tie-yan Liu, Wei-Ying Ma 发表时间:2015 摘要:通常认为,构建大型机器学习程序(例如包含万亿级参数和训练样例的大型主题模型或深度神经网络)需要使用含有数千节点的工业级集群,而大多数机器学习从业者...
  • Datawhale干货编辑:杜伟、蛋酱,来源:机器之心2021 年之后,机器学习将会对哪些领域产生前所未有的影响?在过去的数年,见证了机器学习(ML)和计算机科学领域的许多变化。按照这...
  • 浅层学习模型通常需要通过人工方法获得良好的样本特征,然后使用经典的机器学习算法对其进行分类,其有效性在很大程度上受到特征提取的限制; 而深度学习通过学习一组非线性变换将特征工程直接集成到输出中,从而将...
  • 转载自:机器之心2020 年因为新冠疫情,很多人不得不在家工作和学习,大量人工智能学术会议也转为线上。不过在去年我们仍然看到了很多 AI 技术领域的进展。DeepMind 研究科学家 S...
  • 可能是因为对比学习,今年以来文本表示方向突然就卷起来了,SOTA刷的嗖嗖的,我还停留在我们ConSERT的阶段,结果别人不精调就已经超了。昨天实习同学发了我几篇Open Review上AC...
  • 2019-04-25 22:43:48 关于机器学习,你应该知道的3个热门专业术语 原创: 吴郦军、罗人千 ...为了帮大家节省查阅晦涩难懂的论文的时间,我们邀请微软亚洲研究院机器学习组实习生吴郦军、罗...
  • 机器学习读博编辑:魔王转自:机器之心要不要读博?读博值不值得?如何才能顺利完成博士生涯,并为职业发展打好基础?最近,社交网络上就此展开了一场争论。读博还是不读博,这是个问题。是否读博、读...
  • 作者:砍手豪链接:https://zhuanlan.zhihu.com/p/341837763本文转载自知乎,作者已授权,未经许可请勿二次转载机器学习的bias对性能影响很大,常常会使一...
  • 论文复现一直是机器学习领域的难题,虽然最近多个学术会议提倡大家提交代码,但解决论文复现问题仍然任重而道远。在试图复现机器学习论文时,我们经常遇到哪些问题呢?新加坡机器学习工程师 Derek Chia 对此进行了...
  • 【实验结果】 与其他方法比较 最终本文提出的方法在S3DIS和Semantic3D数据集上获得了SOTA的性能。 消融实验 鲁棒性分析(下一版本中更新) 在S3DIS数据集上使用多个seed的实验结果 2. 在S3DIS数据集上使用Point...
  • 构建更大的模型是提高机器学习性能的关键,但从长远来看,它在环境上也是不可持续的……SOTA 基准测试 [也] 不鼓励科学家对他们在现实世界中的任务所带来的具体挑战进行细致入微的理解,反而可以鼓励提高分数的狭隘...
  • 机器学习、深度学习、时序 相关 技术知识

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,222
精华内容 3,288
关键字:

机器学习sota