牟大中,王明飛,羅文秋
(高端印刷裝備信號與信息處理北京市重點實驗室, 北京 102600)
模式識別是指從樣本觀測數(shù)據(jù)中自動提取有用模式,以實現(xiàn)樣本分類和進(jìn)行決策的過程[1]。作為人工智能的重要組成部分,模式識別一直以來都是智能類和計算機類等相關(guān)專業(yè)的核心課程,也是其他信息類本科專業(yè)的選修課程。從相關(guān)專業(yè)人才培養(yǎng)角度來看,模式識別在整個課程體系中占據(jù)著非常重要的地位。一方面,模式識別課程包含了人工智能領(lǐng)域中一些非常重要的基本概念、基本原理和經(jīng)典算法,對于夯實學(xué)生的理論基礎(chǔ)和后續(xù)發(fā)展具有非常重要的作用;另一方面,模式識別在相關(guān)專業(yè)課程體系中是第一門面向工程應(yīng)用的智能類課程,對培養(yǎng)學(xué)生的創(chuàng)新能力和思維方式具有重要的現(xiàn)實意義。
模式識別是一門理論性和交叉性都很強的課程,對學(xué)生的數(shù)學(xué)基礎(chǔ)要求比較高。數(shù)學(xué)類的先修課程主要包括高等數(shù)學(xué)、線性代數(shù)、概率論與數(shù)理統(tǒng)計、最優(yōu)化方法等。在上述課程中,前三門課程在理工科專業(yè)一般均作為公共基礎(chǔ)課在低年級階段開設(shè),而最優(yōu)化方法課程一般開設(shè)在本科高年級階段,往往與模式識別課程在開設(shè)時間上存在沖突[2]。另外,隨著人工智能技術(shù)的快速發(fā)展,一些新型的智能類專業(yè)課程,如機器視覺、自然語言處理、深度學(xué)習(xí)等也紛紛列入教學(xué)計劃中,使得模式識別課程在時間安排上也無法后移。因此,恰當(dāng)處理最優(yōu)化教學(xué)內(nèi)容與模式識別課程之間的相互關(guān)系顯得尤為重要。
對于模式識別課程來說,最優(yōu)化方法的教學(xué)目標(biāo)是為模式識別的具體工程問題提供理論和算法指導(dǎo)[3]。最優(yōu)化方法內(nèi)容非常豐富,而模式識別課程的學(xué)時又相對有限。如何將最優(yōu)化內(nèi)容有效地融入模式識別的教學(xué)過程中,使得學(xué)生既能掌握必要的最優(yōu)化知識,又不至于最優(yōu)化教學(xué)喧賓奪主,占用過多的學(xué)時,是另一個值得深入探討的問題。
目前各相關(guān)高校在最優(yōu)化相關(guān)教學(xué)內(nèi)容安排上大相徑庭:有的學(xué)校安排在模式識別課程之前獨立設(shè)課;有的學(xué)校則在模式識別課程內(nèi)將涉及的最優(yōu)化知識點分散到相應(yīng)章節(jié)內(nèi)分別講授;但也有部分學(xué)校在教學(xué)安排上缺乏相應(yīng)的講授內(nèi)容。
將最優(yōu)化方法單獨設(shè)課的做法有利于學(xué)生系統(tǒng)地學(xué)習(xí)和掌握最優(yōu)化知識,但往往數(shù)學(xué)抽象性較強,過于強調(diào)數(shù)學(xué)公式推導(dǎo)和定理的證明,缺乏具體問題導(dǎo)向性和針對性。這樣很多學(xué)生在學(xué)習(xí)過程中往往難以將模式識別的實際問題和最優(yōu)化模型結(jié)合起來,導(dǎo)致這些學(xué)生在學(xué)完本課程后不具備用最優(yōu)化方法分析和解決實際模式識別問題的能力。而且在單獨設(shè)課情況下,授課教師往往過于注重知識體系的完備性,傾向于知識點的面面俱到,導(dǎo)致占用學(xué)時較多。
如果在模式識別教學(xué)環(huán)節(jié)中缺少最優(yōu)化教學(xué)內(nèi)容,會使得學(xué)生對實際問題的最優(yōu)化模型和算法難以理解,對如何確定目標(biāo)函數(shù)和相應(yīng)的約束條件沒有深刻的認(rèn)識,以至于在學(xué)習(xí)過程中出現(xiàn)生搬硬套教材內(nèi)容,知其然不知其所以然,無法靈活運用相關(guān)知識的現(xiàn)象。甚至?xí)?dǎo)致學(xué)生在學(xué)習(xí)過程中產(chǎn)生畏難情緒,甚至?xí)a(chǎn)生逆反心理,嚴(yán)重影響課程的教學(xué)效果。
盡管有的學(xué)校在模式識別課程內(nèi)也涉及最優(yōu)化內(nèi)容的教學(xué)。但在具體的教學(xué)實施過程中,往往是根據(jù)教學(xué)內(nèi)容的先后順序講授所涉及的最優(yōu)化知識點,即用到哪些知識點才進(jìn)行相關(guān)知識補充。例如,在線性分類器章節(jié)中講授梯度下降法和牛頓下降法,在支持向量機章節(jié)中講授KKT條件等。這種教學(xué)模式會導(dǎo)致最優(yōu)化方法講授內(nèi)容過于分散,不利于學(xué)生形成一個系統(tǒng)完整的知識體系。
幾乎所有模式識別問題最后都可以歸結(jié)為一個最優(yōu)化問題,其求解目標(biāo)是在一定約束條件下極小化代價(損失)函數(shù)。因此最優(yōu)化方法基本上貫穿了整個模式識別教學(xué)過程,在模式識別課程中占有非常重要的地位。
在模式識別課程中納入最優(yōu)化教學(xué)內(nèi)容,主要考慮因素及相關(guān)對策包括以下三點:一是要充分考慮到學(xué)生已具備的相關(guān)知識基礎(chǔ),例如,在高等數(shù)學(xué)中的方向?qū)?shù)、梯度和拉格朗日函數(shù)的基本概念,多元函數(shù)的無條件極值和條件極值的基本求解思想等。對于這些已學(xué)習(xí)過的內(nèi)容,主要以復(fù)習(xí)回顧和補充講授為主。二是在選擇最優(yōu)化教學(xué)內(nèi)容時要充分考慮到模式識別的課程背景,將最優(yōu)化方法教學(xué)內(nèi)容與模式識別具體問題緊密聯(lián)系起來,對教學(xué)內(nèi)容進(jìn)行合理精練和規(guī)劃。在教學(xué)過程中應(yīng)盡量淡化各種定理的證明,壓縮數(shù)學(xué)公式推導(dǎo)過程,主要讓學(xué)生掌握基本概念和經(jīng)典算法。三是要充分考慮到最優(yōu)化教學(xué)內(nèi)容的條理性和系統(tǒng)性。在教學(xué)內(nèi)容上宜采用總分結(jié)構(gòu),即首先將最優(yōu)化作為一個獨立章節(jié)講授,主要介紹最優(yōu)化的基本思想和典型算法框架;其次在后續(xù)各章節(jié)中,根據(jù)具體模式識別問題講授相應(yīng)的優(yōu)化方法及算法實現(xiàn)。這樣既不破壞最優(yōu)化方法教學(xué)內(nèi)容的相對獨立和完整,又能促進(jìn)學(xué)生在學(xué)習(xí)過程中理論基礎(chǔ)與實際應(yīng)用相結(jié)合。
根據(jù)本科模式識別課程的教學(xué)目標(biāo),應(yīng)適當(dāng)調(diào)整最優(yōu)化方法的傳統(tǒng)教學(xué)內(nèi)容[4,5],重點講授基本的最優(yōu)化思想和必要的優(yōu)化算法,強化最優(yōu)化方法的直觀幾何解釋。為滿足模式識別課程教學(xué)的實際需要,最優(yōu)化方法的教學(xué)內(nèi)容可規(guī)劃為以下三個主要部分:
1.最優(yōu)化方法的基礎(chǔ)知識,主要包括最優(yōu)化問題的數(shù)學(xué)模型、多元函數(shù)分析、凸性等。
對模式識別問題進(jìn)行分析和求解的第一步是建立一個合適的優(yōu)化模型,即確定優(yōu)化問題的目標(biāo)函數(shù)和可行域。優(yōu)化模型是對實際模式識別問題進(jìn)行抽象描述的必備數(shù)學(xué)工具。掌握一些規(guī)范和常用的數(shù)學(xué)符號(如極大極小化符號、上下確界符號等),可為課程后續(xù)內(nèi)容的所有優(yōu)化模型提供簡潔和統(tǒng)一的描述方式。
最優(yōu)化方法非常依賴于多元函數(shù)分析的基礎(chǔ)知識,如方向?qū)?shù)、梯度、Hesse矩陣以及多元泰勒展開等。這些內(nèi)容是后續(xù)許多重要優(yōu)化算法的數(shù)學(xué)基礎(chǔ)。
凸性是較線性更為一般的性質(zhì),在最優(yōu)化中具有重要的作用。例如,凸集分離定理是凸性在最優(yōu)化理論中的一個重要應(yīng)用結(jié)果,它為分類問題提供了理論上的支持。在分類問題中,通常把帶有不同類別標(biāo)簽的訓(xùn)練樣本集看作不同的凸集,而分類器就是分隔這些凸集的超平面。
2.無約束問題的優(yōu)化,主要包括無約束問題優(yōu)化的最優(yōu)性條件、最速下降法、牛頓法、共軛梯度法等。
無約束優(yōu)化方法是最優(yōu)化問題的基礎(chǔ)求解方法。不僅許多實際的模式識別問題可以轉(zhuǎn)化為無約束優(yōu)化問題,而且求解該類問題的許多算法經(jīng)過適當(dāng)修改后也可用于約束優(yōu)化問題的求解。無約束問題優(yōu)化的最優(yōu)性條件包括一、二階必要條件和二階充分條件。在目標(biāo)函數(shù)滿足凸性的假設(shè)下,則可給出全局極值的充分必要條件。這些最優(yōu)性條件是后續(xù)各種優(yōu)化算法推導(dǎo)和分析的理論基礎(chǔ)。
無約束優(yōu)化問題通常采用數(shù)值迭代法求解,搜索方向和步長的選擇是無約束優(yōu)化算法的核心。選擇不同的下降搜索方向,會形成不同的迭代算法。最速下降法是一種采用負(fù)梯度方向作為搜索方向的無約束優(yōu)化算法,它是最經(jīng)典的無約束優(yōu)化算法,也是許多現(xiàn)代優(yōu)化算法的基礎(chǔ)。除最速下降法之外,還可根據(jù)實際教學(xué)情況選擇性地講解牛頓法、擬牛頓法和共軛梯度法等改進(jìn)的無約束優(yōu)化算法。
3.約束問題的優(yōu)化,主要包括一般約束優(yōu)化問題與KKT條件、拉格朗日乘子法、拉格朗日對偶性等。
在約束優(yōu)化問題中,自變量的取值受到某種約束條件的限制,目標(biāo)函數(shù)在無約束條件下的平穩(wěn)點很可能不在可行域內(nèi),通常情況下不能直接使用無約束最優(yōu)條件來處理約束優(yōu)化問題。
約束優(yōu)化問題的約束條件一般包括等式約束條件和不等式約束條件。研究約束優(yōu)化問題的一種重要方法是拉格朗日乘子法,它的基本思想是為每個約束條件引入一個拉格朗日乘子,以該乘子為加權(quán)因子將約束條件增加到目標(biāo)函數(shù)里,從而將原約束優(yōu)化問題轉(zhuǎn)化為相應(yīng)的無約束優(yōu)化問題。
KKT條件是約束優(yōu)化問題局部最優(yōu)解的一階必要條件,包括平穩(wěn)點條件、等式約束的原始可行性條件、不等式約束的原始可行性條件、對偶可行性條件和互補松弛條件。而對于凸優(yōu)化問題,當(dāng)滿足Slater條件時,KKT條件則成為局部最優(yōu)解(也是全局最優(yōu)解)的充分必要條件。
拉格朗日對偶性是求解約束優(yōu)化問題的有力工具,在許多實際應(yīng)用中經(jīng)常利用拉格朗日對偶性將不容易求解的原始問題轉(zhuǎn)變?yōu)橄鄬θ菀浊蠼獾膶ε紗栴}。
支持向量機是Vapnik于1995年基于結(jié)構(gòu)風(fēng)險極小化原則提出來的一種有監(jiān)督的學(xué)習(xí)方法。作為機器學(xué)習(xí)領(lǐng)域中最重要方法之一,支持向量機被廣泛應(yīng)用于模式分類和回歸分析中,也因而成為當(dāng)前主要模式識別課程教學(xué)或參考教材的主要內(nèi)容[1,6,7]。支持向量機分析與求解的各方面涉及許多最優(yōu)化知識,在教學(xué)過程中相關(guān)最優(yōu)化教學(xué)內(nèi)容可設(shè)計為以下五個部分。
1.基本優(yōu)化問題
支持向量機基本模型是定義在線性可分特征空間上間隔最大的線性分類器,該模型是學(xué)生深入理解掌握支持向量機的基礎(chǔ)。如果訓(xùn)練樣本集是完全線性可分的,則該分類器以最大化幾何間隔為優(yōu)化目標(biāo),來確定一個最優(yōu)的分隔超平面。優(yōu)化目標(biāo)函數(shù)是一個二次函數(shù)并且約束條件是仿射函數(shù),因此該基本優(yōu)化問題是一個典型的凸二次規(guī)劃問題。
2.松弛與懲罰
這部分教學(xué)內(nèi)容的重點是讓學(xué)生理解和掌握最優(yōu)化方法中一些特殊的處理技巧。例如,如果訓(xùn)練樣本集不是完全線性可分的,即在訓(xùn)練樣本集存在一些少數(shù)的奇異點(outlier),那么基本優(yōu)化問題中的約束條件將無法全部得到滿足。此時可考慮采用最優(yōu)化方法中常用的松弛技巧,為約束條件中的每個樣本點引入一個松弛變量,從而將原始問題的可行域進(jìn)行放大。同時,為將引入的松弛變量限制在一個合理范圍內(nèi),在原目標(biāo)函數(shù)中增加松弛變量的和函數(shù)作為懲罰項,這實際上是對松弛變量進(jìn)行懲罰,并且為懲罰項引入一個正的懲罰系數(shù),增大該系數(shù)將增大對松弛(誤分類)的懲罰,反之將減小對松弛(誤分類)的懲罰。
3.拉格朗日對偶問題
支持向量機原始問題是一個典型的凸二次規(guī)劃問題。對于凸二次規(guī)劃問題,可以調(diào)用現(xiàn)成的凸二次規(guī)劃軟件包直接進(jìn)行求解,但借助拉格朗日對偶性有可能將原始問題轉(zhuǎn)化為更容易求解的對偶問題。這部分教學(xué)內(nèi)容的理論抽象性較高,對于本科學(xué)生而言,講授時不應(yīng)過多糾結(jié)于數(shù)學(xué)概念和定理證明的嚴(yán)密性。幫助學(xué)生理解拉格朗日對偶問題的構(gòu)建過程和對偶算法的求解過程是該部分教學(xué)的關(guān)鍵,具體可分為兩個講授環(huán)節(jié):
第一個講授環(huán)節(jié)是應(yīng)用拉格朗日對偶性將原始問題轉(zhuǎn)化為對偶問題。在這一環(huán)節(jié)中應(yīng)重點向?qū)W生闡明在對偶問題中目標(biāo)函數(shù)僅與拉格朗日乘子有關(guān),而與原始問題中的參數(shù)無關(guān)。另外,在對偶問題中樣本點總是以內(nèi)積的形式成對出現(xiàn),這一現(xiàn)象對非線性支持向量機中引入核方法非常關(guān)鍵。
第二個講授環(huán)節(jié)是通過對偶問題的最優(yōu)解來求得原始問題的最優(yōu)解。支持向量機的原始問題和對偶問題強對偶性、原始問題最優(yōu)解和對偶問題最優(yōu)解之間的關(guān)系等內(nèi)容是這部分的教學(xué)重點,還應(yīng)重點向?qū)W生講清楚這一關(guān)系是通過KKT條件建立起來的。
4.序列最小最優(yōu)化算法
序列最小最優(yōu)化算法又稱為SMO算法,是一種快速的啟發(fā)式二次規(guī)劃優(yōu)化算法,這一算法對于求解支持向量機對偶問題非常有效。SMO算法的巧妙思路是在每次迭代步中只優(yōu)化兩個參數(shù)而固定其他參數(shù)不變,從而降低了優(yōu)化問題的規(guī)模。同時在求解過程中可以解析求解,進(jìn)一步提高了算法的計算速度。SMO算法是一種相對較難的最優(yōu)化算法,在講授過程中應(yīng)重點講解算法的核心部分,使得學(xué)生能夠把握算法的基本步驟和思想,而不至于陷入算法的局部細(xì)節(jié)忽略了整體框架。
5.Python編程實踐
在教學(xué)過程中,應(yīng)通過設(shè)計合適的實驗案例來引導(dǎo)學(xué)生學(xué)以致用,通過實踐促進(jìn)理論教學(xué)效果的提升。根據(jù)筆者的教學(xué)經(jīng)驗,經(jīng)典的鳶尾花(Iris)屬種分類問題涵蓋了支持向量機的三種基本形式,適合作為相關(guān)優(yōu)化算法的Python編程實驗案例。例如,山鳶尾花的分類問題可以設(shè)計為線性可分支持向量機算法實驗案例,以加深學(xué)生對支持向量機基本模型和對偶學(xué)習(xí)算法的理解,并可與感知器算法分類實驗進(jìn)行對比;弗吉尼亞鳶尾花的分類問題可設(shè)計為線性支持向量機算法的實驗案例,以加深學(xué)生對松弛和懲罰的理解;變色鳶尾花的分類問題可以設(shè)計為非線性支持向量機算法的實驗案例,以加深學(xué)生對核方法和支持向量機特點的理解。