業界對於巨量資料(big data)的熱烈討論與投入,正進一步催生新的演算法、編程語言以及軟體加速等相關技術。

IBM首任資料長(CDO) Inderpal Bhandari指出,「神經網路(Neural network)已經存在很長一段時間了。最新的進展是我們必須為其處理大量的資料,以及強化與其有關的工程實力。」

他描述採用「生成對抗網路」(GAN)的研究進展指出,透過讓兩種神經網路相互競爭,可望創造出更好的神經網路。「這是一種導引出更多演算法的工程思考——現在已經因此而激盪出很多關於神經網路方面的工程技術了。」

從某些方面來看,這些演算法可用於預測未來的硬體。例如,Dun & Bradstreet的首席資料科學家Anthony Scriffignano指出,量子(quantum)演算法將會變得越來越熱門,因為當這類演算法成功可用後,就能用於執行一些量子電腦才能做的事。」

「深度信念網路」(DBN)是另一種熱門的新興途徑。Scriffignano將其定義為「一種非漸進式方法,能夠讓你一邊學習一邊修正目標與目的,因而具有明日神經形態電腦的特性,」並形成一種適於模擬人腦的系統。

美國史丹佛大學(Stanford University)電腦科學教授Christopher Re開發的通用資料深度探勘工具——DeepDive演算法一直備受關注。該校資料科學計劃主管Stephen Eglash指出,這種演算法有助於讓電腦更易於瞭解並使用文本、表格和圖表等非結構化的資料,就像掌握關聯式資料庫或試算表一樣輕鬆。

「現有的資料大部份都是非結構化或半結構化的。例如,我們可以輕鬆地讀取規格表,但電腦卻很難像我們一樣理解。」

20170710_bigdata_NT31P1 以一種DeepDive程式理解基於知識建構的非結構化資料 (來源:University of Wisconsin)

Deep Dive已經用於協助腫瘤學家以電腦解釋腫瘤照片。此外,美國紐約檢察總長也用它作為執法工具。至今,它已經應用在各個不同領域的許多公司了。

Eglash說,DeepDive之所以如此獨特,部份原因在於「它能辨識並標記所有的資料,然後用學習引擎和概率技術來確定資料的意思。」

儘管這種途徑十分成功,但它只是近來學術界開發的多種演算法之一。其他演算法有的專注於電腦視覺(computer vision)等領域,或嘗試在即時資料串流中找出異常之處。Eglash強調,「如此就能讓我們持續進行更深入的研究。」

掌握有趣的資料集

讓開發人員腎上腺素飆高的部份原因,就在於他們必須從現實世界中取得有趣的資料集。GE Digital的Predix雲端工程負責人Darren Haas聲稱在這方面取得了優勢。

Haas說:「我想有些人可能沒機會看看我們所提供的資料。我們從飛機、衛星和火車取得了高達數千兆位元組(petabyte)的感測器資料。如果將這三者關聯起來,就可以提供很多資訊,例如農場或紅杉樹看起來健康或是病了。」

Hass原本任職於蘋果(Apple),負責部署其中一項最大的Hadoop,用於執行像Siri等任務。他說GE Digital已經從亞馬遜(Amazon)、Facebook和Google吸收到編程人才,「當我展示我們正著手進行的資料集時,他們都感到十分震驚。」

事實上,位於加州的通用電氣(GE)軟體部門已經從幾年前約800個編程人員,迅速增加到目前約有2,000人了。

Haas個人喜歡的一種編程語言是Go。這是少數幾種已編譯的編程語言之一,如Elixir和Erlang一樣,現在重新獲得了機器學習(machine learning)開發人員的再度關注。

「在實作層,我一直鼓勵自家團隊使用Go,」Haas指出,GE也定期舉辦Go語言的聚會。「它已經過編譯了、速度快、涵蓋各種應用,而且更有效管理記憶體。我還教12歲的兒子學Go呢,因為,我認為這是未來的趨勢。」

像Go這樣的編譯語言確實適用於執行環境。

他說:「如果您需要串流資料或事件中樞,全部都以Go來寫最恰當不過了。」相形之下,「我看到的每一個Node.js專案在四個月後都得重新編寫。」

也就是說,「很多人都大量使用Python。我認為它是機器學習的主流,適合資料分析、擷取資料和建構模型……等等,而且,Matlab的R也很重要。」

無論是哪一種語言,重要的發展趨勢就是自動化功能。

「很多人都用資料科學家說的『何者正確與否』,以手動策劃資料集與模型。」Haas說:「但我們想用串流、偵測異常的方式進行,在封閉的反饋迴路中通知用戶。」

(參考原文:Big Data Algorithms, Languages,by Rick Merritt)