為什么機(jī)器學(xué)習(xí)行業(yè)的發(fā)展離不開 “開源”
2016 年底,Google DeepMind 開源了它們的機(jī)器學(xué)習(xí)平臺(tái) — DeepMind Lab。盡管像霍金教授這樣的專家曾就人工智能技術(shù)發(fā)出過警告,谷歌仍決定向其他開發(fā)人員開源其軟件,這也是它們進(jìn)一步發(fā)展機(jī)器學(xué)習(xí)能力的一部分。他們不是唯一一家這樣做的科技公司,F(xiàn)acebook 去年開源了其深度學(xué)習(xí)的軟件,Elon Musk 的非營(yíng)利組織 OpenAI 也發(fā)布了 Universe,這是一個(gè)可用于訓(xùn)練 AI 系統(tǒng)的開放軟件平臺(tái)。所以,為什么谷歌、OpenAI,以及其他的公司或機(jī)構(gòu)都選擇開源了它們的平臺(tái),這將會(huì)對(duì)機(jī)器學(xué)習(xí)的采用產(chǎn)生怎樣的影響?
為什么開源機(jī)器學(xué)習(xí)?
上面所提到的例子給了我們美好的愿景,其實(shí)如果仔細(xì)觀察,會(huì)留意到機(jī)器學(xué)習(xí)一直是開源的,而且開放的研發(fā)是機(jī)器學(xué)習(xí)有如今這樣關(guān)注度的根本原因。
通過向公眾提供自己學(xué)習(xí)平臺(tái),Google 已經(jīng)驗(yàn)證了其 AI 研究的意識(shí)越來(lái)越高。這樣做其實(shí)有很多優(yōu)點(diǎn),例如可為 Alphabet 發(fā)掘到新的人才和有能力的創(chuàng)業(yè)公司。同時(shí),開發(fā)者能訪問 DeepMind Lab 將有助于解決他們研究機(jī)器學(xué)習(xí)的一個(gè)關(guān)鍵問題 —— 缺乏訓(xùn)練環(huán)境。OpenAI 為 AI 推出了一個(gè)新的虛擬學(xué)校,它使用游戲和網(wǎng)站來(lái)訓(xùn)練 AI 系統(tǒng)。
目前非常需要向公眾提供機(jī)器學(xué)習(xí)平臺(tái)這樣的舉動(dòng)。
開源機(jī)器學(xué)習(xí)項(xiàng)目的 5 個(gè)優(yōu)勢(shì)
加快開源機(jī)器學(xué)習(xí)的采用曲線
開源機(jī)器學(xué)習(xí)中的***框架
現(xiàn)在有大量的開源機(jī)器學(xué)習(xí)框架,使機(jī)器學(xué)習(xí)工程師能夠:
- 構(gòu)建、實(shí)施和維護(hù)機(jī)器學(xué)習(xí)系統(tǒng)
- 生成新項(xiàng)目
- 創(chuàng)建新的有影響力的機(jī)器學(xué)習(xí)系統(tǒng)
一些重要的框架包括:
- Apache Singa 是一個(gè)通用、分布式、深度學(xué)習(xí)的平臺(tái),用于在大型數(shù)據(jù)集上訓(xùn)練大型深度學(xué)習(xí)模型。它被設(shè)計(jì)有基于層次抽象的本能編程模型。支持各種流行的深度學(xué)習(xí)模型,包括卷積神經(jīng)網(wǎng)絡(luò)(CNN),受限玻爾茲曼機(jī)(RBM),以及循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)等能量模型。為用戶提供了許多內(nèi)置圖層。
- Shogun 是歷史最悠久,也是最受尊敬的機(jī)器學(xué)習(xí)庫(kù)之一。Shogun 于 1999 年創(chuàng)建,采用 C++ 編寫,但不只限于在 C++ 中使用。感謝 SWIG 庫(kù),Shogun 可用于以下編程語(yǔ)言和環(huán)境:
- Java
- Python
- C#
- Ruby
- R
- Lua
- Octave
- Matlab
Shogun 旨在面向廣泛的特性類型和學(xué)習(xí)環(huán)境進(jìn)行統(tǒng)一的大規(guī)模學(xué)習(xí),如分類、回歸、降維、聚類等。它包含了幾項(xiàng)獨(dú)有的***進(jìn)的算法,如豐富的高效 SVM 實(shí)現(xiàn),多內(nèi)核學(xué)習(xí),內(nèi)核假設(shè)檢驗(yàn),以及 Krylov 方法等。
- TensorFlow 是一個(gè)采用數(shù)據(jù)流圖(data flow graphs),用于數(shù)值計(jì)算的開源軟件庫(kù)。TensorFlow 使用數(shù)據(jù)流圖進(jìn)行數(shù)值計(jì)算,通過節(jié)點(diǎn)(Nodes)和線(edges)的有向圖來(lái)闡述數(shù)學(xué)計(jì)算。節(jié)點(diǎn)在圖中表示數(shù)學(xué)操作,也可以表示數(shù)據(jù)輸入(feed in)的起點(diǎn)/輸出(push out)的終點(diǎn),或者是讀取/寫入持久變量(persistent variable)的終點(diǎn)。圖中的線則表示在節(jié)點(diǎn)間相互聯(lián)系的多維數(shù)據(jù)數(shù)組,這些數(shù)據(jù) “線” 可以輸運(yùn) “size 可動(dòng)態(tài)調(diào)整” 的多維數(shù)據(jù)數(shù)組,即 “張量”(tensor)
- Scikit-Learn 通過構(gòu)建在數(shù)個(gè)現(xiàn)有的 Python 包(NumPy,SciPy 和 matplotlib)之上,用于數(shù)學(xué)和科學(xué)工作,充分利用了 Python 的廣度。生成的庫(kù)可以用于交互式 “工作臺(tái)” 應(yīng)用程序,也可以嵌入到其他軟件中并重用。該套件在 BSD 許可證之下發(fā)布,因此它完全是開源和可重用的。Scikit-learn 包括許多用于標(biāo)準(zhǔn)機(jī)器學(xué)習(xí)任務(wù)(如聚類,分類,回歸等)的工具。由于 scikit-learn 是由一大群開發(fā)者和機(jī)器學(xué)習(xí)專家開發(fā)的,所以新技術(shù)有希望會(huì)很快被引入。
- MLlib (Spark) 是 Apache Spark 的機(jī)器學(xué)習(xí)庫(kù)。其目標(biāo)是使實(shí)用的機(jī)器學(xué)習(xí)具有更好的可擴(kuò)展性和易于使用。它由常見的學(xué)習(xí)算法和實(shí)用程序組成,包括分類、回歸、聚類、協(xié)同過濾、降維,以及較底層的優(yōu)化原語(yǔ)和高層的管道 API。Spark MLlib 被認(rèn)為是在 Spark Core 之上的分布式機(jī)器學(xué)習(xí)框架,主要由于其分布式的基于內(nèi)存的 Spark 架構(gòu),幾乎是 Apache Mahout 使用的基于磁盤的實(shí)現(xiàn)的九倍。
- Amazon MachineLearning 是一項(xiàng)使任何技能水平的開發(fā)者都能輕松使用機(jī)器學(xué)習(xí)技術(shù)的服務(wù)。Amazon Machine Learning 提供了可視化工具和向?qū)?,指?dǎo)你完成創(chuàng)建機(jī)器學(xué)習(xí)(ML)模型的過程,而無(wú)需學(xué)習(xí)復(fù)雜的 ML 算法和技術(shù)。它連接到存儲(chǔ)在 Amazon S3,Redshift 或 RDS 中的數(shù)據(jù),可以對(duì)所述的數(shù)據(jù)運(yùn)行二進(jìn)制分類,多類分類或回歸,以創(chuàng)建一個(gè)模型。
- Apache Mahout 是 Apache 軟件基金會(huì)的一個(gè)自由開源項(xiàng)目。目標(biāo)是為協(xié)作過濾、聚類和分類等多個(gè)領(lǐng)域開發(fā)免費(fèi)的分布式或可擴(kuò)展的機(jī)器學(xué)習(xí)算法。Mahout 為各種數(shù)學(xué)運(yùn)算提供了 Java 庫(kù)和 Java 集合。Apache Mahout 是使用 MapReduce 范例在 Apache Hadoop 之上實(shí)現(xiàn)的。如果大數(shù)據(jù)存儲(chǔ)在 Hadoop 分布式文件系統(tǒng)(HDFS)中,Mahout 提供的數(shù)據(jù)科學(xué)工具,可以在這些大數(shù)據(jù)集中自動(dòng)找到有意義的模式,從而將這些大數(shù)據(jù)快速輕松地轉(zhuǎn)化為 “大信息”。
***要說的
機(jī)器學(xué)習(xí)確實(shí)可以在開源工具的幫助下解決真正的科學(xué)技術(shù)問題。如果機(jī)器學(xué)習(xí)是為了解決真正的科學(xué)技術(shù)問題,社區(qū)需要建立在彼此的開源軟件工具之上。我們認(rèn)為,機(jī)器學(xué)習(xí)開源軟件有一個(gè)緊急需求,它將滿足多個(gè)角色,其中包括:
- 更好的方法來(lái)重現(xiàn)結(jié)果
- 為質(zhì)量軟件實(shí)施提供學(xué)術(shù)認(rèn)可的機(jī)制
- 通過站在其他人的肩膀(不一定是技術(shù)巨頭)上以加速研究過程