谷歌開源了TensorFlow,世界就要馬上被改變了嗎?
編者按:本文來自出門問問 CEO 李志飛,前谷歌科學家,自然語言處理和人工智能專家,世界主流開源翻譯軟件 Joshua 主要開發者。Google 開源了其第二代深度學習技術 TensorFlow,這件事情有什么現實意義?
Google 開源了其第二代深度學習技術 TensorFlow——被使用在 Google 搜索、圖像識別以及郵箱的深度學習框架。這在相關媒體圈、工程師圈、人工智能公司、人工智能研究團隊里有了一些討論。比較有趣的是,微軟亞洲研究院立刻向 媒體發郵件表示,我們要開源分布式機器學習工具包(DMTK)。
對于大眾來說,這件事讓人 “困惑”。從 “深度學習” 到 “分布式系統”,太多概念大眾一知半解,現今給出的資料又讓人難以理解。而對于 “Google 開源 TensorFlow” 這一事件,各個公司、團隊、學術權威也是眾說紛紜。因此,出門問問為大家 “破霧”,并講一講這次開源意味著什么。
什么是深度學習?
深度學習系統是什么?深度學習理論于 2006年 被提出,它通過模擬 “人腦的神經網絡” 來解釋圖像、聲音和文本等數據。但是目前的計算機還達不到模擬人腦數量龐大的神經元(千億級),因此便有了用到成千上萬大型計算機(計算平臺集群)來吸收 數據對其進行自動分類的 “分布式深度學習系統”。
TensorFlow 的起源和此次開源事件
Google 將自家研發的深度學習系統命名為 “DistBelief”,它使得 Google 能夠同時處理成千上萬臺大型計算機的數據,構建更大型的神經網絡和大規模訓練。Google 的搜索、圖像識別及郵箱等均采用了該技術。一般情況下,深度學習系統都需要先設定好 feature(特征),再學習如何分辨。但 Google DistBelief 神奇的地方在于,“Google Brain” 開發團隊 “XLab” 曾用它在未事先獲取 “貓的特征描述” 信息的情況下,從大量 油Tube 視頻中區分除了哪些是貓的視頻。這意味著深度學習系統 “DistBelief” 自行總結出了貓的 feature(特征)!雖然這個案例的識別范圍、識別率有待提高(81.7%),但作為人工智能最經典案例之一,為人工智能翻開了新的篇章。而 “貓” 的事件,也讓曾經的 Google Brain 開發團隊 “XLab” 的核心人員、現在被李彥宏挖到百度的吳恩達得到了 “Google Brain” 之父的美譽。不過,時代總是進步,而 “DistBelief” 有缺陷。
Google 稱,雖然 DistBelief 非常成功,但它僅僅以神經網絡為目的、十分局限,而且很難進行配置。另外,DistBelief 牢牢綁定在 Google 的內部基礎設施上,幾乎不可能將代碼與外界共享。因此,本文的主角,Google 的第二代深度學習系統 “TensorFlow” 橫空出世了。
Google 表示,TensorFlow 在設計上尤其針對克服 DistBelief 的短板,靈活、更通用、易使用、更快,而且完全開源。TensorFlow 可以被架設在智能手機這樣小的設備上,甚至僅一塊電路板上,更靈活; TensorFlow 可以被使用在很多計算平臺,無論是智能手機還是大型計算機、單個 CPU / GPU 計算機還是成百上千 GPU 卡組成的分布式系統,ARM 的還是 X86 的構架,更通用;TensorFlow 支持多種編程語言,提供了很多深度學習模型庫,易使用;在很多指標上,TensorFlow 要比 DistBelief 要快一倍,更快。但是,學術界和工程界的一些朋友并不喜歡這個 “剛剛闖入” 開源界的 “小伙子”,判了它 “意義不大” 的死刑。“TensorFlow” 之所以 “開源” 卻不討好,是因為 TensorFlow 不是第一個被開源的深度學習系統,并且目前只開源了 “單機版”,而非能夠識別貓的 “分布式版本”。除了并非第一以及只開源了單機版代碼這兩點外,Google 開源 TensorFlow 這件事最被人詬病的地方在于,在 “用事實”、“用數據” 說話的學術界、工程界,Google 并未用 “數據對比” 證明 TensorFlow 的 “靈活、更通用、易使用”。
對于 TensorFlow,出門問問的看法是,TensorFlow 對學術界意義不大,但是對工程界意義挺大。
TensorFlow 對工程界有意義:其它開源工具雖然眾多 但對工程界很難有效使用
Google 這次開源的 TensorFlow 是一種人工智能(更具體的說是深度學習)編程語言或計算框架,學術界從來都不缺少類似的開源工具,尤其是 “單機版工具包” 有很多。但是學術界的工具往往更多專注在核心算法上,在系統和工程方面比較欠缺,工業界很難直接有效的使用,而 Google 的 TensorFlow 在架構設計,跨平臺可移植性,算法可擴展性等等偏工程方面會做的比較好。所以,TensorFlow 對學術界的幫助比較小,但對工業界的幫助有很大潛在可能性。比如語音識別、自然語言理解、計算機視覺、廣告等等都可以應用這種深度學習算法,Google 也因為深度學習系統的應用使得 Google 語音識別水平提高 25%。
有意義歸有意義,意義的大小是另一回事了。在這個信息交流頻繁的時代,沒有公司能隨便制造一個具有超大意義的事件或者跨時代的黑科技產品。對于 工程界,TensorFlow 有意義但又不是神乎其神的東西,尤其是 Google 目前開源的 “單機版” 的 TensorFlow 意義要小一些。因為在工程界里,若要完成一整件事,如識別語音,TensorFlow 這種通用深度學習框架的存在更多是錦上添花,而非決定根本。比如說在一個可以應用的語音識別系統里, 除了深度學習算法外,還有很多工作是專業領域相關的 算法以及海量數據收集和工程系統架構的搭建。
其實,對于中國來說,TensorFlow 還有一個意義。在人工智能大潮下許多人和公司想入局,但大都沒有能力理解并開發一個與國際同步的深度學習系統,而 TensorFlow 的存在會大大降低深度學習在各個行業中的應用難度。至于弄懂 TensorFlow 要花費大量時間的問題,就像很多公司用 Linux 或者 hadoop(一種分布式系統基礎架構)但很少有公司弄懂了所有源代碼一樣,可以把 TensorFlow 當成一個黑盒,先快速用起來,之后再根據數據和專業領域知識來調整。
總的來說,如果 Google 按照其所說的那樣,在未來完全開源 TensorFlow——包括其 “分布式版本”,那么 TensorFlow 對工程界的影響會更明顯些——尤其對中國創業公司來說。