人工智能、機器學習與深度學習
1 人工智能和機器學習
在正文開始之前,先請大家看一張人工智能、機器學習、深度學習關系圖,如下圖1.1所示
圖1.1 人工智能、機器學習、深度學習關系圖
現在我們帶著一個問題——“你心目中的人工智能是什么樣的?”,我們往下看可能枯燥的文字就會變得有趣了。
人工智能之父——“艾倫·麥席森·圖靈”提出了一種用于判定機器是否具有智能的試驗方法,即圖靈試驗。此原則說:如果一個人使用任意一串問題去詢問兩個他不能看見的對象:一個是正常思維的人;一個是機器,如果經過若干詢問以后他不能得出實質的區別,則他就可以認為該機器業也具備了人的“智能”。
人工智能最早的應用——在二戰期間,圖靈曾協助英國軍方破譯德國著名的密碼系統Enigma,為扭轉二戰盟軍的大西洋戰場戰局立下汗馬功勞。將英國戰時情報中心每月破譯的情報數量從39000條提升到84000條,讓二戰至少提前結束了幾年。感興趣的小伙伴可以觀看相關的電影“模仿游戲”。這里就不再提及。
機器學習:機器學習是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、算法復雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。它是人工智能核心,是使計算機具有智能的根本途徑。
機器學習本質上就是借鑒了我們人類的學習方法,例如:人的絕大部分智能是通過后天訓練和學習得到的,并不是天生就具備的,新生兒剛出生的時候沒有認知能力,在成長的過程中不斷得到信息,對大腦形成刺激,從而建立認知能力。給孩子建立“蘋果”、“橙子”的抽象概念,我們就需要不斷地帶他認識很多“蘋果”、“橙子”的實例和圖片,建立起他對“蘋果”、“橙子”的認知。
圖1.2 認知識物卡
機器學習中的經典算法發展史
圖1.3 機器學習經典算法
在這里就只拿被稱為機器學習天花板的SVM經典算法來闡明一下機器學習的實現原理吧!
還是老樣子,我們帶著實際問題來了解SVM這樣會更加的清晰。比如給你一堆“貓”和“狗”的圖片,讓你將“貓”和“狗”分別識別出來,你會怎么做呢?
圖1.4 貓狗圖片
像這些圖片,我們由于早早的建立起了對“貓”和“狗”的認知,所以我們就能很輕松的分類出來,但是我們沒多少人愿意做這種枯燥無趣的工作,我們有機器,何不訓練機器來幫助我們完成這種簡單無趣的工作呢?
2 數字圖像和模擬圖像
在給大家揭開機器學習和深度學習的神秘面紗之前,先介紹一下圖像處理中的最重要的一項——“圖像”。圖像現在大致可分為“模擬圖像”與“數字圖像”。
模擬圖像:又稱連續圖像,是指在二維坐標系中連續變化的圖像,即圖像的像點是無限稠密的,同時具有灰度值(即圖像從暗到亮的變化值)。連續圖像的典型代表是由光學透鏡系統獲取的圖像,如人物照片和景物照片等,有時又稱模擬圖像。用膠卷拍出的相片是模擬圖像,根據膠卷洗一寸的照片與洗二寸的照片,不影響視覺效果。但模擬圖像包含的信息量巨大,而我們通常需要使用計算機對圖像進行處理,所以需要由有限行和有限列組成數字圖像。如圖2.1所示:
圖2.5 貓狗分類點集
其中紅色的點我們可以認為是“貓”,藍色的點我們認為是“狗”。我們通過上述的特征可以明顯的看出這紅點和藍點之間存在間隔!而我們讓機器能夠找出一個線將紅點和藍點分離開來就可以讓機器來幫助我們識別圖片到底是貓還是狗啦?。ň唧w算法不過多介紹,感興趣的可以百度SVM)分類效果如下圖所示:
圖2.6 SVM二分類線
我們可以看到圖中有一條實線,新的圖片經過計算后結果在實線上方的我們就認為它是藍色的點為“狗”,反之則是紅色的點也就是“貓”,這是一個簡單的二分類,以此類推,我們可以實現多分類!如圖所示:
圖2.7 SVM三分類線
由這個“貓”和“狗”的分類我們基本可以得到機器學習解決問題的流程:
3 深度學習
如同機器學習是在人工智能的基礎發展來的一個分支,深度學習則是在機器學習的基礎上發展來的一個分支。
圖3.1 深度學習比例圖
深度學習也被稱為人工神經網絡,它是建立在我們對于自身認知水平上的產物,就拿下圖生物研究成果來說,我們通過眼睛來收集信息,通過神經元網絡來傳遞給大腦,最后得出我們觀察到的結果。
圖3.2 人體神經網絡結構圖
深度學習也正如同于此,我們還是舉個簡單的實例來分析一波深度學習的工作方式?,F在給我們的問題是一個簡單的手寫數字識別0-9這10個數字。讓我們能夠正確的識別這10個數字。過程其實比較簡單:
我們首先將手寫數字圖片收集起來,將相對應的數字圖片進行相對應的標簽。
將圖片和標簽都告訴計算機,讓其在構建好的卷積網絡中訓練學習。
對學習好的模型進行驗證極其應用。
圖3.3 圖片標注訓練圖
為什么說深度學習為人工神經網絡。接下來我們可以看看這幅圖片。
圖3.4 手寫數字神經網絡圖
Input layer輸入層可以看成輸入的圖片,空心圓圈我們暫且理解為像素好了,這些像素經過中間hidden layer隱藏層(可以看成神經元的傳輸)的運算,最后輸出到output layer輸出層為10個數,這10個數經過運算以后范圍一般為0-1之間,從上到下可以看成為0-9這是個數字的概率值。例如:我們把一張數字9的圖片放入訓練好的模型中,最后到output layer的時候這十個數的數組為[0.12,0.32,0.33,0.10,0.01,0.01,0.01,0.01,0.15,0.99]
分別表示這計算機認為這張圖片是0的概率是0.12……9的概率為0.99。那么我們計算機會挑選概率最大的0.99對應的標簽來認為這張圖片就是9。這些hidden layer的隱藏層如同我們的神經網,起到自動提取特征運算的作用,并且從而對比傳統機器學習算法具有更高的準確率。
那么深度學習就一定比傳統機器學習好嗎?其實不然,他們都各有優劣。
深度學習優點:
1、精準度高(超出傳統機器學習一截),適用性廣。
2、端到端,保密性強(hidden layer隱藏層就相當于一個小黑盒,不到最后的輸出結果你不知道目前到了哪一步)。
3、不需要手動提取特征。
……
深度學習缺點:
1、計算量大、硬件要求高(網絡層數越多計算量越大)。
2、訓練時間久,通用性不強(訓練的它能識別,不訓練的它可能不知道)。
3、不成熟(全世界的專家都在研究hidden layer隱藏層,我們人類竟然能造出不知道具體原理的東西,只知道它能這樣實現功能)。
……
機器學習優點:
1、通用性強。
2、硬件要求低。
3、運算時間短。
4、比較成熟。
……
機器學習缺點:
1、過分依賴于二值化。
……
到了這里想必大家對人工智能、機器學習和深度學習有了一定的了解,回到最初的問題“你心目中的人工智能是什么樣的呢?”,可能現在的技術和你想的略有差距。但未來一定有像電影里的那種人工智能機器人(好了,偏離主題了)