机器学习是当前最为火爆的话题之一,机器学习的开源项目也层出不穷,让人目不暇接。本文从受欢迎程度方面,对比以及挑选出了去年发布的30个最火的机器学习项目。
下面,让我们一起来看看,2018年究竟有哪些机器学习的开源项目最受开发者的喜爱吧。
FastText
Github代码库:https://github.com/facebookresearch/fastText
Github给星:13,004个(Github平均给星为3,558个)
FastText是由Facebook的AI研究实验室创建的代码库,可以高效地学习词语表示(word representation)和句子分类,还可以将文本转化成连续的向量,供各种语言处理相关的任务使用。FastText由C++编写,但提供了python bindings。
Deep-photo-styletransfer
Github代码库:https://github.com/luanfujun/deep-photo-styletransfer
Github给星:10,333个
Deep-photo-styletransfer的创建者是康纳尔大学的Fujun Luan。它可以将原始图像转换为指定的风格,比如把白天的风景转换成夜景等,并在现有的图像风格转换(photographc style transfer)的基础上深入一步,生成的图像非常接近真实的照片。如果想要深入了解详细信息,可以查看相关的论文:https://arxiv.org/pdf/1703.07511.pdf 。
Face_recognition
Github代码库:https://github.com/ageitgey/face_recognition
Github给星:11,554个
Face_recognition号称是“世界上最简单的面部识别API”,可以通过Python或命令行调用。该项目基于dlib的面部识别,在LFW数据集(Labeled Faces in the Wild,该数据集包含一万三千多张来源于互联网的人脸图像,并且全部标注了人名。详见http://vis-www.cs.umass.edu/lfw/)上达到了99.38%的准确率。
Magenta
Github代码库:https://github.com/tensorflow/magenta
Github给星:9,030个
Magenta是Google Brain团队的研究员们发起的一个研究项目,目的是探索利用机器学习生成美术和音乐作品。它的深度学习和强化学习算法可以生成歌曲、图像、绘画和其他作品。
Sonnet
Github代码库:https://github.com/deepmind/sonnet
Github给星:6,205个
Sonnet是个基于TensorFlow的库,可以帮助你建立复杂的神经网络。该项目由Deepmind的Malcolm Reynolds创建。
Deeplearn
Github代码库:https://github.com/PAIR-code/deeplearnjs
Github给星:6,589个
deeplearn.js是个开源的JavaScript机器学习框架,支持硬件加速。通过它可以在浏览器里直接训练神经网络模型,或利用训练好的模型进行预测。它也是由Google Brain PAIR团队发起的项目。
Fast Style Transfer in TensorFlow
Github代码库:https://github.com/lengstrom/fast-style-transfer
Github给星:5,556个
该项目基于TesnorFlow,可以快速地转换任何图像的风格。据该项目自己的测试,在2015 Titan X显卡上将一幅MIT Stata Center的照片(1024x680)转换成弗朗西斯·毕卡比亚(Francis Picabia)的油画《Udnie》的风格只需要100毫秒。其速度之快甚至可以逐帧转换视频并合成一个可以播放的视频。该项目由麻省理工大学的Logan Engstrom创建。
Pysc2
Github代码库:https://github.com/deepmind/pysc2
Github给星:4,238个
Pysc2的全称是“星际争霸2学习环境”(StarCraft II Learning Environment),它把暴雪的“星际争霸2机器学习API”(https://github.com/Blizzard/s2client-proto)包装成Python强化学习环境,以便进行深度学习的研究。该项目由DeepMind的Timo Ewalds创建。
AirSim
Github代码库:https://github.com/Microsoft/AirSim
Github给星:4,483个
AirSim是微软AI研究部门创建的模拟器,用于模拟无人机、汽车等驾驶环境。基于Unreal引擎,可以作为插件在任何Unreal环境下运行。它还支持硬件控制,你可以利用手头的无人机手柄、汽车方向盘等像玩游戏一样控制模拟器里的无人机和汽车。作为一个AI研究平台,它也提供了获取数据和控制无人机和汽车的API,人们可以通过这些API自动生成训练数据,并在其中实验各种深度学习、强化学习、计算机视觉等算法。
Facets
Github代码库:https://github.com/PAIR-code/facets
Github给星:3,962个
Facets可以将机器学习数据集可视化,以方便分析和研究。它是个Ploymer组件,因此可以很容易集成到Jupyter notebooks中或者网页上。
Facets包含两部分:Facets Overview和Facets Dive。前者能够以可视化的方式按照特征展示数据集的统计分析,还能够比较多个数据集之间的统计情况。支持数字特征和字符串特征。利用Facets Overview可以方便地发现数据集中的问题,如非法特征值、特征值丢失、训练数据或测试数据的倾向性等。而Facets Dive则可以用交互方式展示最多一万个数据点,用户可以自由地选择数据点的特征以对数据点进行分类。
Style2Paints
Github代码库:https://github.com/lllyasviel/style2paints
Github给星:3,888个
Style2Paints基于TesnorFlow,可以根据给出的样例给素描线稿上色,甚至可以不参照任何样例自行决定上色方案。
Tensor2Tensor
Github代码库:https://github.com/tensorflow/tensor2tensor
Github给星:3,508个
Tensor2Tensor是一组深度学习模型和数据集的集合,旨在让人们更方便地使用深度学习,并能够更快速地进行深度学习的研究。该项目由Google Brain团队的研究员和工程师以及许多社区用户进行维护。
该项目的主页上还提供了一个iPython notebook,运行在Google的虚拟机上,因此无需安装就可以亲身体验一下。
Image-to-image translation in PyTorch
Github代码库:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix
Github给星:3,486个
这个项目是PyTorch版的CycleGAN。CycleGAN利用对抗式生成网络实现图像到图像的转换,例如将莫奈、梵高的油画转换成风景照片,将夏季的照片转换成冬季,将照片中的苹果转换成橙子等。作者的网站上有更为详细的介绍(https://junyanz.github.io/CycleGAN/)。
Faiss
Github代码库:https://github.com/facebookresearch/faiss
Github给星:3,254个
Faiss是Facebbok AI Research开发的一套函数库。它可以有效地实现相似搜索和稠密向量的聚类。它包含的算法可以有效地搜索任何大小的向量集合,甚至是比内存还大的集合。它还包含一些用于评价和调参的辅助函数。Faiss基于C++实现,带有Python/numpy的wrapper。
Fashion-mnist
Github代码库:https://github.com/zalandoresearch/fashion-mnist
Github给星:3,121个
Fashion-MNIST是一个类MNIST的数据集。它包含的不是手写数字的图片,而是一组时尚图片,包括裙子、西服、衬衣、鞋子等。图片尺寸为28x28,包含60000个训练数据和10000个测试数据,甚至连文件命名和打包方式都与MNIST完全一致,因此MNIST的代码可以原封不动地转移到Fashion-MNIST上运行。
由于原始的MNIST手写数字数据集就像Hello, World已成为AI、机器学习和数据科学领域事实上的标准测试数据,被广泛地用来测试各种算法。但问题是由于MNIST过于简单,许多在MNIST上运行良好的算法实际上并不能在其他数据上获得满意的结果。因此作者创建了这套以时尚为主题的数据集来代替原始的手写数字。
ParlAI
Github代码库:https://github.com/facebookresearch/ParlAI
Github给星:2,955个
ParlAI是个Python的对话模型研究框架。它的目标是为研究者提供一套统一的框架以便分享、训练和测试对话模型,并“一站式”地提供许多流行的数据集,方便研究者撰写各种算法;还提供了与Amazon Mechanical Turk的无缝集成,方便对数据集进行人工验证。目前支持20多个常见任务,包含SQuAD、bAbI tasks、MS MARCO、MCTest等流行的数据集。
Fairseq
Github代码库:https://github.com/facebookresearch/fairseq
Github给星:2,750个
Fairseq由Facebook AI Research创建,是个基于Tourch序列到序列(sequence-to-sequence)的学习工具集。它实现了卷积NMT模型,以及标准的基于LSTM的模型。
如果希望使用PyTorch,可以使用fairseq-py项目(https://github.com/facebookresearch/fairseq-py)。
Pyro
Github代码库:https://github.com/uber/pyro
Github给星:2,994个
Pyro是个灵活、可扩展的深度概率编程库,基于PyTorch。它的特点有:
通用:Pyro是个通用的概率编程库,可以表示任何可计算的概率分布;
可扩展:Pyro可以扩展到大型数据集,而带来的额外开销与手写代码相差无几;
最小化:Pyro非常小巧,便于维护。它的内核由一组强大、可互相组合的抽象组成;
灵活:Pyro会根据你的需要提供自动化或控制。它为生成式和推断式模型提供了高层抽象,同时也为高级用户提供了易于使用的接口。
iGAN
Github代码库:https://github.com/junyanz/iGAN
Github给星:2,607个
iGAN全称是“通过生成式对抗网络进行交互式图像生成”,是UC伯克利和Adobe CTL开发的一个研究实验项目。只需寥寥勾勒几笔,iGAN就可以根据用户的描绘实时生成媲美照片的图像。它可以用于实现能根据用户的颜色和形状提示自动生成图像的智能绘图程序,也可以作为可视化调试工具,帮助理解和调试深度生成模型。
Deep-image-prior
Github代码库:https://github.com/DmitryUlyanov/deep-image-prior
Github给星:2,693个
Deep Image Prior利用深度卷积网络来实现一些常见的图像逆操作,如去噪、提高分辨率、图像修复等。
Face_classification
Github代码库:https://github.com/oarriaga/face_classification
Github给星:2,392个
这是个实时面部检测的模型,还能对表情、性别进行分类。基于keras CNN模型和openCV实现,在IMDB数据集上进行性别分类的测试准确率为96%,fer2013数据集上的表情分类测试准确率为66%。
Speech-to-Text-WaveNet
Github代码库:https://github.com/buriburisuri/speech-to-text-wavenet
Github给星:2,222个
Speech-to-Text-WaveNet是个利用TensorFlow实现语音识别的项目,基于DeepMind的WaveNet(https://arxiv.org/abs/1609.03499)。与ibab、tomlepaine等WaveNet的实现不同,该项目实现了从语音转换成文字。
StarGAN
Github代码库:https://github.com/yunjey/StarGAN
Github给星:2,247个
StarGAN的全称是“用联合生成式对抗网络实现多领域的图想到图像转换”(https://arxiv.org/pdf/1711.09020.pdf),通过单一的模型实现多种图像转换功能,例如转换人物的发色、性别、年龄、肤色,甚至表情等。
Ml-agents
Github代码库:https://github.com/Unity-Technologies/ml-agents
Github给星:2,252个
Unity ML Agents可以让研究者和开发者利用Unity Editor创建游戏或模拟作为训练环境,利用强化学习、神经进化或其他机器学习算法来训练AI。它还提供了简单易用的Python API。
DeepVideoAnalytics
Github代码库:https://github.com/AKSHAYUBHAT/DeepVideoAnalytics
Github给星:1,757个
Deep Video Analytics是个视频分析平台,能够从视频和图像中抽取并索引信息。可以用于视频搜索、视频识别检测、OCR等。
OpenNMT
Github代码库:https://github.com/OpenNMT/OpenNMT
Github给星:1,621个
OpenNMT是个开源的神经网络机器翻译系统,用Torch实现。其设计目标是简单易用、易于扩展,同时保证效率和一流的翻译准确性。它的特点有:
专门为高性能GPU上的训练进行了速度优化和内存优化;
简单易用的通用接口,只需要提供源数据和目标数据文件;
翻译器用C++实现,易于部署;
支持扩展,以实现其他序列生成的任务,如文本总结、图像标注等。
Pix2pixHD
Github代码库:https://github.com/NVIDIA/pix2pixHD
Github给星:1,648个
Pix2PixHD是高清照片级图像转换(https://arxiv.org/pdf/1711.11585.pdf)的pytorch实现。它可以将标签图转换成照片级别的图像,或根据面部标签图合成人物肖像。
Horovod
Github代码库:https://github.com/uber/horovod
Github给星:1,699个
Horovod是个TensorFlow的分布式训练框架,其目标是加速分布式深度学习的过程,并使其更容易使用。根据项目网站提供的数据,Horovod比官方的Distributed TensorFlow有显著的性能提高,在使用128个GPU时甚至能达到Distributed TensorFlow两倍的速度,几乎接近理论上限。
AI-Blocks
Github代码库:https://github.com/MrNothing/AI-Blocks
Github给星:1,185个
AI-Blocks是款强大的所见即所得工具,任何人都可以利用它轻松地建立机器学习模型。
deep-voice-conversion
Github代码库:https://github.com/andabi/deep-voice-conversion
Github给星:1,197个
前面介绍了许多图像风格转换的项目,而这个项目是利用深度神经网络对声音进行风格转换。虽然还不完善,但该项目已经实现了将任意声音转换为凯特·温斯莱特的声音。
原文:30 Amazing Machine Learning Projects for the Past Year
链接:https://medium.mybridge.co/30-amazing-machine-learning-projects-for-the-past-year-v-2018-b853b8621ac7
编译:马晶慧
责编:言则