中科院自動化所副所長劉成林教授:模式識別,從初級感知到高級認知
- 2021 年 11 月 26 日
- AI
今年10月12日,2021中國人工智慧大會(CCAI 2021)在成都正式啟幕,23位中外院士領銜,近百位學術技術精英共聚西南人工智慧新高地,深入呈現人工智慧學術研究,以及技術創新與行業應用的最新成果。中國人工智慧學會副理事長、中科院自動化所副所長/研究員、IAPR/IEEE/CAA/CAAI Fellow劉成林教授發表了題為《模式識別:從初級感知到高級認知》的演講,向與會者介紹了模式識別的內涵、演化、研究現狀以及未來值得研究的方向。
本次演講首先對模式識別領域做了一個基本的介紹,然後分析了模式識別的研究現狀,介紹了一些模式結構理解方面的新進展,最後從結合認知的角度講了將來有哪些值得研究的問題和方向。
以下是演講全文,AI科技評論進行了不改變原意的整理。
1. 模式識別的內涵
模式識別或機器感知,是人工智慧領域的幾個主要分支方向之一。人工智慧是模擬人的智慧,那麼模式識別就是模擬人的感知功能。感知功能是人或機器最重要的智慧之一,因為人或機器要從環境中獲得資訊,首先要通過感知,比如通過視覺識別場景、人物和文字,通過聽覺跟人交流。心理學或者認知科學對感知或模式識別的定義是:把獲得的刺激,也就是感知訊號與腦子裡所存儲的資訊進行匹配,從而判斷所感知到的是什麼內容。從電腦實現模式識別的角度,也有一些定義,大概可以分成兩類:
-
一類是狹義的,就是根據某種客觀標準對目標進行分類和標記,這裡主要是指分類。
-
另一類是廣義的,就是對數據中的目標、現象或事件進行分類或者描述。這個描述就是一個比較複雜的感知過程,因為描述實際上要對模式的結構進行理解。
綜合起來,模式識別的定義就是,研究如何使機器模擬人的感知功能,從環境感知數據中檢測、識別和理解目標、行為、事件等模式。
模式識別的基本流程是用感測器(比如攝影機)獲取感知數據(如影像)後,對影像中的物體進行檢測和定位,然後用一個模式分類器判斷物體屬於哪類,這是一個傳統的模式識別流程。
如果要擴展到描述,就要對物體內部結構和影像中多個物體之間的關係進行分析,最後用自然語言句子描述出來。比如下圖這個影像,它最後給出的結果可能是:「穿火箭隊11號球衣的姚明與教練站在一起」,如果不知道這個人是誰,結果可能是「兩個身高相差很大的人站在一起」,這就是一個比較複雜的模式理解過程。
2. 模式識別的方法演化
模式識別領域與人工智慧領域的發展幾乎初步,從上世紀50年代以來提出了很多方法。我們看到,1957年最早發表關於模式識別的論文。50年代到60年代,主要是基於統計決策的方法,也就是統計模式識別。60年代末開始提出句法模式識別,70年代到80年代,句法模式識別或者結構模式識別都是研究重點,當然統計模式識別也在不斷向前發展。80年代中期,多層神經網路引起了廣泛關注,90年代則開始出現多種學習方法。
機器學習在60年代就提出了,最早的機器學習主要指模式分類器的參數估計(如N.J. Nilsson的Learning Machines一書),但現在內容更寬泛了。90年代有大量的機器學習方法提出來,也是圍繞模式識別問題,主要用於模式分類器設計或者分類器的參數估計,包括90年代比較有代表性的支援向量機。2000年後還有更多的學習方法,包括多分類器(集成學習)、多任務學習、概率圖模型、遷移學習等。現在主要是深度學習方法,可以說是最主流也幾乎是統治的方法。
模式識別的方法按模式表示方式可以分為統計方法和結構方法兩大類。統計方法基於特徵矢量表示,廣義地說,神經網路或支援向量機也屬於統計方法。結構方法要對模式進行結構描述,過去幾十年一直都在研究,但目前還不太實用。統計和結構混合的方法從80年代開始提得比較多,這種方法是在結構模型中融入統計屬性,如屬性圖和概率圖模型,現在神經網路與圖模型或者圖神經網路結合得越來越多。
模式分類器從功能的角度上來說,又分為生成模型和判別模型。判別模型目標就是為了把不同類別的模式分開,主要關心區分性。生成模型則有點像我們腦子裡的模板匹配或者特徵匹配,比如我看見一個人,是把這個人跟記憶中認識的人的影像或特徵進行匹配從而識別出來。存在腦子裡的這些影像或特徵,就像一個生成模型。生成模型除了能用於分類,同時因為它表達了每一類的特點或概率分布,所以又能用來生成數據。
從模型學習的角度來說,有關學習方法又分為生成學習或者判別學習,判別學習是為了提高模型的分類能力,比如神經網路主要是判別學習,而生成學習是為了得到一類數據的表示模型。
1. 當前主流方法
深度學習(深度神經網路)現在是模式識別領域統治性的方法。深度學習最早提出是在2006年Hinton發表的一篇文章。這篇文章提出多層神經網路的逐層訓練方法,克服層數較多時難以收斂的問題。80年代多層神經網路訓練的誤差反向傳播演算法(BP演算法)之後,對超過五層的神經網路訓練難以收斂而且泛化性不好。逐層訓練方法在這方面有了很大的改進。早期深度學習主要在語音識別中取得成功,像循環神經網路 LSTM(長短期記憶網路) 也是在2006年提出的,在語音識別和手寫文字識別中產生了很大影響。
基於這種函數映射的方式,只要有大量的標記數據訓練(估計函數的參數),就可以達到很高的分類性能,甚至超過我們人類的識別能力。
最近十幾年,深度學習之所以能夠取得巨大成功,主要在於計算能力的提升,可以用大量數據訓練神經網路。在 2012 年大規模影像分類競賽(ImageNet)中,用了100多萬影像樣本訓練深度卷積網路,與之前傳統模式識別方法(基於人工特徵提取)相比,分類正確率提高了 10 %以上。這是一個巨大的飛躍,因為過去傳統方法要提高 1 %都是很困難的。
現在深度神經網路能夠從影像里自動提取特徵,把特徵提取和分類器進行聯合學習或端到端的學習,能夠提取到表達和判別能力更強的特徵。深度學習在模式識別的其他任務上也有很大的進展。
比如,物體檢測過去認為是一個很難的問題, 90年代末開始人臉識別技術實用化,就要從影像中檢測定位人臉,早期檢測方法基於滑動窗分類,精度和速度都必較低。現在提出的很多基於深度神經網路的兩階段分類或者一階段分類的方法,實質上也是把神經網路作為一個兩類分類器,在影像不同區域判斷它是前景還是背景區域。現在深度神經網路藉助大算力和大數據訓練,物體檢測的精度和速度都有很大提升。
影像分割問題過去也是很難的,這是一個像素分類問題,就是把每個像素分類到不同的物體或背景區域。根據不同的需求,現在提出了所謂的語義分割、實例分割、全景分割等多種有效的方法,都取得了很大進展。
上面說的檢測、分割和目標識別都是分類問題,現在一些更複雜的模式識別問題,例如影像描述也可以用深度神經網路的端到端的方法實現。
影像描述,就是給定一幅圖,用自然語言句子描述這個影像的內容。端到端的方法,就是底層用一個卷積神經網路去提取特徵,然後上面加一個循環神經網路,即 LSTM 神經網路去生成語言。這兩個網路進行聯合訓練,用大量影像和語言配對的數據去訓練神經網路,就可以達到比較好的語言描述性能。最近也有一些可解釋性更好的深度神經網路方法,把自底向上的物體檢測與自頂向下的語言生成模型結合,先檢測到很多候選物體區域,然後對它們進行關係分析的基礎上生成句子。
影像分類、檢測、分割以及影像描述等過去都被認為很難的問題,最近不到十年時間,性能都提升得很快,而且很多技術在我們日常生活中已經被廣泛應用,比如智慧手機上用到的很多模式識別技術,包括人臉識別、文字識別、語音識別等,網路影像檢索也做得非常好。
這種數據驅動的神經網路,大部分是端到端的模型,是不是就能解決所有的問題?其實這種方法還有很多不足,還是有很多問題需要解決。一個問題就是深度神經網路需要標記大量數據用於訓練,而標記數據的代價非常大。此外,神經網路這種端到端的學習方式,可解釋性比較差。人並不是這樣學習的,也不需要很多數據,而且人識別模式的可解釋性比較強。比如,我們識別一個人不僅能識別出是誰,還能解釋為什麼這個人是張三還是李四,這個人的眼睛、鼻子、臉,以及行為、身體有什麼特點等都能給出一個詳細解釋,而現在的神經網路很難做到。
神經網路的解釋能力差也會引起識別的魯棒性差,也就是穩定性比較差,識別結果容易受干擾。
現在看一些例子。在很多實際應用中對識別的可靠性要求非常高,有些場合要求識別結果不能出錯,可以有部分拒識(不認識)。如手寫文字識別,現在基於深度學習得到了很高的識別精度,但還是會有少量錯誤。對金額票據識別這樣的應用是不允許出錯的,如果能拒識一部分消除錯誤,拒識的部分可以交給人工處理。而深度神經網路的拒識能力比人類要差很多,因為它們基於統計分類,沒有結構解釋能力,容易把似是而非的模式分錯。
深度神經網路經過大數據訓練後,雖然識別正確率可能比人還高,但對於少部分容易錯的地方除了不能夠拒識,還會產生一些莫名其妙的錯誤。如下圖所示,在對抗學習的場合,這個熊貓影像加上少量雜訊,得到右邊的影像在人看上去幾乎沒有變化,但是神經網路得到的識別結果就完全變了。
像後面這個影像,神經網路描述為「一個小孩拿著棒球棒」,明顯是錯的,而且邏輯上也不通,這麼小的孩子不可能拿一根棒球棒;右上角這個交通標誌圖上只是加了幾個黑點,就把它判斷成一個限速標誌。還有下面這些影像描述結果也是不對的,倒數第二個是一個標誌牌,上面貼了一些貼紙,就被認為是一台冰箱。因為深度神經網路沒有可解釋性,所以它的魯棒性也很差。
2. 結構模式識別早期進展
上世紀七八十年代流行的句法模式識別,是希望用一個語法或者樹結構或圖結構表示模式,通過語法解析或結構模式匹配進行識別。這些工作過去很長時間都沒有達到實用化,但是這些思想對我們現在的研究是很有啟發的。基於筆劃匹配的手寫漢字識別在八九十年代以來也有很多研究,包括我自己做的一個工作:因為筆劃提取很困難,我們提出一個基於筆劃段動態合併和匹配的方法。
基於圖的方法,到現在為止還是一種主流方法。早在1973年,美國的兩名科學家就在 IEEE Transaction on Computers上發表文章,提出Pictorial Structure(圖形結構),就是一個物體由多個部件構成,不同部件之間的關係用一個彈簧表示,這與我們今天的圖結構很相似。
到了2005年,芝加哥大學的Felzenszwalb等人用概率圖模型實現這種圖結構方法,用於人體姿態估計和人臉檢測。後來又發展出判別性的基於部件的模型,這個部件模型表示了一個物體的多個部件,每個部件的形狀、位置和物體整體形狀都用一個概率模型表示。如果一個物體有不同視角,它的表觀可能會有很大變化,這就用一個混合模型表示出來,用於物體檢測,取得了非常好的效果。
另一個影響比較大的圖方法叫做Constellation Model(星座模型),是加州理工學院提出的。這個模型有一個中心表示整體形狀,每個部件的位置、尺度和形狀以一個聯合的概念密度模型表示出來,可以用於物體的檢測和識別。因為它是一個生成模型,可以實現小樣本泛化,每個類別在樣本數比較少的情況下,也可以得到比較好的性能。
十幾年前還有一個叫做Image Parsing 的工作,就是把影像中不同的前景區域和背景區域,統一用一個圖來描述。在分析時先採用檢測器檢測物體和文本區域,產生一些自底向上的假設,然後自頂向下的生成模型來分析它們的關係。這個工作還沒有用到深度學習,所以它的分析精度是有限的。
現在的深度神經網路從數據學習的能力很強,但是可解釋性不夠,我們希望對於影像場景分析這樣的問題,能夠做到可解釋同時精度又比較高,可以把傳統的結構模型與深度神經網路結合,比如用卷積神經網路提取影像特徵,做物體或部件檢測,然後上層用一個結構模型來表示這些物體或部件之間的關係。
3. 一些最新進展
現在,圖神經網路的學習和推理能力很強,使用非常靈活,但是需要給定圖結構。很多結構模型的學習需要細粒度標註的訓練數據,有些也可以實現弱監督學習。還有一個值得注意的方向,就是有一些結構可解釋的神經網路,採用模組化的結構,可自動學習可分解的部件。這裡我介紹一些最近有代表性的關於結構理解的工作,包括可解釋性神經網路、深度圖匹配、公式識別、影像場景理解等,這些方向每個都形成了一系列的工作。
可解釋性神經網路的代表是Hinton等人提出的膠囊網路,網路中的每個膠囊是一個模組,可以檢測物體和部件;而且不同膠囊之間相互獨立,可以識別影像中重疊的部件或者重疊的物體。
另一個是最近提出來的組合性神經網路(Compositional Network), 它是一個類似於兩層的「與或」圖表示,可以把一個物體的不同部件檢測出來,而且在部分部件被遮擋的情況下也能檢測到。這個模型可以從弱標註的數據學習,只要標註物體的位置,不需要標註部件。在有遮擋的情況下,它的性能明顯優於常規的物體檢測網路。
圖匹配過去幾十年一直都有研究,其中有兩個關鍵難題,一個是組合優化,也就是如何克服指數複雜度的問題。另一個就是它的距離度量,過去是靠人工設計,現在深度神經網路可以把距離度量自動學習出來,但是需要大量有節點對應標記的圖數據來訓練,當然有時可以用合成數據來代替。
結構分析方法如果用於零樣本識別(把從已知類別樣本學習到的模型用於識別沒有訓練樣本的新類別)可以產生更好的泛化性能。這是我們實驗室做的基於圖的零樣本影片分類的工作。因為影片里涉及到很多物體和原子行為,我們用圖網路表示不同物體之間的關係、不同類別之間的關係和物體與行為之間的關係,那麼這種結構關係可泛化到新類別上。
數學公式識別也是很複雜的結構模式識別問題,現在手寫公式識別最好的方法的整體識別正確率只能達到百分之五六十。因為一個公式有很長的一串符號,要全部識別正確非常困難。所以採用可解釋性的結構識別模型,能同時識別和定位公式中的符號。
過去傳統的方法就是基於自底向上的字元分割,然後再去做識別,但是總體識別精度必較低。前幾年主流的方法是用一個端到端的神經網路結構,它的解碼器從輸入影像直接解碼出公式的字元串,但沒有字元定位。這種沒有字元定位的公式識別方法,除非識別率達到100%,否則是不適用的,因為難以對錯誤的部分進行定位和編輯。
影像場景理解也有一些新進展。這個斯坦福大學李飛飛研究組的工作從影像與文本之間配準的角度訓練一個語言生成模型用於影像描述。場景圖的生成,就是把影像里的不同物體和背景區域用一個圖表示出來,每個節點表示一個物體或者一個背景區域,邊表示它們的關係,其結構一目了然。影像處理的底層用一個卷積神經網路提取特徵,檢測候選物體上傳到圖神經網路進行分析。
我們把類似的方法用到交通標誌圖解析。標誌圖上有很多符號和文字,在駕駛時要找到「我要往哪去」這樣的資訊,就要理解每個符號的意思及符號之間的關係。影像文本匹配現在也是一個比較複雜的問題,因為影像里的物體順序與文本里的詞順序不一致,所以要學這個配准關係。我實驗室同事提出的這是一個自底向上和自頂向下相結合的方法。
視覺問答現在是一個比較被關注的問題,就是讓機器看一幅圖,對給出的語言提問從圖中找到答案,有些答案可以直接從圖中找到,有些則可能要利用一些背景知識或常識。
早幾年有些方法也是端到端的方法,比如這個模型有兩個階段,首先用一個神經網路分析問題的句子,生成一個解題策略(叫做layout policy),然後這個策略動態生成一些模組網路,動態地到影像里去找答案。最近中山大學研究組發表一個可解釋性視覺問答方法,把問題句子表示成語義依存樹,遍歷樹的節點從影像中動態尋找答案。
總之,現在基於深度學習的方法,推動模式識別和電腦視覺前進了一大步。那麼當基於大數據訓練使得模式分類性能提高之後,剩下的問題就回到了模式識別最初想做的模式描述,即模式的結構理解。只有實現了模式結構理解才可能做到可靠和魯棒,而且結構理解的方法對於小樣本學習、開放環境適應、可解釋性等都會有很大幫助。
從最近的一些研究進展可以看出,為了解決複雜的模式識別問題,統計與結構模型的混合、神經網路+結構模型、可解釋性神經網路、視覺+語言等研究越來越受到關注。從中也可以看出,早期很多基於句法模式識別和結構模式識別的方法,對我們現在和未來的工作都值得借鑒,或者值得重新發掘。
未來值得研究的方向包括:
-
(1)結構表示模型。目前主流的結構是神經網路+結構(如Graph或圖神經網路),可以擴展到更多結構形式,如樹、貝葉斯網等。跨模態學習(如視覺+語言)中往往需要用到結構表示,並且可結合符號知識。
-
(2)結構模型學習,包括圖匹配度量學習、半監督學習、弱監督學習、開放環境增量學習、小樣本學習、領域自適應、跨模態學習等。目前流行的自監督學習可以為結構學習提供預訓練特徵表示模型,從而大為簡化結構模型的學習。
-
(3)語義理解應用。模式結構理解或語義理解很多時候要與應用結合起來,比如智慧機器人或無人駕駛等,它的感知要與認知緊密結合、與決策結合,因為要把視覺資訊結合背景知識才能做一個準確判斷。
最後呼應一下今天講的題目:從初級感知到高級認知。現在模式分類,也就是一種初級感知,已經做得非常好,但還有很多問題沒有解決,它的魯棒性、可靠性、自適應性、小樣本學習泛化等方面還需要深入研究。到高級感知層面,就是要對模式進行結構理解,如物體結構理解、場景理解,相應的結構模型表示、學習、推理等有一系列研究問題;更高級的層次是感知和認知結合起來,就是高級認知,包括語義理解、語義推理、語義應用與決策等。
雷峰網雷峰網