自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

值得推薦的七種優(yōu)秀開源AI庫

譯文
人工智能 機(jī)器學(xué)習(xí)
本文為您羅列了用于AI研究的七種優(yōu)秀的開源庫,它們涵括從自動(dòng)化機(jī)器學(xué)習(xí)到微分量子電路。希望它們能夠?yàn)槟峁┴S富的功能、以及足夠的開發(fā)選擇。

[[406029]]

【51CTO.com快譯】在人工智能(AI)研究領(lǐng)域,除了使用TensorFlow和PyTorch等流行平臺(tái),目前還有許多出色的、略顯小眾的開源工具與資源。在本文中,我們將和您討論七種可用于各種前沿研究的開源AI庫。它們所涉及到的領(lǐng)域包括量子機(jī)器學(xué)習(xí)(ML)、加密計(jì)算等方面。由于它們提供了開源的許可證,因此您可以對(duì)其內(nèi)容進(jìn)行增加,分叉,或修改,以滿足實(shí)際的項(xiàng)目需求。

DiffEqFlux.jl:用Julia語言實(shí)現(xiàn)神經(jīng)微分方程

  • MIT許可證
  • GitHub星數(shù):481
  • 存儲(chǔ)庫地址:https://github.com/SciML/DiffEqFlux.jl/ 

[[406030]]

專為科學(xué)計(jì)算而設(shè)計(jì)的Julia編程語言,是一種相對(duì)年輕的編程語言(目前只有“9歲”,而Python已有“30歲”了)。Julia旨在彌合Python等高級(jí)生產(chǎn)力語言與C++等高速語言之間的差距。它更接近于在硬件中執(zhí)行各種機(jī)器類操作。Julia語言可以將即時(shí)編譯與動(dòng)態(tài)編程的范式相結(jié)合。雖然這會(huì)讓首次執(zhí)行需要長(zhǎng)時(shí)間的編譯,但隨著時(shí)間的推移,它會(huì)以接近C語言的速度,去運(yùn)行各種算法。

雖然該語言是專為科學(xué)計(jì)算與研究而設(shè)計(jì)的,但是它往往被人們用于機(jī)器學(xué)習(xí)和人工智能領(lǐng)域。借助Flux.jl(下文將會(huì)介紹到)等可用于微編程的軟件包,Julia語言正在通過打造其社區(qū)和生態(tài)系統(tǒng),以實(shí)現(xiàn)快速的迭代、推理和訓(xùn)練。

作為圍繞著Julia語言開發(fā)的一種軟件包,DiffEqFlux.jl通過與DifferentialEquations.jl和Flux.jl工具包相結(jié)合,以促進(jìn)神經(jīng)微分方程的構(gòu)建。

當(dāng)然,除了神經(jīng)微分方程,DiffEqFlux.jl還支持隨機(jī)微分方程、以及通用偏微分方程等。同時(shí),它還通過支持GPU,以滿足前沿生產(chǎn)系統(tǒng)的性能需求。您可以通過鏈接--https://julialang.org/blog/2019/01/fluxdiffeq/,了解更多有關(guān)DiffEqFlux.jl的信息。

PennyLane:一個(gè)同時(shí)適合機(jī)器學(xué)習(xí)和量子計(jì)算的庫

  • Apache 2.0
  • GitHub星數(shù):817
  • 存儲(chǔ)庫地址:https://github.com/PennyLaneAI/pennylane

PennyLane利用自動(dòng)化微分技術(shù),在深度學(xué)習(xí)和量子電路模擬方面取得了巨大成功。最初,PennyLane基于Autograd庫實(shí)現(xiàn)了大部分自動(dòng)化微分的功能。之后,它又添加了其他的后端庫。目前,PennyLane能夠支持使用PyTorch和TensorFlow后端,以及不同的量子模擬器和設(shè)備。作為一個(gè)通用庫,它主要用于構(gòu)建那些可以通過反向傳播,進(jìn)行訓(xùn)練和更新的量子與混合電路。

PennyLane團(tuán)隊(duì)對(duì)其采用了一流的編碼和單元測(cè)試風(fēng)格。由于是開源的(持有Apache 2.0許可證),因此它在GitHub上擁有大量的貢獻(xiàn)者,并能緊跟量子機(jī)器學(xué)習(xí)領(lǐng)域。

Flux.jl:一種自動(dòng)化微分的新方法

  • MIT“Expat”許可證
  • GitHub星級(jí):2.9k
  • 存儲(chǔ)庫地址:https://github.com/FluxML/Flux.jl

Flux.jl是一個(gè)功能強(qiáng)大的軟件庫,可被用于自動(dòng)化微分類機(jī)器學(xué)習(xí)和一般性微分編程。它既支持Julia編程語言,又持有開源的MIT許可證。

通常,PyTorch的fast.ai和TensorFlow的Keras都采用的是較高級(jí)別的應(yīng)用程序庫接口,而Flux.jl采用支持各種數(shù)學(xué)與科學(xué)計(jì)算的編碼與方程模式,來實(shí)現(xiàn)機(jī)器學(xué)習(xí)。

Flux.jl可被用在許多涉及到Julia語言的機(jī)器學(xué)習(xí)項(xiàng)目里,其中就包含了前文討論過的DiffEqFlux.jl。不過,對(duì)于那些希望從Python中獲得與Autograd或JAX最相似體驗(yàn)的初學(xué)者來說,Zygote.jl(一個(gè)基于Flux的高級(jí)自動(dòng)化微分庫)才是最好的起點(diǎn)。

Tensorflow Probability:正確并不意味著確定

  • Apache 2.0
  • GitHub星級(jí):3.3k
  • 存儲(chǔ)庫地址:https://github.com/tensorflow/probability

TensorFlow Probability提供了可用于推理不確定性、概率和統(tǒng)計(jì)分析的工具。這些功能都有助于我們建立針對(duì)模型預(yù)測(cè)的信心,以避免分布外(out-of-distribution)輸入數(shù)據(jù)對(duì)于推理輸出的影響。這正是傳統(tǒng)深度學(xué)習(xí)模型所無法做到的。

下面我將通過TensorFlow Probability文檔中的一個(gè)示例,和您討論在未考慮到不確定性或隨機(jī)過程時(shí),可能導(dǎo)致的錯(cuò)誤。該示例是一個(gè)關(guān)于回歸問題的簡(jiǎn)單案例。我們將定義和討論不確定性的兩大類:任意性(aleatoric)和認(rèn)知性(epistemic)。

首先,讓我們來看如何使用簡(jiǎn)單的線性回歸模型,來擬合數(shù)據(jù)。此處并未用到任何一種不確定性。

毫無疑問,我們得到了一條線段,它是遵循所有觀察所得出的中心趨勢(shì)線。雖然該線段能夠告訴我們一些關(guān)于數(shù)據(jù)的信息,但是它只是其中的一部分。如果真實(shí)情況變化過快,那么模型輸出和觀察之間的差異會(huì)存在偏離,該線段也就無法很好地解釋真實(shí)數(shù)據(jù)了。接下來,讓我們看看模型在應(yīng)用認(rèn)知的不確定性情況下,會(huì)發(fā)生什么改變。

其實(shí),認(rèn)知的不確定性往往來自缺乏經(jīng)驗(yàn)。也就是說,認(rèn)知不確定性會(huì)隨著對(duì)給定類型訓(xùn)練樣本量的增加而減少。畢竟,在機(jī)器學(xué)習(xí)的模型中,基于稀有樣本類型和邊緣情況的預(yù)測(cè),可能會(huì)導(dǎo)致危險(xiǎn)的錯(cuò)誤結(jié)果。

此處任意不確定性代表了事件或預(yù)測(cè)的內(nèi)在隨機(jī)性,就像擲骰子一樣。如果我們將其應(yīng)用到該示例的回歸問題中,就會(huì)得到如下圖所示的線段。 

其中的任意不確定性是由統(tǒng)計(jì)誤差的范圍所表示的。我們可以看到,盡管認(rèn)知不確定性似乎捕獲了數(shù)據(jù)與y軸交叉的樞軸點(diǎn),但是任意不確定性產(chǎn)生了一個(gè)緩慢變化的誤差范圍。該誤差范圍會(huì)在數(shù)據(jù)分布上逐漸擴(kuò)大,并在右側(cè)呈現(xiàn)出松散的沙粒點(diǎn)。 

那么,如果將任意和認(rèn)知的不確定性方法,同時(shí)應(yīng)用到該回歸問題的示例中呢?我們將可以對(duì)高度不確定性區(qū)域,通過預(yù)測(cè)來檢驗(yàn)直覺的觀察。該模型估計(jì)可以同時(shí)捕獲樞軸區(qū)域和數(shù)據(jù)中的潛在隨機(jī)性。不過,TensorFlow Probability在基于具有徑向基函數(shù)核的變分高斯過程層,展示了“功能上的不確定性”。

如上圖所示,該自定義的不確定性模型,捕獲了數(shù)據(jù)中從未被發(fā)現(xiàn)到的周期性。如果您對(duì)此方面感興趣的話,請(qǐng)參見2019年TensorFlow開發(fā)者峰會(huì)上,有關(guān)TensorFlow Probability的公開演示--https://www.youtube.com/watch?v=BrwKURU-wpk。

TensorFlow Probability所提供的工具,可被用于為機(jī)器學(xué)習(xí)模型注入對(duì)于已知未知性參數(shù)(任意不確定性)、和未知未知性參數(shù)(認(rèn)知性)的洞見,以及針對(duì)概率和統(tǒng)計(jì)推理的應(yīng)用。隨著AI和ML模型在日常生活中的廣泛應(yīng)用,我們更需要通過此類軟件庫,來構(gòu)建一個(gè)“知道什么時(shí)候不知道”的模型。

PySyft:深挖背后的數(shù)據(jù)

  • Apache 2.0
  • GitHub星級(jí):7k
  • 存儲(chǔ)庫地址:https://github.com/OpenMined/PySyft

如今,人們?cè)谌粘I钪兴a(chǎn)生的敏感數(shù)據(jù),包括健康記錄、約會(huì)偏好、以及財(cái)務(wù)記錄等。人們通常希望僅出于非常特定的目的,并且僅由非常特定的人員或算法,來訪問這些數(shù)據(jù),同時(shí)僅將它們用于預(yù)期的目的。例如,人們可能會(huì)讓他們的醫(yī)生能夠訪問其醫(yī)療掃描記錄,但不允許當(dāng)?shù)厮幏?或者更糟的是快餐配送應(yīng)用)作為廣告營銷的來源。而當(dāng)人們談?wù)揂I安全時(shí),他們往往會(huì)將此類風(fēng)險(xiǎn)歸咎于公司、政府、或其他機(jī)構(gòu)缺乏隱私保護(hù)的技術(shù)應(yīng)用和政策。

PySyft是一個(gè)針對(duì)尊重隱私的機(jī)器學(xué)習(xí),而構(gòu)建的軟件庫。通過相關(guān)工具,PySyft能夠協(xié)助用戶在機(jī)器學(xué)習(xí)和計(jì)算中,合理地處理那些他們“并不擁有、且無法看到的數(shù)據(jù)”,進(jìn)而實(shí)現(xiàn)了一種罕見的、尊重隱私的機(jī)器學(xué)習(xí)方式。

AutoKeras:教機(jī)器去自行調(diào)整超級(jí)參數(shù)

  • Apache 2.0
  • GitHub星級(jí):7.9k
  • 存儲(chǔ)庫地址:https://github.com/keras-team/autokeras

隨著深度學(xué)習(xí)已經(jīng)成為人工智能的重要方法,將深度神經(jīng)網(wǎng)絡(luò)組合在一起,來解決諸如:圖像分割、分類或預(yù)測(cè)偏好與行為等典型問題,已變得越來越容易。通過Keras和PyTorch的fast.ai等高級(jí)庫,我們可以將多個(gè)層次連接在一起,并輕松地將它們擬合成有價(jià)值的數(shù)據(jù)集。使用Keras,就像使用model.fit的API一樣簡(jiǎn)單。由于AutoKeras添加了一個(gè)額外的簡(jiǎn)單自動(dòng)化層,因此它在運(yùn)行時(shí),您甚至無需指定模型的架構(gòu)。

如今,我們既不需要通過定制CUDA代碼和自定義的梯度檢查,才能構(gòu)建深度神經(jīng)網(wǎng)絡(luò),也不必再使用TensorFlow 1.x版繁雜的圖形會(huì)話編程模式。我們只需仔細(xì)調(diào)整超級(jí)參數(shù),便可通過自動(dòng)化的方式,實(shí)現(xiàn)數(shù)據(jù)集的最佳模型。盡管簡(jiǎn)單的網(wǎng)格搜索并非設(shè)置超級(jí)參數(shù)的最佳方法(甚至用隨機(jī)搜索通常會(huì)更好),但它確實(shí)很常見。

作為一個(gè)自動(dòng)化的機(jī)器學(xué)習(xí)庫,AutoKeras將Keras的簡(jiǎn)便實(shí)用程序與自動(dòng)化的超級(jí)參數(shù),甚至是架構(gòu)調(diào)整的便利性相結(jié)合。其中最為實(shí)用的是AutoKerasAutoModel類,它可以被用于僅通過其輸入和輸出,來定義“超級(jí)模型”。與普通Keras的訓(xùn)練模型類的方式類似,我們可以通過調(diào)用fit()方法,來訓(xùn)練AutoKerasAutoModel。它不僅會(huì)自動(dòng)調(diào)整超級(jí)參數(shù),而且還能開發(fā)出已優(yōu)化的內(nèi)部架構(gòu)??傊馎utoKeras之類的自動(dòng)化機(jī)器學(xué)習(xí)(AutoML)工具,能夠大幅節(jié)省開發(fā)人員的寶貴時(shí)間。

JAX,一個(gè)新型快速的自動(dòng)化微分庫

  • Apache 2.0
  • GitHub星數(shù):12.3k
  • 存儲(chǔ)庫地址:https://github.com/google/jax

作為世界頂級(jí)AI研究機(jī)構(gòu)之一,Google DeepMind不僅將JAX作為功能性自動(dòng)化微分工具納入其工作流程,而且他們一直在開發(fā)著一套完整的、以JAX為中心的生態(tài)系統(tǒng)。該生態(tài)系統(tǒng)包括了:用于深度強(qiáng)化學(xué)習(xí)的RLax、用于在函數(shù)式和面向?qū)ο缶幊谭妒街g組合與轉(zhuǎn)換的Haiku、用于圖形深度學(xué)習(xí)的Jraph、以及許多其他基于JAX的工具,所有這些都持有開源且友好的Apache 2.0許可證。

值得一提的是,對(duì)于那些有興趣利用JAX的實(shí)時(shí)編譯、硬件加速(包括對(duì)最新GPU的支持)、以及純JAX的功能,進(jìn)行AI研究的人員來說,DeepMind JAX生態(tài)系統(tǒng)是一個(gè)不錯(cuò)的起點(diǎn)。

小結(jié)

在許多時(shí)候,AI研究人員可能只會(huì)關(guān)注鮮少的常用專業(yè)工具。盡管他們往往無需從頭開始每個(gè)項(xiàng)目,但是確切地知道哪個(gè)開源庫適合哪一類項(xiàng)目,還是非常有必要的。通過上述討論,我們?yōu)槟谐隽擞糜贏I研究的七種優(yōu)秀的開源庫,它們涵括從自動(dòng)化機(jī)器學(xué)習(xí)到微分量子電路。希望上述列表能夠?yàn)槟峁┴S富的功能、以及足夠的開發(fā)選擇。

原文標(biāo)題:The 7 Best Open Source AI Libraries You May Not Have Heard Of,作者:Kevin Vu

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2020-11-30 09:00:00

WebAngular開發(fā)

2022-07-14 13:27:40

數(shù)據(jù)安全網(wǎng)絡(luò)安全

2019-09-06 09:00:00

開發(fā)技能代碼

2023-02-14 10:37:43

API端點(diǎn)版本

2022-01-19 11:17:50

服務(wù)質(zhì)量 QoS云服務(wù)網(wǎng)絡(luò)流量

2021-07-05 10:09:52

IT領(lǐng)導(dǎo)者混合工作

2024-06-07 13:04:02

2023-08-27 18:49:06

2018-11-23 09:00:00

微服務(wù)微服務(wù)架構(gòu)日志

2023-09-07 10:39:25

AI供應(yīng)鏈

2022-05-10 08:08:01

find命令Linux

2020-01-14 08:00:00

.NET緩存編程語言

2025-01-21 08:00:00

限流微服務(wù)算法

2017-08-08 10:13:21

開源代碼開發(fā)

2018-01-30 17:54:37

數(shù)據(jù)庫MySQLSQL Server

2023-03-29 08:00:00

PostgreSQL數(shù)據(jù)庫

2010-10-15 10:02:01

Mysql表類型

2019-10-23 09:00:00

瀏覽器測(cè)試工具兼容性

2019-08-02 10:00:03

數(shù)據(jù)庫圖形數(shù)據(jù)庫

2013-01-07 10:14:06

JavaJava枚舉
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)