前置知識:
通常學習一次模型的過程如下:我們普遍為了獲取更好的模型效果,直接對原始數據學習,會造成過擬合、需要特征提取;
而若特征提取完后依舊有很多特征,還是會容易過擬合。這時候就需要特征降維和特征選擇。
其中:
特征降維:相當于將高維數據映射到低維空間(會改變數據的表示,低維空間映射后的特征不容易解釋)
特征選擇:根據特征的重要權重,不會改變維度,單純提取部分更合適的特征來使用。(是一種舍棄不重要特征)
特征:
有關特征: 對學習任務有用的特征(保留);
無關特征: 對學習任務無用的特征(舍棄);
特征選擇目的:
1. 減輕特征災難,2. 降低學習難度
特征選擇的常用方法:
1. 前向搜索:先確定一個特征集合和最優子集,依次從特征集合中選出最優特征,將最優特征移入最優子集,迭代此過程直到當前特征不再優于上一輪最優子集結束。
2. 后向搜索:先將整個特征集合作為候選子集,依次去除不相關特征;直到當特征子集不再優于上輪子集結束。
3.?雙向搜索:前向和后向結合;在每輪迭代中,一次選出最優和最差特征,將最優特征移入最優子集,最差特征從候選子集去掉。
子集評價
核心:屬性子集的信息增益:
當我們不斷的往最優子集追加特征時,我們需要不斷的計算是否帶來了信息增益:
例如:我們判斷一個人成績是否合格,當沒有任何特征時,是最混亂的,我們無從猜測。(也就是Ent(D)信息熵值最大),當我們引入了他對這門課程的累計投入學習時長(特征)時,我們就有了一定的了解(降低了我們的混亂程度)。隨著不斷的引入其他特征,我們愈發的能更大概率的確認該學生是否成績合格。
其中:D^v是特征子集,|D|是權重。Ent(D)是當前子集劃分下的信息熵;?Gain(A)是信息增益。v是特征子集對結果的劃分集合;
特征選擇
過濾式
過濾式方法是一種將特征選擇與學習器訓練相分離的特征選擇技術。
????????1)、先將相關特征挑選出來;
????????2)、再使用選擇出的數據子集來訓練學習器。
選擇--Relief算法:
為解決二分類問題
算法思想:
????????使用一個“相關統計量”來度量特征的重要性,該統計量是一個向量,其中每個分量代表著相應特征的重要性,因此我們最終可以根據這個統計量各個分量的大小來選擇出合適的特征子集。
????????對于數據集中的每個樣例xi,首先找出與xi同類別的最近鄰與不同類別的最近鄰,分別稱為猜中近鄰(near-hit)與猜錯近鄰(near-miss),接著便可以分別計算出相關統計量中的每個分量。對于j分量:
直觀上理解:對于猜中近鄰,兩者j特征屬性的距離越小越好,對于猜錯近鄰,j屬性距離越大越好。更一般地,若xi為離散屬性,diff取海明距離,即相同取0,不同取1;若xi為連續屬性,則diff為曼哈頓距離,即取差的絕對值,Xa在屬性j三的取值均規范化到[0,1],分別計算每個分量,最終取平均便得到了整個相關統計量。
迭代選取xi過程m次,根據更新j權重,最后得到各特征的平均權重。特征值越大的分類能力越強。
算法特點:時間開銷隨采樣次數以及原始數據特征線性增長,運行效率高。
Relief-F:多分類問題
對于j分量,新的計算公式如下:
其中pl表示第l類樣本在數據集中所占的比例權重,易知兩者的不同之處在于:標準Relief 只有一個猜錯近鄰,而Relief-F有多個猜錯近鄰。
Relief算法只是在數據集上采樣計算,而不是針對整個訓練集估計特征權重,屬于是高效的過濾式特征選擇算法。
包裹式選擇
直接把最終將要學習的學習器的性能作為特征子集的評價準則。(將特征選擇和模型訓練融合)
包裹方法是一種為給定學習器選擇最有利于其性能的特征子集(量身定做)。
比過濾式的特征選擇效果更好。
LVW包裹式算法:拉斯維加斯框架下采用隨機策略進行子集搜索,以最終很累起的誤差為特征自己的評價準則;
LVW拉斯維加斯方法 | 蒙特卡羅方法 | |
算法思路?? | 1. 隨機產生特征子集; 2. 使用交叉驗證推斷當前子集誤差 3. 多次循環,選擇誤差最小的子集作為最終子集。 | 1. 基于概率的方式,隨機從特征池中選取一定數量特征 2. 訓練模型,得到模型的性能 3. 選取新的隨機特征,以獲取最佳特征子集。 |
有時間限制下 | 可能給出也可能不給出解 | 一定有解 |
無時間限制下 | 有解 | 有解 |
解的特點 | 采樣越多,越有機會得到最優解,有解必最優 | 采樣越多,解越優,不一定得出最優解 |
算法特點???????? | 訓練開銷大 | 容易過擬合,訓練開銷大 |
嵌入式
過濾式中特征選擇與后續學習器完全分離;包裹式則是使用學習器作為特征選擇的評價準則;
嵌入式選擇:一種將特征選擇與學習器訓練完全融合的特征選擇方法,即將特征選擇融入學習器的優化過程中。
機器學習的核心任務就是:在模型簡單的基礎上保證模型的契合度(經驗風險指的是模型與訓練數據的契合度,結構風險則是模型的復雜程度)。
嶺回歸ridge regression:
加上了L2范數的最小二乘法,有效地解決了奇異矩陣、過擬合等諸多問題,下面的嵌入式特征選擇則是在損失函數后加上了L2范數。
而加上了L1范數
L1范數會趨向產生少量的特征(稀疏解),其求得的w會有更少的非零分量;
L2會選擇更多的特征,這些特征的權值都會接近于0;
這樣L1范數在特征選擇上就十分有用,而L2范數則具備較強的控制過擬合能力。可以從下面兩個方面來理解:
(1)下降速度:L1范數按照絕對值函數來下降,L2范數按照二次函數來下降。因此在0附近,L1范數的下降速度大于L2范數,故L1范數能很快地下降到0,而L2范數在0附近的下降速度非常慢,因此較大可能收斂在0的附近。
(2)空間限制:L1范數與L2范數都試圖在最小化損失函數的同時,讓權值W也盡可能地小。我們可以將原優化問題看做為下面的問題,即讓后面的規則都小于某個閾值。這樣從圖中可以看出:L1范數相比L2范數更容易得到稀疏解。
稀疏表示與字典學習
稀疏性表現1:數據集D矩陣中,去除很多表示特征的列;
稀疏性表現2:數據集D矩陣中存在很多0元素,且沒有出現在同一列中;
當樣本數據是一個稀疏矩陣時,對學習任務來說會有不少的好處,例如很多問題變得線性可分,儲存更為高效等。這便是稀疏表示與字典學習的基本出發點。
稀疏編碼(sparse coding)/字典學習(dictionary learning)/碼書(codebook)學習:對于一個給定的稠密矩陣,若能通過某種方法找到其合適的稀疏(恰當稀疏)表示,則可以使得學習任務更加簡單高效.
給定一個數據集,字典學習/稀疏編碼指的便是通過一個字典將原數據轉化為稀疏表示,因此最終的目標就是求得字典矩陣B及稀疏表示α,書中受LASSO的啟發,使用變量交替優化的策略能較好地求解。
字典學習:
稀疏學習側重于對樣本進行稀疏性表達的過程;
字典學習側重于學得字典的過程;
壓縮感知
從長度為M的離散信號x, 用奈奎斯特采樣定理采樣得到長度為N的信號y。N<<M時不能還原x。
但是若存在某種線性變化滿足:?時,即可以近乎完美的還原x。
壓縮感知關注的問題:
????????利用信號本身的稀疏性,從部分觀測樣本y中恢復原始信號x。
擴展:形象易懂講解算法II——壓縮感知 - 知乎