在上周公開課中,微軟機器學習科學家彭河森博士詳細講述了各大開源框架適用的出場景,課程結束後,我們特地整理了深度學習入門者關注的幾個問題:《AI 從業者該如何選擇深度學習開源框架丨硬創公開課》
想學習深度學習開源框架,比如TensorFlow,Caffe,需要掌握哪些 Linux 知識?
Linux 方面的知識我認為主要在系統配置方面,這裡推薦一下 Docker,Docker 是一個容器虛擬機,可以讓虛擬機中的程序和硬體更緊密的結合在一起,同時省去了配置 CUDA,BLAS/LAPACK 等環境方面的麻煩,現在 Docker 本身也是一個非常火熱的領域。
還沒有接觸過深度學習。作為一個初學者,我想知道 Mxnet 這類框架,與 Spark MLLib 裡邊機器學習包的關係、差異?Spark 只是提供了一些機器學習算法,可以這樣理解嗎?
這個問題表面上是問差異,但是我想多講一點,首先現在工業級應用其實都離不開 Apache 生態的支持,如果一個分布式系統不和 Zookeeper 說兩句話,都不好意思出來混。當然也有如 Elasticearch 一類的生命野蠻的存在,MXnet 分布式設計有一些部分是非常可圈可點的,比如利用 Yarn 進行伺服器資源管理,這樣的話可以很容易的和工業級分布式應用整合在一起。Spark MLLib 更多的是一些現有的功能包,包括了監督式和非監督式學習的很多常用模塊。MXNet 更為專門,目前據我有限的經驗,MLLib的程序基於Java虛擬機,並沒有和機器層緊密結合。ELK = Elasticsearch + Logstash + kibana :),Elasticsearch 5.0很好很強大,加入了Beats也可以研究一下。
對深度學習硬體支撐這一塊的看法
硬體很有意思,例如圖像處理裡面,非常大的運算量是用在了卷積層計算上面。所謂卷積層計算,就是將圖像通過深度網絡,映射到更低的維度上面去,圖像卷積操作可能到了某一天,會出現一個視網膜一樣的硬體,在攝像頭上面就已經完成了卷積操作,我們傳圖像的時候,可能傳一個類似於 meta tag 的東西。這樣的話 FPGA 就有大大的用處。(有群友繼續問到:是否類 似Autoencoder)Autoencoder 是一個邏輯上的概念,應該說叫做 ASIC,Application Specific Integrated Circuit,最後成平也就是手機晶片的一個小模塊。
相關閱讀:
《AI 從業者該如何選擇深度學習開源框架丨硬創公開課》