人工智能领域经常使用的开源框架和库(含机器学习/深度学习/强化学习/知识图谱/图神经网络)

【说在前面】本人博客新手一枚,象牙塔的老白,职业场的小白。如下内容仅为我的看法,欢迎批评指正,不喜勿喷![认真看图][认真看图]html

【补充说明】本文主要讨论人工智能领域中经常使用的支持 Python 编程语言的开源框架和库,所以全面性确定有限!node

1、机器学习经常使用的开源框架和库

1. Scikit-learn

做为专门面向机器学习的 Python 开源框架,Scikit-learn 内部实现了多种机器学习算法,容易安装和使用,样例丰富。python

2. Mahout

在大数据分布式框架 Hadoop 下使用,包含了机器学习中经常使用的算法(含推荐算法)。面试

3. MLlib / spark.ml

在大数据分布式框架 Spark 下使用,一样包含了机器学习中经常使用的算法,可采用 Java / Sacala / Python / R 语言做为编程语言。算法

4. 其余

例如针对计算机视觉的 SimpleCV、针对天然语言处理的 NLTK 等,这里再也不拓展。编程

2、深度学习经常使用的开源框架和库

1. TensorFlow

由 Google Brain 团队开发,可以实现各类深度神经网络的搭建。为初学者和专家提供了各类 API,以便对桌面、移动终端、Web和云进行开发。可是,计算图必须构建为静态图,这让不少计算变得难以实现,尤为是序列预测中常用的 beam search。网络

2. Keras

由 Python 编写的高级神经网络 API,至关于 Tensorflow、Theano、 CNTK 的上层接口。强调极简主义,下降了编程和阅读别人代码时的理解开销, 目前封装有全链接网络、CNN、RNN 和 LSTM 等算法。可是,封装得过高级,细节很难修改,没法直接使用多 GPU。框架

3. PyTorch

由 Facebook 团队基于 Torch 开发的深度学习框架。与 TensorFlow 不一样的是,PyTorch 是基于动态图的,目前也很是火热。机器学习

4. Caffe

在 TensorFlow 出现以前,一直是深度学习领域 Github star 最多的项目。Caffe 的优点在于容易上手(网络结构都是以配置文件形式定义,不须要用代码设计网络)、训练速度快(组件模块化,能够方便的拓展到新的模型和学习任务上)。可是,Caffe 很差安装,且最开始设计时的目标只针对于图像,所以对 CNN 的支持很是好(例如 AlexNet、VGG、Inception 等),可是对 RNN、LSTM 等的支持不是特别充分。编程语言

5. 其余

例如百度提出的深度学习框架 PaddlePaddle、华为最新开源的深度学习框架 MindSpore 等,这里再也不拓展。

3、强化学习经常使用的开源框架和库

1. OpenAI Gym

提供了很是多的虚拟环境,具体强化学习算法的代码须要本身来写,能够很好验证强化学习算法,众多强化学习环境都为其提供接口。

2. OpenAI Baseline

基于 Tensorflow 和 OpenAI Gym 开发的,封装了许多强化学习算法(例如 DQN / PPO / TRPO / DDPG 等)。可是,代码规范性很差。

3. RLlib

支持 TensorFlow 和 PyTorch,可经过简单的 Python API 使用,目前附带了许多流行的RL算法。

4. Horizon

Facebook基于 PyTorch、Caffe 和 Spark 构建的强化学习框架,是首个使用应用强化学习在大规模生产环境中优化系统的端到端开源平台。

5. 天授:最近了解的,应该比较新吧

清华大学人工智能研究院自研的深度强化学习算法平台,支持 TensorFlow 和 PyTorch。能够完整支持 PG、DQN、DDQN、A2C、DDPG、PPO、TD三、SAC 等主流强化学习算法。对比既有主流强化学习平台,大佬给出了天授的性能对比图:

将来大佬团队将从三个维度拓展“天授”平台,算法层面将更加全面支持地支持主流强化学习算法(包括 model-based RL, imitation learning 等),任务层面将进一步支持包括 Atari、VizDoom 等复杂任务,性能层面将进一步提高平台在模型性能、训练速度、鲁棒性等方面的核心指标,更好的为学术界服务。

6. 其余

例如知乎有人提到的 tf-agents(与工业紧密链接)、tensorlayer、百度 PaddlePaddle 发布的 PARL 等,这里再也不拓展。

4、图神经网络经常使用的开源框架和库

1. 四大图神经网络框架

  • deep graph library (DGL):支持 pytorch、tensorflow
  • pytorch geometric (PyG):基于 pytorch
  • ant graph machine learning system:蚂蚁金服团队推出的大规模图机器学习系统
  • tf_geometric:借鉴 pytorch geometric,建立了 tensorflow 版本

2. CogDL :最近了解的,应该比较新吧

清华大学知识工程研究室推出了一个大规模图表示学习工具包 CogDL,可让研究者和开发者更加方便地训练和对比用于节点分类、链路预测以及其余图任务的基准或定制模型。该工具包采用 PyTorch 实现,集成了Deepwalk、LINE、node2vec、GraRep、NetMF、NetSMF、ProNE 等非图神经网络和GCN、GAT、GraphSage、DrGCN、NSGCN、GraphSGAN 等图神经网络模型基准模型的实现。

与其余图表示学习工具包相比,CogDL 具备如下特色:

  • 稀疏性:在具备数千万节点的大规模网络上实现快速网络嵌入。
  • 任意性:可以处理属性化、多路和异构等不一样图结构的网络。
  • 并行处理:在多个 GPU 上实现不一样种子和模型的并行训练并自动输出结果表格。
  • 可扩展性:轻松添加新的数据集、模型和任务并在全部现有的模型/数据集上测试。

3. Graph-Learn(原 AliGraph ):一个工业级的图神经网络平台

阿里巴巴提出的 AliGraph 涵盖了从原始图数据到 GNN 应用的总体链路。根据阿里巴巴的介绍:

系统层面:

  • 数据种类:支持同构图、异构图、属性图,有向图、无向图,可方便与任意分布式文件系统对接。
  • 数据规模:支持千亿级边、十亿级顶点的超大规模图(原始存储TB级)。
  • 算子种类:支持几十种可与深度学习相结合的图查询、采样算子,支持向量检索,支持算子按需自定义。
  • 性能指标:支持分钟级超大规模图构建,毫秒级多跳异构图采样,毫秒级大规模向量检索。
  • 用户接口:纯 Python 接口,与 TensorFlow 构成一体化 IDE,开发成本相比通常TF模型无异。

算法层面:

  • 已支持业界主流的 Graph Embedding 算法,包括:DeepWalk、Node2Vec、GraphSAGE、GATNE等。

4. 其余

图神经网络研究者和工业界在 Github 上开源了不少算法的具体实现及其框架,包括GCN、GAT、Graph Nets框架等,这里再也不拓展。

5、知识图谱经常使用的开源框架和库

1. 开源的知识库 

主要包括WikiData、DBPedia、WordNet、YAGO、ConceptGraph、BabelNet、CN-DBPeidia、OpenKG 等,这里再也不拓展。

2. 开源的构建工具

斯坦福大学医学院生物信息研究中心提出的Protege是基于Java语言开发的本体编辑和知识获取软件。Protege提供本体概念类、关系、属性和实例的构建,不基于具体的本体描述语言,所以用户能够在概念层次上构建领域本体模型。除了Protege,还有其余应用于知识图谱构建的开源软件,并且完整的知识图谱构建还包括知识的存储、知识融合等。我想后续单独写一个专题来介绍知识图谱的构建问题,这里再也不拓展。

3. DGL-KE:亚马逊提出的知识图谱嵌入表示框架

亚马逊 AI 团队继 DGL 以后,又开源了一款专门针对大规模知识图谱嵌入表示的新训练框架 DGL-KE,旨在能让研究人员和工业界用户方便、快速地在大规模知识图谱数据集上进行机器学习训练任务。相比于已有的开源框架,DGL-KE 的亮点以下:

  • 支持各类主流知识图谱表示学习算法,包括 TransE、ComplEx、DistMult、TransR、RESCAL、RotatE 等。
  • 已有开源框架中惟一支持多核 CPU,多卡 GPU,CPU-GPU 混合训练,以及分布式训练的知识图谱嵌入表示框架。
  • 简单易用,用户无需编写代码,直接将知识图谱数据做为输入便可。
  • 高性能且可扩展。

4. 其余

知识图谱研究者和工业界在 Github 上应该开源了不少方法的具体实现及其框架,博主有看到再分享,这里再也不拓展。

6、智能推荐经常使用的开源框架和库

1. DeepMatch:用于广告和推荐的深度召回匹配算法库

提供了若干主流的深度召回匹配算法的实现,并支持快速导出用户和物品向量进行ANN检索。很是适合同窗们进行快速实验和学习。

2. 其余

智能推荐研究者和工业界在 Github 上应该开源了不少方法的具体实现及其框架,博主有看到再分享,这里再也不拓展。

 

若是你对智能推荐感兴趣,欢迎先浏览个人另几篇随笔:智能推荐算法演变及学习笔记CTR预估模型演变及学习笔记 基于图模型的智能推荐算法学习笔记(含知识图谱/图神经网络,不止于智能推荐) 

若是您对数据挖掘感兴趣,欢迎浏览个人另几篇博客:数据挖掘比赛/项目全流程介绍从中国农业银行“雅典娜杯”数据挖掘大赛看金融行业数据分析与建模方法

若是您对人工智能算法感兴趣,欢迎浏览个人另外一篇博客:人工智能新手入门学习路线和学习资源合集(含AI综述/python/机器学习/深度学习/tensorflow)

若是你是计算机专业的应届毕业生,欢迎浏览个人另一篇博客:若是你是一个计算机领域的应届生,你如何准备求职面试?

若是你是计算机专业的本科生,欢迎浏览个人另一篇博客:若是你是一个计算机领域的本科生,你能够选择学习什么?

若是你是计算机专业的研究生,欢迎浏览个人另一篇博客:若是你是一个计算机领域的研究生,你能够选择学习什么?

若是你对金融科技感兴趣,欢迎浏览个人另外一篇博客:若是你想了解金融科技,不妨先了解金融科技有哪些可能?

以后博主将持续分享各大算法的学习思路和学习笔记:hello world: 个人博客写做思路

相关文章
相关标签/搜索