2018 年度 GtiHub 开源项目 TOP 25

雷锋网 AI 科技评论按:本文做者 Pranav Dar 是 Analytics Vidhya 的编辑,对数据科学和机器学习有较深刻的研究和简介,致力于为使用机器学习和人工智能推进人类进步找到新途径。2018 这一年中,做者在每月都会发布一份开源项目月度推荐榜单,而本文则是对整年开源项目的盘点和总结。雷锋网 AI 科技评论编译以下。git

前沿github

关于托管代码、与团队成员合做以及充当展现我的写代码技能的「在线简历」,最好的平台是哪一个?问及任何一位数据科学家,他们都会让你去 GitHub。近年来,GitHub 做为一个真正具备变革性的平台,已经改变了咱们托管甚至写代码的方式。算法

但这还不是所有。此外,它仍是一个学习平台。若是你问怎么学习的话,我能够给你一个暗示——开源项目!spring

世界领先的科技公司经过在 GitHub 上发布其热门算法的代码,对项目进行开源。2018 年,在 Google 和 Facebook 等公司的带领下,这类开源项目大幅增长。其中最好的那部分开源项目,写代码的研究者还提供了预训练模型,从而让你我这些人没必要再浪费时间从头开始建立高难度的模型。编程

同时,针对编码者和开发者的热门开源项目也不少——包括备忘单、视频连接、电子书、研究论文连接以及其余等资源。不管你在你的专业领域处于哪一个等级(初学者、中级以及高级),你总能够在 GitHub 上找到能够学习的新东西。浏览器

对于数据科学的不少子领域来讲,2018 年是不一样凡响的一年,这个我下面立刻就会讲到。随着 ULMFiT、BERT 等项目在 GitHub 上进行开源,天然语言处理(NLP)迅速成为社区中谈论最多的领域。我致力于将本身最大的努力贡献给这么棒的 GitHub 社区,在这一年中,我精心挑选了每位数据科学家都应该了解的 TOP 5 开源项目,并整理成了月度榜单系列。你能够点击下面的连接,前往查看完整榜单:网络

一月份:https://www.analyticsvidhya.com/blog/2018/02/top-5-github-repositories-january-2018/二月份:https://www.analyticsvidhya.com/blog/2018/03/top-5-github-repositories-february-2018/三月份:https://www.analyticsvidhya.com/blog/2018/04/top-7-github-repositories-march-2018/四月份:https://www.analyticsvidhya.com/blog/2018/05/top-5-github-reddit-data-science-machine-learning-april-2018/五月份:https://www.analyticsvidhya.com/blog/2018/06/top-5-github-reddit-data-science-machine-learning-may-2018/六月份:https://www.analyticsvidhya.com/blog/2018/07/top-github-reddit-data-science-machine-learning-june-2018/七月份:https://www.analyticsvidhya.com/blog/2018/08/best-machine-learning-github-repositories-reddit-threads-july-2018/八月份:https://www.analyticsvidhya.com/blog/2018/09/best-machine-learning-github-repositories-reddit-threads-august-2018/九月份:https://www.analyticsvidhya.com/blog/2018/10/best-machine-learning-github-repositories-reddit-threads-september-2018/十月份:https://www.analyticsvidhya.com/blog/2018/11/best-machine-learning-github-repositories-reddit-threads-october-2018/十一月份:https://www.analyticsvidhya.com/blog/2018/12/best-machine-learning-github-repositories-reddit-threads-november-2018/app

这些文章的部份内容会和我盘点的 2018 年 AI 和 ML 领域最大突破文章有所重合,你们也能够前往如下地址阅读这篇文章——它从根本上来讲是一份盘点了该领域主要进展的榜单,我认为该领域的每一个人都应该有所了解。做为额外福利,文中还有来自专家们的预测——你们应该都不想错过吧。框架

https://www.analyticsvidhya.com/blog/2018/12/key-breakthroughs-ai-ml-2018-trends-2019/机器学习

如今,准备好去探索新的项目,并努力成为 2019 年的数据科学之星吧。继续向下滚动,你们点击每一个项目后面的连接就能够前往 GitHub 的代码库了。

本文将覆盖到的话题工具和框架计算机视觉生成式对抗网络(GANs)其余深度学习项目天然语言处理(NLP)自动的机器学习(AutoML)强化学习

工具和框架

让咱们开始来看看工具、开发库和框架方面的最佳开源项目。因为咱们在讨论的是一个软件仓库平台,先讲这部分彷佛才是正确的打开方式。

科技正在快速发展,同时计算成本也比以前更低了,因此如今有一个接一个大量的开源项目可供咱们使用。如今,能够被称做机器学习编码的黄金时代吗?这是一个开放的问题,可是咱们都认同的一件事是,如今是作一个数据科学领域的编程员的好时期。在这个部分(以及整篇文章),我都在尝试让编程语言尽量地多样化些,不过 Python 没法避免地占据主导地位。

ML.NET

开源地址:https://github.com/dotnet/machinelearning

打开百度App,看更多图片

若是大家这些.NET 开发者们想要学一点机器学习知识来补充现有的技能,你会怎么作?如今就有一个完美的开源项目能够助你开始实施这一想法!这个完美的开源项目就是微软的一个项目——ML.NET,它是一个开源的机器学习框架,让你用 .NET 就能够设计和开发模型。

你甚至能够将现有的机器学习模型集成到你的应用程序中,而彻底不要求你切确地知道怎样开发机器学习模型。ML.NET 实际上已被应用于多个微软产品中,例如 Windows、 Bing 搜索、 MS Office 等等。

ML.NET 能够在 Windows、Linux 以及 MacOS 上运行。

TensorFlow.js

开源地址:https://github.com/tensorflow/tfjs

在浏览器中实现机器学习!几年前,这还只是一个幻想,而如今成为了一个震撼人心的现实。这一领域的大多数人都与咱们最爱的 IDEs 牢不可分,而 TensorFlow.js 则有可能改变咱们的习惯。自今年早些时候发布以来,它就成为一个很是受欢迎的开源项目,而且它的灵活性还在继续给人带来惊喜。

正如开源项目所介绍的,TensorFlow.js 主要有三个重要特征:

浏览器自身能够开发机器学习和深度学习模型;能够在浏览器中运行现有的 TensorFlow 模型;同时能够对这些现有的模型进行从新训练或者微调。

若是你熟悉 Keras,那你也会对它的高级层 API 很是熟悉。目前在 GitHub 的开源项目中,有大量对外开放的示例,你可前往社区查看,来活跃一下你的学习曲线。

PyTorch 1.0

开源地址:https://github.com/pytorch/pytorch

对于 PyTorch 来讲,2018 年是很是精彩的一年。它赢得了全球数据科学家和机器学习研究者们的心,如今他们则不断为 PyTorch 贡献项目。PyTorch 易于理解、灵活且被应用于众多高知名度的研究中(本文接下来会讲到)。PyTorch 最新版本(PyTorch 1.0)已经规模化地赋能了大量 Facebook 产品和服务,包括天天进行 6 百亿次文本翻译。若是你想知道何时开始涉足 PyTorch,那就是如今。

若是你是这一领域的初学者,能够先去看看 Faizan Shaikh 写的 PyTorch 入门指南:https://www.analyticsvidhya.com/blog/2018/02/pytorch-tutorial/

Papers with Code

开源地址:https://github.com/zziz/pwc

严格来讲,Papers with Code 这个开源项目并非一个工具或框架,可是对于数据科学家来讲,它就是一个「金矿」。咱们大多数人都在努力阅读论文,而后对论文提出的方法进行实操(至少我是这样作的)。大量的活动部件彷佛没法在咱们的机器上工做。

这就是须要用到「Papers with Code」的地方。如名称所示,它们对于在最近 6 年左右发布的重要论文都有代码实现。这一论文集网站使人兴奋,你会发现本身都忍不住赞叹它。它们甚至将在 NIPS (NeurIPS) 2018 中展现的论文代码也增长上去了。如今就去使用 Papers with Code 吧。

计算机视觉

得益于计算成本的降低和顶级研究者们所带来的突破的激增(一些事件显示这二者多是互相关联的),如今愈来愈多人可使用深度学习进行研究了。而在深度学习这一领域,计算机视觉项目是最广泛——在这一章节中所提到的大部分开源项目都包含了一种计算机视觉技术或另外一种计算机视觉技术。

如今,计算机视觉能够说是深度学习最热门的领域,而且在可见的将来依旧会这么热门。不管是目标检测,仍是姿态估计,几乎全部的计算机视觉任务都有相对应的开源项目。如今是了解这些进展的最佳时期—不久后,你或许就能够得到大量的工做机会。

Facebook 的 Detectron

开源地址:https://github.com/facebookresearch/Detectron

在 2018 年初被发布时,Detectron 就曾掀起千层浪。它由 Facebook 人工智能研究院(FAIR)开发,实现了最早进的目标检测框架。Detectron 采用(惊喜,惊喜!)Python 语言编写代码,已经帮助实现了多个项目,包括 DensePose(以后咱们也会在文中提到)。

这个开源项目包括了代码以及 70+个预训练模型。与这么好的机会失之交臂,就问你同不一样意?

英伟达的 vid2vid 技术

开源地址:https://github.com/NVIDIA/vid2vid

图像的目标检测如今作得很不错,那在视频中进行目标检测呢?不只如此,咱们可否能延展这一律念以及将某个视频的样式转换为另外一种呢?是的,咱们能够!这是一个很是酷的概念而且英伟达已经很是慷慨地发布了 PyTorch 实现,让你们尽情尝试。

这个开源项目包括介绍这一技术的视频、完整的研究论文以及代码。英伟达的示例中,应用了可公开注册下载的 Cityscapes dataset(下载地址:https://www.cityscapes-dataset.com/)。这是我自 2018 年以来我的最喜欢的开源项目。

用 18 秒在 ImageNet 数据集上训练出一个模型

开源地址:https://github.com/diux-dev/imagenet18

用 18 秒时间训练一个深度学习模型?与此同时还不使用高端的计算资源?相信我,如今能够实现了。Fast.ai 公司的 Jeremy Howard 和他的学生团队在热门的 ImageNet 数据集上建立了一个模型,表现甚至超过了 Google 的方法。

我建议你至少过一下这个开源项目,了解一下这些研究者是怎样构建代码的。并不是每一个人都拥有多个 GPU(有的人甚至一个也没有),所以对于「小虾米」来讲,这个开源项目意义重大。

目标检测论文的完整集

开源地址:https://github.com/hoya012/deep_learning_object_detection

这是另外一个研究论文集开源项目,它每每能帮助你了解所选择的研究课题在多年时间跨度里发生了怎样的演变,同时这个一站式历史记录正好能够帮助你了解目标检测在多年时间里经历的变化。它完整地收集了 2014 年至今的论文,甚至也尽量地收集了每篇论文对应的代码。

上图代表了目标检测框架在过去五年时间里经历了怎样的演变和转变。很神奇,不是吗?图中甚至包括了 2019 年的工做,因此你有的忙了。

Facebook 的 DensePose

开源地址:https://github.com/facebookresearch/DensePose

 

让咱们将注意力转向姿态检测领域。我在今年了解到这一律念自己,而且今后之后深为着迷。上面的图像抓住了这个开源项目的精华——户外场景下的密集人体姿式评估。

该开源项目包含了训练和评估 DensePose-RCNN 模型的代码,以及可用于可视化 DensePose COCO 数据集的笔记。这是一个开启姿态评估学习的好地方。

Everybody Dance Now—姿态评估

开源地址:https://github.com/nyoki-mtl/pytorch-EverybodyDanceNow

上图(截取自视频)实在是激起了个人兴趣。我在八月份的盘点文章中就写到了该研究论文的开源项目,并继续佩服这项技术。这项技术将不一样视频中人体目标间的动做进行转移。我提到的这个视频也能够在开源项目中看到——它的效果超越你的想象!

这个开源项目进一步包含了这一方法的 PyTorch 实现。这一方法可以获取和复制的复杂细节的数量是惊人的。

生成式对抗网络(GANs)

我肯定大家大多数人必定接触过 GAN 的应用(即便大家当时可能并无意识到是它)。GAN,或者说生成式对抗网络由 Ian Goodfellow 于 2014 年提出,从那之后就变得热门。它们专用于执行创造性的任务,尤为是艺术性的任务。你们可前往 https://www.analyticsvidhya.com/blog/2017/06/introductory-generative-adversarial-networks-gans/ 查看 Faizan Shaikh 所写的介绍指南,文中还包括了使用 Python 语言的实现方法。

在 2018 年,咱们看到了太多基于 GAN 的项目,所以我也想用一个独立章节来介绍 GAN 相关的开源项目。

Deep Painterly Harmonization

开源地址:https://github.com/luanfujun/deep-painterly-harmonization

首先从我最喜好的一个开源项目讲起。我但愿你花点时间仅仅来欣赏一下上面的图像。你能分辨出哪张是由人类作的,哪张是由机器生成的吗?我肯定你不能。这里,第一个画面是输入图像(原始的),而第三个画面是由这项技术所生成的。

很惊讶,是吗?这个算法将你选择的外部物体添加到了任意一张图像上,并成功让它看上去好像原本就应该在那里同样。你不妨查看这个代码,而后尝试亲自到一系列不一样的图像上去操做这项技术。

Image Outpainting

开源地址:https://github.com/bendangnuksung/Image-OutPainting

若是我给你一张图像,并让你经过想象图像在图中完整场景呈现时的样子,来扩展它的画面边界,你会怎么办?正常来讲,你可能会把这个图导入到某个图像编辑软件里进行操做。可是如今有了一个很是棒的新软件——你能够用几行代码就实现这项操做。

这个项目是斯坦福大学「Image Outpainting」论文(论文地址:https://cs230.stanford.edu/projects_spring_2018/posters/8265861.pdf,这是一篇无比惊艳并配有示例说明的论文——这就是大多数研究论文所应有的样子!)的 Keras 实现。你或者能够从头开始建立模型,或者也可使用这个开源项目做者所提供的模型。深度学习历来不会中止给人们带来惊喜。

可视化和理解 GANs

开源地址:https://github.com/CSAILVision/gandissect

若是你至今尚未掌握 GANs,不妨尝试一下这个开源项目。这个项目由麻省理工人工智能实验室(MIT CSAIL)提出,能够帮助研究者可视化和理解 GANs。你能够经过观察或者操做 GAN 模型的神经,来探究它学到了什么。

我建议你能够去查看一下 MIT 项目的官方主页(https://gandissect.csail.mit.edu/),上面有大量的资源(包括视频 demo),可让你对这个概念更加熟悉。

GANimation

开源地址:https://github.com/albertpumarola/GANimation

这个算法可让你改变图像中任何一我的的面部表情,让人欢喜也让人愁。上面在绿框中的图像是原始图像,其他的都是由 GANimation 生成的图像。

开源项目连接中包含了入门指南、数据准备资源、预备知识以及 Python 代码。正如论文做者所提到的,不要将它用于不道德的目的。

英伟达的 FastPhotoStyle

开源地址:https://github.com/NVIDIA/FastPhotoStyle

FastPhotoStyle 这个开源项目跟前面提到的 Deep Painterly Harmonization 很是像。但值得一提的是,它来源于英伟达自己。正如你在上图中所看到的,FastPhotoStyle 算法须要两项输入——一个样式图片和一个内容图片。这个算法以后会在这两项输入的其中一条路径上运行,来产生输出——它或者使用逼真的图像格式化代码,或者使用语义标记地图(semantic label maps)。

其余深度学习开源项目

计算机视觉领域可能让深度学习的其余工做都黯然失色,可是我仍是想列出计算机视觉以外的几个有表明性的开源项目。

英伟达的 WaveGlow

开源地址:https://github.com/NVIDIA/waveglow

音频处理是深度学习开始作出成绩的另外一领域。不局限于生成音乐,你也能够完成音频分类、指纹识别、分割、标注等任务。如今该领域还有不少能够探索的空间,谁知道呢,也许你可使用这些开源项目来走上人生巅峰。

这里有两篇很是直观的文章,能够帮助你熟悉这项开源工做:

《使用深度学习开始进行音频数据分析(附案例研究)》,Getting Started with Audio Data Analysis using Deep Learning (with case study):https://www.analyticsvidhya.com/blog/2017/08/audio-voice-processing-deep-learning/《10 个音频处理任务让你开始深度学习应用(附案例研究)》,10 Audio Processing Tasks to get you started with Deep Learning Applications (with Case Studies):https://www.analyticsvidhya.com/blog/2018/01/10-audio-processing-projects-applications/

从新回到英伟达这里。WaveGlow 是一个基于流的网络,可以生成高质量的音频。本质上,它是一个面向语音合成的单网络。

这个开源项目包括 WaveGlow 的 PyTorch 实现,以及可供下载的预训练模型。同时,研究者也在上面了列下了使用步骤。若是你想从头开始训练本身的模型,能够遵守使用步骤。

AstroNet

开源地址:https://github.com/google-research/exoplanet-ml

想要发现你本身的行星?AstroNet 这个开源项目也许被高估了些,可是确实能让你离梦想更近。2017 年 12 月,「谷歌大脑」团队就经过应用 AstroNet 发现了两个新的行星。AstroNet 是一个专门用来处理天文数据的深度神经网络,它体现了深度学习更普遍的应用,同时也是一个真正的里程碑式的进展。

如今,这项技术的研发团队已经对运行 AstroNet 的整个代码进行了开源(提示:这个模型基于 CNNs!)。

VisualDL – 可视化深度学习模型

开源地址:https://github.com/PaddlePaddle/VisualDL

谁不喜欢可视化?可是想象深度学习模型怎么运行,却是有点吓人。不过 VisualDL 经过设计特定的深度学习任务,能够较好地减轻这些挑战。

针对可视化任务,VisualDL 目前支持如下几个部分:

数量柱状图图像音频图表高维的

天然语言处理(NLP)

很惊讶看到 NLP 排在榜单这么后的位置?这主要是由于我想在本文对几乎全部重要的开源项目盘点一番。在 NLP 以前的那些开源项目,我都大力推荐你们前往查看。在 NLP 部分,我提到的框架包括 ULMFiT、谷歌的 BERT、 ELMo 以及 Facebook 的 PyText。我会简要提一下 BERT 以及几个其余的开源项目,由于我发现它们很是有用。

谷歌的 BERT

开源地址:https://github.com/google-research/bert

NLP 这部分,我就不得不提 BERT 了。谷歌 AI 的这个开源项目为 NLP 领域带来了突破,赢得了 NLP 爱好者以及专家等人的强烈关注。继 ULMFiT 和 ELMo 以后,BERT 以它的性能打败了比赛,在 11 项 NLP 任务中得到最佳成绩。

除了我在上面附上的谷歌开源项目的官方连接,BERT 的 PyTorch 实现(查看地址:https://github.com/huggingface/pytorch-pretrained-BERT)也值得前往一看。至于它是否让 NLP 步入了一个新时代,咱们不久后就会知晓了。

MatchZoo

开源项目:https://github.com/NTMC-Community/MatchZoo

MatchZoo 能帮助你知道模型在某个基准上表现得怎么样。对于 NLP,尤为是深度文本匹配模型,我发现 MatchZoo 工具包很是靠谱。MatchZoo 可应用的其余相关任务包括:

对话问答文本蕴涵信息检索释义识别

MatchZoo 2,0 版本目前还在开发中,所以不妨期待一下这个已经颇有用的工具箱再增长更多新的功能。

NLP Progress

开源地址:https://github.com/sebastianruder/NLP-progress

这个开源项目是由 Sebastian Ruder 一人开发的,其目标是追踪 NLP 领域的最新进展,它包含了数据集和最早进的模型。

任何一项你曾经想进行更过了解的 NLP 技术——如今就有一个摆在你面前的好机会。这个开源项目涵盖了阅读理解以及词性标注等传统和核心的 NLP 任务。即便你只是隐约对这个领域感兴趣,也必定要标星/标记好这个开源项目。

自动的机器学习(AutoML)

2018 年,也是 AutoML 辉煌的一年。随着工业界将机器学习集成到它们的核心工做中,其对数据科学专家的需求也在持续上升。目前,供给和需求间也存在着较大的差距,而 AutoML 工具则有可能填补这个差距。

这些工具为那些缺少数据科学专业知识的人所设计。虽然这些工具以外还有一些其余很好的工具,可是它们大部分的价格都要高得多——大多数我的负担不起。所以,2018 年,咱们这个很棒的开源社区前来支援你们,同时还带来了两个热门的开源项目。

Auto Keras

开源地址:https://github.com/jhfjhfj1/autokeras

几个月前,Auto Keras 一经发布就引发了轰动。而且它必然会引发轰动。长期以来,深度学习被视为一个专业性很是强的领域,因此一个可以自动完成大部分任务的开发库天然颇受欢迎。引用他们官网上的话:「Auto Keras 的最终目标是为仅拥有必定数据科学知识或机器学习背景的行业专家提供可轻松应用的深度学习工具」。

你能够经过下方的种子来安装这个开发库:

这个开源项目还包含了一些简单的示例,可让你了解 Auto Keras 的整个工做流程。

谷歌的 AdaNet

开源地址:https://github.com/tensorflow/adanet

AdaNet 是一个自动学习高质量模型的框架,对编程专业知识没有要求。因为 AdaNet 由谷歌开发,所以这一框架基于 TensorFlow。你可使用 AdaNet 建立全部的模型,同时能够扩展它的应用去训练神经网络。

强化学习

由于我在 2018 年的综述文章中盘点过一些强化学习开源项目,所以这一章节的介绍会至关简单。我但愿在包括 RL 在内的这些章节中,可以促进你们对咱们这个社区的讨论,也但愿能过加速这一领域的研究进程。

首先,你能够先去看一下 OpenAI 的 Spinning Up 开源项目(项目地址:https://github.com/openai/spinningup),它是一个针对初学者的彻底教育型的开源项目。而后能够去看看谷歌的 dopamine 开源项目(项目地址:https://github.com/google/dopamine),它是一个研究框架,用来加速这一仍旧处于初步发展阶段的领域的研究。接下来,让咱们也了解一下其余的开源项目。

DeepMimic

开源地址:https://github.com/xbpeng/DeepMimic

若是你在社交媒体上关注了一些研究者,你必定在视频中看到过上面的图像。一个棍形人在地面上奔跑,或者尝试站起来,或者其余一些动做。亲爱的读者,这些就是(人体)动做中的强化学习。

这里有一个强化学习的标志性示例——训练仿真人形来模仿多个动做技能。上面开源项目的连接页面包括代码、示例以及按部就班的练习指南。

Reinforcement Learning Notebooks

开源地址:https://github.com/Pulkit-Khandelwal/Reinforcement-Learning-Notebooks

这个开源项目是一个强化学习算法集,这些算法来自 Richard Sutton 和 Andrew Barto 所写的书以及其余研究论文,它们在开源项目中以 Python notebooks 的格式呈现。

正如该开源项目的开发者所提到的,若是你在学习的过程当中同时进行实操练习,你就能真正学会它。这个项目比较复杂,若是不进行实操或者仅仅像读小说同样去阅读资源内容,你将一无所得。

via:https://www.analyticsvidhya.com/blog/2018/12/best-data-science-machine-learning-projects-github/ 雷锋网 AI 科技评论编译

相关文章
相关标签/搜索