AI作业2-监督学习
結構風險最小化
結構風險最小化(structural risk minimization,SPM)是為了防止過擬合而提出來的策略。結構風險最小化等價于正則化(regularization)。結構風險在經驗風險上加上表示模型復雜度的正則項(regularizer)或者罰項(penalty term)。在假設空間、損失函數以及訓練數據集確定的情況下,結構風險的定義為:
正則化
如果我們沒有足夠的數據集(訓練集)去約束這個變量過多的模型,那么就會發生過擬合。
正則化中我們將保留所有的特征變量,但是會減小特征變量的數量級(參數數值的大小θ(j))。
這個方法非常有效,當我們有很多特征變量時,其中每一個變量都能對預測產生一點影響。正如我們在房價預測的例子中看到的那樣,我們可以有很多特征變量,其中每一個變量都是有用的,因此我們不希望把它們刪掉,這就導致了正則化概念的發生。
正則化(regularization)是結構風險最小化策略的實現,是在經驗風險上加一個正則化項(regularizer)或罰項(penalty term)。正則化項一般是模型復雜度的單調遞增函數,模型越復雜,正則化值就越大。比如,正則化項可以是模型參數向量的范數。
正則化一般具有如下形式:
其中,第一項是經驗風險,第二項是正則化項,λ是調整經驗風險和正則化間的系數,稱為正則化系數。
正則化項可以取不同的形式。例如,回歸問題中,損失函數是平方損失,正則化項可以是參數向量的L2范數:
這里,||w||2表示參數向量w的L2范數,L2范數為向量w中各個元素的平方和。
正則化項也可以是參數向量的L1范數:
這里, ||w||1表示參數向量w的L1范數,L1范數為數向量w中各個元素的絕對值之和。
第1項的經驗風險較小的模型可能較復雜(有多個非零參數),這時第2項的模型復雜度會較大。正則化的作用是選擇經驗風險與模型復雜度同時較小的模型。
正則化符合奧卡姆剃刀(Occam's razor)原理。奧卡姆剃刀原理應用于模型選擇時變為以下想法:在所有可能選擇的模型中,能夠很好地解釋已知數據并且十分簡單才是最好的模型,也就是應該選擇的模型。從貝葉斯估計的角度來看,正則化項對應于模型的先驗概率??梢约僭O復雜的模型有較小的先驗概率,簡單的模型有較大的先驗概率。
線性回歸
線性回歸是屬于機器學習里面的監督學習,與分類問題不同的是,在回歸問題中,其目標是通過對訓練樣本的學習,得到從樣本特征到樣本標簽直接的映射,其中,在回歸問題中,樣本的標簽是連續值。線性回歸是一類重要的回歸問題。在線性回歸中,目標值與特征直接存在線性關系。
邏輯斯蒂回歸
邏輯回歸是用來做分類算法的,大家都熟悉線性回歸,一般形式是Y=aX+b,y的取值范圍是[-∞, +∞],有這么多取值,怎么進行分類呢?不用擔心,偉大的數學家已經為我們找到了一個方法。
也就是把Y的結果帶入一個非線性變換的Sigmoid函數中,即可得到[0,1]之間取值范圍的數S,S可以把它看成是一個概率值,如果我們設置概率閾值為0.5,那么S大于0.5可以看成是正樣本,小于0.5看成是負樣本,就可以進行分類了。
Sigmoid與 SoftMax 函數
Sigmoid函數公式如下:
函數中t無論取什么值,其結果都在[0,1]的區間內,回想一下,一個分類問題就有兩種答案,一種是“是”,一種是“否”,那0對應著“否”,1對應著“是”,那又有人問了,你這不是[0,1]的區間嗎,怎么會只有0和1呢?這個問題問得好,我們假設分類的閾值是0.5,那么超過0.5的歸為1分類,低于0.5的歸為0分類,閾值是可以自己設定的。
好了,接下來我們把aX+b帶入t中就得到了我們的邏輯回歸的一般模型方程:
結果P也可以理解為概率,換句話說概率大于0.5的屬于1分類,概率小于0.5的屬于0分類,這就達到了分類的目的。
SoftMax函數是用于多類分類問題的激活函數,在多類分類問題中,超過兩個類標簽則需要類成員關系。對于長度為K KK的任意實向量,Softmax函數可以將其壓縮為長度為K KK,值在[ 0 , 1 ] [0,1][0,1]范圍內,并且向量中元素的總和為1的實向量。
Softmax函數與正常的max函數不同:max函數僅輸出最大值,但Softmax函數確保較小的值具有較小的概率,并且不會直接丟棄。我們可以認為它是arg?max ? \argmaxargmax函數的概率版本或“soft”版本。Softmax函數的分母結合了原始輸出值的所有因子,這意味著Softmax函數獲得的各種概率彼此相關。
Softmax激活函數的特點:
在零點不可微。
負輸入的梯度為零,這意味著對于該區域的激活,權重不會在反向傳播期間更新,因此會產生永不激活的死亡神經元。
決策樹
決策樹(decision tree):是一種基本的分類與回歸方法,此處主要討論分類的決策樹。
在分類問題中,表示基于特征對實例進行分類的過程,可以認為是if-then的集合,也可以認為是定義在特征空間與類空間上的條件概率分布。
決策樹通常有三個步驟:特征選擇、決策樹的生成、決策樹的修剪。
用決策樹分類:從根節點開始,對實例的某一特征進行測試,根據測試結果將實例分配到其子節點,此時每個子節點對應著該特征的一個取值,如此遞歸的對實例進行測試并分配,直到到達葉子節點,最后將實例分到葉節點的類中。
決策樹的構造
決策樹學習的算法通常是一個遞歸地選擇最優特征,并根據該特征對訓練數據進行分割,使得各個子數據集有一個最好的分類的過程。這一過程對應著對特征空間的劃分,也對應著決策樹的構建。
開始:構建根節點,將所有訓練數據都放在根節點,選擇一個最優特征,按著這一特征將訓練數據集分割成子集,使得各個子集有一個在當前條件下最好的分類。
如果這些子集已經能夠被基本正確分類,那么構建葉節點,并將這些子集分到所對應的葉節點去。
如果還有子集不能夠被正確的分類,那么就對這些子集選擇新的最優特征,繼續對其進行分割,構建相應的節點,如此遞歸進行,直至所有訓練數據子集被基本正確的分類,或者沒有合適的特征為止。
每個子集都被分到葉節點上,即都有了明確的類,這樣就生成了一顆決策樹。
決策樹的特點
優點:計算復雜度不高,輸出結果易于理解,對中間值的缺失不敏感,可以處理不相關特征數據。
缺點:可能會產生過度匹配的問題(即過擬合)
適用數據類型:數值型和標稱型
使用決策樹做預測需要以下過程:
收集數據:可以使用任何方法。比如想構建一個相親系統,我們可以從媒婆那里,或者通過參訪相親對象獲取數據。根據他們考慮的因素和最終的選擇結果,就可以得到一些供我們利用的數據了。
準備數據:收集完的數據,我們要進行整理,將這些所有收集的信息按照一定規則整理出來,并排版,方便我們進行后續處理。
分析數據:可以使用任何方法,決策樹構造完成之后,我們可以檢查決策樹圖形是否符合預期。
訓練算法:這個過程也就是構造決策樹,同樣也可以說是決策樹學習,就是構造一個決策樹的數據結構。
測試算法:使用經驗樹計算錯誤率。當錯誤率達到了可接收范圍,這個決策樹就可以投放使用了。
使用算法:此步驟可以使用適用于任何監督學習算法,而使用決策樹可以更好地理解數據的內在含義。
信息熵 條件熵 信息增益
信息增益=信息熵—條件熵
信息熵
其中代表隨機事件為的概率,下面來逐步介紹信息熵的公式來源!
信息量與事件x發生的概率成負相關,,因為,一個具體事件的信息量應該是隨著其發生概率而遞減的,且不能為負。
概率越小信息量越大。
信息量度量的是一個具體事件發生了所帶來的信息,而熵則是在結果出來之前對可能產生的信息量的期望——
考慮該隨機變量的所有可能取值,即所有可能發生事件所帶來的信息量的期望。即信息熵
事件越復雜,信息熵越大
信息熵還可以作為一個系統復雜程度的度量,如果系統越復雜,
出現不同情況的種類越多,那么他的信息熵是比較大的。如果一個系統越簡單,出現情況種類很少
(極端情況為1種情況,那么對應概率為1,那么對應的信息熵為0),此時的信息熵較小。
條件熵
條件熵是另一個變量Y熵對X(條件)的期望。
其實條件熵意思是按一個新的變量的每個值對原變量進行分類,比如上面這個題把嫁與不嫁按帥,不帥分成了倆類。
然后在每一個小類里面,都計算一個小熵,然后每一個小熵乘以各個類別的概率,然后求和。
我們用另一個變量對原變量分類后,原變量的不確定性就會減小了,因為新增了Y的信息,可以感受一下。不確定程度減少了多少就是信息的增益。
信息增益
信息增益代表了在一個條件下,信息復雜度(不確定性)減少的程度。
那么我們現在也很好理解了,在決策樹算法中,我們的關鍵就是每次選擇一個特征,特征有多個,那么到底按照什么標準來選擇哪一個特征。
這個問題就可以用信息增益來度量。如果選擇一個特征后,信息增益最大(信息不確定性減少的程度最大),那么我們就選取這個特征。
通過計算各個特征的信息增益發現,身高的信息增益最大,也就是:身高這個特征對于我們廣大女生同學來說,決定嫁不嫁給自己的男朋友是很重要的。那么我就可以說,孟非哥哥,我想知道男嘉賓的一個特征是身高特征。因為它在這些特征中,身高對于我挑夫君是最重要的,信息增益是最大的,知道了這個特征,嫁與不嫁的不確定度減少的是最多的。
線性判別分析 LDA
LDA屬于機器學習中的監督學習算法,常用來做特征提取、數據降維和任務分類。LDA算法與PCA算法都是常用的降維技術。兩者最大的區別在于:LDA是一種監督學習的降維技術,也就是說它的數據集的每個樣本是有類別輸出的;而PCA是不考慮樣本類別輸出的無監督降維技術。LDA的思想可以用一句話概括:“投影后類內方差最小,類間方差最大”(即我們要將數據在低維度上進行投影,投影后希望每一種類別數據的投影點盡可能的接近,而不同類別的數據的類別中心之間的距離盡可能的大。)
概率近似正確 PAC
PAC學習理論不關心假設選擇算法,他關心的是能否從假設空間 H 中學習一個好的假設 h ??吹?能否 二字了沒?此理論不關心怎樣在假設空間中尋找好的假設,只關心能不能找得到。現在我們在來看一下什么叫“好假設”?只要滿足兩個條件(PAC辨識條件)即可:
近似正確:泛化誤差 E(h) 足夠小
E(h) 越小越好,最好泛化誤差能等于0,但一般是不可能的。那我們就把 E(h) 限定在一個很小的數 η之內,即只要假設 h 滿足 E(h) < η ,我們就認為 h 是正確的。
可能正確
不指望選擇的假設 h 百分之百是近似正確的(按上段所述,即 E(h) < η ),只要 很可能 是近似正確的就可以,即我們給定一個值 μ ,假設 h 滿足 P(h近似正確)>=1-μ。
綜上兩點,就得到了PAC(可能近似正確,probably approximate correct)可學習的定義。簡單的講就是模型在短時間內利用少量的(多項式級別)樣本能夠找到一個假設 h ,使其滿足 P(E(h) < η) >=1-μ,其中0<η,μ<1。
自適應提升AdaBoost
Adaptive Boosting(AdaBoost)是一種迭代算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構成一個最強的最終分類器(強分類器)。
Boosting方法要解答的兩個關鍵問題:
一是在訓練過程中如何改變訓練樣本的權重或者概率分布;
二是如何將多個弱分類器組合成一個強分類器。
AdaBoost的做法是:一是提高前一輪被弱分類器分類錯誤的樣本的權重,而降低分類正確的樣本的權重;而是對多個弱分類器進行線性組合,提高分類效果好的弱分類器的權重,降低分類誤差率高的弱分類器的權重。
AdaBoost的兩個權重
學習器的權重
樣本的權重
AdaBoost思想
剛開始有一份等權的數據,訓練一個模型,這個模型會有一個錯誤率,根據這個錯誤率去求一個權重,就可以給這個學習器一個權重(學習器的權重),上個學習器分錯的樣本,需要調整權重,錯的升高權重,對的降低權重(樣本的權重)
3.AdaBoost思想的優缺點
優點:
? 可以使用各種回歸分類模型來構建弱學習器,非常靈活
? Sklearn中對AdaBoost的實現是從帶權學習視角出發的,思想樸素,易于理解
? 控制迭代次數可以一定程度防止發生過擬合
缺點:
? 對異常樣本敏感,異常樣本在迭代中可能會獲得較高的權重,影響最終預測準確性。
4.AdaBoost小結
提升樹
? AdaBoost思想結合決策樹的基學習器,就得到提升樹模型。提升樹做分類時,基學習器選CART分類樹;回歸時選CART回歸樹
兩個視角
? 帶權學習視角、前向分布學習視角
前向分步學習的說明
? 在前向分步學習視角下,當提升樹的損失函數是平方損失和指數損失時,優化是簡單的,但對一般損失函數而言優化難度大,即沒有通用的求解方案
? 因此2001年,Friedman提出了一個通用方案——梯度提升,起名為GBDT
總結
以上是生活随笔為你收集整理的AI作业2-监督学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab图像处理代码实例,MATLA
- 下一篇: 导入EXCEL数据更新access数据库