一轉眼十年又過去了,十年前在出版本書第3版時,我曾經感慨信息時代的到來,而從那以后的這十年,我們則深刻感受到了智能時代的來臨。清華大學出版社的老師告訴我,《模式識別》第2版和第3版到目前已經共印刷了38次,總發(fā)行量超過10萬冊。在我平時的工作中,時常收到采用本教材授課的高校教師的問題和建議,也收到一些讀者反饋。我要特別感謝這些老師和讀者對本教材長期的支持和關愛,也很高興看到這本教材為這個蓬勃發(fā)展的學科貢獻了一份力量。
21世紀的前20年,見證了模式識別、機器學習和人工智能學科的飛速發(fā)展。這一點從本教材各個版本使用情況的演化也可見一斑。從邊肇祺先生主持編寫的《模式識別》第1版到邊肇祺、張學工共同編寫的《模式識別》第2版,當時的讀者主要是直接從事本領域研究的教師、研究生和科技工作者,而《模式識別》第3版的讀者已經擴展到各個專業(yè)對本領域感興趣的教師、研究生、本科生和科技工作者。模式識別類的課程開始是少數(shù)院校在自動化系、計算機系等開設的研究生專業(yè)課,現(xiàn)在已經成為很多院系的研究生專業(yè)基礎課,很多學校和院系開始把模式識別和機器學習類課程作為本科生專業(yè)必修課和全校性選修課。在我自己這些年的本科生課堂上,選課同學不但來自計算機、自動化、電子、軟件等信息類專業(yè),還有大量同學來自數(shù)學、物理、生物、醫(yī)學以及各種工程類、機械類、管理類專業(yè),也有同學來自建筑學院、美術學院和心理學、社會學、語言學等專業(yè)。這一方面說明了各專業(yè)同學數(shù)理基礎和計算機基礎的普遍提高,另一方面更從一個側面映射出了這一學科受歡迎的程度。
從學科本身看,近十年的發(fā)展當屬深度學習和機器學習與人工智能結合產生出的大量成功應用。在十年前編寫第3版教材時剛剛顯露頭角的深度神經網絡和在較小范圍內研究的概率圖模型等,已經成為受關注的熱點。同時,大量機器學習軟件平臺的出現(xiàn)和發(fā)展,也改變了人們以往學習和利用模式識別與機器學習方法的方式。這些日新月異的發(fā)展,使我強烈感受到這本教材的內容需要很多更新和補充,但因為其他各種工作太繁忙,早就答應出版社的教材編寫計劃幾次被拖延。2019年底,在與汪小我老師共同準備模式識別與機器學習課程時,我邀請汪老師與我共同進行這本書的寫作。
2020年初,突如其來的新冠肺炎疫情改變了所有人的生活和工作,也促使每個人更清楚地認識自己對社會和歷史的責任。于是,我和汪老師商量決定,與疫情賽跑,在春季學期的遠程授課中就采用新版教材的內容,迫使自己在春季學期授課的同時完成本書新版的寫作,力爭在年內出版。2020年7月19日,我們完成了新版的全部寫作,與第3版相比,增加了5章新內容,對原有內容也進行了必要的調整和補充。
對于業(yè)內學者來說,模式識別與機器學習是非常接近和高度相關的概念,但對于尚未學習這些內容的讀者,可能會對這兩個名詞有不同的認識。為了更全面地反映本書的內容范圍,我們增加了副標題模式識別與機器學習,也據此對很多內容進行了補充和調整。近年來,很多人尤其是產業(yè)界和投資界把模式識別和機器學習都放在人工智能的大框架下,因此,我們也在新版第15章專門對模式識別機器學習人工智能三個概念的關系、演化和背后的學術思想進行了討論。
新版內容的編寫得到了很多老師和同學的幫助,尤其是2020年春季學期清華大學自動化系本科生課程模式識別與機器學習的助教研究生王昊晨、顏錢明、張威、喬榕,和2019年秋季學期清華大學自動化系研究生英文課程機器學習的助教研究生花奎、陳斯杰、馬天行、孟秋辰、李嘉騏。在新版的具體內容編寫中,第4章隱馬爾可夫模型和貝葉斯網絡、第10章10.9節(jié)的tSNE降維可視化方法、第11章11.8節(jié)的一致聚類方法和第12章12.8.2節(jié)的實例主要由汪小我負責起草,其中顏錢明幫助計算了10.9節(jié)和11.8節(jié)的例子; 張威起草了第14章機器學習軟件平臺的介紹和計算機代碼示例; 其他新增章節(jié)(第7章、第12章、第15章)和其他章節(jié)調整內容均由張學工負責起草,其中王昊晨幫助起草了12.7節(jié)生成模型的初稿,第7章采用了《模式識別》第2版中的部分原稿,第12章中采納了胡越、羅東陽同學之前準備的部分素材。張學工負責了新版的統(tǒng)稿。第12章深度學習的前半部分草稿得到了清華大學自動化系黃高老師的很多建議和指正。馬天行、李嘉騏、陳斯杰、孟秋辰、王昊晨、顏錢明、張威、喬榕、張嘉惠等同學幫助對部分書稿進行了文字和公式檢查。廈門大學王穎教授對部分公式錯誤給出了更正。本次主要新增章節(jié)草稿在2020年春季清華大學自動化系本科生課程模式識別與機器學習中進行了試用。本書的編寫也得到了清華大學自動化系古槿、閭海榮、江瑞等老師的幫助,并得到了福州數(shù)據技術研究院的大力幫助和支持。
本教材編寫得到了清華大學歷年來多個教學改革和學科建設項目的支持,教材中涉及的很多科學研究內容,得到了國家自然科學基金創(chuàng)新研究群體項目、杰出青年基金項目和優(yōu)秀青年基金項目等的支持。
張學工
2020年7月20日
前言
前言
第3版前言
從本書第2版出版到現(xiàn)在已經又是十年了。在這十年里,我們真切地感受到了信息時代的到來。對信息的處理和分析,已經不僅僅是信息科學家所關心的問題,也不僅僅是信息技術產業(yè)所關心的問題,而是為很多學科和很多領域共同關心的問題。作為信息處理與分析的重要方面,模式識別也開始從一個少數(shù)人關心的專業(yè),變成一個在工程、經濟、金融、醫(yī)學、生物學、社會學等各個領域都受到關注的學科。
模式識別學科的發(fā)展,可以從筆者所在的清華大學自動化系在模式識別專業(yè)教學和教材上的沿革窺見一斑。早在1978年,在已故中科院學部委員常迵教授的領導下,自動化系成立了信號處理與模式識別教研組,后更名為信息處理研究所,1981年獲準成立模式識別與智能系統(tǒng)學科(當時稱模式識別與智能控制)的個碩士點、博士點。從那時起,邊肇祺等教授就開始為研究生開設模式識別課程,后逐漸包括進少部分五年級本科生(當時清華大學本科學制為五年)。20世紀80年代中期,邊肇祺、閻平凡、楊存榮、高林、劉松盛和湯之永等老師組成了教材編寫小組,開始編寫模式識別教材,這就是1988年出版的《模式識別》。該教材的出版,為我國模式識別學科的發(fā)展做出了歷史性的貢獻,被很多高校和科研院所作為教材或參考書。十年以后,模式識別學科的內容有了很多更新和發(fā)展,我們成立了由邊肇祺、閻平凡、趙南元、張學工和張長水組成的改寫小組,由筆者與邊肇祺老師共同組織編寫了本書的第2版,2000年正式出版。此時的模式識別課程,已經由初只有十幾位研究生參加的小課,發(fā)展為由上百名研究生和高年級本科生參加的大課。第2版教材也得到了國內同行的歡迎,9年內已經重印15次。
隨著模式識別學科的日益發(fā)展,我們很快認識到,對模式識別課程的需求已經超出了本專業(yè)研究生的范圍。于是我們將模式識別課程分為兩門: 面向研究生的模式識別和面向本科生的模式識別基礎。到今天,本科生模式識別基礎每年的選課人數(shù)也已達到100~150人,除了來自本系的學生,每年還有多位來自其他院系的學生選課。2007年,該課程榮幸地被評為國家精品課程。
在近幾年的教學實踐中,我們體會到,原來的教材有些地方不太適應大范圍教學的需要,而且近十年來模式識別自身以及它在很多領域中的應用又有了很多新發(fā)展。因此,筆者從兩年前開始著手編寫新版教材。新版教材的出發(fā)點是: 一方面,結合當前的發(fā)展,精煉傳統(tǒng)內容,充實新內容,進一步增強實用性,接觸學科前沿; 另一方面,在教材的深度和廣度上兼顧廣大本科生學習的特點和本專業(yè)研究生的需求,力求達到使非本專業(yè)學生通過本教材能學到足夠系統(tǒng)的基本知識,而本專業(yè)學生又能以本教材作為其專業(yè)研究的重要起點。
編寫新版教材所需要的時間超出了我的預想,很高興她今天終于能和讀者見面了。在此要感謝在本書編寫過程中給了我很多幫助的同事和同學們,尤其是: 美國南加州大學的Jasmine X. Zhou教授在2007年給我提供了短期訪問機會,使我能夠有一段相對完整的時間集中開始本書的寫作; 蔣博同學通讀了本書三分之二的初稿并做了多處補充; 現(xiàn)在已經分別是電子科技大學和北京大學教師的凡時財、李婷婷同學幫助準備了本書部分素材。我還要感謝清華大學出版社王一玲編輯在本書編寫過程中的一貫支持。當然,重要的,我要感謝參加本書第1版和第2版編寫的所有老師,這不但是因為在這一版中仍使用了前兩版的一些內容,更是因為,是這些老師們把我?guī)нM了模式識別的大門,使我受益至今。
由于時間倉促和個人水平所限,教材中難免有錯誤或不足之處,敬請廣大同行和讀者批評指正,以便在再版時補充和修改。
在本書終完稿的時候,我十歲的女兒以極大的興致看完了我講模式識別基礎課的錄像,并說將來長大了要聽我講課。謹以此書獻給我的妻子和女兒。
張學工
2009年11月29日
第1章概論
1.1模式與模式識別
1.2模式識別的主要方法
1.3監(jiān)督模式識別與非監(jiān)督模式識別
1.4模式識別系統(tǒng)舉例
1.5模式識別系統(tǒng)的典型構成
1.6本書的主要內容
第2章統(tǒng)計決策方法
2.1引言: 一個簡單的例子
2.2小錯誤率貝葉斯決策
2.3小風險貝葉斯決策
2.4兩類錯誤率、NeymanPearson決策與ROC曲線
2.5正態(tài)分布時的統(tǒng)計決策
2.5.1正態(tài)分布及其性質回顧
2.5.2正態(tài)分布概率模型下的小錯誤率貝葉斯決策
2.6錯誤率的計算
2.6.1正態(tài)分布且各類協(xié)方差矩陣相等情況下錯誤率的計算
2.6.2高維獨立隨機變量時錯誤率的估計
2.7離散時間序列樣本的統(tǒng)計決策
2.7.1基因組序列的例子
2.7.2馬爾可夫模型及在馬爾可夫模型下的貝葉斯決策
2.7.3隱馬爾可夫模型簡介
2.8小結與討論
第3章概率密度函數(shù)的估計
3.1引言
3.2似然估計
3.2.1似然估計的基本原理
3.2.2似然估計的求解
3.2.3正態(tài)分布下的似然估計
3.3貝葉斯估計與貝葉斯學習
3.3.1貝葉斯估計
3.3.2貝葉斯學習
3.3.3正態(tài)分布時的貝葉斯估計
3.3.4其他分布的情況
3.4概率密度估計的非參數(shù)方法
3.4.1非參數(shù)估計的基本原理與直方圖方法
3.4.2kN近鄰估計方法
3.4.3Parzen窗法
第4章隱馬爾可夫模型與貝葉斯網絡
4.1引言
4.2貝葉斯網絡的基本概念
4.3隱馬爾可夫模型(HMM)
4.3.1HMM評估問題
4.3.2HMM隱狀態(tài)推斷問題(解碼問題)
4.3.3HMM學習問題
4.4樸素貝葉斯分類器(Nave Bayes)
4.5在貝葉斯網絡上的條件獨立性
4.6貝葉斯網絡模型的學習
4.6.1貝葉斯網絡的參數(shù)學習
4.6.2貝葉斯網絡的結構學習
4.7討論
第5章線性學習機器與線性分類器
5.1引言
5.2線性回歸
5.3線性判別函數(shù)的基本概念
5.4Fisher線性判別分析
5.5感知器
5.6小平方誤差判別
5.7羅杰斯特回歸
5.8分類超平面與線性支持向量機
5.8.1分類超平面
5.8.2大間隔與推廣能力
5.8.3線性不可分情況
5.9多類線性分類器
5.9.1多個兩類分類器的組合
5.9.2多類線性判別函數(shù)
5.9.3多類羅杰斯特回歸與軟
5.10討論
第6章典型的非線性分類器
6.1引言
6.2分段線性判別函數(shù)
6.2.1分段線性距離分類器
6.2.2一般的分段線性判別函數(shù)
6.3二次判別函數(shù)
6.4多層感知器神經網絡
6.4.1神經元與感知器
6.4.2用多個感知器實現(xiàn)非線性分類
6.4.3反向傳播算法
6.4.4多層感知器網絡用于模式識別
6.4.5神經網絡結構的選擇
6.4.6前饋神經網絡與傳統(tǒng)模式識別方法的關系
6.4.7人工神經網絡的一般知識
6.5支持向量機
6.5.1廣義線性判別函數(shù)
6.5.2核函數(shù)變換與支持向量機
6.5.3支持向量機早期應用舉例
6.5.4支持向量機的實現(xiàn)算法
6.5.5多類支持向量機
6.5.6用于函數(shù)擬合的支持向量機支持向量回歸
6.6核函數(shù)機器
6.6.1大間隔機器與核函數(shù)機器
6.6.2核Fisher判別
6.6.3中心支持向量機
6.7討論
第7章統(tǒng)計學習理論概要
7.1引言
7.2機器學習問題的提法
7.2.1機器學習問題的函數(shù)估計表示
7.2.2經驗風險小化原則及其存在的問題
7.3學習過程的一致性
7.4函數(shù)集的容量與VC維
7.5推廣能力的界與結構風險小化原則
7.6支持向量機的理論分析
7.7不適定問題和正則化方法簡介
7.7.1不適定問題
7.7.2正則化方法
7.7.3常見的正則化方法
7.8討論
第8章非參數(shù)學習機器與集成學習
8.1引言
8.2近鄰法
8.2.1近鄰法
8.2.2k近鄰法
8.2.3近鄰法的快速算法
8.2.4剪輯近鄰法
8.2.5壓縮近鄰法
8.3決策樹與隨機森林
8.3.1非數(shù)值特征的量化
8.3.2決策樹
8.3.3過學習與決策樹的剪枝
8.3.4隨機森林
8.4Boosting集成學習
8.5討論
第9章特征選擇
9.1引言
9.2用于分類的特征評價準則
9.2.1基于類內類間距離的可分性判據
9.2.2基于概率分布的可分性判據
9.2.3基于熵的可分性判據
9.2.4利用統(tǒng)計檢驗作為可分性判據
9.3特征選擇的算法
9.4特征選擇的次優(yōu)算法
9.5遺傳算法
9.6包裹法: 以分類性能為準則的特征選擇方法
9.7討論
第10章特征提取與降維表示
10.1引言
10.2基于類別可分性判據的特征提取
10.3主成分分析
10.4KarhunenLoève變換
10.4.1KL變換
10.4.2用于監(jiān)督模式識別的KL變換
10.5用本征臉作為人臉識別的特征
10.6高維數(shù)據的低維可視化
10.7多維尺度(MDS)法
10.7.1MDS的基本概念
10.7.2古典尺度法
10.7.3度量型MDS
10.7.4非度量型MDS
10.7.5MDS在模式識別中的應用舉例
10.8非線性特征變換方法簡介
10.8.1核主成分分析(KPCA)
10.8.2IsoMap方法和LLE方法
10.9tSNE降維可視化方法
10.10討論
第11章非監(jiān)督學習與聚類
11.1引言
11.2基于模型的聚類方法
11.3混合模型的估計
11.3.1混合密度的似然估計
11.3.2混合正態(tài)分布的參數(shù)估計
11.4動態(tài)聚類算法
11.4.1C均值算法(K均值算法)
11.4.2ISODATA方法
11.4.3基于核的動態(tài)聚類算法
11.5模糊聚類方法
11.5.1模糊集的基本知識
11.5.2模糊C均值算法
11.5.3改進的模糊C均值算法
11.6分級聚類方法
11.7自組織映射(SOM)神經網絡
11.7.1SOM網絡結構
11.7.2SOM學習算法和自組織特性
11.7.3SOM網絡用于模式識別
11.8一致聚類方法
11.9討論
第12章深度學習
12.1引言
12.2人工神經網絡回顧
12.3卷積神經網絡(CNN)
12.3.1卷積層
12.3.2匯集(池化)
12.3.3深層卷積神經網絡
12.3.4卷積神經網絡的演化和幾個代表性模型
12.3.5卷積神經網絡在非圖像數(shù)據上的應用舉例
12.4循環(huán)神經網絡(RNN)
12.4.1Hopfield神經網絡
12.4.2循環(huán)神經網絡
12.5長短時記憶模型(LSTM)
12.6自編碼器、限制性玻爾茲曼機與深度信念網絡
12.6.1自編碼器
12.6.2用多層自編碼器構造深度神經網絡
12.6.3限制性玻爾茲曼機(RBM)
12.6.4深度自編碼器與深度信念網絡(DBN)
12.7生成模型
12.7.1變分自編碼器(VAE)
12.7.2生成對抗網絡(GAN)
12.8綜合應用舉例
12.8.1中文病歷文本生成
12.8.2人工基因調控元件的生成
12.9深度學習算法中的部分常用技巧
12.10討論
第13章模式識別系統(tǒng)的評價
13.1引言
13.2監(jiān)督模式識別的錯誤率估計
13.2.1訓練錯誤率
13.2.2測試錯誤率
13.2.3交叉驗證
13.2.4自舉法與0.632估計
13.3有限樣本下錯誤率的區(qū)間估計
13.3.1問題的提出
13.3.2用擾動重采樣估計SVM錯誤率的置信區(qū)間
13.4特征提取與選擇對分類器性能估計的影響
13.5用分類性能進行關系推斷
13.6非監(jiān)督模式識別系統(tǒng)性能的評價
13.6.1聚類質量的評價
13.6.2聚類結果的比較
13.7討論
第14章常用模式識別與機器學習軟件平臺
14.1引言
14.2Python中的模式識別工具包
14.2.1sklearn中的回歸方法使用舉例
14.2.2sklearn中的分類方法使用舉例
14.2.3Python下的深度學習編程舉例
14.2.4國內研發(fā)的深度學習平臺簡介
14.3MATLAB中的模式識別工具包
14.3.1MATLAB中的回歸方法使用舉例
14.3.2MATLAB中的分類方法使用舉例
14.4R中的模式識別工具包
14.4.1R中的回歸方法使用舉例
14.4.2R中的分類方法使用舉例
14.5討論
第15章討論: 模式識別、機器學習與人工智能
15.1模式識別
15.2機器學習
15.3多元分析
15.4人工智能
15.5展望
參考文獻
后記
索引