整理:深度學習 vs 機器學習 vs 模式識別

發表于2015-03-24 22:58|?11934次閱讀| 來源個人博客|?26?條評論| 作者Tomasz Malisiewicz

模式識別深度學習機器學習數據科學家
摘要:本文我們來關注下三個非常相關的概念(深度學習、機器學習和模式識別),以及他們與2015年最熱門的科技主題(機器人和人工智能)的聯系,讓你更好的理解計算機視覺,同時直觀認識機器學習的緩慢發展過程。

【編者按】本文來自CMU的博士,MIT的博士后,vision.ai的聯合創始人Tomasz Malisiewicz的個人博客文章,閱讀本文,你可以更好的理解計算機視覺是怎么一回事,同時對機器學習是如何隨著時間緩慢發展的也有個直觀的認識。

以下為正文:

本文我們來關注下三個非常相關的概念(深度學習、機器學習和模式識別),以及他們與2015年最熱門的科技主題(機器人和人工智能)的聯系。

?

圖1 人工智能并非將人放入一臺計算機中(圖片來源于?WorkFusion?的博客)

環繞四周,你會發現不缺乏一些初創的高科技公司招聘機器學習專家的崗位。而其中只有一小部分需要深度學習專家。我敢打賭,大多數初創公司都可以從最基本的數據分析中獲益。那如何才能發現未來的數據科學家?你需要學習他們的思考方式。

三個與“學習”高度相關的流行詞匯

模式識別(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)”。對基礎的研究者來說,仍然是一本不錯的入門教材。不過對于里面的一些詞匯就不要太糾結了,因為這本書已經有一定的年代了,詞匯會有點過時。

?

圖2?一個字符“3”的圖像被劃分為16個子塊。

自定義規則、自定義決策,以及自定義“智能”程序在這個任務上,曾經都風靡一時(更多信息,可以查看這個?OCR?網頁)

小測試:計算機視覺領域最著名的會議叫CVPR,這個PR就是模式識別。你能猜出第一屆CVPR會議是哪年召開的嗎?

2. 機器學習:從樣本中學習的智能程序

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

?

圖3?典型的機器學習流程(圖來源于?Natalia?Konstantinova?博士的博客)。

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

延伸閱讀:要了解更多關于計算機視覺特征的知識,可以看看原作者之前的博客文章:“?從特征描述子到深度學習:計算機視覺的20年?”。

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

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

?

圖4?ConvNet框架(圖來源于?Torch的教程?)

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

如果你要學習Deep?Learning,那就得先復習下一些線性代數的基本知識,當然了,也得有編程基礎。我強烈推薦Andrej?Karpathy的博文:“?神經網絡的黑客指南?”。另外,作為學習的開端,可以選擇一個不用卷積操作的應用問題,然后自己實現基于CPU的反向傳播算法。

對于深度學習,還存在很多沒有解決的問題。既沒有完整的關于深度學習有效性的理論,也沒有任何一本能超越機器學習實戰經驗的指南或者書。另外,深度學習不是萬能的,它有足夠的理由能日益流行,但始終無法接管整個世界。不過,只要你不斷增加你的機器學習技能,你的飯碗無憂。但也不要對深度框架過于崇拜,不要害怕對這些框架進行裁剪和調整,以得到和你的學習算法能協同工作的軟件框架。未來的Linux內核也許會在Caffe(一個非常流行的深度學習框架)上運行,然而,偉大的產品總是需要偉大的愿景、領域的專業知識、市場的開發,和最重要的:人類的創造力。

其他相關術語

1)大數據(Big-data):大數據是個豐富的概念,例如包含大量數據的存儲,數據中隱含信息的挖掘等。對企業經營來說,大數據往往可以給出一些決策的建議。對機器學習算法而言,它與大數據的結合在早幾年已經出現。研究人員甚至任何一個日常開發人員都可以接觸到云計算、GPU、DevOps和PaaS等等這些服務。

2)人工智能(Artificial?Intelligence):人工智能應該是一個最老的術語了,同時也是最含糊的。它在過去50年里經歷了幾度興衰。當你遇到一個說自己是做人工智能的人,你可以有兩種選擇:要么擺個嘲笑的表情,要么抽出一張紙,記錄下他所說的一切。

延伸閱讀:原作者2011的博客:“?計算機視覺當屬人工智能?”。

結論

關于機器學習的討論在此停留(不要單純的認為它是深度學習、機器學習或者模式識別中的一個,這三者只是強調的東西有所不同),然而,研究會繼續,探索會繼續。我們會繼續構建更智能的軟件,我們的算法也將繼續學習,但我們只會開始探索那些能真正一統江湖的框架。

如果你也對深度學習的實時視覺應用感興趣,特別是那些適合機器人和家居智能化的應用,歡迎來我們的網站?vision.ai?交流。希望未來,我能說的再多一點……

作者簡介:Tomasz?Malisiewicz,CMU的博士,MIT的博士后,vision.ai的聯合創始人。關注計算機視覺,在這個領域也做了大量的工作。另外,他的博客也富含信息量和價值,感興趣的可以瀏覽他個人主頁和博客。?

原文鏈接:?Deep Learning vs Machine Learning vs Pattern Recognition(譯者/鄒曉藝,CSDN?博客專家,關注機器學習、計算機視覺、人機交互和人工智能等領域? 責編/錢曙光)

轉載于:https://www.cnblogs.com/Kermit-Li/p/4514746.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258883.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258883.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258883.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

halcon/c++接口基礎 之 HALCON圖像變量類

在HALCON/C中,HObject是一個基類,可以表示圖像變量。另外還有三種類繼承自HObject. Class HImage 處理圖像Class HRegion 處理區域Class HXLD 處理多邊形 Regions 一個region是圖像平面坐標點的集合。這樣一個區域不需要被連通,而且可能還…

新手求大神,有其他swit-case的思路寫這個程序么?

兩個程序: switch-case與if-else if的區別相同點:可以實現多分支結構;不同點:switch:一般只能用于等值比較.(可以進行范圍運算???---學會用switch計算范圍出爐的思路____待解決)if_else if:可以處理范圍計算. switch(變量) { case 變量: break; } switch括號中的"變量…

netty簡單筆記

2019獨角獸企業重金招聘Python工程師標準>>> Server package com.netty;import io.netty.bootstrap.ServerBootstrap; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelFuture; import io.netty.channel.Channel…

c語言與python通信_python和c++通信示例

先貼一個大牛寫的python與C的通信的經典文章:如何實現 C/C 與 Python 的通信? 里面講到了不少方法來實現C和python之間的通信,我看了之后深有感觸,但里面的例程序大多都是int或者string這樣容易轉換的,但如果是list呢&…

halcon/c++接口基礎 之 控制參數

HALCON/C可以處理各種不同類型的字母數字混合的控制參數,如下: 離散數字(long)浮點數字(double)字符串(char*) 控制參數的一個特殊形式是句柄,提供了途徑去訪問復雜的數…

C#使用多態求方形面積周長和圓的面積周長

class class1{public static void Main(string[] args){//使用多態求矩形面積與周長和圓的面積與周長Shape cl new Circle(5);double clarea cl.GetArea();double clpar cl.GetPerimeter();Console.WriteLine("這個圓的面積是{0},周長是{1}", Math.Round(clarea, …

Java編程的邏輯 (84) - 反射

?本系列文章經補充和完善,已修訂整理成書《Java編程的邏輯》,由機械工業出版社華章分社出版,于2018年1月上市熱銷,讀者好評如潮!各大網店和書店有售,歡迎購買,京東自營鏈接:http://…

C# 與 VC Dll 傳輸信息

考慮: 使用string類型傳送; 在VC Dll中解析字符; 使用 string 類型將解析的類型傳送到C#程序中; 建立VC解析的函數,提高代碼可重用性轉載于:https://www.cnblogs.com/ein-key5205/p/3597612.html

linux下python_linux下python安裝

Python2.5的安裝方法: 1.下載源代碼 http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tar.bz2 2. 安裝 $ tar –jxvf Python-2.5.2.tar.bz2 $ cd Python-2.5.2 $ ./configure $ make $ make install 3. 測試 在命令行下輸入python&…

灰度圖像的8位平面分解

所謂灰度圖像,即指8位256顏色的圖像。將圖像的每一位分別取出來,我們就可以將一幅圖像分解開來,形成8幅圖像。下面我們分別介紹使用matlab分解圖像與使用halcon/c分解圖像的方法。 matlab8位分解 clc; clear all; A imread(lena.tif); % 顯…

Win10 UAP 綁定

Compiled DataBinding in Windows Universal Applications (UAP) http://nicksnettravels.builttoroam.com/post/2015/04/26/Compiled-DataBinding-in-Windows-Universal-Applications-(UAP).aspx 讀寫剪貼板 http://www.cnphp6.com/archives/80079 Learn how the Reversi samp…

HDUOJ----4501小明系列故事——買年貨(三維背包)

小明系列故事——買年貨 Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 2146 Accepted Submission(s): 953 Problem Description春節將至,小明要去超市購置年貨,于是小明去了自己經常去…

css 橫線_atom.css正式發布,從此跟CSS框架說拜拜。

atom.css 大家好,我寫了一個css庫atom.css,蠻好用的,所以忍不住分享給大家。(https://github.com/MatrixAge/atom.css)起因寫HTML幾年了,再到如今的JSX,最大的感受不是枯燥,而是眼花。寫樣式的時候&#xf…

halcon模板匹配學習(一) Matching 初印象

什么是模板匹配呢?簡單而言,就是在圖像中尋找目標圖像(模板),或者說,就是在圖像中尋找與模板圖像相似部分的一種圖像處理技術。依賴于選擇的方法不同,模板匹配可以處理各種情形下的變換&#xf…

第五章 面向方面編程___AOP入門

上一篇講了 AOP 和 OOP 的區別,這一次我們開始入門 AOP 。實現面向方面編程的技術,主要分為兩大類: 一是 采用動態代理技術,利用截取消息的方式,對該消息進行裝飾,以取代原有對象行為的執行; 二…

java將xml中的標簽名稱轉為小寫_深入學習Java Web(七): JSTL標簽庫

本文轉自與博客園一杯涼茶的博客.在之前我們學過在JSP頁面上為了不使用腳本,所以我們有了JSP內置的行為、行為只能提供一小部分的功能,大多數的時候還是會用java腳本,接著就使用了EL表達式,基本上EL表達式看似能滿足我們的要求&am…

python中*args和**args的不同

上一段代碼,大家感受一下 def test_param(*args): print(args) def test_param2(**args): print(args) test_param(test1,test2) >>>(test1,test2) test_param2(p1test1,p2test2) >>>{p1:test1, p2:test2} python提供了兩種特別的方法來定義函數的…

halcon模板匹配學習(二) 準備模板

如下,我們將介紹匹配的第一個操作:準備模板 初始時刻,我們準備好參考圖像,并對其做一定的處理,然后我們需要從參考圖像中導出模板,也就是將參考圖像裁剪成所謂的模板圖像。獲取模板圖像可以通過設置ROI來完…

揭秘繼承技術之虛函數

虛函數 調用虛函數時函數行為將根據對象所屬類的不同而變化。 父類指針或引用指向子類對象時&#xff0c;可訪問子類重寫方法&#xff08; virtual函數&#xff09;但無法訪問在父類中沒有定義的子類方法和數據成員。 #include <iostream>using namespace std;class Supe…

java中GET方式提交和POST方式提交

java中GET方式提交的示例&#xff1a; /*** 獲取關注列表;* return*/SuppressWarnings("unchecked")public static ArrayList<String> getUserList() {StringBuffer bufferRes new StringBuffer();ArrayList<String> users null;try {URL realUrl new…