1.3 機器學習基本問題
機器學習的基本思想是通過從樣本數據中提取所需信息構造一個有效的機器學習模型,并根據所建模型完成分類、回歸、聚類等具體的機器學習任務。使用機器學習方法求解具體問題時需要面臨一些基本問題。首先,是樣本特征的提取問題:樣本數據所包含的信息是多種多樣的,不同的機器學習模型和任務所需的樣本信息通常也各具特色,樣本特征的提取問題要解決的是如何從樣本數據中獲取適當的信息以滿足模型構造和完成機器學習任務的需要。其次,是機器學習規則構造的問題:規則是機器學習模型的基本構件或具體表現形式,不同的機器學習方式會采用與之相適應的不同類型的規則。演繹學習使用邏輯規則,歸納學習使用關聯規則,統計學習和連接學習使用映射規則,要實現機器學習模型的構造就必須解決機器學習規則的構造問題。最后,是模型評估問題:對于已建的機器學習模型,必須對其進行性能評估以判定是否滿足任務需求。因此,機器學習的基本問題主要是特征提取、規則構造和模型評估。本節主要討論這三個基本問題及解決方法。
1.3.1 特征提取
機器學習中的樣本信息由一組表征數據描述,例如,一幅彩色圖像可用三個分別表示紅、綠、藍幅度值的矩陣進行表示,這三個矩陣就是這幅彩色圖像的表征數據。樣本表征數據雖然包含樣本的所有信息,但數據量往往較大且存在一定的冗余,不便直接處理。因此,需要對樣本的表征數據進行適當處理以獲得機器學習和實際問題求解所需要的特定信息,這種處理過程通常稱為樣本的特征提取。具體地說,特征提取就是對機器學習任務所涉及的原始數據表征進行處理,得到一組具有特定意義的特征數據作為樣本數據的優化描述,并以盡可能少的特征數據表達出盡可能多的信息,以方便后續的模型優化和任務求解。
特征提取一般包括如下兩個基本步驟:
(1)構造出一組用于對樣本數據進行描述的特征,即特征構造;
(2)對構造好的這組特征進行篩選或變換,使得最終的特征集合具有盡可能少的特征數目且包含盡可能多的所需樣本信息。
對于任意給定的一個樣本,其所有特征值構成的向量稱為該樣本的特征向量。對于經過特征提取的樣本,通常使用特征向量代替表征向量以獲得對樣本數據的一種優化描述。
可針對不同的機器學習任務構造出相應的特征。例如,在自然語言理解領域通常用詞袋特征或詞頻特征抽象地表達具體的文本特征。詞袋特征忽略了文本中詞語之間的上下文聯系,而只考慮每個詞語出現的次數,例如句子“我和哥哥都喜歡看電視劇。”和“哥哥還喜歡看籃球比賽。”可按照其中出現的詞語構造如下詞典:
{我:1;和:2;哥哥:3;都:4;喜歡看:5;電視劇:6;還:7;籃球比賽:8}
該詞典中包含8個詞語,每個詞語都有唯一的索引,根據該詞典可分別將上述兩個句子轉化為一個8維向量,即
(1,1,1,1,1,1,0,0);(0,0,1,0,1,0,1,1)
向量中每個分量值表示該分量所對應詞語在文本中出現的次數ω。例如,若將上述兩句合并為一個文本“我和哥哥都喜歡看電視劇,哥哥還喜歡看籃球比賽。”則該文本對應的詞袋特征可表示為(1,1,2,1,2,1,1,1)。
對于任意給定的一個文本,詞典中各個詞語在該文本中出現的次數及分布情況通常與該文本具體內容有著非常密切的關系,故可根據詞袋特征對文本進行分類、聚類等處理。例如,對于如下三段文本。
文本1:“在非潔凈的環境下生產的半導體工業產品合格率僅為10%~15%。顯示屏生產線廠房項目總建筑面積178萬平方米,5個核心廠房均各設一個潔凈區,中建一局負責的切割與偏貼廠房潔凈區最高潔凈度要求為1000級,即要求潔凈區域內每立方英尺存在0.5μm的微塵粒子不能超過1000顆。建成后,屏幕生產所用的切割片、涂色和背光板組裝等系列設備將安放在此。而屏幕生產的最核心設備曝光機所在的陣列廠房潔凈區對潔凈等級的要求為100級甚至10級。此外,生產線車間對空氣潔凈度、溫度、濕度、防靜電、微振、光照度、噪聲等都有嚴格的參數要求。”
文本2:“不同于其他廠房建設,所有進入潔凈室的施工人員都要穿著潔凈服,進入前需在更衣室吹掉灰塵,隨時隨地有專業人員打掃擦拭。潔凈區建成后還要擦拭兩遍,竣工前經十余項檢測通過后才可搬入生產設備。目前,施工區域正在進行第一階段的分層級地面打磨環氧和水電風管道安裝工作。地面如果高低不平,會導致大量灰塵微粒的積壓,一個細小的微粒都會直接導致產品報廢,特別是潔凈區域對平整度的要求近乎苛刻,1平方米內的地面高差最多2毫米。”
文本3:“公民科學素質水平是決定國家整體素質的重要指標,至少10%的公民具備科學素養是該國家成為創新型國家的重要節點。發布于2015年的第九次中國公民科學素質調查結果顯示,我國具備科學素質的公民比例達到了6.20%。白希介紹說,改革開放以來,中國公民的科學素質穩步提升,但數據也反映出我國公眾科學素質發展中一些不平衡、不充分的情況,下一步將進一步縮小差距,力爭盡快趕上世界先進水平。”
可分別對這些文本提取詞袋特征,得到如圖1-20所示的詞袋特征分布圖。圖中橫坐標中每個點對應一個詞語,縱坐標表示詞語出現的次數,Para1、Para2、Para3分別為文本1、文本2和文本3的詞袋特征分布。這里只統計文本中包含具體含義的實詞部分,且將相同詞根的詞語統計為同一個詞語,語氣詞和系動詞等不含具體含義的虛詞不納入統計范圍。有了圖1-20所示的文本詞袋特征,就可通過適當的聚類算法進行文本聚類,例如用k-均值聚類算法可得到聚類結果為:文本1和文本2聚為一類,文本3單獨作為一類。
計算機視覺和視頻圖像處理領域常用特征有LBP特征、Canny特征等。LBP特征是一種圖像紋理特征,表達的是物體表面具有緩慢或周期性變化的結構組織排列屬性。LBP特征算子定義在3×3像素網格窗口中,設某個3×3窗口中像素灰度取值如圖1-21中左半部分所示,則該窗口中心像素點的LBP值計算過程如下。
圖1-20 三段文本的詞袋特征分布
圖1-21 LBP二進制編碼意圖
第一步:將周圍像素點的取值與中心像素點的取值大小進行比較,若邊緣像素點的取值大于中心像素點,則該點取值為1,否則取值為0,經過這一操作可將周圍像素值轉化為二進制編碼,計算結果如圖1-21中右邊部分所示。
第二步:從左上角像素開始,按順時針方向將LBP二進制編碼組合成一個八位二進制數并將其轉化為一個十進制數,即得到LBP碼,例如圖1-21窗口中LBP碼的轉化結果為
100111012=157
即該3×3窗口中心像素的LBP碼為157。
第三步:重復上述步驟求得圖像所有像素的LBP碼,并將其作為LBP特征圖。圖1-22b為圖1-22a所示圖像的LBP特征圖。
圖1-22 圖像的特征提取
a)原始圖像 b)LBP特征圖 c)Canny邊緣特征
LBP特征是通過計算單個像素與其相鄰像素之間的灰度關系得到的,由于相鄰像素之間通常存在一定的相關性,故整幅圖像各像素的LBP碼之間也會存在一定的相關性,這使得LBP特征圖能夠表現出一定的全局紋理特征。
Canny特征主要表達圖像的邊緣信息,可用于確定圖像中目標的輪廓和位置。由于圖像中目標邊緣的亮度有一定變化,邊緣像素的梯度通常較大,所以Canny特征提取主要是根據梯度值和方向來尋找邊緣像素。圖1-22c為圖1-22a所示圖像的Canny邊緣特征。
除了上述LBP紋理特征和Canny邊緣特征之外,計算機視覺領域還可使用很多其他特征,例如,顏色直方圖、Haar特征、SIFT特征等。這些特征都是人們基于對實際問題的分析而人工構造出來的。隨著深度學習技術的不斷發展,人們逐漸開始嘗試讓計算機根據任務的實際需求自動進行特征提取,深度卷積神經網絡是一種最常用的特征自動提取模型。卷積神經網絡是一種以層級連接方式構造的網絡模型,該模型從第一個卷積層開始逐層對樣本進行特征提取,模型后一層的特征提取基于前一層所提取的特征。圖1-23表示卷積神經網絡LeNet-5模型的特征提取過程,圖中最下方的圖片為模型的原始輸入,越往上表示由越深的網絡層所提取到的較高層特征。
圖1-23 卷積神經網絡自動提取特征示意圖
與人工構造特征相比,機器自動提取的特征所包含的信息往往難以被人們理解,越高層的特征越抽象,但由于計算機自動提取的特征包含更多模型所需信息,因此使用這些自動提取的特征來解決實際問題通常能夠得到更好的效果。
在特征構造完成之后,有時還需要對這些特征進行進一步的篩選或融合,剔除可能存在的與實際任務無關的信息或冗余信息。對特征進行篩選的過程稱為特征選擇。具體而言,對于由構造好的特征構成的特征集合D,特征選擇的目標是尋找到D的某個子集D′,使得基于D′所建模型的性能與基于D所建模型的性能相當,并具有較低的模型優化計算量。通常使用子集搜索或相關性評估的方式實現對特征的選擇。
子集搜索就是通過搜索特征集合D的所有子集并選擇效果最好的子集作為最優特征子集。例如,某機器學習任務的特征集合為:
{Canny邊緣特征,顏色直方圖,Laplacian邊緣特征,LBP紋理特征}
分別用該特征集合的每個子集進行模型訓練,如果發現使用
{LBP紋理特征,顏色直方圖,Laplacian邊緣特征}
這一特征子集訓練獲得的模型性能最優,則該特征子集便為最優特征子集。
如果特征集合D中的元素個數較多,則子集搜索方法顯然不可行。此時可用特征相關性評估的方式來確定最優子集。相關性評估方法的基本思想是使用某個統計量來評估單個特征與樣本真實標記之間的相關性,并選擇相關性較強的幾個特征來構成近似的最優特征子集。
顯然,與樣本真實標記有較強相關性的特征通常能更好地幫助模型對樣本的預測,而與樣本真實標記相關性不大的特征通常只能提供較少的參考信息。相關性評估常用的統計量有χ2統計量、信息熵等,下面以χ2統計量為例簡要介紹相關性評估的具體做法。
對于任意給定的某個樣本特征,相關性評估方法首先假設某一特征與樣本的真實標記值無關,然后對該假設進行假設檢驗,判斷該假設是否成立。使用χ2統計量進行假設檢驗的方式被稱為χ2檢驗。例如,假設H為某一特征與樣本的真實標記值無關,則可通過樣本數據的實際值A和在假設成立條件下的理論值T計算出如下χ2統計量
在假設H成立的條件下,實際值A和理論值T之間的差別應該較小,即χ2是一個較小的數,故當χ2的值超過某一閾值時,則可以拒絕假設,認為該特征與樣本的真實標記值相關。
【例題1.2】對于一個二分類問題,其特征集合為
D={Canny邊緣特征,顏色直方圖,Laplacian邊緣特征,LBP紋理特征}
將D中的各特征離散化為0或1這兩種取值狀態,特征與樣本真實標記y之間的關系分別如表1-1~表1-4所示,試選出包含三個特征的最優特征子集。
表1-1 Canny邊緣特征取值情況與真實標記y取值關系表
表1-2 顏色直方圖取值情況與真實標記y取值關系表
表1-3 Laplacian邊緣特征取值情況與真實標記y取值關系表
表1-4 LBP紋理特征取值情況與真實標記y取值關系表
【解】(1)假設H0:Canny邊緣特征與y不相關。在假設H0成立的條件下,即Canny邊緣特征與y不相關時,理論上y=-1的樣本占總樣本的比例約為27.89%,則理論上Canny邊緣特征與y取值之間的關系應該滿足表1-5中的關系,則可算出相應的χ2統計量
表1-5 理論上特征取值與真實標記y取值關系表
假設H1:顏色直方圖與y不相關。在假設H1成立的條件下,理論上顏色直方圖與y取值之間也應該滿足表1-5中的關系,由此可算出相應的χ2統計量
假設H2:Laplacian邊緣特征與y不相關。在假設H2成立的條件下,理論上Laplacian邊緣特征與y取值之間也應該滿足表1-5中的關系,可算出相應的χ2統計量
假設H3:LBP紋理特征與y不相關。在假設H3成立的條件下,理論上LBP紋理特征與y取值之間也應該滿足表1-5中的關系,可算出相應的χ2統計量
根據上述統計量值的排序選擇三個χ2統計量較小的特征來構成所需的最優特征子集D′,即有:D′={Laplacian邊緣特征,顏色直方圖,LBP紋理特征}。□
特征選擇方式僅僅從原特征集合當中選擇了幾個特征組成特征子集,卻并未改變其中的特征。事實上,除了特征選擇之外,還可通過特征變換方式排除或減少特征集合中的特征所包含的無關或冗余信息。例如,通過某種投影映射方式對特征數據進行適當降維等操作,具體可參考有關LDA和PCA算法的相關內容。
1.3.2 規則構造
機器學習模型通常會根據樣本的表征或特征信息來實現回歸、分類、聚類等問題的求解,因此需要在樣本表征或特征信息與模型輸出之間建立一定的聯系。機器學習模型通常以規則的形式表達這種聯系,可將規則看成是機器學習模型的基本構件或具體表現形式。因此,規則構造是建立機器學習模型所必須解決的一個基本問題。不同的機器學習方式通常采用與之相適應的不同類型的規則。這些規則主要有用于演繹學習的邏輯規則、用于歸納學習的關聯規則,以及用于統計學習和連接學習的映射規則。
演繹學習主要通過命題邏輯和謂詞邏輯的演繹推理進行學習,使用假言三段論、排中律、矛盾律等邏輯規則進行演繹推理。演繹學習的理論基礎完備、嚴謹,學習過程語義清晰、易于理解,但難以處理不確定性信息,對復雜問題的求解會出現難以解決的組合爆炸問題。因此,對于演繹學習,其規則構造的主要目標和難點是建立一套能有效處理不確定性信息的邏輯規則。對模糊性、隨機性等不確定信息的處理局限是制約演繹學習發展的主要瓶頸。事實上,機器學習目前使用的基本策略是從樣本或樣例中學習,歸納學習、統計學習和連接學習已經成為機器學習的主流方式。下面著重分析討論關聯規則和映射規則的構造方法。
所謂關聯規則,是指一類已指明條件蘊含關系的規則,故亦稱為if-then規則。歸納學習的目標是采用適當方式從若干樣例或樣本中歸納總結出一組具有較好普適性的關聯規則。這組關聯規則的普適性主要表現為既符合已知樣例或樣本的性質,又能給新的示例或樣本賦予較為合理的邏輯判斷輸出。
可用命題邏輯的蘊含式X→Y表示一個具體的關聯規則,意為如果命題X成立,則命題Y成立。其中X稱為前件或條件,Y稱為后件或結論。由于關聯規則具有明確的因果蘊含關系,故用關聯規則構造的模型通常都具有很好的可解釋性,便于分析和理解。
對所有已知樣例或樣本做出正確推斷是對歸納學習所得關聯規則的基本要求。也就是說,要求關聯規則的正確推斷涵蓋或覆蓋所有訓練樣本數據。由此設計出的關聯規則構造算法稱為序列覆蓋算法。具體地說,序列覆蓋算法遞歸地歸納出單條關聯規則并逐步覆蓋訓練樣本集中的正例,當訓練樣本集中所有正例均被已歸納的關聯規則所覆蓋時,此時對應的關聯規則集就是所求規則集。然后按適當標準對所求規則進行排序,確定規則使用的優先級。
序列覆蓋算法的關聯規則的歸納構造主要通過對假設空間的搜索完成。下面結合表1-6所示數據簡要介紹基于假設空間的關聯規則搜索過程。表1-6是關于小張是否進行運動的相關數據集。若要根據該數據集歸納出小張是否進行戶外運動的規則,最容易想到的方法是從最一般的規則前件?開始對假設空間進行遍歷搜索,逐步特化規則,最終獲得所需規則,具體搜索過程如下:
表1-6 小張戶外運動情況記錄表
選擇關聯規則的后件為“是”,則搜索起始位置為?→是,搜索空間如圖1-24所示。首先搜索到的規則為“天氣=晴朗→是”,則1、2、5號樣例的屬性取值與其前件一致,但1號樣例不符合該規則的推斷,故忽略該規則繼續向后搜索。當搜索到關聯規則“氣溫=舒適→是”時,2、4號樣例的屬性取值與其前件一致且均滿足該規則的推斷,故2、4號樣例被這條關聯規則所覆蓋。將這條規則記錄下來并刪除2、4號樣例,由此完成一條關聯規則的歸納構造。遞歸上述關聯規則的歸納構造過程可得兩條關聯規則,并且它們可以覆蓋訓練樣本集中的所有正例。因此,這兩條關聯規則即為所求關聯規則。最后,根據關聯規則所覆蓋的樣例數目的大小對其進行排序,得到序列覆蓋算法的計算結果:
氣溫=舒適→是
天氣=晴朗,氣溫=不舒適,事務=無→是
假設某天的情況為(天氣=陰雨,氣溫=舒適,事務=有),則可根據上述兩條關聯規則推斷出小張會進行戶外運動的結論。
圖1-24 關聯規則搜索空間
當樣本屬性個數或屬性取值較多時,關聯規則的搜索空間可能會變得很大,遍歷搜索算法會因計算復雜度大幅上升而變得不可行。此時可用貪心搜索算法求得近似解,即每一次搜索都只朝著當前最優方向進行,從而有效地縮小搜索空間。基于貪心搜索的關聯規則學習算法有很多,其中最具代表性的有CN2算法、AQ算法等,在此不再贅述。
在統計學習和連接學習領域,樣本數據表征或特征與模型輸出之間的關系通常表現為映射規則,即從輸入空間到輸出空間的映射函數,映射規則的構造過程其實就是確定映射函數的過程,而映射函數確定問題則可轉化為求解目標函數最值的優化問題。因此,映射規則的構造主要是通過對目標函數進行優化的方式實現,基本步驟如下:
(1)根據求解問題的具體要求確定機器學習模型的基本類型或映射函數的基本結構;
(2)根據樣本數據的具體形式和模型特點確定合適的模型優化標準,如經驗風險最小化、結構風險最小化、類內距離最小化、類間距離最大化等;
(3)設計構造模型優化的目標函數;
(4)通過對目標函數進行最值優化獲得所需映射函數,完成映射規則構造。
下面結合實例介紹統計學習映射規則構造的具體過程。
【例題1.3】表1-7為某公司部分職員的年齡(歲)和薪資(千元/月)數據,這些職員由公司管理人員和普通員工組成。試根據表中信息大致判斷哪些職員為管理人員,哪些職員為普通員工。
表1-7 某公司職員年齡及薪資情況表
【分析】雖然表1-7中的數據并沒有標注職位信息,但管理層職員通常年齡相對較大且薪資相對較高,故可用聚類方式求解。聚類的基本思想通過聚類算法將不帶標注的樣本聚合成適當的簇群。由于聚類的學習對象是不帶標注的樣本,無法使用基于誤差的經驗風險最小化或結構風險最小化原則,故聚類算法一般首先使用類內距離最小化原則來構造目標函數,然后對目標函數進行優化以確定映射規則。
【解】使用對表1-7中的樣本數據進行聚類的方式求解。令Xi={ai,ei}表示表1-7中第i個職員的樣本數據,其中ai表示年齡,ei表示薪資,由此建立如下聚類映射規則基本結構
其中,Cj表示第j個簇群(j=1,2);Δ1和Δ2是待定的樣本數據編號集合。
根據類內距離最小化原則確定如下目標函數
其中,uj表示第j個簇群的聚類中心;表示uj的年齡值;
表示uj的薪資值。
D為所有數據點與其所在聚類簇中心的距離之和,可以很好地表示聚類的類內距離。下面使用k-均值聚類算法對目標函數D進行優化,其中k表示簇群個數,本例中k=2。k-均值聚類的基本思路為:首先,任選兩個點分別作為兩個簇群的初始聚類中心;然后,將剩余數據根據其與聚類中心的距離劃分到對應的簇中并根據所聚數據的均值更新聚類中心,遞歸上述過程直至聚類中心的位置不再變化(聚類中心收斂)即完成對目標函數的優化;最后,根據收斂的聚類中心生成聚類映射規則的具體形式。
令u1=X1={27,4.3}和u2=X2={47,6.3},分別計算數據X3,X4,…,X18到數據X1,X2之間的歐式距離,表1-8中的數據為計算結果。根據表1-8中的計算結果,將每個數據分別劃入其與聚類中心距離較小的簇群中,可得如下劃分
C1:X1,X3,X5,X6,X8,X9,X10,X13,X14,X18
C2:X2,X4,X7,X11,X12,X15,X16,X17
表1-8 第一輪類內距離計算
計算Cj中數據均值,并將該均值作為簇群Cj新的聚類中心,即將聚類中心更新為
u1={26.8,4.41}, u2={48.75,6.7125}
計算樣本數據與上述聚類中心的距離,計算結果如表1-9所示。
依據表1-9中的計算結果,得到如下劃分
C1:X1,X3,X5,X6,X8,X9,X10,X13,X14,X18
C2:X2,X4,X7,X11,X12,X15,X16,X17
表1-9 第二輪類內距離計算
此次劃分與前次劃分相同,聚類中心收斂,故算法結束,獲得下標集合
Δ1={1,3,5,6,8,9,10,13,14,18}; Δ2={2,4,7,11,12,15,16,17}
由此得到聚類映射規則為
即第1、3、5、6、8、9、10、13、14、18號職員為普通員工,第2、4、7、11、12、15、16、17號職員為管理人員。□
對于統計學習分類任務映射規則的構造,其基本流程與上述聚類任務類似,只是在優化標準和目標函數的設計上有所差異。下面以線性可分的二分類任務為例來簡要介紹分類映射規則構造的具體過程。設有訓練樣本集S={(X1,y1),(X2,y2),…,(Xn,yn)},其中每個樣本由t個特征描述,分別為x1,x2…,xt,yi為樣本的標注值且yi∈Y={+1,-1},i=1,2,…,n。現對上述分類任務構造映射規則,具體步驟如下。
第一步:確定機器學習模型的基本類型和映射函數的基本結構。使用支持向量機模型實現線性可分的二分類任務。支持向量機通過如下超平面實現樣本數據的二分類
其中,w=(w1,w2,…,wt)T為參數向量;X=(x1,x2,…,xt)T為特征向量;b為偏置項。支持向量機的分類目標是將分類數據分置超平面的兩側,由此可得分類映射規則的基本形式為
其中,sgn(t)為階躍函數。
第二步:確定合適的模型優化標準。支持向量機采用硬間隔最大化原則進行學習,即使得兩類數據到分離超平面的距離最遠。例如,對于圖1-25中用實線和虛線表示的兩個分離超平面,由于數據點距離實線超平面較遠,故實線超平面的硬間隔較大。
圖1-25 硬間隔大小示意圖
第三步:設計構造模型優化的目標函數。根據硬間隔最大化原則,需要構造一個分離超平面,使得樣本點到超平面的距離最大。令表示訓練樣本集S中任意給定的第i個示例,則不難得到Xi到分離超平面wTX+b=0的幾何間隔di為
令d=min{d1,d2,…,dn},則使得d最大的分離超平面即為所求。由此可得如下目標函數
;
顯然,若按比例縮放wT中的元素和偏置項b,則Y(wTX+b)的值也會同比例縮放,但這并不會影響優化結果。故可令Y(wTX+b)=1,則有d=1/‖wT‖。由此可將約束條件簡化為
另外,由于最大化1/‖/wT‖與最小化‖wT‖2等價,故可將目標函數轉化為
第四步:采用適當優化計算方法對上述目標函數進行優化,求得最優參數w*T和偏置項b*,得到所求的分類映射規則f(X)=sgn(w*TX+b*),完成映射規則的構造。
連接學習映射規則的構造也遵從上述步驟,不過在選擇模型時會選用連接學習模型,即神經網絡模型。下面以三維特征向量的二分類問題為例,討論其映射規則的構造過程。
第一步:確定機器學習模型的基本類型和映射函數的基本結構。選擇包含一個隱含層的多層感知機作為分類模型,其網絡結構如圖1-26所示,其中每個圓圈代表一個神經元。由于特征向量維數為3,故輸入層僅含三個輸入神經元。
圖1-26 一個隱含層的多層感知機
令為第ι層第i個神經元與第ι+1層第k個神經元之間的連接權重,
為第ι層第i個神經元的偏置項,各層激活函數均為φ,則對于樣本輸入X=(x1,x2,x3)T,該模型兩個隱含層神經元的輸出h1和h2分別為
將上式表示為矩陣形式,則有
其中,w1為輸入層到隱含層的連接權重矩陣;b2為隱含層的偏置向量。同理可得該模型的輸出f(X)為
其中,w2為隱含層到輸出層的連接權重向量;h為隱含層的輸出向量。
第二步:采用結構風險最小化原則模型優化標準,該原則是對經驗風險最小化原則的一種改進。模型F在m元訓練集G={(X1,y1),(X2,y2),…,(Xm,ym)}上的結構風險定義為
其中,L為損失函數;K(F)為模型復雜程度;λ為非負系數。
第三步:根據結構風險最小化原則確定目標函數,使用0-1損失函數和L1范數懲罰項構造如下目標函數
其中,I(C)在滿足條件C時取1,否則取0。
第四步:采用適當優化計算方法對上述目標函數進行優化,解得w1,w2,b2,的最優值w*1,w*2,b*2,
,由此得到所求的分類映射規則
目標函數的優化方法有很多,當目標函數較為簡單時,可通過參數估計方式直接估計目標函數最小時所對應的參數值,當目標函數較為復雜而無法直接估計參數時,則可通過迭代逼近方式逐漸優化目標函數并確定參數,這里不再贅述。
1.3.3 模型評估
機器學習的目的是提升模型性能以滿足學習任務的需求,對于訓練完成的模型需要對其進行性能評估以評判機器學習是否實現了目標或目標實現的程度。因此,對已訓練模型進行有效的性能評估是機器學習必須面對和解決的一個基本問題。如前所述,機器學習模型性能的優劣主要取決于其泛化性能,模型評估的基本策略是設法估算出模型的泛化誤差并通過泛化誤差評估模型泛化性能。直接計算模型泛化誤差通常是一件非常困難的事情,故具體的模型評估實施過程中一般使用測試誤差近似代替泛化誤差,即在測試樣本集上計算模型誤差并將其作為泛化誤差的近似替代。下面具體討論模型性能評估的基本方法。
要實現對模型的有效評估,首先必須確定能夠對模型性能進行有效度量的指標。假設f是一個任意給定的分類模型,T={(X1,y1),(X2,y2),…,(Xk,yk)}是用于測試模型f的測試樣本集,模型f對樣本Xi的輸出為。如果T的k個樣本中有m個樣本的模型輸出與其標記值不一致,則可用0-1損失函數算得該模型的測試誤差為
即為模型輸出值與標記不一致的樣本數占測試樣本總數的比例,通常亦稱為錯誤率e,即有
其中,I(C)為條件函數,即I(C)的值在滿足條件C時取1,否則取0。
正確率a是分類正確的樣本數占測試樣本總數的比例,即有
正確率與錯誤率是面向分類任務模型最常用的兩種性能度量標準。顯然,對于任意一個分類模型,其正確率與錯誤率之和恒為1。
對于很多分類問題,僅用正確率和錯誤率對分類模型的評估是不全面的。例如,在計算機輔助診斷應用領域,對于輸出空間Y={患有癌癥,不患癌癥},假設只有1%的人患有癌癥,若直接設置模型輸出全部為不患癌癥,則可將錯誤率控制在1%,但是這顯然不是一個有效模型。因為該模型的主要目的是盡可能將患有癌癥的示例找出來,將患有癌癥的示例分類為不患癌癥將會產生非常嚴重的后果。可用查準率和查全率來評價這類模型。
對于任意給定的一個二分類任務,通常會將其中某一類指定為正類,將另外一類指定為負類。令f為完成該二分類任務的分類模型,則可得如下四項基本統計指標:真正例數TP(f)、假正例數FP(f)、真反例數TN(f)和假反例數FN(f)。它們分別表示預測為正類且實際為正類的樣例數、預測為正類且實際為負類的樣例數、預測為負類且實際為負類的樣例數,以及預測為負類且實際為正類的樣例數。可根據這些指標算出模型f的查準率P(f)與查全率W(f),具體計算公式如下
根據查全率與查準率計算公式,不難看出P(f)和W(f)的取值有一定制約關系。例如,若想得到盡可能高的查準率P(f),則應盡可能地減少假正例。最簡單的辦法是將正例概率很高的樣本作為預測正例且將其他樣本均預測為反例,但這樣做會提高假反例的數目,導致查全率W(f)降低。同理,若想提高查全率W(f),則有可能降低查準率P(f)。
利用查全率與查準率對模型進行性能度量時,難免會出現某個模型查全率高但查準率低而另一個模型查全率低但查準率高的情況,此時難以同時使用查全率與查準率指標對這兩個模型進行性能對比。為此引入一個名為F1值的指標解決這個問題。所謂模型f的F1(f)值,是指該模型查全率與查準率的調和均值,即有
由此可得
F1(f)值綜合了查全率與查準率,當查全率與查準率都較高時,F1(f)值也較高。因此,如果模型的F1值越大,則認為該模型的性能越優良。
除了F1值之外,還可以通過一種名為ROC曲線的函數圖像直觀表示兩個模型的性能對比。對于任意給定的分類模型f,其ROC曲線表示該模型的真正例率TPR(f)和假正例率FPR(f)這兩個變量之間的函數關系,其中,TPR(f)表示真正例數TP(f)占測試樣本集中全部正例數的比例(即查全率);FPR(f)表示假正例數FP(f)占測試樣本集中全部假例數的比例,即有
顯然,如果分類模型的真正例率TPR(f)接近于1且假正例率FPR(f)接近于0,則該模型具有比較好的分類性能。從圖形上看,模型ROC曲線越靠近左上方,則該模型的性能就越好。圖1-27表示三種不同模型的ROC曲線,由ROC曲線分布特點可知,模型2和模型3的性能優于模型1。模型2和模型3的性能在不同情況下各有優劣,可通過ROC曲線下方面積指標進一步比較它們的平均性能。ROC曲線下方面積指標稱為AUC指標。在一般情況下,模型所對應的AUC值越大,則該模型的平均性能就越好。
圖1-27 ROC曲線示意圖
上述度量標準主要針對分類模型,下面進一步考察回歸模型的性能度量標準。令f是任意給定的一個回歸模型,T={(X1,y1),(X2,y2),…,(Xs,ys)}是用于測試模型f的測試樣本集合,是模型f對于樣本Xi的輸出。若用平方損失函數度量單個樣本的回歸誤差,則可用均方誤差(Mean Square Error,MSE)度量模型f關于測試集T的測試誤差,即有
另一個常用回歸模型的性能度量標準是決定系數。令y為測試樣本集T中所有樣本標記的均值,則模型f在T上的決定系數R2定義為
決定系數表達式中第二項的分子為模型f關于測試集T的誤差平方和,分母則表示訓練數據標記值的波動程度,二者相除可消除測試樣本標記值的波動對模型性能的影響。對于給定的測試樣本集T,如果模型f關于T的誤差平方和越小,則其擬合效果就越好。故模型的決定系數越接近于1,則該模型的性能就越好。
有了模型的性能度量指標,就可采用適當方法對模型進行性能評估。模型評估需要使用測試樣本集估計模型的泛化誤差。如果將參與模型訓練的樣本作為測試樣本用于對模型性能的評價,則會降低對模型泛化性能估計的準確性。因此,測試樣本一般不能用于對模型的訓練,需將整個數據樣本集劃分為互斥的訓練樣本集和測試樣本集。基于對樣本集的不同劃分策略,形成留出法、交叉驗證法和自助法等多種模型評估方法。
對于樣本數據集D,最簡單的劃分方法是直接從D中隨機劃分出部分數據組成訓練樣本集S,剩下部分作為測試樣本集T用于估計模型的泛化誤差,這種方法稱為留出法。為了保證留出法評估結果的可信度,通常要求訓練集和測試集中的樣本分布大致相同,從而避免因劃分不當帶來的偏差對模型評估結果的影響。
劃分的隨機性顯然會給留出法的評估結果帶來一定的波動,故僅用一次留出法的評估結果作為模型評估的最終結果是一種比較片面的做法,一般需要多次使用留出法對模型進行評估,并將這些評估結果的均值作為最終的評估結果。在實際的模型訓練與測試過程中,訓練樣本數通常占數據集總樣本數的2/3至4/5,其余樣本組成測試集。這意味著對于一次性留出法評估,數據集D中有部分樣本未能參與到訓練過程當中。因此,一次性留出法的評估結果與直接使用D中全部樣本進行訓練的真實模型性能存在一定差別。顯然,訓練樣本數占全部樣本數的比例越高,這種差別就越小。
基于以上分析,K折交叉驗證法將絕大多數樣本用于訓練。K折交叉驗證法的基本思路為:首先將數據集D等分為K個子集Di(i=1,2,…,K),然后依次保留其中一個子集作為測試集T,而將其余K-1個子集合進行合并后作為訓練集S。令Ri(i=1,2,…,K)表示第i次的模型評估結果,則各次評估結果Ri的均值就是K折交叉驗證法對模型的最終評估結果。
顯然,在使用K折交叉驗證法進行模型評估的過程中,數據集D的每個樣本僅參與了一次測試過程以及K-1次模型訓練過程。這意味著每次訓練的訓練集絕大部分是重疊的,當K值越大時,參與模型訓練的樣本數越多,得到的模型性能也就越接近于使用數據集D中所有樣本進行訓練所得到的模型性能,但此時用于測試的樣本數較少,測試結果難以真實反映模型的實際的泛化性能。
留一法將每個樣本單獨作為一個劃分,然后采樣交叉驗證的方式進行模型評估,它是K折交叉驗證法的一個特例,也是一種經典的交叉驗證法。假設數據集D包含n個樣本,留一法則將D進行n等分,依據交叉驗證的規則分別進行n次模型訓練和測試,每次有n-1個樣本參與模型訓練、1個樣本參與模型測試。最終評估結果亦為各次評估結果的均值。在D中樣本數較多的情況下,使用留一法進行模型評估的計算成本較高。
5×2交叉驗證法是另一種經典的交叉驗證法,該方法使用基數相等的訓練樣本集和測試樣本集進行模型評估,主要包括對樣本數據的隨機等分和對折這兩種操作。所謂隨機等分,就是將整個樣本數據集合D隨機地切分成樣本數目相等的兩個子集合,并將其中一個作為訓練樣本集,另外一個作為測試樣本集。對折則是將樣本數目相等的訓練樣本集和測試樣本集進行性質對換,即將原來的訓練樣本集變成測試樣本集、原來的測試樣本集變成訓練樣本集。5×2交叉驗證法對數據集合D進行五次隨機等分和對折操作。令為第i次隨機等分的第j個樣本集合,則第一次隨機劃分后可得到
、
這兩個樣本子集,選擇其中之一作為訓練集,另一個作為測試集,由此得到了第一對訓練集S1和測試集T1,對S1和T1進行對折操作便可得到第二對訓練集S2和測試集T2,即有
由以上分析可知,5×2交叉驗證法對數據集合D的一次隨機等分和對折操作可以得到兩對訓練集和測試集,進行5次隨機等分和對折則可得到10對訓練集和測試集,表1-10給出了這10對訓練集和測試集的具體產生過程。
表1-10 5×2交叉驗證法訓練集和測試集
顯然,可進行更多次隨機等分和對折操作以獲得更多的訓練集和測試集,但次數過多的隨機等分會使樣本子集之間具有很強的相關性,無法提供新的有助于模型評估的信息,卻徒增模型評估的成本。在數據集D中樣本數量較多的情況下,可以進行多次劃分,建立多組相關性較小的數據集。因此,留出法和交叉驗證法通常比較適用于樣本數量較多的情形。
當D中樣本數量較少時,可以采用一種名為自助法的方式構造訓練集和測試集。自助法主要通過對D中樣本進行可重復隨機采樣的方式構造訓練集和測試集。具體地說,假設數據集D中包含n個樣本,自助法會對數據集D中的樣本進行n次有放回的采樣,并將采樣得到的樣本作為訓練樣本生成一個含有n個樣本的訓練樣本集S,所有未被得到的樣本則作為測試樣本構成測試集T。對于D中的任一樣本,該樣本在自助采樣中未被采樣的概率為
因此,在數據集D中樣本數足夠多的情況下,測試樣本數約占總樣本數的36.8%。值得注意的是,在通過自助法構造的訓練集中,樣本數量與整個數據集的樣本數量相同,但其中可能包含重復樣本,因此所獲得的訓練集的樣本分布與整個數據集的樣本分布不同,因此,通常只有在樣本量較小、難以對數據集進行有效劃分時,才使用自助法進行模型評估。
綜上所述,在給定數據集D的情況下對機器學習模型進行模型評估,首先需要選擇合適的性能度量指標對模型的性能進行度量,然后通過適當的模型評估方法計算出模型所對應的性能度量指標的具體取值,最后通過綜合考察機器學習任務的具體特點和性能度量指標值來判定所訓練模型是否滿足機器學習任務的需求。