在人工智慧(AI)研究領域,除了使用TensorFlow和PyTorch等流行平臺,目前還有許多出色的、略顯小眾的開源工具與資源。在本文中,我們將和您討論七種可用於各種前沿研究的開源AI庫
2021-06-17 13:20:34
在人工智慧(AI)研究領域,除了使用TensorFlow和PyTorch等流行平臺,目前還有許多出色的、略顯小眾的開源工具與資源。在本文中,我們將和您討論七種可用於各種前沿研究的開源AI庫。它們所涉及到的領域包括量子機器學習(ML)、加密計算等方面。由於它們提供了開源的許可證,因此您可以對其內容進行增加,分叉,或修改,以滿足實際的項目需求。
MIT許可證
GitHub星數:481
專為科學計算而設計的Julia程式語言,是一種相對年輕的程式語言(目前只有「9歲」,而Python已有「30歲」了)。Julia旨在彌合Python等高階生產力語言與C++等高速語言之間的差距。它更接近於在硬體中執行各種機器類操作。Julia語言可以將即時編譯與動態程式設計的正規化相結合。雖然這會讓首次執行需要長時間的編譯,但隨著時間的推移,它會以接近C語言的速度,去運行各種演算法。
雖然該語言是專為科學計算與研究而設計的,但是它往往被人們用於機器學習和人工智慧領域。藉助Flux.jl(下文將會介紹到)等可用於微程式設計的軟體包,Julia語言正在通過打造其社群和生態系統,以實現快速的迭代、推理和訓練。
作為圍繞著Julia語言開發的一種軟體包,DiffEqFlux.jl通過與DifferentialEquations.jl和Flux.jl工具包相結合,以促進神經微分方程的構建。
當然,除了神經微分方程,DiffEqFlux.jl還支援隨機微分方程、以及通用偏微分方程等。同時,它還通過支援GPU,以滿足前沿生產系統的效能需求。
Apache 2.0
GitHub星數:817
PennyLane利用自動化微分技術,在深度學習和量子電路模擬方面取得了巨大成功。最初,PennyLane基於Autograd庫實現了大部分自動化微分的功能。之後,它又添加了其他的後端庫。目前,PennyLane能夠支援使用PyTorch和TensorFlow後端,以及不同的量子模擬器和裝置。作為一個通用庫,它主要用於構建那些可以通過反向傳播,進行訓練和更新的量子與混合電路。
PennyLane團隊對其採用了一流的編碼和單元測試風格。由於是開源的(持有Apache 2.0許可證),因此它在GitHub上擁有大量的貢獻者,並能緊跟量子機器學習領域。
MIT「Expat」許可證
GitHub星級:2.9k
Flux.jl是一個功能強大的軟體庫,可被用於自動化微分類機器學習和一般性微分程式設計。它既支援Julia程式語言,又持有開源的MIT許可證。
通常,PyTorch的fast.ai和TensorFlow的Keras都採用的是較高級別的應用程式庫介面,而Flux.jl採用支援各種數學與科學計算的編碼與方程模式,來實現機器學習。
Flux.jl可被用在許多涉及到Julia語言的機器學習項目裡,其中就包含了前文討論過的DiffEqFlux.jl。不過,對於那些希望從Python中獲得與Autograd或JAX最相似體驗的初學者來說,Zygote.jl(一個基於Flux的高階自動化微分庫)才是最好的起點。
Apache 2.0
GitHub星級:3.3k
TensorFlow Probability提供了可用於推理不確定性、概率和統計分析的工具。這些功能都有助於我們建立針對模型預測的信心,以避免分佈外(out-of-distribution)輸入資料對於推理輸出的影響。這正是傳統深度學習模型所無法做到的。
下面我將通過TensorFlow Probability文件中的一個示例,和您討論在未考慮到不確定性或隨機過程時,可能導致的錯誤。該示例是一個關於迴歸問題的簡單案例。我們將定義和討論不確定性的兩大類:任意性(aleatoric)和認知性(epistemic)。
首先,讓我們來看如何使用簡單的線性迴歸模型,來擬合數據。此處並未用到任何一種不確定性。
毫無疑問,我們得到了一條線段,它是遵循所有觀察所得出的中心趨勢線。雖然該線段能夠告訴我們一些關於資料的資訊,但是它只是其中的一部分。如果真實情況變化過快,那麼模型輸出和觀察之間的差異會存在偏離,該線段也就無法很好地解釋真實資料了。接下來,讓我們看看模型在應用認知的不確定性情況下,會發生什麼改變。
其實,認知的不確定性往往來自缺乏經驗。也就是說,認知不確定性會隨著對給定類型訓練樣本量的增加而減少。畢竟,在機器學習的模型中,基於稀有樣本類型和邊緣情況的預測,可能會導致危險的錯誤結果。
此處任意不確定性代表了事件或預測的內在隨機性,就像擲骰子一樣。如果我們將其應用到該示例的迴歸問題中,就會得到如下圖所示的線段。
其中的任意不確定性是由統計誤差的範圍所表示的。我們可以看到,儘管認知不確定性似乎捕獲了資料與y軸交叉的樞軸點,但是任意不確定性產生了一個緩慢變化的誤差範圍。該誤差範圍會在資料分佈上逐漸擴大,並在右側呈現出鬆散的沙粒點。
那麼,如果將任意和認知的不確定性方法,同時應用到該回歸問題的示例中呢?我們將可以對高度不確定性區域,通過預測來檢驗直覺的觀察。該模型估計可以同時捕獲樞軸區域和資料中的潛在隨機性。不過,TensorFlow Probability在基於具有徑向基函數核的變分高斯過程層,展示了「功能上的不確定性」。
如上圖所示,該自定義的不確定性模型,捕獲了資料中從未被發現到的週期性。
TensorFlow Probability所提供的工具,可被用於為機器學習模型注入對於已知未知性參數(任意不確定性)、和未知未知性參數(認知性)的洞見,以及針對概率和統計推理的應用。隨著AI和ML模型在日常生活中的廣泛應用,我們更需要通過此類軟體庫,來構建一個「知道什麼時候不知道」的模型。
Apache 2.0
GitHub星級:7k
如今,人們在日常生活中所產生的敏感資料,包括健康記錄、約會偏好、以及財務記錄等。人們通常希望僅出於非常特定的目的,並且僅由非常特定的人員或演算法,來訪問這些資料,同時僅將它們用於預期的目的。例如,人們可能會讓他們的醫生能夠訪問其醫療掃描記錄,但不允許當地藥房(或者更糟的是快餐配送應用)作為廣告營銷的來源。而當人們談論AI安全時,他們往往會將此類風險歸咎於公司、政府、或其他機構缺乏隱私保護的技術應用和政策。
PySyft是一個針對尊重隱私的機器學習,而構建的軟體庫。通過相關工具,PySyft能夠協助使用者在機器學習和計算中,合理地處理那些他們「並不擁有、且無法看到的資料」,進而實現了一種罕見的、尊重隱私的機器學習方式。
Apache 2.0
GitHub星級:7.9k
隨著深度學習已經成為人工智慧的重要方法,將深度神經網路組合在一起,來解決諸如:影象分割、分類或預測偏好與行為等典型問題,已變得越來越容易。通過Keras和PyTorch的fast.ai等高階庫,我們可以將多個層次連線在一起,並輕鬆地將它們擬合成有價值的資料集。使用Keras,就像使用model.fit的API一樣簡單。由於AutoKeras添加了一個額外的簡單自動化層,因此它在運行時,您甚至無需指定模型的架構。
如今,我們既不需要通過定製CUDA程式碼和自定義的梯度檢查,才能構建深度神經網路,也不必再使用TensorFlow 1.x版繁雜的圖形會話程式設計模式。我們只需仔細調整超級參數,便可通過自動化的方式,實現資料集的最佳模型。儘管簡單的網格搜尋並非設定超級參數的最佳方法(甚至用隨機搜尋通常會更好),但它確實很常見。
作為一個自動化的機器學習庫,AutoKeras將Keras的簡便實用程式與自動化的超級參數,甚至是架構調整的便利性相結合。其中最為實用的是AutoKerasAutoModel類,它可以被用於僅通過其輸入和輸出,來定義「超級模型」。與普通Keras的訓練模型類的方式類似,我們可以通過呼叫fit()方法,來訓練AutoKerasAutoModel。它不僅會自動調整超級參數,而且還能開發出已優化的內部架構。總之,像AutoKeras之類的自動化機器學習(AutoML)工具,能夠大幅節省開發人員的寶貴時間。
Apache 2.0
GitHub星數:12.3k
作為世界頂級AI研究機構之一,Google DeepMind不僅將JAX作為功能性自動化微分工具納入其工作流程,而且他們一直在開發著一套完整的、以JAX為中心的生態系統。該生態系統包括了:用於深度強化學習的RLax、用於在函數式和麵向物件程式設計正規化之間組合與轉換的Haiku、用於圖形深度學習的Jraph、以及許多其他基於JAX的工具,所有這些都持有開源且友好的Apache 2.0許可證。
值得一提的是,對於那些有興趣利用JAX的實時編譯、硬體加速(包括對最新GPU的支援)、以及純JAX的功能,進行AI研究的人員來說,DeepMind JAX生態系統是一個不錯的起點。
在許多時候,AI研究人員可能只會關注鮮少的常用專業工具。儘管他們往往無需從頭開始每個項目,但是確切地知道哪個開源庫適合哪一類項目,還是非常有必要的。通過上述討論,我們為您列出了用於AI研究的七種優秀的開源庫,它們涵括從自動化機器學習到微分量子電路。希望上述列表能夠為您提供豐富的功能、以及足夠的開發選擇。
相關文章
在人工智慧(AI)研究領域,除了使用TensorFlow和PyTorch等流行平臺,目前還有許多出色的、略顯小眾的開源工具與資源。在本文中,我們將和您討論七種可用於各種前沿研究的開源AI庫
2021-06-17 13:20:34
榮耀是華為推出來主打網際網路市場的子品牌,這個子品牌在去年從華為中獨立出來;獨立之後的榮耀並不能繼續使用麒麟晶片,因此目前新款榮耀手機要麼搭載驍龍晶片和聯發科晶片,要麼
2021-06-17 13:19:47
長久以來,相機一直是我們生活中用來記錄美好瞬間的工具,通過這臺機器融入我們的創意,讓平凡的瞬間凝固在方寸之間,定格藝術性的片刻時光。但如今,相機已經成為一種更加「專物專用
2021-06-17 13:18:28
近日,有媒體報道稱華為本該在上半年釋出的P50系列,可能會延遲到9月前,也就是7、8月份釋出。而昨天晚上,又有媒體報道稱今年華為不再發布 Mate 系列新手機。當這兩則訊息重合在一
2021-06-17 13:18:09
距離美國東部時間6月24日上午11點舉辦的微軟Win11釋出會只有差不多一個星期的時間了,不過就在這個關鍵的節點Win11的預覽版映象居然洩露了。 國內平臺昨晚有開發者洩露了微軟
2021-06-17 13:17:53
如今,在一些疾病的診斷領域,AI的準確率已經超過了醫生。靠譜的診斷結果背後,是建立海量資料集上的機器學習。但實際上,可用於訓練的醫療資料非常分散,想要把世界各地的資料都集合
2021-06-17 13:17:39