摘要:以用于檢測垃圾郵件的邏輯回歸模型為例。邏輯回歸的損失函數(shù)線性回歸的損失函數(shù)是平方損失。正則化在邏輯回歸建模中極其重要。
正則化:簡單性
查看以下泛化曲線,該曲線顯示的是訓(xùn)練集和驗(yàn)證集相對于訓(xùn)練迭代次數(shù)的損失。
上圖顯示的是某個模型的訓(xùn)練損失逐漸減少,但驗(yàn)證損失最終增加。換言之,該泛化曲線顯示該模型與訓(xùn)練集中的數(shù)據(jù)過擬合。根據(jù)奧卡姆剃刀定律,或許我們可以通過降低復(fù)雜模型的復(fù)雜度來防止過擬合,這種原則稱為正則化。
一般來說,監(jiān)督學(xué)習(xí)可以看做最小化下面的目標(biāo)函數(shù).其中,第一項(xiàng)L(yi,f(xi;w)) 衡量我們的模型(分類或者回歸)對第i個樣本的預(yù)測值f(xi;w)和真實(shí)的標(biāo)簽yi之前的誤差.第二項(xiàng),也就是對參數(shù)w的規(guī)則化函數(shù)Ω(w)去約束我們的模型盡量的簡單
我們不僅要保證訓(xùn)練誤差最小,我們更希望我們的模型測試誤差小,所以我們需要加上第二項(xiàng),也就是對參數(shù)w的規(guī)則化函數(shù)Ω(w)去約束我們的模型盡量的簡單,機(jī)器學(xué)習(xí)的大部分帶參模型都和這個不但形似,而且神似。是的,其實(shí)大部分無非就是變換這兩項(xiàng)而已。對于第一項(xiàng)Loss函數(shù),如果是Square loss,那就是最小二乘了;如果是Hinge Loss,那就是著名的SVM了;如果是exp-Loss,那就是牛逼的 Boosting了;如果是log-Loss,那就是Logistic Regression了;還有等等。不同的loss函數(shù),具有不同的擬合特性,這個也得就具體問題具體分析的
在這之前,我們都是以最小化損失(經(jīng)驗(yàn)風(fēng)險最小化)為目標(biāo):
但訓(xùn)練損失小并不是我們的最終目標(biāo),我們的目標(biāo)是希望模型的測試損失小,也就是能準(zhǔn)確的預(yù)測新的樣本。所以,我們需要保證模型“簡單”的基礎(chǔ)上最小化訓(xùn)練誤差,這樣得到的參數(shù)才具有好的泛化性能?,F(xiàn)在是以最小化損失和復(fù)雜度為目標(biāo),這稱為結(jié)構(gòu)風(fēng)險最小化:
現(xiàn)在,我們的訓(xùn)練優(yōu)化算法是一個由兩項(xiàng)內(nèi)容組成的函數(shù):一個是損失項(xiàng),用于衡量模型與數(shù)據(jù)的擬合度,另一個是正則化項(xiàng),用于衡量模型復(fù)雜度。
詳細(xì)理解正則化
L1范數(shù)和L0范數(shù)可以實(shí)現(xiàn)稀疏,L1因具有比L0更好的優(yōu)化求解特性而被廣泛應(yīng)用。L1會趨向于產(chǎn)生少量的特征,而其他的特征都是0,而L2會選擇更多的特征,這些特征都會接近于0
這里,只考慮 L2 正則化公式來量化復(fù)雜度,該公式將正則化項(xiàng)定義為所有特征權(quán)重的平方和:
在這個公式中,接近于 0 的權(quán)重對模型復(fù)雜度幾乎沒有影響,而離群值權(quán)重則可能會產(chǎn)生巨大的影響。
例如,某個線性模型具有以下權(quán)重:{w1 = 0.2, w2 = 0.5, w3 = 5, w4 = 1, w5 = 0.25, w6 = 0.75}
L2 正則化項(xiàng)為各權(quán)重平方和: 26.915
但是 w3的平方值為 25,幾乎貢獻(xiàn)了全部的復(fù)雜度。所有 5 個其他權(quán)重的平方和對 L2 正則化項(xiàng)的貢獻(xiàn)僅為 1.915。所以我們讓L2范數(shù)的規(guī)則項(xiàng)||W||2最小,可以使得W的每個元素都很小,都接近于0。,但與L1范數(shù)不同,它不會讓它等于0,而是接近于0,這里是有很大的區(qū)別的哦。而越小的參數(shù)說明模型越簡單,越簡單的模型則越不容易產(chǎn)生過擬合現(xiàn)象。為什么越小的參數(shù)說明模型越簡單?我也不懂,我的理解是:限制了參數(shù)很小,實(shí)際上就限制了多項(xiàng)式某些分量的影響很?。瓷厦婢€性回歸的模型的那個擬合的圖),這樣就相當(dāng)于減少參數(shù)個數(shù)。這里也一句話總結(jié)下:通過L2范數(shù),我們可以實(shí)現(xiàn)了對模型空間的限制,從而在一定程度上避免了過擬合。
簡化正則化:lambda模型開發(fā)者通過以下方式來調(diào)整正則化項(xiàng)的整體影響:用正則化項(xiàng)的值乘以名為 lambda(又稱為正則化率)的標(biāo)量。也就是說,模型開發(fā)者會執(zhí)行以下運(yùn)算:
執(zhí)行 L2 正則化對模型具有以下影響
使權(quán)重值接近于 0(但并非正好為 0)
使權(quán)重的平均值接近于 0,且呈正態(tài)(鐘形曲線或高斯曲線)分布。
增加 lambda 值將增強(qiáng)正則化效果。 例如,lambda 值較高的權(quán)重直方圖可能會如圖所示。
降低 lambda 的值往往會得出比較平緩的直方圖
在選擇 lambda 值時,目標(biāo)是在簡單化和訓(xùn)練數(shù)據(jù)擬合之間達(dá)到適當(dāng)?shù)钠胶猓?/p>
如果您的 lambda 值過高(注重考慮正則,模型偏向于優(yōu)化復(fù)雜模型),則模型會非常簡單,但是您將面臨數(shù)據(jù)欠擬合的風(fēng)險。您的模型將無法從訓(xùn)練數(shù)據(jù)中獲得足夠的信息來做出有用的預(yù)測。
如果您的 lambda 值過低(注重考慮訓(xùn)練損失),則模型會比較復(fù)雜,并且您將面臨數(shù)據(jù)過擬合的風(fēng)險。您的模型將因獲得過多訓(xùn)練數(shù)據(jù)特點(diǎn)方面的信息而無法泛化到新數(shù)據(jù)。
L2 正則化可能會導(dǎo)致對于某些信息缺乏的特征,模型會學(xué)到適中的權(quán)重。L2 正則化降低較大權(quán)重的程度高于降低較小權(quán)重的程度。隨著權(quán)重越來越接近于 0.0,L2 將權(quán)重“推”向 0.0 的力度越來越弱。L2 正則化會使相似度高(存在噪點(diǎn))兩個特征的權(quán)重幾乎相同
邏輯回歸:Logistic Regression邏輯回歸會生成一個介于 0 到 1 之間(不包括 0 和 1)的概率值,而不是確切地預(yù)測結(jié)果是 0 還是 1。以用于檢測垃圾郵件的邏輯回歸模型為例。如果此模型推斷某一特定電子郵件的值為 0.932,則意味著該電子郵件是垃圾郵件的概率為 93.2%。更準(zhǔn)確地說,這意味著在無限訓(xùn)練樣本的極限情況下,模型預(yù)測其值為 0.932 的這組樣本實(shí)際上有 93.2% 是垃圾郵件,其余的 6.8% 不是垃圾郵件。
邏輯回歸模型如何確保輸出值始終落在 0 和 1 之間。巧合的是,S 型函數(shù)生成的輸出值正好具有這些特性,其定義如下:
S型函數(shù)會產(chǎn)生以下曲線圖:
如果 z 表示使用邏輯回歸訓(xùn)練的模型的線性層的輸出,則 S 型(z) 函數(shù)會生成一個介于 0 和 1 之間的值(概率)。用數(shù)學(xué)方法表示為:
其中:
y" 是邏輯回歸模型針對特定樣本的輸出。
z 是 b + w1x1 + w2x2 + … wNxN
- “w”值是該模型學(xué)習(xí)的權(quán)重和偏差。 - “x”值是特定樣本的特征值。
請注意,z 也稱為對數(shù)幾率,因?yàn)?S 型函數(shù)的反函數(shù)表明,z 可定義為標(biāo)簽“1”(例如“狗叫”)的概率除以標(biāo)簽“0”(例如“狗不叫”)的概率得出的值的對數(shù):
假設(shè)我們的樣本是{x, y},y是0或者1,表示正類或者負(fù)類,x是我們的m維的樣本特征向量。那么這個樣本x屬于正類,也就是y=1的“概率”可以通過下面的邏輯函數(shù)來表示:
這里θ是模型參數(shù),也就是回歸系數(shù),σ是sigmoid函數(shù)。實(shí)際上這個函數(shù)是由下面的對數(shù)幾率(也就是x屬于正類的可能性和負(fù)類的可能性的比值的對數(shù))變換得到的:
邏輯回歸與線性回歸的不同點(diǎn)在于:為了將線性回歸輸出的很大范圍的數(shù),例如從負(fù)無窮到正無窮,壓縮到0和1之間,這樣的輸出值表達(dá)為“可能性”才能說服廣大民眾。。另外,對于二分類來說,可以簡單的認(rèn)為:如果樣本x屬于正類的概率大于0.5,那么就判定它是正類,否則就是負(fù)類。所以說,LogisticRegression 就是一個被logistic方程歸一化后的線性回歸,僅此而已。
邏輯回歸的損失函數(shù)線性回歸的損失函數(shù)是平方損失。邏輯回歸的損失函數(shù)是對數(shù)損失函數(shù),定義如下:
其中:
(xy)?D 是包含很多有標(biāo)簽樣本 (x,y) 的數(shù)據(jù)集。
“y”是有標(biāo)簽樣本中的標(biāo)簽。由于這是邏輯回歸,因此“y”的每個值必須是 0 或 1。
“y"”是對于特征集“x”的預(yù)測值(介于 0 和 1 之間)。
對數(shù)損失函數(shù)的方程式與 Shannon 信息論中的熵測量密切相關(guān)。它也是似然函數(shù)的負(fù)對數(shù)(假設(shè)“y”屬于伯努利分布)。實(shí)際上,最大限度地降低損失函數(shù)的值會生成最大的似然估計(jì)值。
上圖中,當(dāng)接近其中一個條形時,損失就會變得越大,而且變化速度非常驚人。這些漸近線的作用是非常重要的。否則,在指定的數(shù)據(jù)集上,模型會盡可能更緊密地?cái)M合數(shù)據(jù),讓損失接近于0. 因此,大多數(shù)邏輯回歸模型會使用以下兩個策略之一來降低模型復(fù)雜性:
L2 正則化。
早停法,即,限制訓(xùn)練步數(shù)或?qū)W習(xí)速率。
正則化在邏輯回歸建模中極其重要。如果沒有正則化,邏輯回歸的漸近性會不斷促使損失在高維度空間內(nèi)達(dá)到 0.
假設(shè)您向每個樣本分配一個唯一 ID,且將每個 ID 映射到其自己的特征。如果您未指定正則化函數(shù),模型會變得完全過擬合。這是因?yàn)?strong>模型會嘗試促使所有樣本的損失達(dá)到 0 但始終達(dá)不到,從而使每個指示器特征的權(quán)重接近正無窮或負(fù)無窮。當(dāng)有大量罕見的特征組合且每個樣本中僅一個時,包含特征組合的高維度數(shù)據(jù)會出現(xiàn)這種情況。幸運(yùn)的是,使用 L2 或早停法可以防止出現(xiàn)此類問題。
邏輯回歸特點(diǎn):容易擴(kuò)展到龐大的數(shù)據(jù)中;預(yù)測速度快,可用于延遲時間極短的預(yù)測
如果我們需要非線性邏輯回歸,可添加特征交叉乘積來實(shí)現(xiàn)。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/41706.html
直接進(jìn)入核心現(xiàn)在說說baseCompile核心代碼: //`createCompilerCreator`allowscreatingcompilersthatusealternative //parser/optimizer/codegen,e.gtheSSRoptimizingcompiler. //Herewejustexportadefaultcompilerusingthede...
閱讀 1193·2021-11-24 10:24
閱讀 2652·2021-11-22 13:54
閱讀 1066·2021-09-24 09:55
閱讀 3669·2019-08-30 15:54
閱讀 1393·2019-08-30 15:44
閱讀 1146·2019-08-30 14:23
閱讀 3258·2019-08-29 13:45
閱讀 1351·2019-08-29 11:19