本周一(11月9日)谷歌發布了第二代機器學習系統TensorFlow,并宣布完全開源,也就是任何人都可以免費使用這個系統。
據谷歌方面介紹,這個系統是一個編寫機器學習算法的界面,也可以編譯執行機器學習算法的代碼。使用 TensorFlow 編寫的運算可以在異質平臺全通用,上到大規模分布式系統,下到常見的手機和平板;平臺遷移時重寫代碼的代價非常小;從研究室的模型試驗到產品開發者的產品部署,代碼無縫銜接無需更改。
TensorFlow是谷歌的第二代機器學習系統,是在谷歌2011年開發的機器學習系統DistBelief基礎上構建起來的。谷歌CEO桑達爾·皮查伊(Sundar Pichai)說,
“與原來的系統相比,TensorFlow更快,更智能化,也更加靈活,因此可以更加輕松地適應新產品和研究工作。”
第一代系統DistBelief關注的重心是神經網絡,而且與谷歌內部的基礎架構聯系緊密,所以幾乎不可能與外部共享研究代碼,第二代系統就能完全開源。并且據測試,第二代系統的運行速度是第一代系統的2倍。
這個系統可以說對谷歌的語音、圖像識別程序都至關重要,谷歌為什么要對外開放呢?谷歌方面稱,
“應當有一種真正的工具,能夠讓研究人員用來嘗試他們瘋狂的創意。如果那些創意產生作用的話,那么他們將能夠直接轉化成產品,而不需要研究人員再重新編寫代碼。”
除了這個美好愿望之外,谷歌甘心把自己的成果共享背后還有哪些原因呢?
1、谷歌留有后手
英國布里斯托大學的人工智能教授克里斯蒂亞尼尼(Nello Cristianini)表示:
“谷歌此舉并不是昏了頭。深度學習不是即插即用,它需要做很多測試、調整和適配工作。”
據了解,谷歌雖然把系統開源了,但手中還留有巨量的數據、可以運行該軟件的計算機網絡,以及一個龐大的人工智能專家團隊,可以調整算法。
比如,針對特定的任務,需要用大量數據對機器學習系統進行培訓。數年前,谷歌的研究人員教會了一套系統認識貓咪。為了教會系統做到這一點,谷歌從YouTube上抓取了1000萬張圖片,將其上傳至一個由1.6萬個處理器組成的網絡中供系統分析。
這類系統有數百萬個參數需要調整,而且調整這些參數需要不斷試錯,初次接觸的人要花費很長時間。如果沒有工程師進行這一工作,那么谷歌這次放出的深度學習算法的用途就極為有限。
2、這套系統并不完美
谷歌在官方網站上表示,“TensorFlow尚不完備,還需要調整、修改、擴充。”有業內人士評論稱,TensorFlow目前尚缺乏很多系統方面對深度學習的設計和優化,比如在訓練深度卷積神經網絡時,可以利用CNN的結構特性以及算法特性在系統方面給出對應的優化,降低內存使用,減少通信負載等;TensorFlow中的兩個核心概念,數據流和張量,在之前的很多系統中已有實現。
而且從目前情況看它只支持單機多卡,并不支持多機的分布式環境。類似的單機深度學習工具已經比較豐富,比如Caffe, Torch, Theano。與這些工具相比,這套系統還沒有顯示出具體優勢;第三就是缺乏公開的評測數據。究竟這套系統如何,還有待驗證。
谷歌推出的這個系統可以使研究人員、工程師和愛好者能以更快的速度交換想法。而與此同時,谷歌自己也可以從研究人員使用TensorFlow取得的新成就中受益,找到更多應用場景,并對系統進行改進。
3、引導人工智能開發,吸引人才
從谷歌、Facebook到微軟,許多公司都想要影響人工智能的開發。Facebook已經面向人工智能開發框架Torch免費發布了一些工具的源代碼。Torch得到了谷歌子公司DeepMind、AMD、英特爾以及其他公司的使用。Twitter也在上周五為Torch項目作出了自己的首個貢獻。與此同時,微軟以開源形式發布了多個人工智能程序和數據集。
谷歌發言人簡森·弗雷德菲爾斯(Jason Freidenfelds)表示,通過發布TensorFlow,公司希望這一自主軟件能夠成為研究人員開發人工智能技術所使用的標準工具箱的一部分。它可能還會幫助谷歌找出潛在人才。