8.學習理論
1.交叉驗證
k-折交叉驗證
將數據集劃分爲k份,每次選取一份作爲測試數據,其他的爲訓練數據。重複k次。計算每次錯誤的平均值。以此驗證模型的性能。
-
隨機將訓練集 S 切分成 k 個不相交的子集。其中每一個子集的規模爲 m/k 個訓練樣本。這些子集爲 S1,⋯,Sk
-
對每個模型 Mi,我們都按照下面的步驟進行評估(evaluate):
對 j=1,⋯,k
-
在 S1∪⋯∪Sj−1∪Sj+1∪⋯∪Sk (也就是除了 Sj 之外的其他數據),對模型 Mi 得到假設 hij 。接下來針對 Sj 使用假設 hij 進行測試,得到經驗誤差 ϵ^Scv(hij)
對ϵ^Scv(hij) 取平均值,計算得到的值就當作是模型 Mi 的估計泛化誤差(estimated generalization error)
-
選擇具有最小估計泛化誤差(lowest estimated generalization error)的模型 Mi 的,然後在整個訓練樣本集 S 上重新訓練該模型。這樣得到的假設 (hypothesis)就可以輸出作爲最終結果了。
2.特徵選擇
向前搜索
-
初始化一個集合爲空集 F=∅
-
循環下面的過程{
(a) 對於 i=1,⋯,n 如果 i∈/F,則令 Fi=F∪{i},然後使用某種交叉驗證來評估特徵 Fi
(b) 令 F 爲(a)中最佳特徵子集
}
-
整個搜索過程中篩選出來了最佳特徵子集(best feature subset),將其輸出。
算法的外層循環可以在 F={1,⋯,n} 達到全部特徵規模時停止,也可以在 ∣F∣ 超過某個預先設定的閾值時停止(閾值和你想要算法用到特徵數量最大值有關)。
向後搜索
從F={1,...,n} ,即規模等同於全部特徵開始,然後重複,每次刪減一個特徵,直到 F 爲空集時終止。
過濾器特徵選擇
一種思路是使用 xi 和 y 之間的相關係數的值(或其絕對值),這可以在訓練 樣本數據中算出。這樣我們選出的就是與分類標籤(class labels)的關係最密切的特徵值(features)。實踐中,通常(尤其當特徵 xi 爲離散值(discrete-valued features))選擇 xi 和 y 的互信息( mutual information, MI(xi,y) ) 來作爲 S(i) 。
MI(xi,y)=xi∈{0,1}∑y∈{0,1}∑p(xi,y)logp(xi)p(y)p(xi,y)
(上面這個等式假設了 xi 和 y 都是二值化;更廣泛的情況下將會超過變量的範圍 。)上式中的概率p(xi,y),p(xi) 和 p(y) 都可以根據它們在訓練集上的經驗分佈(empirical distributions)而推測(estimated)得到。
要對這個信息量分值的作用有一個更直觀的印象,也可以將互信息(mutual information)表達成 KL 散度(Kullback-Leibler divergence,也稱 KL 距離,常用來衡量兩個概率分佈的距離):
MI(xi,y)=KL(p(xi,y)∥p(xi)p(y))
3.貝葉斯統計和正則化
在本章的開頭部分,我們談到了使用最大似然(maximum likelihood,縮寫爲 ML)來進行參數擬合,然後根據下面的式子來選擇參數:
θML=argθmaxi=1∏mp(y(i)∣x(i);θ)
給定一個訓練集合 S={(x(i),y(i))}i=1m,
p(S∣θ)p(S,θ)p(S)=i=1∏mp(y(i)∣x(i),θ)=p(S∣θ)p(θ)=i=1∏mp(y(i)∣x(i),θ)p(θ)=∫θp(S,θ)dθ=∫θ(i=1∏mp(y(i)∣x(i),θ)p(θ))dθ
當我們被要求對一個新的 x 的值進行預測的時候,我們可以計算在參數上的後驗分佈 (posterior distribution):
p(θ∣S)=p(S)p(S∣θ)p(θ)=∫θ(∏i=1mp(y(i)∣x(i),θ)p(θ))dθ(∏i=1mp(y(i)∣x(i),θ))p(θ)
在上面的等式中,p(yi)∣x(i),θ) 來自你所用的機器學習問題中的模型。例如,如果你使用貝葉斯邏輯迴歸(Bayesian logistic regression),你可能就會選擇 p(y(i)∣x(i),θ)=hθ(x(i))y(i)(1−hθ(x(i)))(1−y(i)) 其中,hθ(x(i))=1/(1+exp(−θTx(i))).
若有一個新的測試樣本 x,然後要求我們對這個新樣本進行預測,我們可以使用 θ 上的後驗分佈(posterior distribution)來計算分類標籤(class label)上的後驗分佈:
p(y∣x,S)=∫θp(y∣x,θ)p(θ∣S)dθ
在上面這個等式中,p(θ∣S) 來自等式 (1)。例如,如果目標是要根據給定的 x 來預測對應的 y 的值,那就可以輸出4:
4 如果 y 是一個離散值(discrete-valued),那麼此處的積分(integral)就用求和(summation)來替代。
E[y∣x,S]=∫yyp(y∣x,S)dy
這裏我們簡單概述的這個過程,可認爲是一種“完全貝葉斯 (fully Bayesian)”預測,其中我們的預測是通過計算相對於 θ 上的後驗概率 p(θ∣S) 的平均值而得出的。然而很不幸,這 個後驗分佈的計算通常是比較困難的。這是因爲這個計算需要對 θ 進行積分(integral),而 θ 通常是高維度的(high-dimensional),這通常是不能以閉合形式 (closed-form)來實現的。
因此在實際應用中,我們都是用一個與 θ 的後驗分佈 (posterior distribution)近似的分佈來替代。常用的一個近似是把對 θ 的後驗分佈(正如等式(2)中所示)替換爲一個單點估計(single point estimate)。對 θ 的最大後驗估計 (MAP,maximum a posteriori estimate)爲:
θMAP=argθmaxi=1∏mp(y(i)∣x(i))p(θ)
注意到了麼,這個式子基本和對 θ 的最大似然估計(ML (maximum likelihood) estimate)是一樣的方程,除了末尾多了 一個先驗概率分佈 p(θ)。 實際應用裏面,對先驗概率分佈 p(θ) 的常見選擇是假設 θ∼N(0,τ2I)。