作者:賈揚清
來源:阿裡技術(ID:ali_tech)
最近幾年深度學習的流行,大家一般認為是從2012年 AlexNet 在影象識別領域的成功作為一個裡程碑。AlexNet 提升了整個業界對機器學習的接受程度:以前很多機器學習演演算法都處在“差不多能做 demo ”的程度,但是 AlexNet 的效果跨過了很多應用的門檻,造成了應用領域井噴式的興趣。
當然,任何事情都不是一蹴而就的,在2012年以前,很多成功的因素已經開始逐漸顯現:
2009年的 ImageNet 資料庫奠定了大量標註資料的基礎;2010年開始,IDSIA 的 Dan Ciresan 首次用 GPGPU 進行物體識別;2011年,北京的 ICDAR 大會上,神經網路在中文離線識別上大放異彩。
就算是 AlexNet 中用到的ReLU層,早在2001年神經科學的文獻中就有提及過。所以,一定程度上說,神經網路的成功也是一個水到渠成的過程。2012年以後的事情,大家可以讀到很多,這裡就不再贅述。
01 成功與侷限
在看待神經網路成功的同時,我們也要進一步深挖其背後的理論背景和工程背景,為什麼神經網路和深度學習在幾十年前失敗,但是現在卻成功了?它成功的原因是什麼?而它的侷限又在什麼地方?我們這裡只能片面地說幾個重點:
-
成功的原因,一點是大資料,一點是高效能運算。
-
侷限的原因,一點是結構化的理解,一點是小資料上的有效學習演演算法。
大量的資料,比如說移動網際網路的興起,以及 AWS 這樣低成本獲得標註資料的平臺,使機器學習演演算法得以打破資料的限制;由於 GPGPU 等高效能運算的興起,又使得我們可以在可以控制的時間內(以天為單位甚至更短)進行 exaflop 級別的計算,從而使得訓練複雜網路變得可能。
要註意的是,高效能運算並不僅限於 GPU ,在 CPU 上的大量向量化計算,分散式計算中的 MPI 抽象,這些都和60年代就開始興起的 HPC 領域的研究成果密不可分。
但是,我們也要看到深度學習的侷限性。今天,很多深度學習的演演算法還是在感知這個層面上形成了突破,可以從語音、影象,這些非結構化的資料中進行識別的工作。在面對更加結構化的問題的時候,簡單地套用深度學習演演算法可能並不能達到很好的效果。
有的同學可能會問為什麼 AlphaGo 和 Starcraft 這樣的演演算法可以成功, 一方面,深度學習解決了感知的問題,另一方面,我們也要看到還有很多傳統的非深度學習演演算法,比如說 Q-learning 和其他增強學習的演演算法,一起支撐起了整個系統。
而且,在資料量非常小的時候,深度學習的複雜網路往往無法取得很好的效果,但是很多領域,特別是類似醫療這樣的領域,資料是非常難獲得的,這可能是接下去的一個很有意義的科研方向。
接下去,深度學習或者更廣泛地說,AI 這個方向會怎麼走?我個人的感覺,雖然大家前幾年一直關註AI框架,但是近年來框架的同質化說明瞭它不再是一個需要花大精力解決的問題,TensorFlow 這樣的框架在工業界的廣泛應用,以及各種框架利用 Python 在建模領域的優秀表現,已經可以幫助我們解決很多以前需要自己程式設計實現的問題,因此,作為 AI 工程師,我們應該跳出框架的桎梏,往更廣泛的領域尋找價值。
02 挑戰
往上走,我們會遇到產品和科研的很多新挑戰,比如說:
-
傳統的深度學習應用,比如說語音、影象等等,應該如何輸出產品和價值?比如說,計算機視覺現在基本還是停留在安防這個層面上,如何深入到醫療、傳統工業,甚至社會關愛(如何幫助盲人看見這個世界?)這些領域,是不僅需要技術,還需要產品的思考的。
-
除了語音和影象之外,如何解決更多問題。在阿裡和很多網際網路企業中有一個“沉默的大多數”的應用,就是推薦系統:它常常佔據了超過80%甚至90%的機器學習算力,如何將深度學習和傳統推薦系統進一步整合,如何尋找新的模型,如何對搜尋和推薦的效果建模,這些可能沒有像語音和影象那麼為人所知,卻是公司不可缺少的技能。
-
即使在科研方向,我們的挑戰也剛剛開始:Berkeley 的教授 Jitendra Malik 曾經說,“我們以前是手工調演演算法,現在是手工調網路架構,如果囿於這種樣式,那人工智慧無法進步”。如何走出手工調參的老路,用智慧提升智慧,是個非常有意思的問題。最開始的 AutoML 系統依然停留在用大量算力暴力搜尋模型結構的層面上,但是現在各種更高效的 AutoML 技術開始產生,這是值得關註的。
03 機會
往下走,我們會發現傳統的系統、體系結構等知識,計算機軟體工程的實踐,會給 AI 帶來很多新的機會,比如說:
-
傳統的 AI 框架都是手寫高效能程式碼,但是模型如此多變,新的硬體平臺層出不窮,我們應該如何進一步提升軟體效率?我們已經看到有透過編譯器技術和傳統的人工智慧搜尋方法來反過來最佳化AI框架,比如 Google 的 XLA 和華盛頓大學的 TVM,這些專案雖然處於早期,但是已經展現出它們的潛力。
-
平臺如何提升整合能力。在開源領域,大家的做法是一個人,一臺機器,幾個 GPU ,訓練比較學院派的模型。但是在大規模應用中,我們的資料量非常大,模型非常複雜,叢集還會出現各種排程的挑戰(能不能一下子就要求256個 GPU ?計算資源是否可以彈性排程?),這些對於我們自己的機器學習平臺,以及雲上向客戶提供的服務,都提出了非常多的挑戰。
-
如何進行軟硬體的協同設計。在深度學習的計算樣式開始逐漸固化的時候(比如說 CNN ),新硬體和特殊硬體(比如 ASIC )的優勢就開始體現出來了。如何實現軟硬體的協同設計,防止“硬體出來了,不知道怎麼寫程式”或者“模型已經變了,硬體一齣來就過時了”這樣的問題,會是將來幾年中很大的方向。
人工智慧是一個日新月異的領域,我們有一個笑話說,2012年的科研成果,現在說起來都已經是上古時代的故事了。
快速的迭代帶來的大量機遇和挑戰是非常令人興奮的,無論是有經驗的研究者還是新學 AI 的工程師,在當今雲化,智慧化的年代,如果能快速學習並掃清演演算法和工程的各種挑戰,就可以透過演演算法創新引領並且賦能社會各個領域。
這方面,人工智慧領域開源開放的各種程式碼,科研文章和平臺給大家創造了比以前更容易的入門門檻,機遇都掌握在我們自己手中。
關於作者:賈揚清,浙江上虞人,畢業於清華大學自動化系,在加州大學 Berkeley 分校獲得計算機博士學位,目前擔任阿裡計算平臺掌門人。
朋友會在“發現-看一看”看到你“在看”的內容