2018年度盘点:机器学习开源项目及框架(附链接)
【新智元导读】2018年马上就要结束了,我们来回顾一下过去的这一年中,机器学习领域有哪些有趣的事情吧!
我们先来看看Mybridge AI 中排名靠前的顶级开源项目,再聊聊机器学习今年都有哪些发展,最后探寻下新的一年中会有哪些有值得我们期待的事情。
顶级的开源项目
BERT
BERT,全称为Bidirectional Encoder Representations from Transformers,是一种基于TensorFlow解决自然语言处理的新方法,且性能更好。我们可以使用BERT中的 预训练模型解决问题,该模型在性能上具有很大优势,比如可以识别句子中的上下文。在Github中非常受欢迎,有8848个星,完整学术论文请访问这里。
https://github.com/google-research/bert
https://arxiv.org/abs/1810.04805
DeepCreamPy
DeepCreamPy是一个深度学习工具,可以像Photoshop一样重建图像中被删除的区域。我们使用图像编辑工具(比如PS)将删减的区域填充为绿色,神经网络可以对其进行复原。该项目在Github中有6365颗星。
https://github.com/deeppomf/DeepCreamPy
TRFL
TRFL项目可用于编写TensorFlow中的强化学习代理,具体的操作文档在这里。
https://github.com/deepmind
https://github.com/deepmind/trfl/blob/master/docs/index.md
Horizon
Horizon是一个基于PyTorch构建的强化学习平台,并使用Caffe2为模型提供服务。Horizon的主要优势在于,设计者在设计这一平台的时候,考虑了生产用例。想要了解更多详细内容,请查看FacebookResearch官方文档。另外,如果你想使用Horizon,可查看该使用文档。
https://github.com/facebookresearch/Horizon?
https://heartbeat.fritz.ai/introduction-to-pytorch-for-deep-learning-5b437cea90ac
https://github.com/facebookresearch/Horizon/blob/master/docs/usage.md
DeOldify
DeOldify是一个用于着色和恢复旧图像的深度学习库。开发者结合了几种不同的方法,来实现这一目标,其中的几种方法包括:带自注意力机制的生成对抗网络(Self-Attention GenerativeAdversarial Networks),Progressive Growing of GANs,以及TTUR( TwoTime-Scale Update Rule)。
https://github.com/jantic/DeOldify
https://arxiv.org/abs/1805.08318
https://arxiv.org/abs/1710.10196
https://arxiv.org/abs/1706.08500
AdaNet
AdaNet是一个基于TensorFlow的库,它可以自动学习模型,且不需要很多的技术人员参与,该项目基于AdaNet算法。访问AdaNet的官方文档,请点击这里。
https://github.com/tensorflow/adanet
http://proceedings.mlr.press/v70/cortes17a.html
https://adanet.readthedocs.io/
Graph Nets
Graph Nets是用于构建Sonnet和TensorFlow的DeepMind库。Graph 网络输入一个图形,输出也是一个图形。
https://github.com/deepmind/graph_nets
Maskrcnn-benchmark
Maskrcnn-benchmark项目可以帮助我们在Pytorch中构建对象检测和分割工具。这个库的优势在于速度快、内存效率高,可以进行多个GPU训练和推断,且为推断提供CPU支持。
https://github.com/facebookresearch/maskrcnn-benchmark
PocketFlow
PocketFlow项目是一个加速和压缩深度学习模型的框架。它解决了大多数深度学习模型的计算费用问题。该项目最初由腾讯AI实验室的研究人员开发,了解其实现及官方文档请点击这里。
https://github.com/Tencent/PocketFlow
https://pocketflow.github.io/
MAMEToolkit
MAMEToolKit是一个训练街机游戏强化学习算法的库,使用该工具可以跟踪游戏状态,同时也可以接收游戏帧数据。
https://github.com/M-J-Murray/MAMEToolkit
机器学习框架的主要发展
PyTorch 1.0
在今年10月份举办的PyTorch会议期间,Facebook发布了PyTorch 1.0预览版。PyTorch 1.0解决了以下问题:训练耗时长、联网问题、缓慢的可扩展性以及Python编程语言带来的一些不灵活性。
PyTorch 1.0引入了一组编译工具Torch.jit,这将弥补生产和研究之间的差距。Torch.jit中包含Python中的Torch Script语言,在PyTorch 1.0中,我们可以使用图形模式构建模型,这在开发高性能和低延迟的应用程序中非常有用。
Auto-Keras
你或许听过自动化机器学习(automated machine learning),即自动化搜索机器学习模型的最佳参数。除Auto-Keras之外,还有其他的自动化机器学习模型,比如Google的AutoML。Auto-Keras是基于Keras和ENAS编写的,其中,ENAS是神经网络结构搜索的最新版本。
https://cloud.google.com/automl/
https://autokeras.com/
https://keras.io/
https://arxiv.org/abs/1802.03268
https://en.wikipedia.org/wiki/Neural_architecture_search
TensorFlow Serving
使用TensorFlow Serving系统,我们能更加轻松的将TensorFlow模型部署到生产环境中。虽然TensorFlow Serving在2017年就已经发布,但是今年更加注重将模型应用到生产环境环节。
https://www.tensorflow.org/serving/
Machine Learning Javascript
现在已经有一些可以允许开发人员在浏览器上运行模型的Javascript框架,比如TensorFlow.js和Keras.js。其模型实现与使用的方法,与Keras或TensorFlow等常规框架非常相似。
https://js.tensorflow.org/
https://github.com/transcranial/keras-js
展望未来
2019年马上就要到了,随着Auto-Keras等自动化工具的发展,开发人员的工作有望变得更加轻松。除此以外,我们还拥有先进的研究以及优秀的社区,各类机器学习框架的性能还会更上一层楼。