人工智能領域經常使用的開源框架和庫(含機器學習/深度學習/強化學習/知識圖譜/圖神經網絡)

【說在前面】本人博客新手一枚,象牙塔的老白,職業場的小白。如下內容僅爲我的看法,歡迎批評指正,不喜勿噴![認真看圖][認真看圖]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: 個人博客寫做思路

相關文章
相關標籤/搜索