發(fā)展至今,人工智能可以劃分為兩類:弱人工智能和強人工智能。前者讓機器具備觀察和感知的能力,能做到一定程度的理解和推理;而強人工智能是讓機器獲得自適應能力,解決一些從沒遇到過的問題。這里的“智能”從何而來?人工智能又如何取得突破?要從一種實現(xiàn)人工智能的方法——機器學習說起。
與傳統(tǒng)的為解決特定任務、硬編碼的軟件程序不同,機器學習是用大量的數(shù)據(jù)來“訓練”,通過各種算法從數(shù)據(jù)中學習如何完成任務。
這里有三個重要信息:1. “機器學習”是“模擬、延伸和擴展人的智能”的一條路徑,是人工智能的一個子集;2. “機器學習”要基于大量數(shù)據(jù),也就是說它的“智能”是用大量數(shù)據(jù)喂出來的;(敲黑板?。。∵@個后面會用到)3. 正是因為要處理海量數(shù)據(jù),所以大數(shù)據(jù)技術尤為重要,而“機器學習”只是大數(shù)據(jù)技術上的一個應用。
雖然傳統(tǒng)的機器學習算法在指紋識別、人臉檢測等領域的應用基本達到了商業(yè)化要求,但“再進一步”卻很艱難,直到深度學習算法的出現(xiàn)。
深度學習(Deep Learning)屬于機器學習的子類,是目前最熱的機器學習方法,但它并不意味著是機器學習的終點。它的靈感來源于人類大腦的工作方式,是利用深度神經(jīng)網(wǎng)絡來解決特征表達的一種學習過程。深度神經(jīng)網(wǎng)絡本身并非是一個全新概念,可理解為包含多個隱含層的神經(jīng)網(wǎng)絡結構。機器學習和深度學習有哪些維度的不同?機器學習是一種實現(xiàn)人工智能的方法,深度學習是一種實現(xiàn)機器學習的技術。一個同心圓就可以展現(xiàn)出它們的關系。
具體不同大致有以下幾點:
1. 數(shù)據(jù)依賴。隨著數(shù)據(jù)量的增加,二者的表現(xiàn)有很大區(qū)別。深度學習適合處理大數(shù)據(jù),而數(shù)據(jù)量比較小的時候,用傳統(tǒng)機器學習方法也許更合適。
2. 硬件依賴。深度學習十分地依賴于高端的硬件設施,因為計算量實在太大。它會涉及很多矩陣運算,因此很多深度學習都要求有GPU(專門為矩陣運算而設計的)參與運算。
3. 特征工程。簡單講就是在訓練一個模型的時候,需要首先確定哪些特征。在機器學習方法中,幾乎所有特征都需要人為確認后,再進行手工特征編碼。而深度學習試圖自己從數(shù)據(jù)中學習特征。
4. 解決問題的方式。(重點?。┙鉀Q問題時,機器學習通常先把問題分成幾塊,一個個地解決好之后,再重新組合。但是深度學習是一次性、端到端地解決。
5. 運行時間。深度學習需要花大量時間來訓練,因為有太多參數(shù)要去學習。機器學習一般幾秒鐘最多幾小時就可以訓練好。但深度學習訓練出的模型優(yōu)勢就在于,在預測任務上運行非??臁R彩莿倓偺岬降膶崟r物體檢測。
深度學習前加個“分布式”,又是怎么回事?面對越來越復雜的任務,數(shù)據(jù)和深度學習模型的規(guī)模都變得日益龐大。當訓練數(shù)據(jù)詞表增大到成百上千萬時,如果不做任何剪枝處理,深度學習模型可能會擁有上百億、甚至是幾千億個參數(shù)。為了提高深度學習模型的訓練效率,分布式訓練出現(xiàn)了——即同時利用多個工作節(jié)點,分布式地、高效地訓練出性能優(yōu)良的神經(jīng)網(wǎng)絡模型。
目前主要有兩種并行化/分布式訓練方法:數(shù)據(jù)并行化和模型并行化。數(shù)據(jù)并行化里,不同的機器有同一個模型的多個副本,每個機器分配到數(shù)據(jù)的一部分,然后將所有機器的計算結果按照某種方式合并;模型并行化里,分布式系統(tǒng)中的不同機器負責單個網(wǎng)絡模型的不同部分。比如,神經(jīng)網(wǎng)絡模型的不同網(wǎng)絡層被分配到不同機器。





