直到不久以前,建立與訓練神經網路是資深電腦科學家及研究所學生的專利。不過在一些開放原始碼機器學習框架,像是 Theano 、 Spark ML 、微軟的 CNTK 及 Google TensorFlow 相繼出現後,情況就不一樣了。其中又以威力強大、好用、功能多及用戶數成長快速的 TensorFlow 最為突出。而本周釋出 TensorFlow 1.0 後,Google 也將機器學習應用層面推向更多方面。
本文目錄
TensorFlow 再也不只用於神經網路
為了讓 TensorFlow 成為用途更廣的機器學習框架,Google 在其中內建了 Estimator(模擬器)功能,並支援多項傳統機器學習演算法,包括 K-means 、 SVM(Support Vector Machines) 及 Random Forest 等。雖然其他框架如 SparkML 也支援這些工具,但是 TensorFlow 還將之整合神經網路,使其成為解決混合性問題的最佳選擇。
TensorFlow 1.0 另外還具備極佳的效能及擴充性等優點。在一項標竿測試中,TensorFlow 在一台 64 顆 CPU 的機器上執行訓練,速度比單顆 CPU 要快上 60 倍。
有了 Kera,人人都能架設出下一個超級電腦 HAL 9000
雖然 TensorFlow 很強大,但要直接在其 API 裡架構繁複的模型,則需要一點知識和用心的程式撰寫,這在一些高階模型像是遞歸神經網路及 LSTM(Long Short Term Memory model,長短期記憶)尤其如此。 Keras 程式介面可為 TensorFlow(及 Theano)加上一層使用者友善的介面,使高階網路的建構好像變得很簡單。

在 Google Summit 大會上,Keras 作者 Francois Chollet 展示架構看影集及回答相關問題的網路有多容易,只要一頁程式碼就夠了!當然,要知道如何把那麼多層整合於模型中需要相當功力,但實際架起來卻相當輕鬆。 Keras 還包含許多方便安裝的訓前模型。想到過去為模型訓練組合大型資料集有多不容易,以及訓練的複雜性有多高,光是這一點就讓開發人員生活輕鬆不少。
使你的智慧型手機更智慧好幾倍
TensorFlow 最令人驚嘆的一項新功能是它的模型可以跑在許多智慧型手機上。 TensorFlow 1.0 甚至可跑在 Qualcomm Snapdragon 820 CPU 的 Hexagon DSP 上頭。 Google 已經將它用來離線執行 Translate 及 Word Lens 等應用。在此之前,翻譯或語音辨識等這類複雜的演算都需要即時連到雲端及後台伺服器才可以。
TensorFlow 另外也曾搬到 IBM POWER 架構上形成 PowerAI 方案,或是跑在 Movidius 的 Myriad 2 專用處理器上。
開始使用 TensorFlow
現在 TensorFlow 1.0 已經開放(https://www.tensorflow.org/)下載。現在 Keras 是分開的套件,你可以用 PIP 或你習慣的套件管理軟體來安裝,但 Google 計畫在 1.2 版中內建到 TensorFlow 裡去。當中有一些變更,但其實改變都不很大。必要時,Google 甚至提供方便好用的腳本語言幫你升級現有程式。
和一般機器學習工具一樣,如果你跑在支援的 GPU 上效能會更好,但現在你甚至有雲端可選。例如 Y Combinator 支援的新創公司 Floyd Hub 的 GPU 系統就內建 TensorFlow 和其他機器學習工具,可按使用時間出租,使模型的訓練及執行變得更簡單。
Source: ExtremeTech
