當前位置:
首頁 > 新聞 > 亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

3月28日,地平線機器人技術公司創始人余凱博士、亞馬遜AWS機器學習總監Alex Smola、亞馬遜AWS解決方案架構師鄧明軒以及地平線機器人技術公司演算法副總裁黃暢,在地平線和雷鋒網聯合主辦的「大牛講堂」上做了精彩分享。其中Alex Smola做了「使用MXNet實現快速、可擴展、定製化深度學習」的主題演講,雷鋒網根據現場錄音和PPT做了不改變原意編譯。

Alex Smola於1996年畢業於慕尼黑工業大學,獲物理學碩士學位,1998年在柏林工業大學取得計算機科學博士學位。之後,他在澳大利亞國立大學擔任研究院和研究小組組長。2004-2008年,Alex Smola在NICTA研究中心統計機器學習項目擔任項目負責人,2008-2012年在雅虎的從事研究工作,2012-2014加入谷歌從事研究工作,2013年加入卡內基·梅隆大學擔任教授,2015年,他創立了Marianas實驗室,2016年,Alex加入亞馬遜,目前擔任亞馬遜AWS的機器學習總監。迄今為止,Alex共發表超過200篇論文並參與編寫多本學術專著。

1. 深度學習讓一切變得更容易

演講一開始,Alex就提出了一個問題,「為什麼我們現在要做深度學習?」在他看來,最主要的原因有兩點:海量的數據以及計算能力的大幅提升。如今,數據已經可以很容易獲取,而計算能力的提升則是由於GPU在深度學習領域的應用。

從遊戲「FizzBuzz」說起

接著,Alex列舉了一個例子——FizzBuzz,這是一種用來教導小學生除法的遊戲:從1數到100,如果遇見了3的倍數要說Fizz,5的倍數到說Buzz,如果即是3的倍數又是5的倍數要說FizzBuzz。

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

如果要通過編程方法來實現,那麼需要先生成訓練數據,然後提取輸入數據的特徵,然後再訓練一個分類器,讓輸入能夠映射出相應的輸出,這一切看起來似乎非常愚蠢。

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

但是Alex認為,如果你有了「真正的數據」,這其實是是非常有用的。比如訓通過一台小型攝像機來識別貓和狗,這個過程非常複雜,而且無法像以前一樣寫出代碼,但是卻有很多樣本數據可供使用,可以用來訓練estimator(判定器),然後可以基於這些數據搭建一個模型。

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

而通過MXNet,你所需要做的僅僅只有定義輸入數據,調用MXNet的「fully connected layer」,最後獲得Softmax輸出。而MXNet會替你做好數據迭代、載入腳本、以及訓練循環。

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

不過,當只有一層感知器(perecptron)的時候,還比較容易訓練,但是有多層感知器的的時候,訓練會變得十分困難。這將涉及到對每一層的表達,以及過程中的對象變換,而且還會用到鏈式法則(chain rule,微積分中的求導法則,用於求一個複合函數的導數),然而MXNet可以自動完成這些過程。

從遊戲「Where"s Waldo?」說起

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

那麼要怎樣做具體的圖像識別呢?這裡Alex列舉了另一個很有名的遊戲——「Where"s Waldo?」其實, 《Where"s Waldo?》是一套由英國插畫家Martin Handford創作的兒童書籍,這個書的目標就是讓在讀者在一張人山人海的圖片中找出一個特定的人物——「Waldo」。那麼要如何讓計算機來從圖像中識別出「Waldo」呢?這裡就需要用到卷積神經網路。

CNN(卷積神經網路

什麼是卷積?卷積就是兩個函數之間的相互關係,然後得出一個新的值,他是在連續空間做積分計算,然後在離散空間內求和的過程。卷積運算的目的是提取輸入的不同特徵,第一層卷積層可能只能提取一些低級的特徵如邊緣、線條和角等層級,更多層的網路能從低級特徵中迭代提取更複雜的特徵。

在卷積神經網路中,除了卷積層,還有一種叫池化(pooling)的操作。它實際上是一種形式的向下採樣,有多種不同形式的非線性池化函數,而其中「最大池化(Max pooling)」是最為常見的。它是將輸入的圖像劃分為若干個矩形區域,對每個子區域輸出最大值。池化層會不斷地減小數據的空間大小,因此參數的數量和計算量也會下降,這在一定程度上也控制了過擬合。

Alex在這裡列舉了兩種卷積神經網路模型:

1). LeNet

Le顧名思義就是指人工智慧領域的大牛Lecun。這個網路是深度學習網路的最初原型,因為之前的網路都比較淺,它是較深的。

雷鋒網曾對LeNet的實現過程做過詳解:

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

首先,輸入圖像是32×32的灰度圖,第一層經過了一組卷積和,生成了6個28X28的feature map,然後經過一個池化層,得到得到6個14X14的feature map,然後再經過一個卷積層,生成了16個10X10的卷積層,再經過池化層生成16個5×5的feature map。

從最後16個5X5的feature map開始,經過了3個全連接層,達到最後的輸出,輸出就是標籤空間的輸出。由於設計的是只要對0到9進行識別,所以輸出空間是10,如果要對10個數字再加上26個大小字母進行識別的話,輸出空間就是62。62維向量里,如果某一個維度上的值最大,它對應的那個字母和數字就是就是預測結果。

2). Inception

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

谷歌的Inception v1的網路將1x1、3x3、5x5的卷積和3x3的最大池化堆疊在一起,並在3x3、5x5的卷積前以及3x3最大池化後分別加上了1x1的卷積核,起到了降低特徵圖厚度的作用,上圖就是Inception v1的網路結構。

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

Alex稱,要通過Caffe來實現這一結構需要幾千行代碼,然而要如何簡化這一過程呢?這也就引出了一個問題:為什麼我們需要另一個深度學習工具?

2. 為什麼需要另一個深度學習工具?

目前市面上已經有了TensorFlow、Caffe、Torch、Keras、CNTK、PaddlePaddle、Theano等等,那麼我們為什麼還需要MXNet呢?

Alex介紹道,MXNet主要有3方面的優勢:

  • 效率:節省計算資源,資源利用效率高;

  • 速度:可以隨著機器和GPU的擴展呈線性增長,而且在單台機器上也有很高的效率;

  • 簡單易用:同時支持命令式編程(imperative programming)和聲明式編程(declarative programming)。

根據維基百科的解釋:


命令式編程是一種描述電腦所需作出的行為的編程范型,較高級的指令式編程語言使用變數和更複雜的語句,但仍依從相同的范型。因為命令式編程的基礎觀念,不但概念上比較熟悉,而且較容易具體表現於硬體,所以大部分的編程語言都是指令式的。

聲明式編程與命令式編程相對立。它描述目標的性質,讓電腦明白目標,而非流程。聲明式編程是告訴計算機需要計算「什麼」而不是「如何」去計算,而命令式編程則需要用演算法來明確的指出每一步該怎麼做。

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

比如,如果深度架構的計算圖譜需要深度優化,則比較適合聲明式編程;而涉及到更新以及圖譜交互時,比如迭代循環、參數更新、定向搜索、特徵提取等,這時命令式編程則更為合適。

Alex認為,提高用戶的工作效率最為關鍵。

由於每個用戶偏好的編程語言以及深度學習的框架可能各不相同,因此MXNet努力擴展自己的兼容性。根據Alex的PPT,目前MXNet已經能夠調用Torch,並可以無縫兼容Caffe Layer,而且將很快兼容Keras。

雖然MXNet同時支持命令式編程和聲明式編程,但是並沒有將兩者融匯貫通。有開發者基於MXNet,開發了MinPy,提供numpy介面,用來解決這個問題。在使用MinPy時,只需要簡單改寫一句import語句:import minpy.numpy as np,就能夠開始使用MinPy了。由於是完全的命令式編程的介面,編程的靈活性被大大提高。

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

Alex列舉了一個例子(如上圖所示),在TensorFlow中,如果需要列印某個變數,需要在列印語句前加上 「control_dependencies」。而在MinPy中,可以直接使用Python的原生「print」語句。

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

此外,由於GPU採用的是高度並行的運行方式,這也是為何GPU比CPU更加適合深度學習的原因。然而想要寫出並行的程序則是一件非常痛苦的事情,但是MXNet則可以自動執行這一過程:你只需要編寫串列程序,MXNet就可以自動實現並行運行。

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

當然,Alex也將MXNet與目前最流行的谷歌TensorFlow進行了對比。根據Alex的介紹,在分布式訓練的實驗中,如果用10台以上的機器,MXNet處理圖像樣本的速度要比TensorFlow快2倍。

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

不過,Alex也提醒道,要想在分布式訓練的過程中快速達到收斂,Batch Size的選擇也很重要,並不是越大越好。

3. AWS為深度學習提供的各種雲服務

作為全球第一大雲服務提供商,亞馬遜也為深度學習提供各種雲服務,Alex主要介紹了Amazon Machine Images(簡稱AMI)以及 CloudFormation Template。

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

從字面上就可以看出,AMI主打圖像識別,它可以節省數據科學家和開發者設置深度學習系統的時間。除了支持亞馬遜自己的MXNet框架外,AMI還支持TensorFlow、Caffe、Torch、Theano、Keras,用戶可以使用Anaconda、Jupyter、Python 2、Python 3。

亞馬遜機器學習總監Alex Smola:TensorFlow、Caffe等已經存在,為何還需要MXNet?

Alex表示,如果你要為深度學習搭建一個計算機集群(一種計算機系統,它通過一組鬆散集成的計算機軟體和/或硬體連接起來高度緊密地協作完成計算工作),亞馬遜則提供AWS CloudFormation Template。

雖然MXNet有很多優勢,並於去年11月被亞馬遜選為官方深度學習框架,又在今年2月加入Apache孵化器,利用Apache軟體基金會的流程、管理、外展和社區活動,但是目前最流行的仍然是谷歌的TensorFlow等常用框架。由於被谷歌搶佔先機,未來MXNet想要快速發展,必須爭取更多開發者的支持。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

三分鐘內找出全網所有「弱雞」設備?這不是魔法而是FOFA
韓國環保人士因霧霾起訴北京
用無人機送快遞:亞馬遜不只是想搞個噱頭

TAG:雷鋒網 |

您可能感興趣

Mobileye 中國區總監 Boaz Sacks:Mobileye 如何做 ADAS、眾包地圖與 Shield+
Marvel Studios 概念藝術總監曝光 Captain Marvel 初始短髮造型
Supreme 前創作總監 Brendon Babenzien 設計下的 Ivy Look!
在創意總監 Alessandro Michele 引領之下的 Gucci
Chanel宣布Virginie Viard接替Karl Lagerfeld擔任創意總監
Lacoste 宣布創意總監 Felipe Oliveira Baptista 離任
內部挖潛,Salvatore Ferragamo 提拔 Paul Andrew 擔任品牌創意總監
Natacha Ramsay-Levi:既是Chloé創意總監,也是追星成功的「迷妹」
R.I.P.,Chanel藝術總監Karl Lagerfeld於巴黎辭世
作為全球創意總監,Christopher Raeburn 如何在 Timberland 品牌上延續「再循環美學」?
Bottega Veneta創意總監突然下台,傳Phoebe Philo接任
關於 Gucci 創意總監 Alessandro Michele 你不知道的39件事
MCM 挖角adidas,Jil Sander商業總監升任CEO,Benetton迎來首位藝術總監
巴黎高定——Givenchy創意總監Clare Waight Keller致敬品牌創始人Givenchy先生
Louis Vuitton與女裝創意總監Nicolas Ghesquière續約
Bottega Veneta | 創意總監 Tomas Maier 離職,低調簡約的設計已經過時了嗎?
Chanel 正式委任 Karl Lagerfeld 生前得力助手 Virginie Viard 為新任創意總監
Stuart Weitzman創意總監因不當行為而離職;Dior 新高管來自 Fendi
Lanvin男裝創意總監Lucas Ossendrijver離職
Timberland 宣布英國設計師 Christopher Raeburn 為品牌全球創意總監