近些年人工智能、機器學習和深度學習的概念十分火熱,但很多從業者卻很難說清它們之間的關系,外行人更是霧里看花。在研究深度學習之前,先從三個概念的正本清源開始。概括來說,人工智能、機器學習和深度學習覆蓋的技術范疇是逐層遞減的,三者的關系如?圖1?所示,即:人工智能 > 機器學習 > 深度學習。
圖1:人工智能、機器學習和深度學習三者關系示意
人工智能(ArtificialIntelligence,AI)是最寬泛的概念,是研發用于模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學。由于這個定義只闡述了目標,而沒有限定方法,因此實現人工智能存在的諸多方法和分支,導致其變成一個“大雜燴”式的學科。機器學習(MachineLearning,ML)是當前比較有效的一種實現人工智能的方式。深度學習(DeepLearning,DL)是機器學習算法中最熱門的一個分支,近些年取得了顯著的進展,并替代了大多數傳統機器學習算法。
2. 機器學習
區別于人工智能,機器學習、尤其是監督學習則有更加明確的指代。機器學習是專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構,使之不斷改善自身的性能。這句話有點“云山霧罩”的感覺,讓人不知所云,下面我們從機器學習的實現和方法論兩個維度進行剖析,幫助讀者更加清晰地認識機器學習的來龍去脈。
2.1 機器學習的實現
機器學習的實現可以分成兩步:訓練和預測,類似于歸納和演繹:
歸納:?從具體案例中抽象一般規律,機器學習中的“訓練”亦是如此。從一定數量的樣本(已知模型輸入X和模型輸出Y)中,學習輸出Y與輸入X的關系(可以想象成是某種表達式)。
演繹:?從一般規律推導出具體案例的結果,機器學習中的“預測”亦是如此?;谟柧毜玫降腨與X之間的關系,如出現新的輸入X,計算出輸出Y。通常情況下,如果通過模型計算的輸出和真實場景的輸出一致,則說明模型是有效的。
2.2 機器學習的方法論
機器學習的方法論和人類科研的過程有著異曲同工之妙,下面以“機器從牛頓第二定律實驗中學習知識”為例,幫助讀者更加深入理解機器學習(監督學習)的方法論本質,即在“機器思考”的過程中確定模型的三個關鍵要素:假設、評價、優化。
2.2.1 案例:機器從牛頓第二定律實驗中學習知識
牛頓第二定律
牛頓第二定律是艾薩克·牛頓在1687年于《自然哲學的數學原理》一書中提出的,其常見表述:物體加速度的大小跟作用力成正比,跟物體的質量成反比,與物體質量的倒數成正比。牛頓第二運動定律和第一、第三定律共同組成了牛頓運動定律,闡述了經典力學中基本的運動規律。
在中學課本中,牛頓第二定律有兩種實驗設計方法:傾斜滑動法和水平拉線法,如?圖2?所示。
圖2:牛頓第二定律實驗設計方法
相信很多讀者都有擺弄滑輪和小木塊做物理實驗的青澀年代和美好回憶。通過多次實驗數據,可以統計出如?表1?所示的不同作用力下的木塊加速度。
表1:實驗獲取的大量數據樣本和觀測結果
觀察實驗數據不難猜測,物體的加速度a和作用力F之間的關系應該是線性關系。因此我們提出假設,其中,a代表加速度,F代表作用力,w是待確定的參數。
通過大量實驗數據的訓練,確定參數w是物體質量的倒數(1/m),即得到完整的模型公式。當已知作用到某個物體的力時,基于模型可以快速預測物體的加速度。例如:燃料對火箭的推力F=10,火箭的質量m=2,可快速得出火箭的加速度a=5。
2.2.2 如何確定模型參數?
這個有趣的案例演示了機器學習的基本過程,但其中有一個關鍵點的實現尚不清晰,即:如何確定模型參數()?
確定參數的過程與科學家提出假說的方式類似,合理的假說可以最大化的解釋所有的已知觀測數據。如果未來觀測到不符合理論假說的新數據,科學家會嘗試提出新的假說。如:天文史上,使用大圓和小圓組合的方式計算天體運行,在中世紀是可以擬合觀測數據的。但隨著歐洲工業革命的推動,天文觀測設備逐漸強大,已有的理論已經無法解釋越來越多的觀測數據,這促進了使用橢圓計算天體運行的理論假說出現。因此,模型有效的基本條件是能夠擬合已知的樣本,這給我們提供了學習有效模型的實現方案。
圖3?是以H為模型的假設,它是一個關于參數w和輸入x的函數,用?表示。模型的優化目標是的輸出與真實輸出Y盡量一致,兩者的相差程度即是模型效果的評價函數(相差越小越好)。那么,確定參數的過程就是在已知的樣本上,不斷減小該評價函數(H和Y的差距)的過程。直到模型學習到一個參數w,使得評價函數的值最小,衡量模型預測值和真實值差距的評價函數也被稱為損失函數(損失Loss)。
圖3:確定模型參數示意圖
假設機器通過嘗試答對(最小化損失)大量的習題(已知樣本)來學習知識(模型參數w),并期望用學習到的知識所代表的模型,回答不知道答案的考試題(未知樣本)。最小化損失是模型的優化目標,實現損失最小化的方法稱為優化算法,也稱為尋解算法(找到使得損失函數最小的參數解)。參數w和輸入x組成公式的基本結構稱為假設。在牛頓第二定律的案例中,基于對數據的觀測,我們提出了線性假設,即作用力和加速度是線性關系,用線性方程表示。由此可見,模型假設、評價函數(損失/優化目標)和優化算法是構成模型的三個關鍵要素。
2.2.3 模型結構
模型假設、評價函數和優化算法是如何支撐機器學習流程的呢?如圖4?所示。
圖4:機器學習流程
?
模型假設:世界上的可能關系千千萬,漫無目標的試探Y~X之間的關系顯然是十分低效的。因此假設空間先圈定了一個模型能夠表達的關系可能,如藍色圓圈所示。機器還會進一步在假設圈定的圓圈內尋找最優的Y~X關系,即確定參數w。
評價函數:尋找最優之前,我們需要先定義什么是最優,即評價一個Y~X關系的好壞的指標。通常衡量該關系是否能很好的擬合現有觀測樣本,將擬合的誤差最小作為優化目標。
優化算法:設置了評價指標后,就可以在假設圈定的范圍內,將使得評價指標最優(損失函數最小/最擬合已有觀測樣本)的Y~X關系找出來,這個尋找最優解的方法即為優化算法。最笨的優化算法即按照參數的可能,窮舉每一個可能取值來計算損失函數,保留使得損失函數最小的參數作為最終結果。
從上述過程可以得出,機器學習的過程與牛頓第二定律的學習過程基本一致,都分為假設、評價和優化三個階段:
假設:通過觀察加速度a和作用力F的觀測數據,假設a和F是線性關系,即。
評價:對已知觀測數據上的擬合效果好,即計算的結果要和觀測的a盡量接近。
優化:在參數w的所有可能取值中,發現可使得評價最好(最擬合觀測樣本)。
機器執行學習任務的框架體現了其學習的本質是“參數估計”(Learning is parameter estimation)。
上述方法論使用更規范化的表示如圖5所示,未知目標函數f,以訓練樣本
為依據。從假設集合H中,通過學習算法A找到一個函數g。如果g能夠最大程度的擬合訓練樣本D,那么可以認為函數g就接近于目標函數f。
?
圖5:規范化表示
?
在此基礎上,許多看起來完全不一樣的問題都可以使用同樣的框架進行學習,如科學定律、圖像識別、機器翻譯和自動問答等,它們的學習目標都是擬合一個“大公式f”,如?圖6?所示。
圖6:機器學習就是擬合一個“大公式”
3. 深度學習
機器學習算法理論在上個世紀90年代發展成熟,在許多領域都取得了成功,但平靜的日子只延續到2010年左右。隨著大數據的涌現和計算機算力提升,深度學習模型異軍突起,極大改變了機器學習的應用格局。今天,多數機器學習任務都可以使用深度學習模型解決,尤其在語音、計算機視覺和自然語言處理等領域,深度學習模型的效果比傳統機器學習算法有顯著提升。
相比傳統的機器學習算法,深度學習做出了哪些改進呢?其實兩者在理論結構上是一致的,即:模型假設、評價函數和優化算法,其根本差別在于假設的復雜度。如?圖6?第二個示例(圖像識別)所示,對于美女照片,人腦可以接收到五顏六色的光學信號,能快速反應出這張圖片是一位美女,而且是程序員喜歡的類型。但對計算機而言,只能接收到一個數字矩陣,對于美女這種高級的語義概念,從像素到高級語義概念中間要經歷的信息變換的復雜性是難以想象的,如圖7所示。
圖7:深度學習的模型復雜度難以想象
這種變換已經無法用數學公式表達,因此研究者們借鑒了人腦神經元的結構,設計出神經網絡的模型,如圖8所示。圖8(a)展示了神經網絡基本單元-感知機的設計方案,其處理信息的方式與人腦中的單一神經元有很強的相似性;圖8(b)展示了幾種經典的神經網絡結構(后續的章節中會詳細闡述),類似于人腦中多種基于大量神經元連接而形成的不同職能的器官。
圖8:模擬人腦結構,針對各種任務設計不同的深度學習模型
3.1 神經網絡的基本概念
人工神經網絡包括多個神經網絡層,如:卷積層、全連接層、LSTM等,每一層又包括很多神經元,超過三層的非線性神經網絡都可以被稱為深度神經網絡。通俗的講,深度學習的模型可以視為是輸入到輸出的映射函數,如圖像到高級語義(美女)的映射,足夠深的神經網絡理論上可以擬合任何復雜的函數。因此神經網絡非常適合學習樣本數據的內在規律和表示層次,對文字、圖像和語音任務有很好的適用性。這幾個領域的任務是人工智能的基礎模塊,因此深度學習被稱為實現人工智能的基礎也就不足為奇了。
神經網絡基本結構如?圖9?所示。
圖9:神經網絡基本結構示意圖
神經元:?神經網絡中每個節點稱為神經元,由兩部分組成:
加權和:將所有輸入加權求和。
非線性變換(激活函數):加權和的結果經過一個非線性函數變換,讓神經元計算具備非線性的能力。
多層連接:?大量這樣的節點按照不同的層次排布,形成多層的結構連接起來,即稱為神經網絡。
前向計算:?從輸入計算輸出的過程,順序從網絡前至后。
計算圖:?以圖形化的方式展現神經網絡的計算邏輯又稱為計算圖,也可以將神經網絡的計算圖以公式的方式表達:
由此可見,神經網絡并沒有那么神秘,它的本質是一個含有很多參數的“大公式”。如果大家感覺這些概念仍過于抽象,理解的不夠透徹,先不用著急,下一章會以“房價預測”為例,演示使用Python實現神經網絡模型的細節。
3.2 深度學習的發展歷程
神經網絡思想的提出已經是70多年前的事情了,現今的神經網絡和深度學習的設計理論是一步步趨于完善的。在這漫長的發展歲月中,一些取得關鍵突破的閃光時刻,值得深度學習愛好者們銘記,如?圖10?所示。
圖10:深度學習發展歷程
1940年代:首次提出神經元的結構,但權重是不可學的。
50-60年代:提出權重學習理論,神經元結構趨于完善,開啟了神經網絡的第一個黃金時代。
1969年:提出異或問題(人們驚訝的發現神經網絡模型連簡單的異或問題也無法解決,對其的期望從云端跌落到谷底),神經網絡模型進入了被束之高閣的黑暗時代。
1986年:新提出的多層神經網絡解決了異或問題,但隨著90年代后理論更完備并且實踐效果更好的SVM等機器學習模型的興起,神經網絡并未得到重視。
2010年左右:深度學習進入真正興起時期。隨著神經網絡模型改進的技術在語音和計算機視覺任務上大放異彩,也逐漸被證明在更多的任務,如自然語言處理以及海量數據的任務上更加有效。至此,神經網絡模型重新煥發生機,并有了一個更加響亮的名字:深度學習。
為何神經網絡到2010年后才煥發生機呢?這與深度學習成功所依賴的先決條件:大數據涌現、硬件發展和算法優化有關。
大數據是神經網絡發展的有效前提。神經網絡和深度學習是非常強大的模型,需要足夠量級的訓練數據。時至今日,之所以很多傳統機器學習算法和人工特征依然是足夠有效的方案,原因在于很多場景下沒有足夠的標記數據來支撐深度學習。深度學習的能力特別像科學家阿基米德的豪言壯語:“給我一根足夠長的杠桿,我能撬動地球!”。深度學習也可以發出類似的豪言:“給我足夠多的數據,我能夠學習任何復雜的關系”。但在現實中,足夠長的杠桿與足夠多的數據一樣,往往只能是一種美好的愿景。直到近些年,各行業IT化程度提高,累積的數據量爆發式地增長,才使得應用深度學習模型成為可能。
依靠硬件的發展和算法的優化?,F階段,依靠更強大的計算機、GPU、autoencoder預訓練和并行計算等技術,深度學習在模型訓練上的困難已經被逐漸克服。其中,數據量和硬件是更主要的原因。沒有前兩者,科學家們想優化算法都無從進行。
3.3 深度學習的研究和應用蓬勃發展
早在1998年,一些科學家就已經使用神經網絡模型識別手寫數字圖像了。但深度學習在計算機視覺應用上的興起,還是在2012年ImageNet比賽上,使用AlexNet做圖像分類。如果比較下1998年和2012年的模型,會發現兩者在網絡結構上非常類似,僅在細節上有所優化。在這十四年間,計算性能的大幅提升和數據量的爆發式增長,促使模型完成了從“簡單的數字識別”到“復雜的圖像分類”的跨越。
雖然歷史悠久,但深度學習在今天依然在蓬勃發展,一方面基礎研究快速發展,另一方面工業實踐層出不窮。基于深度學習的頂級會議ICLR(International Conference on Learning Representations)統計,深度學習相關的論文數量呈逐年遞增的狀態,如?圖11?所示。同時,不僅僅是深度學習會議,與數據和模型技術相關的會議ICML和KDD,專注視覺的CVPR和專注自然語言處理的EMNLP等國際會議的大量論文均涉及著深度學習技術。該領域和相關領域的研究方興未艾,技術仍在不斷創新突破中。
圖11:深度學習相關論文數量逐年攀升
另一方面,以深度學習為基礎的人工智能技術,在升級改造眾多的傳統行業領域,存在極其廣闊的應用場景。圖12?選自艾瑞咨詢的研究報告,人工智能技術不僅可在眾多行業中落地應用(廣度),同時,在部分行業(如安防、遙感、互聯網、金融、工業等)已經實現了市場化變現和高速增長(深度),為社會貢獻了巨大的經濟價值。
圖12:以深度學習為基礎的AI技術在各行業廣泛應用
如圖13所示,以計算機視覺的行業應用分布為例,根據IDC的數據統計和預測,隨著人工智能向各個行業的滲透,當前較多運用人工智能的互聯網行業的產值占比反而會逐漸變小。
圖13:以深度學習為基礎的AI技術在各行業廣泛應用
3.4 深度學習改變了AI應用的研發模式
3.4.1 實現了端到端的學習
深度學習改變了很多領域算法的實現模式。在深度學習興起之前,很多領域建模的思路是投入大量精力做特征工程,將專家對某個領域的“人工理解”沉淀成特征表達,然后使用簡單模型完成任務(如分類或回歸)。而在數據充足的情況下,深度學習模型可以實現端到端的學習,即不需要專門做特征工程,將原始的特征輸入模型中,模型可同時完成特征提取和分類任務,如?圖14?所示。
圖14:深度學習實現了端到端的學習
以計算機視覺任務為例,特征工程是諸多圖像科學家基于人類對視覺理論的理解,設計出來的一系列提取特征的計算步驟,典型如SIFT特征。在2010年之前的計算機視覺領域,人們普遍使用SIFT一類特征+SVM一類的簡單淺層模型完成建模任務。
說明:
SIFT特征由David Lowe在1999年提出,在2004年加以完善。SIFT特征是基于物體上的一些局部外觀的興趣點而與影像的大小和旋轉無關。對于光線、噪聲、微視角改變的容忍度也相當高?;谶@些特性,它們是高度顯著而且相對容易擷取,在母數龐大的特征數據庫中,很容易辨識物體而且鮮有誤認。使用SIFT特征描述對于部分物體遮蔽的偵測率也相當高,甚至只需要3個以上的SIFT物體特征就足以計算出位置與方位。在現今的電腦硬件速度下和小型的特征數據庫條件下,辨識速度可接近即時運算。SIFT特征的信息量大,適合在海量數據庫中快速準確匹配。
3.4.2 實現了深度學習框架標準化
除了應用廣泛的特點外,深度學習還推動人工智能進入工業大生產階段,算法的通用性導致標準化、自動化和模塊化的框架產生,如?圖15?所示。
圖15:深度學習模型具有通用性特點
在此之前,不同流派的機器學習算法理論和實現均不同,導致每個算法均要獨立實現,如隨機森林和支撐向量機(SVM)。但在深度學習框架下,不同模型的算法結構有較大的通用性,如常用于計算機視覺的卷積神經網絡模型(CNN)和常用于自然語言處理的長期短期記憶模型(LSTM),都可以分為組網模塊、梯度下降的優化模塊和預測模塊等。這使得抽象出統一的框架成為了可能,并大大降低了編寫建模代碼的成本。一些相對通用的模塊,如網絡基礎算子的實現、各種優化算法等都可以由框架實現。建模者只需要關注數據處理,配置組網的方式,以及用少量代碼串起訓練和預測的流程即可。
在深度學習框架出現之前,機器學習工程師處于“手工作坊”生產的時代。為了完成建模,工程師需要儲備大量數學知識,并為特征工程工作積累大量行業知識。每個模型是極其個性化的,建模者如同手工業者一樣,將自己的積累形成模型的“個性化簽名”。而今,“深度學習工程師”進入了工業化大生產時代,只要掌握深度學習必要但少量的理論知識,掌握Python編程,即可在深度學習框架上實現非常有效的模型,甚至與該領域最領先的模型不相上下。建模領域的技術壁壘面臨著顛覆,也是新入行者的機遇。
圖16:深度學習框架大大減低了AI建模難度
4. 人工智能的職業發展空間廣闊
哲學家們告訴我們,做我們所喜歡的,然后成功就會隨之而來。
—— 沃倫 · 巴菲特 (全球著名的投資家)
相信本課程的讀者中有很多在校籌備找工作的同學和職場中期望轉型的工程師, 大家普遍對人工智能的職業發展非常關心。下面就從經濟回報的視角,分析下人工智能是不是一個有前途的職業。坦率的說,如巴菲特所言,選擇一個自己喜歡的職業是真正的好職業。但對于多數普通人,經濟回報也是職業選擇的重要考慮因素。一個有高經濟回報的職業一定是市場需求遠遠大于市場供給的職業,且市場需求要保持長期的增長,而市場供給難以中短期得到補充。
人工智能崗位的市場需求旺盛
根據各大咨詢公司的行業研究報告,人工智能相關產業在未來十年預計有30%~40%的年增長率。一方面,人工智能的應用會從互聯網行業逐漸擴展到金融、工業、農業、能源、城市、交通、醫療、教育等更廣泛的行業,應用空間和潛力巨大;另一方面,受限于工智能技術本身的成熟度以及人工智能落地要結合場景的數據處理、系統改造和業務流程優化等條件的制約,人工智能應用的價值釋放過程會相對緩慢。這使得市場對人工智能的崗位需求形成了一條穩步又長期增長的曲線,與互聯網行業相比,對多數的求職者更加友好,如圖17所示。
互聯網行業由于技術成熟周期短,應用落地的推進速度快,反而形成一條增長率更高(年增長率超過100%)但增長周期更短的曲線(電腦互聯網時代10年,移動互聯網時代10年)。當行業增長達到頂峰,對崗位的需求也會相應回落,如同2021年底的互聯網行業的現狀。
圖17:人工智能崗位的市場供給對比
復合型人才成為市場剛需
在人工智能落地到千行萬業的過程中,企業需求量最大、也最為迫切的是既懂行業知識和場景,又懂人工智能理論,還具備實踐能力和經驗的“復合型人才”。成為“復合型人才”不僅需要學習書本知識,還要大量進行產業實踐,使得這種人才有成長深度,供給增長緩慢。從上述分析可見,當人工智能產業在未來幾十年保持穩定的增長,而產業需要的“復合型人才”又難以大量供給的情況下,人工智能應用研發崗位會維持一個很好的經濟回報。
人生天地之間,若白駒過隙,忽然而已,每個人都希望留下自己的足跡。為何要學習深度學習技術,以及如何通過這本書來學習呢?一方面,深度學習的應用前景廣闊,是極好的發展方向和職業選擇。另一方面,本書會使用國產的深度學習框架飛槳(PaddlePaddle)來編寫實踐案例,基于框架的編程讓深度學習變得易學易用。
編輯:黃飛
?
評論
查看更多