这25个开源机器学习项目,一般人我不告诉Ta
本文为 AI 研习社编译的技术博客,原标题 :
25 Open-Source Machine Learning Repos to Inspire Your Next Project
作者 Khoa Pham
翻译 狒狒 校对 姚秀清 整理 菠萝妹
很有启发性的 25 个开源机器学习项目
在过去几年中,机器学习开辟了很多新的领域,出现了很多高级应用案例:Facebook 的脸部识别、Netflix 的电影推荐、PrimaAI 的图像风格转移、Siri 的语音识别、Google Allo 的自然语言处理等等。
除了这些用例之外,GitHub 上还有大量优秀的开源机器学习项目。以下列出了目前最受欢迎的项目。希望读者能从中学到新东西,并受到启发。
TensorFlow 是一个用于研究和生产的开源机器学习库。TensorFlow 为初学者和专家提供了用于桌面、移动、web 和云开发的 API 接口。
TensorFlow 最初由谷歌大脑团队开发,用于内部使用,2015 年 11 月 9 日 TensorFlow 根据 Apache 2.0 开源许可协议进行正式对外发布。
最新版本的 TensorFlow 支持 Keras,这是一种高级神经网络 API,用 Python 编写,能够基于 TensorFlow、CNTK 或 Theano 运行。还有支持 Javascript 和 Swift 的接口。
Scikit-learn 最初是由 David Cournapeau 在夏季谷歌代码活动上编写的。它的名字或多或少参考了 SciPy 工具包。Scikit-learn 拥有基于 NumPy、SciPy 和 Matplotlib 的简单高效的数据挖掘和数据分析工具。因为它简单易用,所以经常与 TensorFlow 一起配合使用。
除了 TensorFlow、Keras 和 Scikit-learn 之外,还有来自 Apache 的 MXNet 深度学习框架。 它是为效率和灵活性而设计的——它允许您混合使用符号和指令式编程来最大化效率和生产力。可以访问它的模型社区获取更多采用 MXNet 的模型。
如果没有提到 PyTorch,这个列表就不完整了,PyTorch 是机器学习爱好者的另一个流行选择。 PyTorch 基于 Torch,由 Facebook 作为机器学习的框架而分发。 PyTorch 是一个 Python 包,它提供了两个高级特性:带强 GPU 加速的张量计算(比如 NumPy)和基于 tape 的 autograd 系统的深层神经网络。
https://twitter.com/pytorch/status/966324198758006784
Magenta 是一个研究项目,探索机器学习在艺术和音乐创作过程中的作用。 这主要涉及开发新的深度学习和增强学习算法,以生成歌曲、图像、绘图和其他材料。 但这也是在构建智能工具和接口方面的探索,这些工具和接口允许艺术家和音乐家使用这些模型扩展(而不是替换!)他们的创作过程。
主要的 repo 采用 Python 语言,但针对 Javascript 语言也有 magenta.js。 在展示先进的机器学习应用方面,Magenta 是一个完美的项目。我们大多数人从未想到过。若对 Magenta 感兴趣,可以使用声音和绘图生成器来查看一些演示。
这个项目旨在给线条艺术着色。人工智能可以根据给定的颜色风格在草图上作画,创建自己的颜色风格并在草图上作画,或者转移另一个插图的风格。
有一些新的功能,如图像锚和图像转换,值得一看。
Image-to-image translation in PyTorch
这个项目有两个组件——cyclegan 和 pix2pix,它们包含用于非成对和成对图像到图像转换的 PyTorch 实现。一开始,它看起来像另一个相当普通的风格转换的解决方案,但它可以做一些不同的事情,比如把一匹马转换成斑马,或者把现场照片转换成莫奈风格的画作。这个过程足够快,可以在视频直播中使用。
我们有一些用于图像和视频的样式转换工具,那么声音呢?深度语音对话就是这种能力的一个完美案例。
如果你能模仿一位名人的声音或者像一位著名歌手那样唱歌呢?这个项目一开始的目标是将某人的声音转换为特定的目标声音。这就是所谓的语音风格转换。我们致力于这个项目,旨在将某人的声音转换为著名的英国女演员凯特温斯莱特的声音。我们实现了一个深度神经网络来实现这一点,并且使用了超过 2 小时的由 Kate Winslet 朗读的有声书读物作为数据集。
如果你还不相信,那就去 SoundCloud,有很多 Kate Winslet 声音的 Demo。
StarGAN 是这篇论文的一个 PyTorch 实现: 多区域图像到图像转换的统一生成对抗性网络。
它超越了样式转换,通过应用不同的发型、皮肤类型、年龄、性别和不同的情绪来转换源图像。非常棒。
这听起来可能并不有趣,因为现在我们可以很容易地在 iOS 和 Android 上使用 Core ML 或 ML Kit。但更深入的观察显示这是多么的棒。它不仅能识别人脸,还能识别情绪和性别。
实时人脸检测和情感/性别分类使用 fer2013/IMDB 数据集与 Keras CNN 模型和 OpenCV。
Deep universal probabilistic programming
Uber AI Labs 建立了这个深度概率软件库,以帮助简化其交通服务的预测和优化。这个库对于任何处理概率建模的人来说都很有兴趣。
机会范围从匹配乘客与司机,建议最佳路线,并到找到合理的资源池组合,甚至是创造下一代智能汽车。为了解决这些挑战,我们将最先进的人工智能(AI)技术与拥有丰富专业知识的数据科学家、工程师和其他用户相结合。我们正在探索一种工具优先的方法,使我们和其他人能够创造出下一代人工智能解决方案。
作为 Facebook 研究项目的一部分,ParlAI 是一个框架,用于训练和评估各种基于公开可用对话数据集的人工智能模型。ParlAI 使得研究人员可以访问许多流行的数据集,同时拥有一个统一的框架来共享和测试对话模型。你可以在这里阅读更多关于 ParlAI 的内容。
facet 是可视化机器学习数据集的工具。
可视化实现为 Polymer web 组件,由 Typescript 代码支持,可以很容易地嵌入到 Jupyter 笔记本或网页中。
可视化的关键方面是跨多个数据集的离群点检测和分布比较。有趣的值(例如高比例的缺失数据,或者跨多个数据集的不同特性分布)用红色突出显示。
ELF 是一个使用 AlphaGoZero/AlphaZero 重新实现的游戏研究平台。ELF 为游戏研究提供了端到端解决方案。它包括小型实时战略游戏环境、并发模拟、基于数千台机器的分布式训练、直观的 api、基于 web 的可视化以及一个由 PyTorch 提供支持的强化学习框架。
Detectron 是 Facebook AI 研究部门的软件系统,它实现了最先进的目标检测算法,包括 Mask R-CNN。它是用 Python 编写的,并由 Caffe2 深度学习框架提供支持。
采用 TensorFlow CNN 实现,这可能是图像风格转换的最好例子之一,正如它的名字所暗示的,它的运行非常快。实现了基于 Gatys 艺术风格的神经算法,Johnson 对实时风格转换和超分辨率的感知损失,以及 Ulyanov 的实例规范化。
这个工具为面部识别提供了简单的 api。它能发现面部特征,并能猜出照片中的人是谁。
使用 dlib 最先进的面部识别技术进行深度学习。该模型对自然环境中被标记的人脸的测试准确率为 99.38%。 也提供了一个简单的命令来进行执行面部识别。
face_recognition
命令行工具,允许您从命令行对图像文件夹进行面部识别!
另一个极好的风格转换项目。这个 repo 包含代码和一篇研究论文:深度照片风格变换。它提供了简单的 api 来处理合并样式和源图像。令人印象非常深刻的照片风格变换。
fastText 是一种高效学习词汇表示和句子分类的库。
为了更好地了解这个项目,可以查看他们的文本分类教程,该教程展示了如何在监督学习中使用这个库。文本分类的目的是将文档(如电子邮件、帖子、短信、产品评论等)分配给一个或多个类别。
AirSim 是一个基于虚幻引擎来模拟无人机、汽车的应用。它是开源的,跨平台的,它支持流行的飞行控制器硬件,如 PX4 用于物理和视觉的仿真。它是一个虚拟插件,可以简单地放到任何你想要的不真实的环境中。
机器学习能做的比我们想象的更多。 Deep Image Prior ,它采用神经网络修复图像——但不需要学习。
这个工具可以恢复带有刮痕,坏点,或不需要的文本标记损坏的图像。
Open Pose 是第一个实时多人系统,可以在单个图像上同时检测人体、手、面部和脚的关键点(总共 135 个关键点)。它能探测到脚、身体、脸和手。
PirateAI 在模拟环境(岛屿)中训练自主个体(海盗)。 这个程序运行一个训练管道,在游戏(寻找宝藏)和模型训练(Keras + hyperopt)之间交替进行。
与这个列表中的许多项目相比,这是相当简单的,但是它是学习神经网络如何工作的一个很好的起点。 这个实现是纯 Swift 的,没有使用任何库,而且很容易模仿。
Deep Exemplar-Based Colorization
Deep Exemplar-Based Colorization 是基于范例进行局部着色的第一个深度学习方法。 给定一个参考的彩色图像,我们的卷积神经网络直接将灰度图像转换成彩色图像输出。 这是论文“基于深度范例的色彩化”的应用。
谢谢你浏览这个列表。我希望你已经找到了一些能激励和吸引你的东西。相对而言,机器学习刚刚起步,所以未来肯定会有更多有趣的新项目。这里有更多的资源供进一步探索:
-
GitHub Machine Learning Collection: 每天都能发现热门机器学习项目
-
Awesome machine learning: 有一个关于所有事情的“令人惊讶的列表”——这个列表以机器学习为中心,它的管理令人印象深刻。
-
Fantastic machine learning: 这个列表主要是关于 ML 相关的核心项目。