本文为 AI 研习社编译的技术博客,原标题 : 25 Open-Source Machine Learning Repos to Inspire Your Next Project 作者 | Khoa Pham 翻译 | 狒狒 校对 | 姚秀清 整理 | 菠萝妹 原文链接: https://heartbeat.fritz.ai/25-open-source-machine-learning-repos-to-inspire-your-next-project-3b027a90155 注:本文的相关链接请点击文末【阅读原文】进行访问
很有启发性的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感兴趣,可以使用声音和绘图生成器来查看一些演示。
这个项目旨在给线条艺术着色。人工智能可以根据给定的颜色风格在草图上作画,创建自己的颜色风格并在草图上作画,或者转移另一个插图的风格。
有一些新的功能,如图像锚和图像转换,值得一看。
这个项目有两个组件——cyclegan和pix2pix,它们包含用于非成对和成对图像到图像转换的PyTorch实现。一开始,它看起来像另一个相当普通的风格转换的解决方案,但它可以做一些不同的事情,比如把一匹马转换成斑马,或者把现场照片转换成莫奈风格的画作。这个过程足够快,可以在视频直播中使用。
我们有一些用于图像和视频的样式转换工具,那么声音呢?深度语音对话就是这种能力的一个完美案例。
如果你能模仿一位名人的声音或者像一位著名歌手那样唱歌呢?这个项目一开始的目标是将某人的声音转换为特定的目标声音。这就是所谓的语音风格转换。我们致力于这个项目,旨在将某人的声音转换为著名的英国女演员凯特温斯莱特的声音。我们实现了一个深度神经网络来实现这一点,并且使用了超过2小时的由Kate Winslet朗读的有声书读物作为数据集。
如果你还不相信,那就去SoundCloud,有很多Kate Winslet声音的Demo。
StarGAN是这篇论文的一个PyTorch实现: 多区域图像到图像转换的统一生成对抗性网络。
它超越了样式转换,通过应用不同的发型、皮肤类型、年龄、性别和不同的情绪来转换源图像。非常棒。
这听起来可能并不有趣,因为现在我们可以很容易地在iOS和Android上使用Core ML或ML Kit。但更深入的观察显示这是多么的棒。它不仅能识别人脸,还能识别情绪和性别。
实时人脸检测和情感/性别分类使用fer2013/IMDB数据集与Keras CNN模型和OpenCV。
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 是基于范例进行局部着色的第一个深度学习方法。 给定一个参考的彩色图像,我们的卷积神经网络直接将灰度图像转换成彩色图像输出。 这是论文“基于深度范例的色彩化”的应用。
谢谢你浏览这个列表。我希望你已经找到了一些能激励和吸引你的东西。相对而言,机器学习刚刚起步,所以未来肯定会有更多有趣的新项目。这里有更多的资源供进一步探索: