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