1. 程式人生 > >淺入瞭解深度學習&&機器學習&&模式識別

淺入瞭解深度學習&&機器學習&&模式識別

   模式識別->機器學習->深度學習的進化

    模式識別(Pattern recognition)、機器學習(machine learning)和深度學習(deep learning)代表三種不同的思想流派。模式識別是最古老的(作為一個術語而言,可以說是很過時的)。機器學習是最基礎的(當下初創公司和研究實驗室的熱點領域之一)。而深度學習是非常嶄新和有影響力的前沿領域,我們甚至不會去思考後深度學習時代。我們可以看下圖所示的谷歌趨勢圖。可以看到:

1)機器學習就像是一個真正的冠軍一樣持續昂首而上;
2)模式識別一開始主要是作為機器學習的代名詞;
3)模式識別正在慢慢沒落和消亡;
4)深度學習是個嶄新的和快速攀升的領域。

 

2004年至今三個概念的谷歌搜尋指數(圖來源於 谷歌趨勢 

1. 模式識別:智慧程式的誕生

   模式識別是70年代和80年代非常流行的一個術語。它強調的是如何讓一個計算機程式去做一些看起來很“智慧”的事情,例如識別“3”這個數字。而且在融入了很多的智慧和直覺後,人們也的確構建了這樣的一個程式。例如,區分“3”和“B”或者“3”和“8”。早在以前,大家也不會去關心你是怎麼實現的,只要這個機器不是由人躲在盒子裡面偽裝的就好(圖2)。不過,如果你的演算法對影象應用了一些像濾波器、邊緣檢測和形態學處理等等高大上的技術後,模式識別社群肯定就會對它感興趣。光學字元識別就是從這個社群誕生的。因此,把模式識別稱為70年代,80年代和90年代初的“智慧”訊號處理是合適的。決策樹、啟發式和二次判別分析等全部誕生於這個時代。而且,在這個時代,模式識別也成為了電腦科學領域的小夥伴搞的東西,而不是電子工程。從這個時代誕生的模式識別領域最著名的書之一是由Duda & Hart執筆的“模式識別(Pattern Classification)”。對基礎的研究者來說,仍然是一本不錯的入門教材。不過對於裡面的一些詞彙就不要太糾結了,因為這本書已經有一定的年代了,詞彙會有點過時。


                             

                               圖1 人工智慧並非將人放入一臺計算機中(圖片來源於 WorkFusion 的部落格)

 

圖2 一個字元“3”的影象被劃分為16個子塊。

2. 機器學習:從樣本中學習的智慧程式

    在90年代初,人們開始意識到一種可以更有效地構建模式識別演算法的方法,那就是用資料(可以通過廉價勞動力採集獲得)去替換專家(具有很多影象方面知識的人)。因此,我們蒐集大量的人臉和非人臉影象,再選擇一個演算法,等著計算機完成對這些影象的學習。這就是機器學習的思想。“機器學習”強調的是,在給計算機程式(或者機器)輸入一些資料後,學習這些資料,而這個學習的步驟是明確的。相信我,就算計算機完成學習要耗上一天的時間,也會比你邀請你的研究夥伴來到你家然後專門手工得為這個任務設計一些分類規則要好。

 

圖3 典型的機器學習流程(圖來源於 Natalia Konstantinova 博士的部落格)。

    在21世紀中期,機器學習成為了電腦科學領域一個重要的研究課題,電腦科學家們開始將這些想法應用到更大範圍的問題上,不再限於識別字符、識別貓和狗或者識別影象中的某個目標等等這些問題。研究人員開始將機器學習應用到機器人(強化學習,操控,行動規劃,抓取)、基因資料的分析和金融市場的預測中。另外,機器學習與圖論的聯姻也成就了一個新的課題---圖模型。每一個機器人專家都“無奈地”成為了機器學習專家,同時,機器學習也迅速成為了眾人渴望的必備技能之一。然而,“機器學習”這個概念對底層演算法隻字未提。我們已經看到凸優化、核方法、支援向量機和Boosting演算法等都有各自輝煌的時期。再加上一些人工設計的特徵,那在機器學習領域,我們就有了很多的方法,很多不同的思想流派,然而,對於一個新人來說,對特徵和演算法的選擇依然一頭霧水,沒有清晰的指導原則。

3. 深度學習:一統江湖的架構

    快進到今天,我們看到的是一個奪人眼球的技術---深度學習。而在深度學習的模型中,受寵愛最多的就是被用在大規模影象識別任務中的卷積神經網路(Convolutional Neural Nets,CNN),簡稱ConvNets。

 

圖4 ConvNet框架(圖來源於 Torch的教程 

    深度學習強調的是你使用的模型(例如深度卷積多層神經網路),模型中的引數通過從資料中學習獲得。然而,深度學習也帶來了一些其他需要考慮的問題。因為面對的是一個高維的模型(即龐大的網路),所以需要大量的資料(大資料)和強大的運算能力(圖形處理器,GPU)才能優化這個模型。卷積被廣泛用於深度學習(尤其是計算機視覺應用中),而且它的架構往往都是非淺層的。

英文版:http://blog.csdn.net/garfielder007/article/details/50514880