深度學習以不少于兩個隱含層的神經(jīng)網(wǎng)絡對輸入進行非線性變換或表示學習的技術,通過構建深層神經(jīng)網(wǎng)絡,進行各項分析活動。深層神經(jīng)網(wǎng)絡由一個輸入層,數(shù)個隱層,以及一個輸出層構成。每層有若干個神經(jīng)元,神經(jīng)元之間有連接權重。每個神經(jīng)元模擬生物的神經(jīng)細胞,而結點之間的連接模擬神經(jīng)細胞之間的連接??偨Y起來是這個樣子的:
這種流向圖的一個特別屬性是深度(depth):從一個輸入到一個輸出的最長路徑的長度。深度學習并非一個新的概念,但在2006年由Hinton等人引領了一波爆發(fā)。然而近年來雖然許多人都在談論深度學習,但這項技術在實際應用時到底有哪些坑?創(chuàng)辦一家成熟的依賴深度學習的公司需要哪些要素?下面我們將來重點講解下深度學習之計算能力。
計算能力
首先,深度神經(jīng)網(wǎng)絡復雜,訓練數(shù)據(jù)多,計算量大。深度神經(jīng)網(wǎng)絡中神經(jīng)元多,神經(jīng)元間連接數(shù)量也相當驚人。從數(shù)學的角度看,每個神經(jīng)元都要包含數(shù)學計算(如Sigmoid、ReLU或者Softmax函數(shù)),需要估計的參數(shù)量也極大。語音識別和圖像識別應用中,神經(jīng)元達數(shù)萬個,參數(shù)數(shù)千萬,模型復雜導致計算量大。所以計算能力是深度學習應用的基礎。
不僅如此,計算能力還是推動深度學習的利器,計算能力越強,同樣時間內積累的經(jīng)驗就越多、迭代速度也越快,百度首席科學家吳恩達博士認為深度學習的前沿正轉移到高性能計算(HPC),這也是他目前在百度的工作重心之一,吳博士認為深度學習上的很多成功得益于主動地追求可用的計算能力,2011年Jeff Dean(谷歌第二代人工智能學習系統(tǒng)Tensorflow的設計者之一)創(chuàng)立并領導了谷歌深度學習小組,使用谷歌云擴展深度學習;這使得深度學習得以推向工業(yè)界。在2013年,科茨博士等人建立了第一個HPC式的深度學習系統(tǒng),可擴展性提升了1-2個數(shù)量級,使深度學習有了革命性的進步——計算能力這種對于深度學習的支撐與推動作用是不可替代的。
目前這方面技術處于領先地位的還是像百度、谷歌這樣的大型互聯(lián)網(wǎng)公司,當然也有一些像地平線機器人這樣的初創(chuàng)公司在該領域頗有成就,由百度深度學習研究院負責人余凱博士創(chuàng)立的地平線機器人公司設計的深度神經(jīng)網(wǎng)絡芯片相比傳統(tǒng)的CPU芯片能夠支持深度神經(jīng)網(wǎng)絡中圖像、語音、文字、控制等方面的任務而不是去做所有事情,這樣比在CPU上用軟件要高效,會提高2-3個數(shù)量級。